summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTorsten Grote <grote@kolabsys.com>2013-03-19 13:25:48 (GMT)
committerTorsten Grote <grote@kolabsys.com>2013-03-19 13:25:48 (GMT)
commit06868d3020c6ab17d729b693459e66db00478557 (patch)
tree5e10ea1c1f643739a47afbd2ed30350dbf43c2bf
parentd2d7cc641d19dcbb99ff2574e51cdb98c82ea9e0 (diff)
downloadkolab.org-www-06868d3020c6ab17d729b693459e66db00478557.tar.gz
add socialshareprivacy library
-rw-r--r--kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/2-klick-logo_min.jpgbin0 -> 6304 bytes
-rw-r--r--kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/dimensions.gifbin0 -> 13469 bytes
-rw-r--r--kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/index.html741
-rw-r--r--kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/jquery.socialshareprivacy.js377
-rw-r--r--kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/jquery.socialshareprivacy.min.js33
-rw-r--r--kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/socialshareprivacy/images/2-klick-logo.jpgbin0 -> 92341 bytes
-rw-r--r--kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/socialshareprivacy/images/dummy_facebook.pngbin0 -> 4255 bytes
-rw-r--r--kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/socialshareprivacy/images/dummy_facebook_en.pngbin0 -> 1168 bytes
-rw-r--r--kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/socialshareprivacy/images/dummy_gplus.pngbin0 -> 775 bytes
-rw-r--r--kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/socialshareprivacy/images/dummy_gplus_alt.pngbin0 -> 668 bytes
-rw-r--r--kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/socialshareprivacy/images/dummy_twitter.pngbin0 -> 1337 bytes
-rw-r--r--kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/socialshareprivacy/images/settings.pngbin0 -> 658 bytes
-rw-r--r--kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/socialshareprivacy/images/socialshareprivacy_info.pngbin0 -> 166 bytes
-rw-r--r--kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/socialshareprivacy/images/socialshareprivacy_on_off.pngbin0 -> 1301 bytes
-rw-r--r--kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/socialshareprivacy/socialshareprivacy.css226
15 files changed, 1377 insertions, 0 deletions
diff --git a/kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/2-klick-logo_min.jpg b/kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/2-klick-logo_min.jpg
new file mode 100644
index 0000000..bb2e5a5
--- /dev/null
+++ b/kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/2-klick-logo_min.jpg
Binary files differ
diff --git a/kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/dimensions.gif b/kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/dimensions.gif
new file mode 100644
index 0000000..762340a
--- /dev/null
+++ b/kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/dimensions.gif
Binary files differ
diff --git a/kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/index.html b/kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/index.html
new file mode 100644
index 0000000..7d21cf1
--- /dev/null
+++ b/kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/index.html
@@ -0,0 +1,741 @@
+<!DOCTYPE HTML>
+<html lang="de-DE">
+<head>
+ <title>Dokumentation &ndash; heise &bdquo;socialSharePrivacy&ldquo;&ndash;Plug-In</title>
+ <meta charset="UTF-8" />
+ <meta name="author" content="Hilko Holweg, Sebastian Hilbig, Nicolas Heiringhoff, Juergen Schmidt - Heise Zeitschriften Verlag GbmH &amp; Co. KG" />
+ <meta name="description" content="Dokumentation und Einbindung des heise SocialSharePrivacy-Plug-Ins" />
+ <style type="text/css">
+ h1, h2, h3 {
+ font: normal 24px/30px Georgia, Times, "Times New Roman", serif;
+ color: #666;
+ }
+ h2 {
+ font-size: 22px;
+ line-height: 28px;
+ }
+ h3 {
+ font-size: 20px;
+ line-height: 26px;
+ }
+ a {
+ color: #039;
+ }
+ pre {
+ background-color: #eee;
+ border: 1px solid #bbb;
+ padding: 10px;
+ margin: 20px 0 0;
+ }
+ pre code {
+ margin: 0;
+ padding: 0;
+ }
+ pre + p {
+ margin-top: 5px;
+ }
+ ol li, p, td, th {
+ font: normal 14px/20px "Lucida Grande", "Lucida Sans Unicode", Verdana, Arial, sans-serif;
+ clear: both;
+ }
+ nav {
+ display: block;
+ margin-bottom: 50px;
+ border-bottom: 1px solid #333;
+ }
+ nav ol li,
+ nav ol li a {
+ font: bold 16px/24px "Lucida Grande", "Lucida Sans Unicode", Verdana, Arial, sans-serif;
+ color: #039;
+ -moz-transition: all .5s ease-in;
+ -webkit-transition: all .5s ease-in;
+ transition: all .5s ease-in;
+ }
+ nav ol li a:hover {
+ text-decoration: none;
+ color: #333;
+ }
+ ol#structure li ol {
+ list-style-type: none;
+ padding: 0;
+ }
+ ol#structure li ol#fb_app_id_step_by_step {
+ list-style-type: decimal;
+ padding-left: 20px;
+ }
+ ol#structure li ol#fb_app_id_step_by_step li {
+ margin-bottom: 16px;
+ }
+ ol#structure li ol li {
+ margin-bottom: 30px;
+ }
+ ol#structure li ol li table {
+ border: 1px solid #333;
+ width: 100%;
+ display: table;
+ margin: 20px 0;
+ }
+ ol#structure li ol.changelog li {
+ margin: 5px 0;
+ }
+ ol#structure li ol.changelog li pre {
+ margin: 5px 0 20px;
+ }
+ table caption {
+ text-align: left;
+ font-size: 18px;
+ font-weight: bold;
+ text-indent: 5px;
+ }
+ table th {
+ text-align: left;
+ font-style: italic;
+ background-color: #333;
+ color: #fff;
+ }
+ table th,
+ table td {
+ padding: 2px 4px;
+ vertical-align: top;
+ }
+ table tr:hover td {
+ background-color: #eee;
+ }
+ </style>
+</head>
+<body>
+ <h1>jQuery Plug-In socialshareprivacy &ndash; Dokumentation</h1>
+
+ <h3>Download des jQuery-Plug-Ins:</h3>
+ <p>
+ <a href="http://www.heise.de/extras/socialshareprivacy/jquery.socialshareprivacy.zip">jquery.socialshareprivacy.zip</a><br />
+ <a href="http://www.heise.de/extras/socialshareprivacy/jquery.socialshareprivacy.tar.gz">jquery.socialshareprivacy.tar.gz</a>
+ </p>
+
+ <nav>
+ <h2>Navigation</h2>
+ <ol>
+ <li><a href="#changelog">Change-Log</a></li>
+ <li><a href="#files">Dateien</a></li>
+ <li><a href="#pre">Voraussetzungen und Einschränkungen</a></li>
+ <li><a href="#dimensions">Ausmaße</a></li>
+ <li>Einfache Einbindung
+ <ol>
+ <li><a href="#merge">Quelltext</a></li>
+ <li><a href="#explanation">Erklärung des Codes</a></li>
+ </ol>
+ </li>
+ <li><a href="#options">Optionen</a>
+ <ol>
+ <li><a href="#options_general">Allgemein</a></li>
+ <li><a href="#options_facebook">Facebook</a></li>
+ <li><a href="#options_twitter">Twitter</a></li>
+ <li><a href="#options_gplus">Google+</a></li>
+ </ol>
+ </li>
+ <li><a href="#examples">Beispiel-Einbindungen</a>
+ <ol>
+ <li><a href="#only_fb">Nur Facebook einbinden</a></li>
+ <li><a href="#no_perma">Keine Option zum dauerhaften Aktivieren anbieten</a></li>
+ <li><a href="#only_gplus_css_path">Nur Google+ anbieten und eigenen Pfad für die CSS-Datei angeben.</a></li>
+ </ol>
+ </li>
+ <li><a href="#url">URL</a></li>
+ <li><a href="#perma_option">Einstellung merken</a></li>
+ <li><a href="#licence">Lizenz</a></li>
+ <li><a href="#logo">Logo</a></li>
+ </ol>
+ </nav>
+
+ <ol id="structure">
+ <li>
+ <h2 id="changelog">Change-Log</h2>
+ <ol class="changelog">
+ <li>
+ <h3 id="v1-4">Version 1.4</h3>
+ <ul>
+ <li>
+ Grafik: Da Google+ eine neue aktive Grafik einsetzt, wurde nun auch die inaktive Google+ Grafik angepasst<br />
+ alt: <img src="/extras/socialshareprivacy/socialshareprivacy/images/dummy_gplus_alt.png" alt="alte Google+ Grafik" /><br />
+ neu: <img src="/extras/socialshareprivacy/socialshareprivacy/images/dummy_gplus.png" alt="neue Google+ Grafik" /><br />
+ </li>
+ </ul>
+ </li>
+ <li>
+ <h3 id="v1-3">Version 1.3</h3>
+ <ul>
+ <li>
+ Erste Fassung, die auch mehrmals auf einer Seite verwendet werden kann. Damit in den verschiedenen Instanzen unterschiedliche URIs verwendet werden können, wird der per Option <code>uri</code> gesetzen Funktion ein Kontext-DOM-Knoten übergeben, über den man eine URI ermitteln kann. Beispiele für die Verwendung haben wir in der Dokumentation bei den <a href="#examples">Beispiel-Einbindungen</a> ergänzt.
+ </li>
+ <li>
+ Korrektur für IE &lt; 9: Das per <code>css_path</code> angegebene Stylesheet wurde mit jQuery-Versionen != 1.4.2 nicht eingebaut.
+ </li>
+ </ul>
+ </li>
+ <li>
+ <h3 id="v1-2">Version 1.2</h3>
+ <ul>
+ <li>
+ JS: Facebook App-ID entfernt, da diese nicht mehr nötig ist, um den Like/Recommend-Button zu nutzen.
+ </li>
+ </ul>
+ </li>
+ <li>
+ <h3 id="v1-1">Version 1.1</h3>
+ <ul>
+ <li>
+ CSS: Bei diversen Elementen haben wir mehr Angaben hinzugefügt, um die Nacharbeiten, bei der Integration in eigene Seiten, geringer zu halten. Vor allem haben wir <code>margin</code>-, <code>padding</code>-, <code>width</code>- und <code>height</code>-Angaben hinzugefügt.
+ </li>
+ <li>
+ Die Doku wurde um einen Beispiele- und diesen Change-Log-Bereich erweitert.
+ </li>
+ <li>
+ Das Plug-In wurde inhaltlich etwas umgestellt und einige Code-Abkürzungen vorgenommen.
+ </li>
+ <li>
+ JS-Bug Korrektur: Es gab einen Fehler, wenn es in der Seite ein <code>canonical</code>-Attribut gab, das aber einen leeren Wert hatte.
+ </li>
+ <li>
+ JS-Bug Korrektur: Bei den Optionen von Google+ gab es eine Angabe, die später im Script nie abgefragt wurde.
+ </li>
+ <li>
+ JS-Bug Korrektur: Die Perma-Option von Google+ wurde nur angezeigt, wenn auch die Perma-Option von Twitter aktiviert war.
+ </li>
+ <li>
+ Twitter: Wenn aktiviert war das iFrame zu groß und überlagerte darunter liegende Links. <code>&lt;iframe ...style="width:130px; height:25px;">&lt;/iframe></code> ergänzt.
+ </li>
+ <li>Allgemein: Wenn die Option css_path leer ist, wird kein &lt;link>-Tag mit leerem href in die Seite eingebaut.</li>
+ <li>Allgemein: Die von den Buttons verwendete URI kann jetzt über die Option <code>uri</code> gesteuert werden. Es ist sowohl ein fester Wert, wie auch eine Function möglich. Default ist die enthaltene Funktion <code>getURI</code></li>
+ <li><strong>Neue Features:</strong>
+ <ul>
+ <li>Facebook: Die Beschriftungsvarianten des Buttons "Empfehlen" und "Gefällt mir" kann über die neue Option "action" gesteuert werden. Werte sind "<code>recommend</code>" (default) und "<code>like</code>".</li>
+ <li>Twitter: Parameter "<code>language</code>" (default "<code>en</code>") jetzt auch für Twitter.</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <h3 id="v1-0">Version 1.0</h3>
+ <ul>
+ <li>Erstes öffentliches Release</li>
+ </ul>
+ </li>
+ </ol>
+ </li>
+
+ <li>
+ <h2 id="files">Dateien</h2>
+ <p>Zu unserem Plug-In gehören folgende Dateien:</p>
+ <ul>
+ <li>index.html (die Doku, die Sie gerade lesen)</li>
+ <li>dimensions.gif (Infografik für diese Doku)</li>
+ <li>2-klick-logo_min.jpg (Logo klein)</li>
+ <li>jquery.socialshareprivacy.js</li>
+ <li>jquery.socialshareprivacy.min.js</li>
+ <li>socialshareprivacy/socialshareprivacy.css</li>
+ <li>socialshareprivacy/images/dummy_facebook.png</li>
+ <li>socialshareprivacy/images/dummy_facebook_en.png</li>
+ <li>socialshareprivacy/images/dummy_gplus.png</li>
+ <li>socialshareprivacy/images/dummy_twitter.png</li>
+ <li>socialshareprivacy/images/settings.png</li>
+ <li>socialshareprivacy/images/socialshareprivacy_info.png</li>
+ <li>socialshareprivacy/images/socialshareprivacy_on_off.png</li>
+ <li>socialshareprivacy/images/2-klick-logo.jpg</li>
+ </ul>
+ </li>
+ <li>
+ <h2 id="pre">Voraussetzungen und Einschränkungen</h2>
+ <p>
+ Technische Voraussetzungen sind jQuery und aktiviertes JavaScript im Browser. Bei uns getestet mit jQuery 1.4.<br />
+ Das Plug-In kann derzeit innerhalb einer HTML-Seite nur einmal verwendet werden.
+ </p>
+ <p>
+ Wenn Sie Vorschläge zur Verbesserung haben, wenden Sie sich gerne per Mail an <a href="mailto:2klick@heise.de?subject=Vorschlag%20zum%20Plug-In">2klick@heise.de</a>.
+ </p>
+ <p>
+ Das dauerhafte Aktivieren der Services funktioniert im Internet Explorer erst ab Version 8, da die Vorgängerversionen kein JSON unterstützen. Daher fehlt im IE &lt;= 7 diese Funktion. Der Rest des Plug-Ins ist davon nicht betroffen.
+ </p>
+ <p>
+ <del datetime="2011-10-04" cite="http://www.heise.de/extras/socialshareprivacy/#v1-2">Für Facebook ist zwingend eine eigene App-ID notwendig, siehe dazu <a href="#fb_app-id">Hinweis zur Facebook App-ID</a>.</del>
+ </p>
+ </li>
+ <li>
+ <h2 id="dimensions">Ausmaße</h2>
+ <img src="dimensions.gif" width="600" height="284" alt="Ausmaße des Plug-Ins" />
+ <p>
+ Das Plug-In benötigt insgesamt etwa 600 Pixel in der Breite (wenn alle Services aktiviert sind) und ca. 290 Pixel in der Höhe, wobei dies natürlich auch von der Länge der angegebenen MouseOver-Texte abhängt.
+ </p>
+ <li>
+ <ol>
+ <li>
+ <h2 id="merge">Einbindung</h2>
+<pre>
+<code>&lt;head&gt;
+ &hellip;
+ &lt;script type="text/javascript" src="jquery.js"&gt;&lt;/script&gt;
+ &lt;script type="text/javascript" src="jquery.socialshareprivacy.js"&gt;&lt;/script&gt;
+ &lt;script type="text/javascript"&gt;
+ jQuery(document).ready(function($){
+ if($('#socialshareprivacy').length > 0){
+ $('#socialshareprivacy').socialSharePrivacy();
+ }
+ });
+ &lt;/script&gt;
+ &hellip;
+&lt;/head&gt;
+&lt;body&gt;
+ &hellip;
+ &lt;div id="socialshareprivacy"&gt;&lt;/div&gt;
+ &hellip;
+&lt;/body&gt;</code>
+</pre>
+ </li>
+ <li>
+ <h3 id="explanation">Erklärung des Codes</h3>
+
+<pre>
+<code>&lt;script type="text/javascript" src="jquery.js"&gt;&lt;/script&gt;
+&lt;script type="text/javascript" src="jquery.socialshareprivacy.js"&gt;&lt;/script&gt;</code>
+</pre>
+ <p>
+ Die erste Zeile bindet das JavaScript-Framework &bdquo;JQuery&ldquo; (<a href="http://jquery.com/">http://jquery.com/</a>) ein, die zweite Zeile unser Plug-In. jQuery liegt unserem Paket <strong>nicht</strong> bei, Sie müssen es erst noch selbst von der eben genannten Website herunterladen.
+ </p>
+
+<pre>
+<code>&lt;script type="text/javascript"&gt;
+ jQuery(document).ready(function($){
+ if($('#socialshareprivacy').length > 0){
+ $('#socialshareprivacy').socialSharePrivacy();
+ }
+ });
+&lt;/script&gt;</code>
+</pre>
+ <p>
+ In diesem <code>&lt;script&gt;</code>-Block wird die Plug-In Funktion an ein frei wählbares, leeres HTML-Element in der Seite gehängt, in diesem Fall das Element mit der <code>id</code> <em>socialshareprivacy</em>.<br />
+ Damit das Anhängen des Plug-Ins nur dann geschieht, wenn das Element auch wirklich vorhanden ist, haben wir noch die Kontrollfunktion <code>if</code>, die das Anhängen umschließt und die nötige Bedingung prüft.
+ </p>
+
+<pre>
+<code>&lt;body&gt;
+ &hellip;
+ &lt;div id="socialshareprivacy"&gt;&lt;/div&gt;
+ &hellip;
+&lt;/body&gt;</code>
+</pre>
+ <p>
+ Irgendwo im <code>&lt;body&gt;</code>-Bereich der Website platziert man das leere HTML-Element mit der gewünschten <code>id</code>, die identisch zur verwendeten <code>id</code> im vorhergehenden <code>&lt;script&gt;</code>-Block sein muss.
+ </p>
+ </li>
+ </ol>
+ </li>
+ <li>
+ <h2 id="options">Optionen</h2>
+ <p>
+ Zur Einbindung stehen diverse Optionen zur Verfügung. Im Folgenden sind erstmal die allgemeinen Optionen aufgeführt und anschließend die Optionen nach den einzelnen Services (Facebook, Twitter, Google+) aufgelistet.<br />
+ Beispiel für einen Aufruf mit Optionen:
+ </p>
+<pre>
+<code>$('#socialshareprivacy').socialSharePrivacy({
+ services : {
+ facebook : {
+ 'perma_option': 'off'
+ },
+ twitter : {
+ 'status' : 'off'
+ },
+ gplus : {
+ 'display_name' : 'Google Plus'
+ }
+ },
+ 'cookie_domain' : 'heise.de'
+});</code>
+</pre>
+ <ol>
+ <li id="options_general">
+ <table summary="Eine Auflistung aller allgemeinen Optionen des socialSharePrivacy-Plug-Ins">
+ <caption>allgemeine Optionen</caption>
+ <thead>
+ <tr>
+ <th>Option</th>
+ <th>Standardwert</th>
+ <th>Beschreibung</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>info_link</td>
+ <td>http://www.heise.de/ct/artikel/2-Klicks-fuer-mehr-Datenschutz-1333879.html</td>
+ <td>Link zu detaillierter Datenschutz-Info, in unserem Fall ein heise-Artikel.</td>
+ </tr>
+ <tr>
+ <td>txt_help</td>
+ <td><em>Text</em></td>
+ <td>MouseOver-Text des <em>i</em>-Icons</td>
+ </tr>
+ <tr>
+ <td>settings_perma</td>
+ <td>Dauerhaft aktivieren und Daten&uuml;ber&shy;tragung zustimmen:</td>
+ <td>Überschrift des Einstellungsmenüs</td>
+ </tr>
+ <tr>
+ <td>cookie_path</td>
+ <td>/</td>
+ <td>Pfad der Gültigkeit des Cookies</td>
+ </tr>
+ <tr>
+ <td>cookie_domain</td>
+ <td><code>document.location.host</code></td>
+ <td>Domain für die das Cookie gültig ist</td>
+ </tr>
+ <tr>
+ <td>cookie_expires</td>
+ <td>365</td>
+ <td>Dauer die das Cookie gültig ist in Tagen</td>
+ </tr>
+ <tr>
+ <td>css_path</td>
+ <td>socialshareprivacy/socialshareprivacy.css</td>
+ <td>Pfad zur CSS-Datei, wenn leer wird kein Stylesheet eingebaut</td>
+ </tr>
+ <tr>
+ <td>uri</td>
+ <td>getURI</td>
+ <td>Die URI, die von den Buttons weitergegeben werden soll. Möglich ist ein fester Wert (z.B. <code>"http://www.heise.de"</code>) oder eine Funktion (siehe <code>function getURI()</code> im Plug-In-Quellcode)</td>
+ </tr>
+ </tbody>
+ </table>
+ </li>
+ <li id="options_facebook">
+ <table summary="Eine Auflistung aller Optionen für Facebook des socialSharePrivacy-Plug-Ins">
+ <caption>Optionen: Facebook</caption>
+ <thead>
+ <tr>
+ <th>Option</th>
+ <th>Standardwert</th>
+ <th>Beschreibung</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>status</td>
+ <td>on</td>
+ <td>Der User hat Facebook zur Auswahl</td>
+ </tr>
+ <tr>
+ <td><del datetime="2011-10-04" cite="http://www.heise.de/extras/socialshareprivacy/#v1-2">app_id</del></td>
+ <td><em>entfallen (seit Version 1.2)</em></td>
+ <td><del datetime="2011-10-04" cite="http://www.heise.de/extras/socialshareprivacy/#v1-2">Facebook App-ID; Sie ist nötig um den <em>Empfehlen</em>-Button von Facebook nutzen zu können. Ist sie nicht angegeben, wird dem User Facebook trotz <code>'status' : 'on'</code> <strong>nicht</strong> angeboten. In der JavaScript-Konsole wird dem Entwickler ein entsprechender Hinweis ausgegeben.</del></td>
+ </tr>
+ <tr>
+ <td>dummy_img</td>
+ <td>socialshareprivacy/images/dummy_facebook.png</td>
+ <td>Pfad zur statischen Grafik</td>
+ </tr>
+ <tr>
+ <td>txt_info</td>
+ <td><em>Text</em></td>
+ <td>MouseOver-Text des Empfehlen-Buttons</td>
+ </tr>
+ <tr>
+ <td>txt_fb_off</td>
+ <td>nicht mit Facebook verbunden</td>
+ <td>Text-Entsprechung der Schalter-Grafik im ausgeschalteten Zustand, in der Regel nicht sichtbar für den User</td>
+ </tr>
+ <tr>
+ <td>txt_fb_on</td>
+ <td>mit Facebook verbunden</td>
+ <td>Text-Entsprechung der Schalter-Grafik im eingeschalteten Zustand, in der Regel nicht sichtbar für den User</td>
+ </tr>
+ <tr>
+ <td>perma_option</td>
+ <td>on</td>
+ <td>Der User hat die Option sich Facebook dauerhaft einblenden zu lassen (mittels Cookie)</td>
+ </tr>
+ <tr>
+ <td>display_name</td>
+ <td>Facebook</td>
+ <td>Schreibweise des Service in den Optionen</td>
+ </tr>
+ <tr>
+ <td>referrer_track</td>
+ <td>&nbsp;</td>
+ <td>Wird ans Ende der URL gehängt, kann zum Tracken des Referrers genutzt werden</td>
+ </tr>
+ <tr>
+ <td>language</td>
+ <td>de_DE</td>
+ <td>Spracheinstellung</td>
+ </tr>
+ <tr>
+ <td>action</td>
+ <td>recommend</td>
+ <td>Beschriftung des Buttons: Empfehlen (<code>recommend</code>) oder Gefällt mir (<code>like</code>)</td>
+ </tr>
+ </tbody>
+ </table>
+ </li>
+ <li id="options_twitter">
+ <table summary="Eine Auflistung aller Optionen für Twitter des socialSharePrivacy-Plug-Ins">
+ <caption>Optionen: Twitter</caption>
+ <thead>
+ <tr>
+ <th>Option</th>
+ <th>Standardwert</th>
+ <th>Beschreibung</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>status</td>
+ <td>on</td>
+ <td>Der User hat Twitter zur Auswahl</td>
+ </tr>
+ <tr>
+ <td>dummy_img</td>
+ <td>socialshareprivacy/images/dummy_twitter.png</td>
+ <td>Pfad zur statischen Grafik</td>
+ </tr>
+ <tr>
+ <td>txt_info</td>
+ <td><em>Text</em></td>
+ <td>MouseOver-Text des Tweet-Buttons</td>
+ </tr>
+ <tr>
+ <td>txt_twitter_off</td>
+ <td>nicht mit Twitter verbunden</td>
+ <td>Text-Entsprechung der Schalter-Grafik im ausgeschalteten Zustand, in der Regel nicht sichtbar für den User</td>
+ </tr>
+ <tr>
+ <td>txt_twitter_on</td>
+ <td>mit Twitter verbunden</td>
+ <td>Text-Entsprechung der Schalter-Grafik im eingeschalteten Zustand, in der Regel nicht sichtbar für den User</td>
+ </tr>
+ <tr>
+ <td>perma_option</td>
+ <td>on</td>
+ <td>Der User hat die Option sich Twitter dauerhaft einblenden zu lassen (mittels Cookie)</td>
+ </tr>
+ <tr>
+ <td>display_name</td>
+ <td>Twitter</td>
+ <td>Schreibweise des Service in den Optionen</td>
+ </tr>
+ <tr>
+ <td>referrer_track</td>
+ <td>&nbsp;</td>
+ <td>Wird ans Ende der URL gehängt, kann zum Tracken des Referrers genutzt werden</td>
+ </tr>
+ <tr>
+ <td>tweet_text</td>
+ <td><code>getTweetText</code></td>
+ <td>
+ Die Funktion prüft ob es die Meta-Angabe <code>DC.title</code> gibt und verwendet diese. Gibt es außerdem noch <code>DC.creator</code> wird diese etwas abgesetzt (&quot; - &quot;) hinten angehängt. Ist <code>DC.title</code> nicht vorhanden wird das &lt;title&gt;-Tag der Seite verwendet.<br />
+ Diese Option kann mit einem eigenen Text (<code>typeof == string</code>) überschrieben werden oder mit einer eigenen Funktion (<code>typeof == function</code>), die den Text generiert.<br />
+ Der übergebene Texte wird immer auf 120 Zeichen gekürzt und beim letzten Leerzeichen mit &hellip; ersetzt.
+ </td>
+ </tr>
+ <tr>
+ <td>language</td>
+ <td>en</td>
+ <td>Spracheinstellung (Default: "<code>en</code>" ja, uns gefällt Tweet besser als Twittern)</td>
+ </tr>
+ </tbody>
+ </table>
+ </li>
+ <li id="options_gplus">
+ <table summary="Eine Auflistung aller Optionen für Google+ des socialSharePrivacy-Plug-Ins">
+ <caption>Optionen: Google+</caption>
+ <thead>
+ <tr>
+ <th>Option</th>
+ <th>Standardwert</th>
+ <th>Beschreibung</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>status</td>
+ <td>on</td>
+ <td>Der User hat Google+ zur Auswahl</td>
+ </tr>
+ <tr>
+ <td>dummy_img</td>
+ <td>socialshareprivacy/images/dummy_gplus.png</td>
+ <td>Pfad zur statischen Grafik</td>
+ </tr>
+ <tr>
+ <td>txt_info</td>
+ <td><em>Text</em></td>
+ <td>MouseOver-Text des &bdquo;+1&ldquo;-Buttons</td>
+ </tr>
+ <tr>
+ <td>txt_gplus_off</td>
+ <td>nicht mit Google+ verbunden</td>
+ <td>Text-Entsprechung der Schalter-Grafik im ausgeschalteten Zustand, in der Regel nicht sichtbar für den User</td>
+ </tr>
+ <tr>
+ <td>txt_gplus_on</td>
+ <td>mit Google+ verbunden</td>
+ <td>Text-Entsprechung der Schalter-Grafik im eingeschalteten Zustand, in der Regel nicht sichtbar für den User</td>
+ </tr>
+ <tr>
+ <td>perma_option</td>
+ <td>on</td>
+ <td>Der User hat die Option sich Google+ dauerhaft einblenden zu lassen (mittels Cookie)</td>
+ </tr>
+ <tr>
+ <td>display_name</td>
+ <td>Google+</td>
+ <td>Schreibweise des Service in den Optionen</td>
+ </tr>
+ <tr>
+ <td>referrer_track</td>
+ <td>&nbsp;</td>
+ <td>Wird ans Ende der URL gehängt, kann zum Tracken des Referrers genutzt werden</td>
+ </tr>
+ <tr>
+ <td>language</td>
+ <td>de</td>
+ <td>Spracheinstellung</td>
+ </tr>
+ </tbody>
+ </table>
+ </li>
+ </ol>
+ </li>
+ <li>
+ <h2 id="examples">Beispiel-Einbindungen</h2>
+ <p>
+ Im Folgenden sehen Sie ein paar beispielhafte Einbindungen von gängigen Konfigurationen.
+ </p>
+ <ul>
+ <li>
+ <h3 id="only_fb">Nur Facebook einbinden</h3>
+<pre>
+<code>$('#socialshareprivacy').socialSharePrivacy({
+ services : {
+ twitter : {
+ 'status' : 'off'
+ },
+ gplus : {
+ 'status' : 'off'
+ }
+ }
+});</code>
+</pre>
+ </li>
+ <li>
+ <h3 id="no_perma">Keine Option zum dauerhaften Aktivieren anbieten</h3>
+<pre>
+<code>$('#socialshareprivacy').socialSharePrivacy({
+ services : {
+ facebook : {
+ 'perma_option' : 'off'
+ },
+ twitter : {
+ 'perma_option' : 'off'
+ },
+ gplus : {
+ 'perma_option' : 'off'
+ }
+ }
+});</code>
+</pre>
+ </li>
+ <li>
+ <h3 id="only_gplus_css_path">Nur Google+ anbieten und eigenen Pfad für die CSS-Datei angeben.</h3>
+<pre>
+<code>$('#socialshareprivacy').socialSharePrivacy({
+ services : {
+ facebook : {
+ 'status' : 'off'
+ },
+ twitter : {
+ 'status' : 'off'
+ }
+ },
+ 'css_path' : '/style/plugins/socialshareprivacy.css'
+});</code>
+</pre>
+ </li>
+ <li>
+ <h3>Mehrere 2-Klick-Buttonleisten auf einer Seite</h3>
+ <h4>Variante 1: Ein Aufruf des Plug-Ins mit einem entsprechenden Selektor</h4>
+<pre>
+&lt;div class="anriss">
+ &lt;h3>&lt;a href="http://www.heise.de">heise&lt;/a>&lt;/h3>
+ &lt;p>lorem ipsum&lt;/p>
+ &lt;div class="social">&lt;/div>
+&lt;/div>
+
+&lt;div class="anriss">
+ &lt;h3>&lt;a href="http://www.heise.de/security/">heise security&lt;/a>&lt;/h3>
+ &lt;p>dolor sit amet&lt;/p>
+ &lt;div class="social">&lt;/div>
+&lt;/div>
+
+&lt;script>
+$(".social").socialSharePrivacy({
+ uri : function(context) {
+ return $(context).parents(".anriss").find("h3 a").attr("href");
+ }
+});
+&lt;/script>
+</pre>
+ <h4>Variante 2: Mehrfacher Aufruf des Plug-Ins</h4>
+<pre>
+&lt;div>
+ &lt;h3>&lt;a href="http://www.heise.de">heise&lt;/a>&lt;/h3>
+ &lt;p>lorem ipsum&lt;/p>
+ &lt;div id="one">&lt;/div>
+&lt;/div>
+&lt;script>
+$("#one").socialSharePrivacy({
+ uri : "http://www.heise.de"
+});
+&lt;/script>
+
+&lt;div>
+ &lt;h3>&lt;a href="http://www.heise.de/security/">heise security&lt;/a>&lt;/h3>
+ &lt;p>dolor sit amet&lt;/p>
+ &lt;div id="two">&lt;/div>
+&lt;/div>
+&lt;script>
+$("#two").socialSharePrivacy({
+ uri : "http://www.heise.de/security/"
+});
+&lt;/script>
+</pre>
+
+ </li>
+ </ul>
+ </li>
+ <li>
+ <h2 id="url">URL</h2>
+ <p>
+ Die URL, die den Services übergeben wird, kann über eine Option gesteuert werden.<br />Standardmäßig wird eine Funktion innerhalb des Plug-Ins verwendet, die die URL der aktuellen Seite aus <code>document.location.href</code> ermittelt, ist jedoch eine kanonische URL hinterlegt (<code>&lt;link rel="canonical"&gt;</code>), wird diese genommen.
+ </p>
+ </li>
+ <li>
+ <h2 id="perma_option">Einstellungen merken</h2>
+ <p>
+ Bevor das Cookie abgefragt wird, wie die Einstellungen des Users sind, wird erstmal geprüft, wie das Plug-In konfiguriert ist. Ist das Plug-In eventuell nachträglich umgestellt worden hat der User dadurch keine Nachteile.<br />
+ Wurde für alle Services die Merken-Funktion ausgeschaltet (<code>'perma_option' : 'off'</code>) wird auch das Einstellungsmenü nicht mehr angezeigt.
+ </p>
+ </li>
+ <li>
+ <h2 id="licence">Lizenz</h2>
+ <p>
+ Dieses Plug-In ist unter der MIT License (<a href="http://www.opensource.org/licenses/mit-license.php">http://www.opensource.org/licenses/mit-license.php</a>) veröffentlicht und darf gerne für private, wie auch kommerzielle Zwecke genutzt werden.
+ </p>
+ </li>
+ <li>
+ <h2 id="logo">Logo</h2>
+ <p>
+ Unserem Plug-In liegt auch das von uns verwendete Logo bei, das Sie gerne zur Bewerbung dieser Aktion verwenden dürfen.
+ <a href="socialshareprivacy/images/2-klick-logo.jpg"><img src="2-klick-logo_min.jpg" width="150" height="150" alt="Logo 2 Klicks für mehr Datenschutz" style="float: left;" /></a>
+ </p>
+ </li>
+ </ol>
+</body>
+</html>
diff --git a/kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/jquery.socialshareprivacy.js b/kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/jquery.socialshareprivacy.js
new file mode 100644
index 0000000..90fc5ab
--- /dev/null
+++ b/kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/jquery.socialshareprivacy.js
@@ -0,0 +1,377 @@
+/*
+ * 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 ($) {
+
+ "use strict";
+
+ /*
+ * helper functions
+ */
+
+ // abbreviate at last blank before length and add "\u2026" (horizontal ellipsis)
+ function abbreviateText(text, length) {
+ var abbreviated = decodeURIComponent(text);
+ if (abbreviated.length <= length) {
+ return text;
+ }
+
+ var lastWhitespaceIndex = abbreviated.substring(0, length - 1).lastIndexOf(' ');
+ abbreviated = encodeURIComponent(abbreviated.substring(0, lastWhitespaceIndex)) + "\u2026";
+
+ return abbreviated;
+ }
+
+ // returns content of <meta name="" content=""> tags or '' if empty/non existant
+ function getMeta(name) {
+ var metaContent = $('meta[name="' + name + '"]').attr('content');
+ return metaContent || '';
+ }
+
+ // create tweet text from content of <meta name="DC.title"> and <meta name="DC.creator">
+ // fallback to content of <title> tag
+ function getTweetText() {
+ var title = getMeta('DC.title');
+ var creator = getMeta('DC.creator');
+
+ if (title.length > 0 && creator.length > 0) {
+ title += ' - ' + creator;
+ } else {
+ title = $('title').text();
+ }
+
+ return encodeURIComponent(title);
+ }
+
+ // build URI from rel="canonical" or document.location
+ function getURI() {
+ var uri = document.location.href;
+ var canonical = $("link[rel=canonical]").attr("href");
+
+ if (canonical && canonical.length > 0) {
+ if (canonical.indexOf("http") < 0) {
+ canonical = document.location.protocol + "//" + document.location.host + canonical;
+ }
+ uri = canonical;
+ }
+
+ return uri;
+ }
+
+ function cookieSet(name, value, days, path, domain) {
+ var expires = new Date();
+ expires.setTime(expires.getTime() + (days * 24 * 60 * 60 * 1000));
+ document.cookie = name + '=' + value + '; expires=' + expires.toUTCString() + '; path=' + path + '; domain=' + domain;
+ }
+ function cookieDel(name, value, path, domain) {
+ var expires = new Date();
+ expires.setTime(expires.getTime() - 100);
+ document.cookie = name + '=' + value + '; expires=' + expires.toUTCString() + '; path=' + path + '; domain=' + domain;
+ }
+
+ // extend jquery with our plugin function
+ $.fn.socialSharePrivacy = function (settings) {
+ var defaults = {
+ 'services' : {
+ 'facebook' : {
+ 'status' : 'on',
+ 'dummy_img' : 'socialshareprivacy/images/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 &ndash; siehe <em>i</em>.',
+ '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' : 'recommend'
+ },
+ 'twitter' : {
+ 'status' : 'on',
+ 'dummy_img' : 'socialshareprivacy/images/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 &ndash; siehe <em>i</em>.',
+ 'txt_twitter_off' : 'nicht mit Twitter verbunden',
+ 'txt_twitter_on' : 'mit Twitter verbunden',
+ 'perma_option' : 'on',
+ 'display_name' : 'Twitter',
+ 'referrer_track' : '',
+ 'tweet_text' : getTweetText,
+ 'language' : 'en'
+ },
+ 'gplus' : {
+ 'status' : 'on',
+ 'dummy_img' : 'socialshareprivacy/images/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 &ndash; siehe <em>i</em>.',
+ '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. N&auml;heres erfahren Sie durch einen Klick auf das <em>i</em>.',
+ 'settings_perma' : 'Dauerhaft aktivieren und Daten&uuml;ber&shy;tragung zustimmen:',
+ 'cookie_path' : '/',
+ 'cookie_domain' : document.location.host,
+ 'cookie_expires' : '365',
+ 'css_path' : 'socialshareprivacy/socialshareprivacy.css',
+ 'uri' : getURI
+ };
+
+ // Standardwerte des Plug-Ings mit den vom User angegebenen Optionen ueberschreiben
+ var options = $.extend(true, defaults, settings);
+
+ var facebook_on = (options.services.facebook.status === 'on');
+ var twitter_on = (options.services.twitter.status === 'on');
+ var gplus_on = (options.services.gplus.status === 'on');
+
+ // check if at least one service is "on"
+ if (!facebook_on && !twitter_on && !gplus_on) {
+ return;
+ }
+
+ // insert stylesheet into document and prepend target element
+ if (options.css_path.length > 0) {
+ // IE fix (noetig fuer IE < 9 - wird hier aber fuer alle IE gemacht)
+ if (document.createStyleSheet) {
+ document.createStyleSheet(options.css_path);
+ } else {
+ $('head').append('<link rel="stylesheet" type="text/css" href="' + options.css_path + '" />');
+ }
+ }
+
+ return this.each(function () {
+
+ $(this).prepend('<ul class="social_share_privacy_area"></ul>');
+ var context = $('.social_share_privacy_area', this);
+
+ // canonical uri that will be shared
+ var uri = options.uri;
+ if (typeof uri === 'function') {
+ uri = uri(context);
+ }
+
+ //
+ // Facebook
+ //
+ if (facebook_on) {
+ var fb_enc_uri = encodeURIComponent(uri + options.services.facebook.referrer_track);
+ var fb_code = '<iframe src="http://www.facebook.com/plugins/like.php?locale=' + options.services.facebook.language + '&amp;href=' + fb_enc_uri + '&amp;send=false&amp;layout=button_count&amp;width=120&amp;show_faces=false&amp;action=' + options.services.facebook.action + '&amp;colorscheme=light&amp;font&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:145px; height:21px;" allowTransparency="true"></iframe>';
+ var fb_dummy_btn = '<img src="' + options.services.facebook.dummy_img + '" alt="Facebook &quot;Like&quot;-Dummy" class="fb_like_privacy_dummy" />';
+
+ context.append('<li class="facebook help_info"><span class="info">' + options.services.facebook.txt_info + '</span><span class="switch off">' + options.services.facebook.txt_fb_off + '</span><div class="fb_like dummy_btn">' + fb_dummy_btn + '</div></li>');
+
+ var $container_fb = $('li.facebook', context);
+
+ $('li.facebook div.fb_like img.fb_like_privacy_dummy,li.facebook span.switch', context).live('click', function () {
+ if ($container_fb.find('span.switch').hasClass('off')) {
+ $container_fb.addClass('info_off');
+ $container_fb.find('span.switch').addClass('on').removeClass('off').html(options.services.facebook.txt_fb_on);
+ $container_fb.find('img.fb_like_privacy_dummy').replaceWith(fb_code);
+ } else {
+ $container_fb.removeClass('info_off');
+ $container_fb.find('span.switch').addClass('off').removeClass('on').html(options.services.facebook.txt_fb_off);
+ $container_fb.find('.fb_like').html(fb_dummy_btn);
+ }
+ });
+ }
+
+ //
+ // Twitter
+ //
+ if (twitter_on) {
+ var text = options.services.twitter.tweet_text;
+ if (typeof text === 'function') {
+ text = text();
+ }
+ // 120 is the max character count left after twitters automatic url shortening with t.co
+ text = abbreviateText(text, '120');
+
+ var twitter_enc_uri = encodeURIComponent(uri + options.services.twitter.referrer_track);
+ var twitter_count_url = encodeURIComponent(uri);
+ var twitter_code = '<iframe allowtransparency="true" frameborder="0" scrolling="no" src="http://platform.twitter.com/widgets/tweet_button.html?url=' + twitter_enc_uri + '&amp;counturl=' + twitter_count_url + '&amp;text=' + text + '&amp;count=horizontal&amp;lang=' + options.services.twitter.language + '" style="width:130px; height:25px;"></iframe>';
+ var twitter_dummy_btn = '<img src="' + options.services.twitter.dummy_img + '" alt="&quot;Tweet this&quot;-Dummy" class="tweet_this_dummy" />';
+
+ context.append('<li class="twitter help_info"><span class="info">' + options.services.twitter.txt_info + '</span><span class="switch off">' + options.services.twitter.txt_twitter_off + '</span><div class="tweet dummy_btn">' + twitter_dummy_btn + '</div></li>');
+
+ var $container_tw = $('li.twitter', context);
+
+ $('li.twitter div.tweet img,li.twitter span.switch', context).live('click', function () {
+ if ($container_tw.find('span.switch').hasClass('off')) {
+ $container_tw.addClass('info_off');
+ $container_tw.find('span.switch').addClass('on').removeClass('off').html(options.services.twitter.txt_twitter_on);
+ $container_tw.find('img.tweet_this_dummy').replaceWith(twitter_code);
+ } else {
+ $container_tw.removeClass('info_off');
+ $container_tw.find('span.switch').addClass('off').removeClass('on').html(options.services.twitter.txt_twitter_off);
+ $container_tw.find('.tweet').html(twitter_dummy_btn);
+ }
+ });
+ }
+
+ //
+ // Google+
+ //
+ if (gplus_on) {
+ // fuer G+ wird die URL nicht encoded, da das zu einem Fehler fuehrt
+ var gplus_uri = uri + options.services.gplus.referrer_track;
+
+ // we use the Google+ "asynchronous" code, standard code is flaky if inserted into dom after load
+ var gplus_code = '<div class="g-plusone" data-size="medium" data-href="' + gplus_uri + '"></div><script type="text/javascript">window.___gcfg = {lang: "' + options.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 gplus_dummy_btn = '<img src="' + options.services.gplus.dummy_img + '" alt="&quot;Google+1&quot;-Dummy" class="gplus_one_dummy" />';
+
+ context.append('<li class="gplus help_info"><span class="info">' + options.services.gplus.txt_info + '</span><span class="switch off">' + options.services.gplus.txt_gplus_off + '</span><div class="gplusone dummy_btn">' + gplus_dummy_btn + '</div></li>');
+
+ var $container_gplus = $('li.gplus', context);
+
+ $('li.gplus div.gplusone img,li.gplus span.switch', context).live('click', function () {
+ if ($container_gplus.find('span.switch').hasClass('off')) {
+ $container_gplus.addClass('info_off');
+ $container_gplus.find('span.switch').addClass('on').removeClass('off').html(options.services.gplus.txt_gplus_on);
+ $container_gplus.find('img.gplus_one_dummy').replaceWith(gplus_code);
+ } else {
+ $container_gplus.removeClass('info_off');
+ $container_gplus.find('span.switch').addClass('off').removeClass('on').html(options.services.gplus.txt_gplus_off);
+ $container_gplus.find('.gplusone').html(gplus_dummy_btn);
+ }
+ });
+ }
+
+ //
+ // Der Info/Settings-Bereich wird eingebunden
+ //
+ context.append('<li class="settings_info"><div class="settings_info_menu off perma_option_off"><a href="' + options.info_link + '"><span class="help_info icon"><span class="info">' + options.txt_help + '</span></span></a></div></li>');
+
+ // Info-Overlays mit leichter Verzoegerung einblenden
+ $('.help_info:not(.info_off)', context).live('mouseenter', function () {
+ var $info_wrapper = $(this);
+ var timeout_id = window.setTimeout(function () { $($info_wrapper).addClass('display'); }, 500);
+ $(this).data('timeout_id', timeout_id);
+ });
+ $('.help_info', context).live('mouseleave', function () {
+ var timeout_id = $(this).data('timeout_id');
+ window.clearTimeout(timeout_id);
+ if ($(this).hasClass('display')) {
+ $(this).removeClass('display');
+ }
+ });
+
+ var facebook_perma = (options.services.facebook.perma_option === 'on');
+ var twitter_perma = (options.services.twitter.perma_option === 'on');
+ var gplus_perma = (options.services.gplus.perma_option === 'on');
+
+ // Menue zum dauerhaften Einblenden der aktiven Dienste via Cookie einbinden
+ // Die IE7 wird hier ausgenommen, da er kein JSON kann und die Cookies hier ueber JSON-Struktur abgebildet werden
+ if (((facebook_on && facebook_perma)
+ || (twitter_on && twitter_perma)
+ || (gplus_on && gplus_perma))
+ && (!$.browser.msie || ($.browser.msie && $.browser.version > 7.0))) {
+
+ // Cookies abrufen
+ var cookie_list = document.cookie.split(';');
+ var cookies = '{';
+ var i = 0;
+ for (; i < cookie_list.length; i += 1) {
+ var foo = cookie_list[i].split('=');
+ cookies += '"' + $.trim(foo[0]) + '":"' + $.trim(foo[1]) + '"';
+ if (i < cookie_list.length - 1) {
+ cookies += ',';
+ }
+ }
+ cookies += '}';
+ cookies = JSON.parse(cookies);
+
+ // Container definieren
+ var $container_settings_info = $('li.settings_info', context);
+
+ // Klasse entfernen, die das i-Icon alleine formatiert, da Perma-Optionen eingeblendet werden
+ $container_settings_info.find('.settings_info_menu').removeClass('perma_option_off');
+
+ // Perma-Optionen-Icon (.settings) und Formular (noch versteckt) einbinden
+ $container_settings_info.find('.settings_info_menu').append('<span class="settings">Einstellungen</span><form><fieldset><legend>' + options.settings_perma + '</legend></fieldset></form>');
+
+
+ // Die Dienste mit <input> und <label>, sowie checked-Status laut Cookie, schreiben
+ var checked = ' checked="checked"';
+ if (facebook_on && facebook_perma) {
+ var perma_status_facebook = cookies.socialSharePrivacy_facebook === 'perma_on' ? checked : '';
+ $container_settings_info.find('form fieldset').append(
+ '<input type="checkbox" name="perma_status_facebook" id="perma_status_facebook"'
+ + perma_status_facebook + ' /><label for="perma_status_facebook">'
+ + options.services.facebook.display_name + '</label>'
+ );
+ }
+
+ if (twitter_on && twitter_perma) {
+ var perma_status_twitter = cookies.socialSharePrivacy_twitter === 'perma_on' ? checked : '';
+ $container_settings_info.find('form fieldset').append(
+ '<input type="checkbox" name="perma_status_twitter" id="perma_status_twitter"'
+ + perma_status_twitter + ' /><label for="perma_status_twitter">'
+ + options.services.twitter.display_name + '</label>'
+ );
+ }
+
+ if (gplus_on && gplus_perma) {
+ var perma_status_gplus = cookies.socialSharePrivacy_gplus === 'perma_on' ? checked : '';
+ $container_settings_info.find('form fieldset').append(
+ '<input type="checkbox" name="perma_status_gplus" id="perma_status_gplus"'
+ + perma_status_gplus + ' /><label for="perma_status_gplus">'
+ + options.services.gplus.display_name + '</label>'
+ );
+ }
+
+ // Cursor auf Pointer setzen fuer das Zahnrad
+ $container_settings_info.find('span.settings').css('cursor', 'pointer');
+
+ // Einstellungs-Menue bei mouseover ein-/ausblenden
+ $($container_settings_info.find('span.settings'), context).live('mouseenter', function () {
+ var timeout_id = window.setTimeout(function () { $container_settings_info.find('.settings_info_menu').removeClass('off').addClass('on'); }, 500);
+ $(this).data('timeout_id', timeout_id);
+ });
+ $($container_settings_info, context).live('mouseleave', function () {
+ var timeout_id = $(this).data('timeout_id');
+ window.clearTimeout(timeout_id);
+ $container_settings_info.find('.settings_info_menu').removeClass('on').addClass('off');
+ });
+
+ // Klick-Interaktion auf <input> um Dienste dauerhaft ein- oder auszuschalten (Cookie wird gesetzt oder geloescht)
+ $($container_settings_info.find('fieldset input')).live('click', function (event) {
+ var click = event.target.id;
+ var service = click.substr(click.lastIndexOf('_') + 1, click.length);
+ var cookie_name = 'socialSharePrivacy_' + service;
+
+ if ($('#' + event.target.id + ':checked').length) {
+ cookieSet(cookie_name, 'perma_on', options.cookie_expires, options.cookie_path, options.cookie_domain);
+ $('form fieldset label[for=' + click + ']', context).addClass('checked');
+ } else {
+ cookieDel(cookie_name, 'perma_on', options.cookie_path, options.cookie_domain);
+ $('form fieldset label[for=' + click + ']', context).removeClass('checked');
+ }
+ });
+
+ // Dienste automatisch einbinden, wenn entsprechendes Cookie vorhanden ist
+ if (facebook_on && facebook_perma && cookies.socialSharePrivacy_facebook === 'perma_on') {
+ $('li.facebook span.switch', context).click();
+ }
+ if (twitter_on && twitter_perma && cookies.socialSharePrivacy_twitter === 'perma_on') {
+ $('li.twitter span.switch', context).click();
+ }
+ if (gplus_on && gplus_perma && cookies.socialSharePrivacy_gplus === 'perma_on') {
+ $('li.gplus span.switch', context).click();
+ }
+ }
+ }); // this.each(function ()
+ }; // $.fn.socialSharePrivacy = function (settings) {
+}(jQuery));
+
diff --git a/kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/jquery.socialshareprivacy.min.js b/kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/jquery.socialshareprivacy.min.js
new file mode 100644
index 0000000..13fd469
--- /dev/null
+++ b/kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/jquery.socialshareprivacy.min.js
@@ -0,0 +1,33 @@
+/*
+ * 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(b){function x(b,a){var f=decodeURIComponent(b);if(f.length<=a)return b;var j=f.substring(0,a-1).lastIndexOf(" ");return f=encodeURIComponent(f.substring(0,j))+"\u2026"}function q(c){return b('meta[name="'+c+'"]').attr("content")||""}function r(){var c=q("DC.title"),a=q("DC.creator"),c=0<c.length&&0<a.length?c+(" - "+a):b("title").text();return encodeURIComponent(c)}function s(){var c=document.location.href,a=b("link[rel=canonical]").attr("href");a&&0<a.length&&(0>a.indexOf("http")&&(a=document.location.protocol+
+"//"+document.location.host+a),c=a);return c}b.fn.socialSharePrivacy=function(c){var a=b.extend(!0,{services:{facebook:{status:"on",dummy_img:"socialshareprivacy/images/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 &ndash; siehe <em>i</em>.",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:"recommend"},twitter:{status:"on",dummy_img:"socialshareprivacy/images/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 &ndash; siehe <em>i</em>.",txt_twitter_off:"nicht mit Twitter verbunden",txt_twitter_on:"mit Twitter verbunden",perma_option:"on",
+display_name:"Twitter",referrer_track:"",tweet_text:r,language:"en"},gplus:{status:"on",dummy_img:"socialshareprivacy/images/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 &ndash; siehe <em>i</em>.",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. N&auml;heres erfahren Sie durch einen Klick auf das <em>i</em>.",settings_perma:"Dauerhaft aktivieren und Daten&uuml;ber&shy;tragung zustimmen:",cookie_path:"/",cookie_domain:document.location.host,
+cookie_expires:"365",css_path:"socialshareprivacy/socialshareprivacy.css",uri:s},c),f="on"===a.services.facebook.status,j="on"===a.services.twitter.status,n="on"===a.services.gplus.status;if(f||j||n)return 0<a.css_path.length&&(document.createStyleSheet?document.createStyleSheet(a.css_path):b("head").append('<link rel="stylesheet" type="text/css" href="'+a.css_path+'" />')),this.each(function(){b(this).prepend('<ul class="social_share_privacy_area"></ul>');var d=b(".social_share_privacy_area",this),
+c=a.uri;"function"===typeof c&&(c=c(d));if(f){var g=encodeURIComponent(c+a.services.facebook.referrer_track),q='<iframe src="http://www.facebook.com/plugins/like.php?locale='+a.services.facebook.language+"&amp;href="+g+"&amp;send=false&amp;layout=button_count&amp;width=120&amp;show_faces=false&amp;action="+a.services.facebook.action+'&amp;colorscheme=light&amp;font&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:145px; height:21px;" allowTransparency="true"></iframe>',
+t='<img src="'+a.services.facebook.dummy_img+'" alt="Facebook &quot;Like&quot;-Dummy" class="fb_like_privacy_dummy" />';d.append('<li class="facebook help_info"><span class="info">'+a.services.facebook.txt_info+'</span><span class="switch off">'+a.services.facebook.txt_fb_off+'</span><div class="fb_like dummy_btn">'+t+"</div></li>");var k=b("li.facebook",d);b("li.facebook div.fb_like img.fb_like_privacy_dummy,li.facebook span.switch",d).live("click",function(){k.find("span.switch").hasClass("off")?
+(k.addClass("info_off"),k.find("span.switch").addClass("on").removeClass("off").html(a.services.facebook.txt_fb_on),k.find("img.fb_like_privacy_dummy").replaceWith(q)):(k.removeClass("info_off"),k.find("span.switch").addClass("off").removeClass("on").html(a.services.facebook.txt_fb_off),k.find(".fb_like").html(t))})}if(j){g=a.services.twitter.tweet_text;"function"===typeof g&&(g=g());var g=x(g,"120"),o=encodeURIComponent(c+a.services.twitter.referrer_track),e=encodeURIComponent(c),r='<iframe allowtransparency="true" frameborder="0" scrolling="no" src="http://platform.twitter.com/widgets/tweet_button.html?url='+
+o+"&amp;counturl="+e+"&amp;text="+g+"&amp;count=horizontal&amp;lang="+a.services.twitter.language+'" style="width:130px; height:25px;"></iframe>',u='<img src="'+a.services.twitter.dummy_img+'" alt="&quot;Tweet this&quot;-Dummy" class="tweet_this_dummy" />';d.append('<li class="twitter help_info"><span class="info">'+a.services.twitter.txt_info+'</span><span class="switch off">'+a.services.twitter.txt_twitter_off+'</span><div class="tweet dummy_btn">'+u+"</div></li>");var l=b("li.twitter",d);b("li.twitter div.tweet img,li.twitter span.switch",
+d).live("click",function(){l.find("span.switch").hasClass("off")?(l.addClass("info_off"),l.find("span.switch").addClass("on").removeClass("off").html(a.services.twitter.txt_twitter_on),l.find("img.tweet_this_dummy").replaceWith(r)):(l.removeClass("info_off"),l.find("span.switch").addClass("off").removeClass("on").html(a.services.twitter.txt_twitter_off),l.find(".tweet").html(u))})}if(n){var s='<div class="g-plusone" data-size="medium" data-href="'+(c+a.services.gplus.referrer_track)+'"></div><script type="text/javascript">window.___gcfg = {lang: "'+
+a.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>',v='<img src="'+a.services.gplus.dummy_img+'" alt="&quot;Google+1&quot;-Dummy" class="gplus_one_dummy" />';d.append('<li class="gplus help_info"><span class="info">'+a.services.gplus.txt_info+'</span><span class="switch off">'+
+a.services.gplus.txt_gplus_off+'</span><div class="gplusone dummy_btn">'+v+"</div></li>");var m=b("li.gplus",d);b("li.gplus div.gplusone img,li.gplus span.switch",d).live("click",function(){m.find("span.switch").hasClass("off")?(m.addClass("info_off"),m.find("span.switch").addClass("on").removeClass("off").html(a.services.gplus.txt_gplus_on),m.find("img.gplus_one_dummy").replaceWith(s)):(m.removeClass("info_off"),m.find("span.switch").addClass("off").removeClass("on").html(a.services.gplus.txt_gplus_off),
+m.find(".gplusone").html(v))})}d.append('<li class="settings_info"><div class="settings_info_menu off perma_option_off"><a href="'+a.info_link+'"><span class="help_info icon"><span class="info">'+a.txt_help+"</span></span></a></div></li>");b(".help_info:not(.info_off)",d).live("mouseenter",function(){var a=b(this),c=window.setTimeout(function(){b(a).addClass("display")},500);b(this).data("timeout_id",c)});b(".help_info",d).live("mouseleave",function(){var a=b(this).data("timeout_id");window.clearTimeout(a);
+b(this).hasClass("display")&&b(this).removeClass("display")});c="on"===a.services.facebook.perma_option;g="on"===a.services.twitter.perma_option;o="on"===a.services.gplus.perma_option;if((f&&c||j&&g||n&&o)&&(!b.browser.msie||b.browser.msie&&7<b.browser.version)){for(var i=document.cookie.split(";"),e="{",p=0;p<i.length;p+=1){var w=i[p].split("="),e=e+('"'+b.trim(w[0])+'":"'+b.trim(w[1])+'"');p<i.length-1&&(e+=",")}var e=JSON.parse(e+"}"),h=b("li.settings_info",d);h.find(".settings_info_menu").removeClass("perma_option_off");
+h.find(".settings_info_menu").append('<span class="settings">Einstellungen</span><form><fieldset><legend>'+a.settings_perma+"</legend></fieldset></form>");f&&c&&(i="perma_on"===e.socialSharePrivacy_facebook?' checked="checked"':"",h.find("form fieldset").append('<input type="checkbox" name="perma_status_facebook" id="perma_status_facebook"'+i+' /><label for="perma_status_facebook">'+a.services.facebook.display_name+"</label>"));j&&g&&(i="perma_on"===e.socialSharePrivacy_twitter?' checked="checked"':
+"",h.find("form fieldset").append('<input type="checkbox" name="perma_status_twitter" id="perma_status_twitter"'+i+' /><label for="perma_status_twitter">'+a.services.twitter.display_name+"</label>"));n&&o&&(i="perma_on"===e.socialSharePrivacy_gplus?' checked="checked"':"",h.find("form fieldset").append('<input type="checkbox" name="perma_status_gplus" id="perma_status_gplus"'+i+' /><label for="perma_status_gplus">'+a.services.gplus.display_name+"</label>"));h.find("span.settings").css("cursor","pointer");
+b(h.find("span.settings"),d).live("mouseenter",function(){var a=window.setTimeout(function(){h.find(".settings_info_menu").removeClass("off").addClass("on")},500);b(this).data("timeout_id",a)});b(h,d).live("mouseleave",function(){var a=b(this).data("timeout_id");window.clearTimeout(a);h.find(".settings_info_menu").removeClass("on").addClass("off")});b(h.find("fieldset input")).live("click",function(c){var e=c.target.id,g="socialSharePrivacy_"+e.substr(e.lastIndexOf("_")+1,e.length);if(b("#"+c.target.id+
+":checked").length){var c=a.cookie_expires,h=a.cookie_path,f=a.cookie_domain,i=new Date;i.setTime(i.getTime()+c*864E5);document.cookie=g+"=perma_on; expires="+i.toUTCString()+"; path="+h+"; domain="+f;b("form fieldset label[for="+e+"]",d).addClass("checked")}else{c=a.cookie_path;h=a.cookie_domain;f=new Date;f.setTime(f.getTime()-100);document.cookie=g+"=perma_on; expires="+f.toUTCString()+"; path="+c+"; domain="+h;b("form fieldset label[for="+e+"]",d).removeClass("checked")}});f&&c&&"perma_on"===
+e.socialSharePrivacy_facebook&&b("li.facebook span.switch",d).click();j&&g&&"perma_on"===e.socialSharePrivacy_twitter&&b("li.twitter span.switch",d).click();n&&o&&"perma_on"===e.socialSharePrivacy_gplus&&b("li.gplus span.switch",d).click()}})}})(jQuery);
diff --git a/kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/socialshareprivacy/images/2-klick-logo.jpg b/kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/socialshareprivacy/images/2-klick-logo.jpg
new file mode 100644
index 0000000..a6d0c71
--- /dev/null
+++ b/kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/socialshareprivacy/images/2-klick-logo.jpg
Binary files differ
diff --git a/kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/socialshareprivacy/images/dummy_facebook.png b/kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/socialshareprivacy/images/dummy_facebook.png
new file mode 100644
index 0000000..3e5b651
--- /dev/null
+++ b/kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/socialshareprivacy/images/dummy_facebook.png
Binary files differ
diff --git a/kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/socialshareprivacy/images/dummy_facebook_en.png b/kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/socialshareprivacy/images/dummy_facebook_en.png
new file mode 100644
index 0000000..ec8344c
--- /dev/null
+++ b/kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/socialshareprivacy/images/dummy_facebook_en.png
Binary files differ
diff --git a/kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/socialshareprivacy/images/dummy_gplus.png b/kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/socialshareprivacy/images/dummy_gplus.png
new file mode 100644
index 0000000..37e5cec
--- /dev/null
+++ b/kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/socialshareprivacy/images/dummy_gplus.png
Binary files differ
diff --git a/kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/socialshareprivacy/images/dummy_gplus_alt.png b/kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/socialshareprivacy/images/dummy_gplus_alt.png
new file mode 100644
index 0000000..504dca7
--- /dev/null
+++ b/kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/socialshareprivacy/images/dummy_gplus_alt.png
Binary files differ
diff --git a/kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/socialshareprivacy/images/dummy_twitter.png b/kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/socialshareprivacy/images/dummy_twitter.png
new file mode 100644
index 0000000..bfca32d
--- /dev/null
+++ b/kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/socialshareprivacy/images/dummy_twitter.png
Binary files differ
diff --git a/kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/socialshareprivacy/images/settings.png b/kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/socialshareprivacy/images/settings.png
new file mode 100644
index 0000000..3016b7b
--- /dev/null
+++ b/kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/socialshareprivacy/images/settings.png
Binary files differ
diff --git a/kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/socialshareprivacy/images/socialshareprivacy_info.png b/kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/socialshareprivacy/images/socialshareprivacy_info.png
new file mode 100644
index 0000000..6d70570
--- /dev/null
+++ b/kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/socialshareprivacy/images/socialshareprivacy_info.png
Binary files differ
diff --git a/kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/socialshareprivacy/images/socialshareprivacy_on_off.png b/kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/socialshareprivacy/images/socialshareprivacy_on_off.png
new file mode 100644
index 0000000..8e9e725
--- /dev/null
+++ b/kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/socialshareprivacy/images/socialshareprivacy_on_off.png
Binary files differ
diff --git a/kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/socialshareprivacy/socialshareprivacy.css b/kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/socialshareprivacy/socialshareprivacy.css
new file mode 100644
index 0000000..e313226
--- /dev/null
+++ b/kolab.org/www/drupal-7.18/sites/all/libraries/socialshareprivacy/socialshareprivacy/socialshareprivacy.css
@@ -0,0 +1,226 @@
+.social_share_privacy_area {
+ clear: both;
+ margin: 20px 0 !important;
+ list-style-type: none;
+ padding: 0 !important;
+ width: auto;
+ height: 25px;
+ display: block;
+}
+.social_share_privacy_area li {
+ margin: 0 !important;
+ padding: 0 !important;
+ height: 21px;
+ float: left;
+}
+.social_share_privacy_area li .dummy_btn {
+ float: left;
+ margin: 0 0 0 10px;
+ cursor: pointer;
+ padding: 0;
+ height: inherit;
+}
+.social_share_privacy_area li div iframe {
+ overflow: hidden;
+ height: inherit;
+ width: inherit;
+}
+/* Facebook begin */
+.social_share_privacy_area .facebook {
+ width: 180px;
+ display: inline-block;
+}
+.social_share_privacy_area .facebook .fb_like iframe {
+ width: 145px;
+}
+/* Facebook end */
+/* Twitter begin */
+.social_share_privacy_area .twitter {
+ width: 148px;
+}
+.social_share_privacy_area li div.tweet {
+ width: 115px;
+}
+/* Twitter end */
+/* Google+ begin */
+.social_share_privacy_area .gplus {
+ width: 123px;
+}
+.social_share_privacy_area li div.gplusone {
+ width: 90px;
+}
+/* Google+ end */
+/* Switch begin */
+.social_share_privacy_area li .switch {
+ display: inline-block;
+ text-indent: -9999em;
+ background: transparent url(images/socialshareprivacy_on_off.png) no-repeat 0 0 scroll;
+ width: 23px;
+ height: 12px;
+ overflow: hidden;
+ float: left;
+ margin: 4px 0 0;
+ padding: 0;
+ cursor: pointer;
+}
+.social_share_privacy_area li .switch.on {
+ background-position: 0 -12px;
+}
+/* Switch end */
+/* Tooltips begin */
+.social_share_privacy_area li.help_info {
+ position: relative;
+}
+.social_share_privacy_area li.help_info .info,
+.social_share_privacy_area li .help_info.icon .info {
+ display: none;
+ position: absolute;
+ bottom: 40px;
+ left: 0;
+ width: 290px;
+ padding: 10px 15px;
+ margin: 0;
+ font-size: 12px;
+ line-height: 16px;
+ font-weight: bold;
+ border: 1px solid #ccc;
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px;
+ border-radius: 4px;
+ -moz-box-shadow: 0 3px 4px #999;
+ -webkit-box-shadow: 0 3px 4px #999;
+ box-shadow: 0 3px 4px #999;
+ background-color: #fdfbec;
+ color: #000;
+ z-index: 500;
+}
+.social_share_privacy_area li.gplus.help_info .info {
+ left: -60px;
+}
+.social_share_privacy_area li .help_info.icon .info {
+ left: -243px;
+ width: 350px;
+}
+.social_share_privacy_area li.help_info.display .info,
+.social_share_privacy_area li .help_info.icon.display .info {
+ display: block;
+}
+.social_share_privacy_area li.help_info.info_off.display .info {
+ display: none;
+}
+.social_share_privacy_area li .help_info.icon {
+ background: #fff url(images/socialshareprivacy_info.png) no-repeat center center scroll;
+ width: 25px;
+ height: 20px;
+ position: relative;
+ display: inline-block;
+ vertical-align: top;
+ border: 2px solid #e7e3e3;
+ border-right-width: 0;
+ -moz-border-radius: 5px 0 0 5px;
+ -webkit-border-radius: 5px 0 0 5px;
+ border-radius: 5px 0 0 5px;
+ margin: 0;
+ padding: 0;
+}
+.social_share_privacy_area li.settings_info .settings_info_menu.on .help_info.icon {
+ border-top-width: 0;
+ border-left-width: 0;
+}
+.social_share_privacy_area li.settings_info .settings_info_menu.perma_option_off .help_info.icon {
+ border-right-width: 2px;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+}
+/* Tooltips end */
+/* Settings/Info begin */
+.social_share_privacy_area li.settings_info {
+ position: relative;
+ top: -2px;
+}
+.social_share_privacy_area li.settings_info a {
+ text-decoration: none;
+ margin: 0 !important;
+}
+.social_share_privacy_area li.settings_info .settings_info_menu {
+ background-color: #f3f4f5;
+ border: 2px solid #e7e3e3;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ border-radius: 5px;
+ -moz-box-shadow: 2px 2px 3px #c1c1c1;
+ -webkit-box-shadow: 2px 2px 3px #c1c1c1;
+ box-shadow: 3px 3px 3px #c1c1c1;
+ left: 0;
+ position: absolute;
+ top: 0;
+ width: 135px;
+ z-index: 1000;
+ margin: 0;
+ padding: 0;
+}
+.social_share_privacy_area li.settings_info .settings_info_menu.off {
+ border-width: 0;
+ -moz-box-shadow: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ background-color: transparent;
+}
+.social_share_privacy_area li.settings_info .settings_info_menu.off form {
+ display: none;
+ margin: 0;
+ padding: 0;
+}
+.social_share_privacy_area li.settings_info .settings_info_menu .settings {
+ text-indent: -9999em;
+ display: inline-block;
+ background: #fff url(images/settings.png) no-repeat center center scroll;
+ width: 25px;
+ height: 20px;
+ border: 2px solid #e7e3e3;
+ -moz-border-radius: 0 5px 5px 0;
+ -webkit-border-radius: 0 5px 5px 0;
+ border-radius: 0 5px 5px 0;
+ border-left: 1px solid #ddd;
+ margin: 0;
+ padding: 0;
+}
+.social_share_privacy_area li.settings_info .settings_info_menu.on .settings {
+ border-top-width: 0;
+}
+.social_share_privacy_area li.settings_info .settings_info_menu form fieldset {
+ border-width: 0;
+ margin: 0;
+ padding: 0 10px 10px;
+}
+.social_share_privacy_area li.settings_info .settings_info_menu form fieldset legend {
+ font-size: 11px;
+ font-weight: bold;
+ line-height: 14px;
+ margin: 0;
+ padding: 10px 0;
+ width: 115px;
+}
+.social_share_privacy_area li.settings_info .settings_info_menu form fieldset input {
+ clear: both;
+ float: left;
+ margin: 4px 10px 4px 0;
+ padding: 0;
+}
+.social_share_privacy_area li.settings_info .settings_info_menu form fieldset label {
+ display: inline-block;
+ float: left;
+ font-size: 12px;
+ font-weight: bold;
+ line-height: 24px;
+ -moz-transition: color .5s ease-in;
+ -webkit-transition: color .5s ease-in;
+ transition: color .5s ease-in;
+ margin: 0;
+ padding: 0;
+}
+.social_share_privacy_area li.settings_info .settings_info_menu form fieldset label.checked {
+ color: #090;
+}
+/* Settings/Info end */ \ No newline at end of file