/*
* jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz
*
* http://www.heise.de/extras/socialshareprivacy/
* http://www.heise.de/ct/artikel/2-Klicks-fuer-mehr-Datenschutz-1333879.html
*
* Copyright (c) 2011 Hilko Holweg, Sebastian Hilbig, Nicolas Heiringhoff, Juergen Schmidt,
* Heise Zeitschriften Verlag GmbH & Co. KG, http://www.heise.de
*
* is released under the MIT License http://www.opensource.org/licenses/mit-license.php
*
* Spread the word, link to us if you can.
*/
(function (f) { function g(j, h) { var k = decodeURIComponent(j); if (k.length <= h) { return j } var i = k.substring(0, h - 1).lastIndexOf(" "); k = encodeURIComponent(k.substring(0, i)) + "\u2026"; return k } function a(i) { var h = f('meta[name="' + i + '"]').attr("content"); return h || "" } function b() { var i = a("DC.title"); var h = a("DC.creator"); if (i.length > 0 && h.length > 0) { i += " - " + h } else { i = f("title").text() } return encodeURIComponent(i) } function e() { var i = document.location.href; var h = f("link[rel=canonical]").attr("href"); if (h && h.length > 0) { if (h.indexOf("http") < 0) { h = document.location.protocol + "//" + document.location.host + h } i = h } return i } function c(i, k, m, l, j) { var h = new Date(); h.setTime(h.getTime() + (m * 24 * 60 * 60 * 1000)); document.cookie = i + "=" + k + "; expires=" + h.toUTCString() + "; path=" + l + "; domain=" + j } function d(i, k, l, j) { var h = new Date(); h.setTime(h.getTime() - 100); document.cookie = i + "=" + k + "; expires=" + h.toUTCString() + "; path=" + l + "; domain=" + j } f.fn.socialSharePrivacy = function (j) { var o = { services: { facebook: { status: "on", app_id: "__FB_APP-ID__", dummy_img: "/templates/img/social/dummy_facebook.png", txt_info: "2 Klicks f&uuml;r mehr Datenschutz: Erst wenn Sie hier klicken, wird der Button aktiv und Sie k&ouml;nnen Ihre Empfehlung an Facebook senden. Schon beim Aktivieren werden Daten an Dritte &uuml;bertragen.", txt_fb_off: "nicht mit Facebook verbunden", txt_fb_on: "mit Facebook verbunden", perma_option: "on", display_name: "Facebook", referrer_track: "", language: "de_DE", action: "like" }, twitter: { status: "on", dummy_img: "/templates/img/social/dummy_twitter.png", txt_info: "2 Klicks f&uuml;r mehr Datenschutz: Erst wenn Sie hier klicken, wird der Button aktiv und Sie k&ouml;nnen Ihre Empfehlung an Twitter senden. Schon beim Aktivieren werden Daten an Dritte &uuml;bertragen.", txt_twitter_off: "nicht mit Twitter verbunden", txt_twitter_on: "mit Twitter verbunden", perma_option: "on", display_name: "Twitter", referrer_track: "", tweet_text: b, language: "en" }, gplus: { status: "on", dummy_img: "/templates/img/social/dummy_gplus.png", txt_info: "2 Klicks f&uuml;r mehr Datenschutz: Erst wenn Sie hier klicken, wird der Button aktiv und Sie k&ouml;nnen Ihre Empfehlung an Google+ senden. Schon beim Aktivieren werden Daten an Dritte &uuml;bertragen.", txt_gplus_off: "nicht mit Google+ verbunden", txt_gplus_on: "mit Google+ verbunden", perma_option: "on", display_name: "Google+", referrer_track: "", language: "de"} }, info_link: "http://www.heise.de/ct/artikel/2-Klicks-fuer-mehr-Datenschutz-1333879.html", txt_help: "Wenn Sie diese Felder durch einen Klick aktivieren, werden Informationen an Facebook, Twitter oder Google in die USA &uuml;bertragen und unter Umst&auml;nden auch dort gespeichert.<br/>Klicken Sie auf <em>i</em>, um einen Heise-Artikel mit weiteren Informationen zu &ouml;ffnen.", settings_perma: "Dauerhaft aktivieren und Daten&uuml;ber&shy;tragung zustimmen:", cookie_path: "/", cookie_domain: document.location.host, cookie_expires: "365", css_path: "", uri: e }; var h = f.extend(true, o, j); var n = (h.services.facebook.status === "on"); var l = (h.services.twitter.status === "on"); var m = (h.services.gplus.status === "on"); if (!n && !l && !m) { return } if (h.css_path.length > 0) { f("head").append('<link rel="stylesheet" type="text/css" href="' + h.css_path + '" />') } f(this).prepend('<ul class="social_share_privacy_area"></ul>'); var i = f(".social_share_privacy_area", this); var k = h.uri; if (typeof k === "function") { k = k() } return this.each(function () { if (h.services.facebook.status === "on") { var H = encodeURIComponent(k + h.services.facebook.referrer_track); var p = '<iframe src="//www.facebook.com/plugins/like.php?locale=' + h.services.facebook.language + "&amp;href=" + H + "&amp;send=false&amp;layout=button_count&amp;width=120&amp;show_faces=false&amp;action=" + h.services.facebook.action + '&amp;colorscheme=light&amp;font&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:120px; height:21px;" allowTransparency="true"></iframe>'; var M = '<img src="' + h.services.facebook.dummy_img + '" alt="Facebook &quot;Like&quot;-Dummy" class="fb_like_privacy_dummy" />'; i.append('<li class="facebook help_info"><span class="info">' + h.services.facebook.txt_info + '</span><span class="switch off">' + h.services.facebook.txt_fb_off + '</span><div class="fb_like dummy_btn">' + M + "</div></li>"); var r = f("li.facebook", i); f("li.facebook div.fb_like img.fb_like_privacy_dummy,li.facebook span.switch", i).live("click", function () { if (r.find("span.switch").hasClass("off")) { r.addClass("info_off"); r.find("span.switch").addClass("on").removeClass("off").html(h.services.facebook.txt_fb_on); r.find("img.fb_like_privacy_dummy").replaceWith(p) } else { r.removeClass("info_off"); r.find("span.switch").addClass("off").removeClass("on").html(h.services.facebook.txt_fb_off); r.find(".fb_like").html(M) } }) } if (l) { var A = h.services.twitter.tweet_text; if (typeof A === "function") { A = A() } A = g(A, "120"); var G = encodeURIComponent(k + h.services.twitter.referrer_track); var B = encodeURIComponent(k); var y = '<iframe allowtransparency="true" frameborder="0" scrolling="no" src="http://platform.twitter.com/widgets/tweet_button.html?url=' + G + "&amp;counturl=" + B + "&amp;text=" + A + "&amp;count=horizontal&amp;lang=" + h.services.twitter.language + '" style="width:120px; height:25px;"></iframe>'; var C = '<img src="' + h.services.twitter.dummy_img + '" alt="&quot;Tweet this&quot;-Dummy" class="tweet_this_dummy" />'; i.append('<li class="twitter help_info"><span class="info">' + h.services.twitter.txt_info + '</span><span class="switch off">' + h.services.twitter.txt_twitter_off + '</span><div class="tweet dummy_btn">' + C + "</div></li>"); var x = f("li.twitter", i); f("li.twitter div.tweet img,li.twitter span.switch", i).live("click", function () { if (x.find("span.switch").hasClass("off")) { x.addClass("info_off"); x.find("span.switch").addClass("on").removeClass("off").html(h.services.twitter.txt_twitter_on); x.find("img.tweet_this_dummy").replaceWith(y) } else { x.removeClass("info_off"); x.find("span.switch").addClass("off").removeClass("on").html(h.services.twitter.txt_twitter_off); x.find(".tweet").html(C) } }) } if (m) { var u = k + h.services.gplus.referrer_track; var t = '<div class="g-plusone" data-size="medium" data-href="' + u + '"></div><script type="text/javascript">window.___gcfg = {lang: "' + h.services.gplus.language + '"}; (function() { var po = document.createElement("script"); po.type = "text/javascript"; po.async = true; po.src = "https://apis.google.com/js/plusone.js"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(po, s); })(); <\/script>'; var L = '<img src="' + h.services.gplus.dummy_img + '" alt="&quot;Google+1&quot;-Dummy" class="gplus_one_dummy" />'; i.append('<li class="gplus help_info"><span class="info">' + h.services.gplus.txt_info + '</span><span class="switch off">' + h.services.gplus.txt_gplus_off + '</span><div class="gplusone dummy_btn">' + L + "</div></li>"); var D = f("li.gplus", i); f("li.gplus div.gplusone img,li.gplus span.switch", i).live("click", function () { if (D.find("span.switch").hasClass("off")) { D.addClass("info_off"); D.find("span.switch").addClass("on").removeClass("off").html(h.services.gplus.txt_gplus_on); D.find("img.gplus_one_dummy").replaceWith(t) } else { D.removeClass("info_off"); D.find("span.switch").addClass("off").removeClass("on").html(h.services.gplus.txt_gplus_off); D.find(".gplusone").html(L) } }) } i.append('<li class="settings_info"><div class="settings_info_menu off perma_option_off"><a href="' + h.info_link + '" target="_blank"><span class="help_info icon"><span class="info">' + h.txt_help + "</span></span></a></div></li>"); f(".help_info:not(.info_off)", i).live("mouseenter", function () { var P = f(this); var Q = window.setTimeout(function () { f(P).addClass("display") }, 500); f(this).data("timeout_id", Q) }); f(".help_info", i).live("mouseleave", function () { var P = f(this).data("timeout_id"); window.clearTimeout(P); if (f(this).hasClass("display")) { f(this).removeClass("display") } }); var E = (h.services.facebook.perma_option === "on"); var I = (h.services.twitter.perma_option === "on"); var O = (h.services.gplus.perma_option === "on"); if (((n && E) || (l && I) || (m && O)) && (!f.browser.msie || (f.browser.msie && f.browser.version > 7))) { var K = document.cookie.split(";"); var s = "{"; var F = 0; for (; F < K.length; F += 1) { var J = K[F].split("="); s += '"' + f.trim(J[0]) + '":"' + f.trim(J[1]) + '"'; if (F < K.length - 1) { s += "," } } s += "}"; s = JSON.parse(s); var v = f("li.settings_info", i); v.find(".settings_info_menu").removeClass("perma_option_off"); v.find(".settings_info_menu").append('<span class="settings">Einstellungen</span><form><fieldset><legend>' + h.settings_perma + "</legend></fieldset></form>"); var w = ' checked="checked"'; if (n && E) { var q = s.socialSharePrivacy_facebook === "perma_on" ? w : ""; v.find("form fieldset").append('<input type="checkbox" name="perma_status_facebook" id="perma_status_facebook"' + q + ' /><label for="perma_status_facebook">' + h.services.facebook.display_name + "</label>") } if (l && I) { var N = s.socialSharePrivacy_twitter === "perma_on" ? w : ""; v.find("form fieldset").append('<input type="checkbox" name="perma_status_twitter" id="perma_status_twitter"' + N + ' /><label for="perma_status_twitter">' + h.services.twitter.display_name + "</label>") } if (m && O) { var z = s.socialSharePrivacy_gplus === "perma_on" ? w : ""; v.find("form fieldset").append('<input type="checkbox" name="perma_status_gplus" id="perma_status_gplus"' + z + ' /><label for="perma_status_gplus">' + h.services.gplus.display_name + "</label>") } v.find("span.settings").css("cursor", "pointer"); f(v.find("span.settings"), i).live("mouseenter", function () { var P = window.setTimeout(function () { v.find(".settings_info_menu").removeClass("off").addClass("on") }, 500); f(this).data("timeout_id", P) }); f(v, i).live("mouseleave", function () { var P = f(this).data("timeout_id"); window.clearTimeout(P); v.find(".settings_info_menu").removeClass("on").addClass("off") }); f(v.find("fieldset input")).live("click", function (R) { var Q = R.target.id; var P = Q.substr(Q.lastIndexOf("_") + 1, Q.length); var S = "socialSharePrivacy_" + P; if (f("#" + R.target.id + ":checked").length) { c(S, "perma_on", h.cookie_expires, h.cookie_path, h.cookie_domain); f("form fieldset label[for=" + Q + "]", i).addClass("checked") } else { d(S, "perma_on", h.cookie_path, h.cookie_domain); f("form fieldset label[for=" + Q + "]", i).removeClass("checked") } }); if (n && E && s.socialSharePrivacy_facebook === "perma_on") { f("li.facebook span.switch", i).click() } if (l && I && s.socialSharePrivacy_twitter === "perma_on") { f("li.twitter span.switch", i).click() } if (m && O && s.socialSharePrivacy_gplus === "perma_on") { f("li.gplus span.switch", i).click() } } }) } } (jQuery));
