diff --git a/plugins/social_share_privacy/lib/social_share_privacy_plugin.rb b/plugins/social_share_privacy/lib/social_share_privacy_plugin.rb
new file mode 100644
index 0000000..b69dbee
--- /dev/null
+++ b/plugins/social_share_privacy/lib/social_share_privacy_plugin.rb
@@ -0,0 +1,11 @@
+class SocialSharePrivacyPlugin < Noosfero::Plugin
+
+ def self.plugin_name
+ "Social Share Privacy"
+ end
+
+ def self.plugin_description
+ _("A plugin that adds share buttons from other networks.")
+ end
+
+end
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/README.md b/plugins/social_share_privacy/public/socialshareprivacy/README.md
new file mode 100644
index 0000000..8ff6701
--- /dev/null
+++ b/plugins/social_share_privacy/public/socialshareprivacy/README.md
@@ -0,0 +1,1460 @@
+Social Share Privacy
+====================
+
+Social Share Privacy is a jQuery plugin that lets you add social share buttons
+to your website that don't allow the social sites to track your users. The buttons
+are first disabled and a user needs to click them to enable them. So in order to
+e.g. like a site on facebook with these social share buttons a user needs to click
+two times. But in return for this extra click a user can only be tracked be this
+third party sites when he decides to enable the buttons. Using the settings menu
+a user can also permanently enable a social share button.
+
+Supported share services:
+
+ * [Buffer](#buffer-options-buffer)
+ * [Delicious](#delicious-options-delicious)
+ * [Disqus](#disqus-options-disqus)
+ * [EMail](#email-options-mail)
+ * [Facebook Like/Recommend](#facebook-like-recommend-options-facebook)
+ * [Facebook Share](#facebook-share-options-fbshare)
+ * [Flattr](#flattr-options-flattr)
+ * [Google+](#google-options-gplus)
+ * [Hacker News](#hacker-news-options-hackernews)
+ * [Linked in](#linked-in-options-linkedin)
+ * [Pinterest](#pinterest-options-pinterest)
+ * [reddit](#reddit-options-reddit)
+ * [Stumble Upon](#stumble-upon-options-stumbleupon)
+ * [Tumblr](#tumblr-options-tumblr)
+ * [Twitter](#twitter-options-twitter)
+ * [XING](#xing-options-xing)
+
+Note that Tumblr and email are just normal links and thus always enabled.
+
+This is a fork of socialSharePrivacy by Heise. In this fork the service support
+was made extensible, some services where added and some bugs fixed. It has some
+incompatible changes, though (consolidated option names, use of the boolean values
+`true` and `false` instead of the strings `"on"` and `"off"` etc.).
+
+The original can be found here:
+[http://www.heise.de/extras/socialshareprivacy/](http://www.heise.de/extras/socialshareprivacy/)
+
+The Delicious support was heavily inspired by the delicious button jQuery plugin:
+[http://code.google.com/p/delicious-button/](http://code.google.com/p/delicious-button/)
+The style for this button was atually copied and only slightly adapted from this plugin.
+
+Overview
+--------
+
+ * [Dependencies](#dependencies)
+ * [How to use](#how-to-use)
+ * [Methods](#methods)
+ * [Events](#events)
+ * [Options](#options)
+ * [Global Options](#global-options)
+ * [Common Service Options](#common-service-options)
+ * [Custom Services](#custom-services)
+ * [Helper Functions](#helper-functions-jqueryfnsocialshareprivacy)
+ * [Build.sh](#buildsh)
+ * [Known Issues](#known-issues)
+ * [License](#license)
+
+Dependencies
+-------------------------------------------
+
+ * [jQuery](http://jquery.com/)
+ * [jQuery cookies plugin](https://github.com/panzi/jQuery-Cookies) (optional)
+ * [uglifyjs](https://npmjs.org/package/uglify-js) (for [build.sh](#buildsh))
+ * [uglifycss](https://npmjs.org/package/uglifycss) (for [build.sh](#buildsh))
+
+The jQuery cookies plugin is needed in order to enable services permanently.
+However, you can plug in you own replacement to store this options differently
+(e.g. via ajax in the user profile or in the browsers local store). For an
+example that stores the perma options in HTML5 local storage instead of cookies
+see the file
+[localstorage.js](https://github.com/panzi/SocialSharePrivacy/blob/master/javascripts/localstorage.js).
+
+How to use
+----------------------------------------
+
+```html
+
+
+…
+
+
+
+…
+
+
+…
+
+…
+
+
+```
+
+You only need to include the JavaScript files of the services you want to use. I
+recommend to pack all needed files into one using a JavaScript packer/compressor.
+The included [pack.sh](#packsh) script can do that for you, if you've got
+[uglifyjs](https://npmjs.org/package/uglify-js) and [uglifycss](https://npmjs.org/package/uglifycss)
+installed.
+
+However, for your convenience I provide these precompiled versions of the scripts:
+
+ * [jquery.socialshareprivacy.min.js](http://panzi.github.io/SocialSharePrivacy/javascripts/jquery.socialshareprivacy.min.js) 1
+ * [jquery.socialshareprivacy.min.autoload.js](http://panzi.github.io/SocialSharePrivacy/javascripts/jquery.socialshareprivacy.min.autoload.js) 2
+ * [jquery.socialshareprivacy.min.de.js](http://panzi.github.io/SocialSharePrivacy/javascripts/jquery.socialshareprivacy.min.de.js) 3
+ * [jquery.socialshareprivacy.min.es.js](http://panzi.github.io/SocialSharePrivacy/javascripts/jquery.socialshareprivacy.min.es.js) 3
+ * [jquery.socialshareprivacy.min.fr.js](http://panzi.github.io/SocialSharePrivacy/javascripts/jquery.socialshareprivacy.min.fr.js) 3
+ * [jquery.socialshareprivacy.min.it.js](http://panzi.github.io/SocialSharePrivacy/javascripts/jquery.socialshareprivacy.min.it.js) 3
+ * [jquery.socialshareprivacy.min.nl.js](http://panzi.github.io/SocialSharePrivacy/javascripts/jquery.socialshareprivacy.min.nl.js) 3
+ * [jquery.socialshareprivacy.min.pl.js](http://panzi.github.io/SocialSharePrivacy/javascripts/jquery.socialshareprivacy.min.pl.js) 3
+ * [jquery.socialshareprivacy.min.pt.js](http://panzi.github.io/SocialSharePrivacy/javascripts/jquery.socialshareprivacy.min.pt.js) 3
+ * [jquery.socialshareprivacy.min.ru.js](http://panzi.github.io/SocialSharePrivacy/javascripts/jquery.socialshareprivacy.min.ru.js) 3
+ * [jquery.socialshareprivacy.min.css](http://panzi.github.io/SocialSharePrivacy/stylesheets/jquery.socialshareprivacy.min.css)
+
+1 This file contains all JavaScripts except the `jquery.socialshareprivacy.localstorage.js` module and the translations.
+2 This file contains the same as 1, but it also automatically initializes elements with the attribute `data-social-share-privacy="true"` set.
+3 These files contain only translation strings and have to be included in addition to `jquery.socialshareprivacy.min.js`.
+
+You can also asynchronously load the buttons if you use the `jquery.socialshareprivacy.min.autoload.js` script:
+
+```html
+
+
+…
+
+…
+
+
+…
+
+…
+
+…
+
+
+
+```
+
+Methods
+---------------------------------
+
+### socialSharePrivacy
+
+```javascript
+.socialSharePrivacy([options])
+```
+
+Add social share buttons to all elements in the set. Returns `this`.
+
+### destroy
+
+```javascript
+.socialSharePrivacy("destroy")
+```
+Remove all social share buttons. This will return all elements in the set back
+to their pre-init state. Returns `this`.
+
+### disable
+
+```javascript
+.socialSharePrivacy("disable", [service_name])
+```
+
+Disable the named service or disable all services if no `service_name` is given.
+Returns `this`.
+
+### disabled
+
+```javascript
+.socialSharePrivacy("disabled", [service_name])
+```
+
+Returns `true` if the given service is disabled, `false` otherwise. If
+`service_name` is not given then it will return an object that maps
+service names to their disabled-value.
+
+### enable
+
+```javascript
+.socialSharePrivacy("enable", [service_name])
+```
+
+Enable the named service or enable all services if no `service_name` is given.
+Returns `this`.
+
+### enabled
+
+```javascript
+.socialSharePrivacy("enabled", [service_name])
+```
+
+Returns `true` if the given service is enabled, `false` otherwise. If
+`service_name` is not given then it will return an object that maps
+service names to their enabled-value.
+
+### option
+
+```javascript
+.socialSharePrivacy("option", option_name, [value])
+```
+
+Get or set an option. If no `value` is specified it will act as a getter.
+Returns `this` when acting as setter.
+
+### options
+
+```javascript
+.socialSharePrivacy("options", [options])
+```
+
+Get or set all options. If no `options` are specified it will act as a getter.
+Returns `this` when acting as setter.
+
+### toggle
+
+```javascript
+.socialSharePrivacy("toggle", [service_name])
+```
+
+Toggle the named service or toggle all services if no `service_name` is given.
+Returns `this`.
+
+Events
+-------------------------------
+
+### socialshareprivacy:create
+
+This event is emitted after the `socialSharePrivacy` method created a Social
+Share privacy widget. The event object will have an `options` attribute holding
+the option object of the initialized widget.
+
+### socialshareprivacy:destroy
+
+This event is emitted before a Social Share Privacy widget is destroyed.
+
+### socialshareprivacy:disable
+
+This event is emitted after a certain service was disabled. The event object
+will have a `serviceName` property, holding the name of the service that was
+disabled, and an `isClick` property, wich is `true` if a click by a user caused
+this event (`false` if it was disabled via JavaScript).
+
+### socialshareprivacy:enable
+
+This event is emitted after a certain service was enabled. The event object
+will have a `serviceName` property, holding the name of the service that was
+enabled, and an `isClick` property, wich is `true` if a click by a user caused
+this event (`false` if it was enabled via JavaScript).
+
+Options
+---------------------------------
+
+Options can be set globally via `$.fn.socialSharePrivacy.settings`, via an
+options object passed to the `socialSharePrivacy` function or via `data-*`
+attributes of the share element. If options are defined in more than one way
+the `data-*` attributes will overwrite the options from the passed options
+object and the options from passed options object will overwrite the
+globally defined options.
+
+### `data-*` attributes
+
+In order to pass the options as `data-*` attributes simply prepend `data-` to
+all option names. For the language option you can also use the standard `lang`
+attribute. If you want to set an option of an service just use a `data-*`
+attribute that includes dots (`.`) as if it where a JavaScript property
+expression:
+
+```html
+
+```
+
+If you want you can combine all options of a service and pass a JSON string as
+attribute value:
+
+```html
+
+```
+
+You can also do this for all services:
+
+```html
+
+```
+
+Or even all options at once:
+
+```html
+
+```
+
+Actually these aren't JSON objects but JavaScript expressions. This way
+you can pass JavaScript code that will evaluate the option values when the
+`socialSharePrivacy` function is called. You can even pass a whole new
+service implementation inline, if you want:
+
+```html
+
+```
+
+The main advantage of using the `data-*` attributes is, that you can easily
+render several *different* share elements on your webserver and then initialize
+them with one single JavaScript function call (no need for uniqe element IDs
+and separate JavaScript calls for each element).
+
+**NOTE:** When passing service options via `data-*` attributes all option
+values (except the common service options) are treated as strings. If you
+need to pass values of other types (numbers, booleans, arrays or functions)
+you need to use the JavaScript object syntax.
+
+### Global Options
+
+Set these options like this:
+
+```javascript
+$.fn.socialSharePrivacy.settings.title = "Title of the thing to share.";
+…
+```
+
+Or like this:
+
+```html
+
+```
+
+The version using `script` tags uses again JavaScript expressions to enable
+inline service definitions.
+
+
The link of the i-icon that links users to more information about this.
+
+
+
info_link_target
+
+
The target attribute of the info link. Possible values are _blank,
+_self, _parent, _top or a frame name.
+
+
+
txt_settings
+
Settings
+
The text of the settings icon.
+
+
+
txt_help
+
[Text]
+
Tooltip text of the settings menu.
+
+
+
settings_perma
+
[Text]
+
Headline of the settings menu.
+
+
+
layout
+
line
+
Possible values: line or box
+
+
+
set_perma_option
+
function (service_name, settings)
+
Function that stores the perma setting of the service specified by service_name.
+
+
+
del_perma_option
+
function (service_name, settings)
+
Function that removes the perma setting of the service specified by service_name.
+
+
+
get_perma_options
+
function (settings)
+
Function that gets the perma setting of all services in an object where the keys are
+the service names and the values are boolean. Services that are missing are assumed as
+false.
+
+
+
get_perma_option
+
function (service_name, settings)
+
Function that gets the perma setting of the service specified by service_name.
+Returns a boolean value.
+
+Only one of the two functions get_perma_options and get_perma_option
+need to be implemented. In that case the respective other needs to be set to
+null.
+
+
+
perma_option
+
true (if the jQuery cookies plugin is installed)
+
Give users the posibility to permanently enable services. (Boolean)
+
+
+
cookie_path
+
/
+
+
+
+
cookie_domain
+
document.location.hostname
+
+
+
+
cookie_expires
+
365
+
Days until the cookie expires.
+
+
+
path_prefix
+
+
Prefix to all paths (css_path, dummy_line_img, dummy_box_img)
+
+
+
css_path
+
socialshareprivacy/socialshareprivacy.css
+
+
+
+
language
+
en
+
+
+
+
uri
+
[Function]
+
URI of the thing to share that is passed on to the share services. The default function
+uses the value of the first link element with the rel attribute
+canonical or the first meta element with the property
+attribute og:url it can find or location.href if there are no such
+elements. (Function or string)
+
+
+
title
+
+
The title to pass to any share service that want's one.
+
+
+
description
+
+
The description to pass to any share service that want's one.
+
+
+
image
+
+
Image URL to pass to any share service that want's one.
+
+
+
embed
+
+
HTML embed code to pass to any share service that want's one.
+
+
+
ignore_fragment
+
true
+
Ignore the #fragment part of the url. (Boolean)
+
+
+
+
+### Common Service Options
+
+
+
+
+
Option
+
Default Value
+
Description
+
+
+
+
+
status
+
true
+
Enable/disable this service. (Boolean)
+
+
+
class_name
+
[service specific]
+
The HTML class of the share button wrapper. Per default it is the key of the
+service as it is registered in jQuery.fn.socialSharePrivacy.settings.services.
+
+
+
button_class
+
+
HTML class of the share button. Per default the same as class_name.
+
+
+
dummy_line_img
+
+
Placeholder image for deactivated button in line layout.
+
+
+
dummy_box_img
+
+
Placeholder image for deactivated button in box layout.
+
+
+
dummy_alt
+
[Text]
+
Alt text of the placeholder image.
+
+
+
txt_info
+
[Text]
+
Help text for deactivated button.
+
+
+
txt_off
+
[Text]
+
Status text if button is deactivated.
+
+
+
txt_on
+
[Text]
+
Status text if button is activated.
+
+
+
perma_option
+
true
+
Give users the posibility to permanently enable this service.
+(Boolean)
+
+
+
display_name
+
[Text]
+
Name of the service.
+
+
+
referrer_track
+
+
A string that is appended to the URI for this service, so you can track from
+where your users are coming.
+
+
+
language
+
+
Override the global language just for this service.
+
+
+
path_prefix
+
+
Override the global path_prefix just for this service.
+
+### Disqus Options (`disqus`)
+
+See also: [official documentation](http://socialshareprivacy.disqus.com/admin/universal/)
+
+**WARNING:** This is a hack. Using this Disqus button will break any usage of the comment
+count code as shown on the linked page above. This button does of course not interfere
+with the main Disqus widget.
+
+Example:
+
+```javascript
+$(document).ready(function () {
+ $('#share').socialSharePrivacy({
+ services: {
+ disqus: {
+ shortname : 'myforumshortname',
+ count : 'reactions'
+ }
+ }
+ });
+});
+```
+
+
+
+
+
Option
+
Default Value
+
Description
+
+
+
+
+
shortname
+
+
Your Disqus forum shortname. If an empty string is given it tries to use
+window.disqus_shortname. (String)
+
+
+
count
+
comments
+
What count to show.
+Possible values: comments or reactions
+
+
+
onclick
+
+
Function to call when the Disqus button was clicked. (Function or String)
+
+### Facebook Like/Recommend Options (`facebook`)
+
+Note that facebook only supports certain languages and requires the region suffix (e.g.
+`en_US`). The facebook service ensures that only supported language strings are sent
+to facebook, because otherwise facebook fails to render anything.
+
+See also: [official documentation](https://developers.facebook.com/docs/reference/plugins/like/)
+
+Example:
+
+```javascript
+$(document).ready(function () {
+ $('#share').socialSharePrivacy({
+ services: {
+ facebook: {
+ action : 'recommend',
+ colorscheme : 'dark'
+ }
+ }
+ });
+});
+```
+
+
+
+
+
Option
+
Default Value
+
Description
+
+
+
+
+
action
+
like
+
Possible values: like or recommend
+
+
+
colorscheme
+
light
+
Possible values: light or dark
+
+
+
font
+
+
Possible values: arial, lucida grande, segoe ui, tahoma,
+trebuchet ms or verdana
Image URL of the thing to share. (Function or string)
+
+This option is only defined for the type photo.
+
+
+
clickthrou
+
[Function]
+
The URL to where you get when you click the image. Per default it's the
+shared URI including the referrer_track. (Function or string)
+
+This option is only defined for the type photo.
Tweet text (excluding the URL). It will be truncated to 120 characters, leaving
+place for 20 characters for the shortened URL. (Function or string)
+
+
+
via
+
+
Twitter username (without the leading @).
+
+
+
related
+
+
Twitter username (without the leading @).
+
+
+
hashtags
+
+
Hashtag to add to the tweet (without the leading #).
+
+
+
dnt
+
true
+
Do not tailor.
+
+
+
+
+### XING Options (`xing`)
+
+There are no XING specific options.
+
+Note that the view counter will not work unless the XING button is enabled by the
+user.
+
+See also: [official documentation](https://www.xing.com/app/share?op=button_builder)
+
+Custom Services
+-------------------------------------------------
+
+```javascript
+(function ($, undefined) {
+ $.fn.socialSharePrivacy.settings.services.myservice = {
+ /* default values for common service options... */
+ 'button': function (options, uri, settings) {
+ return $('').attr(
+ 'src', 'http://myservice.example/?' + $.param({
+ url: uri + options.referrer_track
+ });
+ }
+ };
+})(jQuery);
+```
+
+### Helper Functions (`jQuery.fn.socialSharePrivacy.*`)
+
+Some helper functions that might be handy to use in your custom service.
+
+#### absurl(url [, baseurl])
+
+Build an absolute url using a base url.
+The provided base url has to be a valid absolute url. It will not be validated!
+If no base url is given the documents base url/location is used.
+Schemes that behave other than http might not work.
+This function tries to support `file:`-urls, but might fail in some cases.
+`email:`-urls aren't supported at all (don't make sense anyway).
+
+#### abbreviateText(text, length)
+
+Abbreviate at last blank before length and add `"\u2026"` (…, horizontal ellipsis).
+The length is the number of UTF-8 encoded bytes, not the number of unicode code
+points, because twitters 140 "characters" are actually bytes.
+
+#### escapeHtml(text)
+
+Escapes text so it can be used safely in HTML strings.
+
+
+
+
+
Character
+
Replacement
+
+
+
+
+
<
+
<
+
+
+
>
+
>
+
+
+
&
+
&
+
+
+
"
+
"
+
+
+
'
+
'
+
+
+
+
+#### formatNumber(number)
+
+Format a number to be displayed in a typical number bubble. It will
+abbreviate numbers bigger than 9999 using the `K` suffix, rounding the
+number to the closest thousand and it inserts thousands delimeter
+characters.
+
+Example:
+
+```javascript
+$.fn.socialSharePrivacy.formatNumber(1234) => "1,234"
+$.fn.socialSharePrivacy.formatNumber(12345) => "12K"
+$.fn.socialSharePrivacy.formatNumber(1234567) => "1,235K"
+```
+
+#### getTitle(options, uri, settings)
+
+Lookup title of shared thing in several places:
+
+ * `settings.title`, which may be a string or a function with the same parameters.
+ * `$('meta[name="DC.title"]').attr('content') + ' - ' + $('meta[name="DC.creator"]').attr('content')`
+ * `$('meta[name="DC.title"]').attr('content')`
+ * `$('meta[property="og:title"]').attr('content')`
+ * `$('title').text()`
+
+The element of the share button is passed as `this`.
+
+#### getImage(options, uri, settings)
+
+Lookup image URL of shared thing in several places:
+
+ * `settings.image`, which may be a string or a function with the same parameters.
+ * `$('meta[property="image"], meta[property="og:image"], meta[property="og:image:url"], ' +`
+ `'meta[name="twitter:image"], link[rel="image_src"], itemscope *[itemprop="image"]').`
+ `first().attr('content'` / `'src'` / `'href')`
+ * `$('img').filter(':visible').filter(function () { return $(this).parents('.social_share_privacy_area').length === 0; })`,
+ using the image with the biggest area.
+ * `$('link[rel~="shortcut"][rel~="icon"]').attr('href')`
+ * `'http://www.google.com/s2/favicons?'+$.param({domain:location.hostname})`
+
+The element of the share button is passed as `this`.
+
+#### getEmbed(options, uri, settings)
+
+Lookup image URL of shared thing in several places:
+
+ * `settings.embed`, which may be a string or a function with the same parameters.
+
+If there is no embed code found it will construct it's own embed code. For this it
+first searches for a meta element with the name `twitter:player` and use it's
+content as the `src` of an iframe element. If meta tags with the names
+`twitter:player:width` and `twitter:player:height` are found they are used for the
+width and height attributes of the iframe. If no `twitter:player` meta elements is
+found the url of the current page will be used as the iframe `src`
+(`uri + options.referrer_track`).
+
+The element of the share button is passed as `this`.
+
+#### getDescription(options, uri, settings)
+
+Lookup description of shared thing in several places:
+
+ * `settings.description`, which may be a string or a function with the same parameters.
+ * `$('meta[name="twitter:description"]').attr('content')`
+ * `$('meta[itemprop="description"]').attr('content')`
+ * `$('meta[name="description"]').attr('content')`
+ * `$('article, p').first().text()`
+ * `$('body').text()`
+
+If not defined in `settings.description` the found text is truncated at 3500 bytes.
+
+The element of the share button is passed as `this`.
+
+Build.sh
+----------------------------------
+
+You can use `build.sh` to pack the modules and languages you want. This requires
+[uglifyjs](https://npmjs.org/package/uglify-js) and
+[uglifycss](https://npmjs.org/package/uglifycss) to be installed.
+
+Example:
+
+```sh
+./build.sh -m twitter,facebook,gplus -l de,fr
+```
+
+This generates these files:
+
+```
+build/jquery.socialshareprivacy.min.js
+build/jquery.socialshareprivacy.min.autoload.js
+build/jquery.socialshareprivacy.min.de.js
+build/jquery.socialshareprivacy.min.fr.js
+build/jquery.socialshareprivacy.min.css
+```
+
+These files then contain only the JavaScript/CSS code for Twitter, Facebook and Google+.
+`jquery.socialshareprivacy.min.de.js` and `jquery.socialshareprivacy.min.fr.js` only
+contain translation strings, so you need to include them after `jquery.socialshareprivacy.min.js`
+in your HTML document.
+
+### Usage
+
+ Usage:
+ ./build.sh [options]
+
+ Options:
+ -h Print this help message.
+ -m Comma separated list of JavaScript modules to pack. Possible values:
+ all, none, buffer, delicious, disqus, facebook, flattr,
+ gplus, hackernews, linkedin, mail, pinterest, reddit,
+ stumbleupon, tumblr, twitter, xing
+ default: all
+
+ -l Comma separated list of languages to pack. Possible values:
+ all, none, de, es, fr, nl, pl, pt, ru
+ default: all
+
+ -a Autoload. Possible values: on, off (default: on)
+ -c Pack stylesheets. Possible values: on, off (default: on)
+ -i Pack images. Possible values: on, off (default: on)
+ -p Prefix to stylesheet and dummy image paths. (empty per default)
+ -s Stylesheet path in the generated JavaScript file.
+ default: stylesheets/jquery.socialshareprivacy.min.css
+ -o Output directory. (default: build)
+
+Known Issues
+-------------------------------------------
+
+In Internet Explorer <= 8 the Disqus widget doesn't work the first time you enable it.
+You have to disable and then enable it again. I could not figure out what might cause
+this.
+
+It is recommended to declare a compatibility mode of Internet Explorer >= 9. E.g. add
+this to the head of your HTML documents:
+
+```html
+
+```
+
+Internet Explorer <= 7 is not supported.
+
+License
+---------------------------------
+
+Most of this plugin is licensed under the [MIT license](http://www.opensource.org/licenses/mit-license.php):
+
+Copyright (c) 2012 Mathias Panzenböck
+Copyright (c) 2011 Hilko Holweg, Sebastian Hilbig, Nicolas Heiringhoff,
+Juergen Schmidt, Heise Zeitschriften Verlag GmbH & Co. KG, http://www.heise.de
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+The file `stylesheets/jquery.socialshareprivacy.delicious.css` is licensed under
+the Apache License, Version 2.0:
+
+Copyright (c) 2012 Mathias Panzenböck
+Copyright (c) 2010 [Mike @ moretechtips.net]
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+> [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/build.sh b/plugins/social_share_privacy/public/socialshareprivacy/build.sh
new file mode 100755
index 0000000..f8b2cc8
--- /dev/null
+++ b/plugins/social_share_privacy/public/socialshareprivacy/build.sh
@@ -0,0 +1,153 @@
+#!/bin/bash
+
+modules=all
+autoload=on
+css=on
+img=on
+pathprefix=
+stylefile=stylesheets/jquery.socialshareprivacy.min.css
+langs=all
+builddir=build
+allmodules=`ls javascripts/modules/*.js|sed 's/javascripts\/modules\/\(.*\)\.js/\1/'`
+alllangs=`ls -d javascripts/locale/??|xargs -n 1 basename`
+
+while getopts ":m:a:s:p:c:i:l:o:h" opt; do
+ case $opt in
+ m)
+ modules="$OPTARG"
+ ;;
+ a)
+ autoload="$OPTARG"
+ ;;
+ c)
+ css="$OPTARG"
+ ;;
+ i)
+ img="$OPTARG"
+ ;;
+ p)
+ pathprefix="$OPTARG"
+ ;;
+ s)
+ stylefile="$OPTARG"
+ ;;
+ l)
+ langs="`echo "$OPTARG"|tr ',' ' '`"
+ ;;
+ o)
+ builddir="$OPTARG"
+ ;;
+ h)
+ echo "Usage:"
+ echo " ./build.sh [options]"
+ echo
+ echo "Options:"
+ echo " -h Print this help message."
+ echo " -m Comma separated list of JavaScript modules to pack. Possible values:"
+ echo all none $allmodules|sed 's/ /, /g'|fmt -60|xargs -n 1 -d '\n' echo " "
+ echo " default: all"
+ echo
+ echo " -l Comma separated list of languages to pack. Possible values:"
+ echo all none $alllangs|sed 's/ /, /g'|fmt -60|xargs -n 1 -d '\n' echo " "
+ echo " default: all"
+ echo
+ echo " -a Autoload. Possible values: on, off (default: on)"
+ echo " -c Pack stylesheets. Possible values: on, off (default: on)"
+ echo " -i Pack images. Possible values: on, off (default: on)"
+ echo " -p Prefix to stylesheet and dummy image paths. (empty per default)"
+ echo " -s Stylesheet path in the generated JavaScript file."
+ echo " default: stylesheets/jquery.socialshareprivacy.min.css"
+ echo " -o Output directory. (default: build)"
+ echo
+ exit
+ ;;
+ \?)
+ echo "Invalid option: -$OPTARG" >&2
+ echo "See -h for a list of available options." >&2
+ exit 1
+ ;;
+ esac
+done
+
+if [ "$modules" = "all" ]; then
+ modules=`echo -n $allmodules|tr ' ' ','`
+elif [ "$modules" = "" ]; then
+ modules="none"
+fi
+
+if [ "$langs" = "all" ]; then
+ langs="$alllangs"
+elif [ "$langs" = "" ]; then
+ langs="none"
+fi
+
+mkdir -p "$builddir/javascripts" || exit 1
+
+files="javascripts/socialshareprivacy.js"
+if [ "$modules" != "none" ]; then
+ files="$files `eval echo javascripts/modules/{$modules}.js`"
+fi
+files="$files javascripts/settings.js"
+
+uglifyjs $files \
+ --compress=warnings=false \
+ | sed -e "s|path_prefix:\"\"|path_prefix:\"$pathprefix\"|g" \
+ | sed -e "s|stylesheets/socialshareprivacy.css|$stylefile|g" \
+ > "$builddir/javascripts/jquery.socialshareprivacy.min.js" || exit 1
+echo "created $builddir/javascripts/jquery.socialshareprivacy.min.js"
+
+
+if [ "$autoload" = "on" ]; then
+ uglifyjs $files javascripts/autoload.js \
+ --compress=warnings=false \
+ | sed -e "s|path_prefix:\"\"|path_prefix:\"$pathprefix\"|g" \
+ | sed -e "s|stylesheets/socialshareprivacy.css|$stylefile|g" \
+ > "$builddir/javascripts/jquery.socialshareprivacy.min.autoload.js" || exit 1
+ echo "created $builddir/javascripts/jquery.socialshareprivacy.min.autoload.js"
+fi
+
+if [ "$langs" != "none" ]; then
+ for lang in $langs; do
+ files="javascripts/locale/$lang/socialshareprivacy.js"
+ if [ "$modules" != "none" ]; then
+ files="$files `eval ls javascripts/locale/$lang/modules/{$modules}.js 2>/dev/null`"
+ fi
+ node join-trans.js $files | uglifyjs \
+ --compress=warnings=false \
+ --output="$builddir/javascripts/jquery.socialshareprivacy.min.$lang.js" || exit 1
+ echo "created $builddir/javascripts/jquery.socialshareprivacy.min.$lang.js"
+ done
+fi
+
+if [ "$img" = "on" ]; then
+ mkdir -p "$builddir/images" || exit 1
+ files="`eval ls images/socialshareprivacy_* images/settings.png images/{dummy_,}{box_,}{$modules}.* 2>/dev/null`"
+ if [ "$files" != "" ]; then
+ cp $files "$builddir/images" || exit 1
+ echo "copied images to $builddir/images"
+ fi
+
+ if [ "$langs" != "none" ]; then
+ for lang in $langs; do
+ if [ -d "images/$lang" ]; then
+ mkdir -p "$builddir/images/$lang" || exit 1
+ files="`eval ls images/$lang/{dummy_,}{box_,}{$modules}.* 2>/dev/null`"
+ if [ "$files" != "" ]; then
+ cp $files "$builddir/images/$lang" || exit 1
+ echo "copied images to $builddir/images/$lang"
+ fi
+ fi
+ done
+ fi
+fi
+
+if [ "$css" = "on" ]; then
+ styledir="`dirname "$builddir/$stylefile"`"
+ mkdir -p "$styledir" || exit 1
+ files="stylesheets/common.css"
+ if [ "$modules" != "none" ]; then
+ files="$files `eval ls stylesheets/modules/{$modules}.css 2>/dev/null`"
+ fi
+ uglifycss $files > "$builddir/$stylefile" || exit 1
+ echo "created $builddir/$stylefile"
+fi
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/demo/demo1.html b/plugins/social_share_privacy/public/socialshareprivacy/demo/demo1.html
new file mode 100644
index 0000000..9781526
--- /dev/null
+++ b/plugins/social_share_privacy/public/socialshareprivacy/demo/demo1.html
@@ -0,0 +1,58 @@
+
+
+
+
+Social Share Privacy: Demo 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Social Share Privacy: Demo 1
+
+
+Demo share buttons:
+
+
+
+
+
+Social share privacy actually supports more than one share button list in one document.
+
+
+
+
+
+Different share buttons can have different options. E.g. these share buttons use the URI
+"http://example.com/" instead of the document.location.
+
+Social share privacy unterstützt mehr als eine share Button Liste pro Dokument.
+
+
+
+
+
+Unterschiedliche share Buttons können unterschiedliche Optionen verwenden. Diese
+share Buttons verwenden z.B. die URI "http://example.com/" statt document.location.
+
+Social share privacy supporte plus qu'une seule liste de boutons par document.
+
+
+
+
+
+Divers boutons peuvent utiliser divers options. Les boutons suivants
+utilisent par exemple l'URI "http://example.com/" au lieu de document.location.
+
+Social share privacy supporte plus qu'une seule liste de boutons par document.
+
+
+
+
+
+Divers boutons peuvent utiliser divers options. Les boutons suivants
+utilisent par exemple l'URI "http://example.com/" au lieu de document.location.
+
+Social share privacy tem suporte a mais de uma lista de botões no mesmo documento.
+
+
+
+
+
+Diferentes botões de compartilhamento podem ter opções diferentes. Por exemplo, estes botões usam a URI "http://example.com/" em vez de document.location.
+
+If you've used build.sh, you should see here all modules you've included (in both line and box layouts).
+If you haven't - you won't see anything here :)
+Run ./build.sh -h from .. to see available options.
+
+
+
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/box_fbshare.png b/plugins/social_share_privacy/public/socialshareprivacy/images/box_fbshare.png
new file mode 100644
index 0000000..0d722c1
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/box_fbshare.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/box_mail.png b/plugins/social_share_privacy/public/socialshareprivacy/images/box_mail.png
new file mode 100644
index 0000000..f2692c0
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/box_mail.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/box_tumblr.png b/plugins/social_share_privacy/public/socialshareprivacy/images/box_tumblr.png
new file mode 100644
index 0000000..1689426
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/box_tumblr.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/de/dummy_box_facebook.png b/plugins/social_share_privacy/public/socialshareprivacy/images/de/dummy_box_facebook.png
new file mode 100644
index 0000000..23000bd
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/de/dummy_box_facebook.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/de/dummy_facebook.png b/plugins/social_share_privacy/public/socialshareprivacy/images/de/dummy_facebook.png
new file mode 100644
index 0000000..7a220b8
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/de/dummy_facebook.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_buffer.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_buffer.png
new file mode 100644
index 0000000..3b5a630
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_buffer.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_delicious.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_delicious.png
new file mode 100644
index 0000000..28333a3
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_delicious.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_disqus.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_disqus.png
new file mode 100644
index 0000000..16f0819
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_disqus.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_facebook.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_facebook.png
new file mode 100644
index 0000000..5bed654
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_facebook.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_flattr.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_flattr.png
new file mode 100644
index 0000000..bc22c8f
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_flattr.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_gplus.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_gplus.png
new file mode 100644
index 0000000..56907e1
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_gplus.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_hackernews.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_hackernews.png
new file mode 100644
index 0000000..d9b68c3
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_hackernews.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_linkedin.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_linkedin.png
new file mode 100644
index 0000000..07049e3
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_linkedin.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_pinterest.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_pinterest.png
new file mode 100644
index 0000000..7523008
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_pinterest.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_reddit.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_reddit.png
new file mode 100644
index 0000000..80449e9
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_reddit.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_stumbleupon.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_stumbleupon.png
new file mode 100644
index 0000000..f585e5e
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_stumbleupon.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_twitter.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_twitter.png
new file mode 100644
index 0000000..84f7c6d
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_twitter.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_xing.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_xing.png
new file mode 100644
index 0000000..5540388
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_box_xing.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_buffer.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_buffer.png
new file mode 100644
index 0000000..c0f46eb
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_buffer.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_delicious.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_delicious.png
new file mode 100644
index 0000000..c81ef75
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_delicious.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_disqus.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_disqus.png
new file mode 100644
index 0000000..d821173
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_disqus.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_facebook.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_facebook.png
new file mode 100644
index 0000000..0efb45c
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_facebook.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_flattr.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_flattr.png
new file mode 100644
index 0000000..2f1ffa5
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_flattr.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_gplus.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_gplus.png
new file mode 100644
index 0000000..5ced5dc
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_gplus.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_gplus_alt.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_gplus_alt.png
new file mode 100644
index 0000000..64b9a9e
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_gplus_alt.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_hackernews.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_hackernews.png
new file mode 100644
index 0000000..a946131
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_hackernews.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_linkedin.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_linkedin.png
new file mode 100644
index 0000000..5d6f965
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_linkedin.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_pinterest.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_pinterest.png
new file mode 100644
index 0000000..7ff138d
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_pinterest.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_reddit.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_reddit.png
new file mode 100644
index 0000000..6433355
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_reddit.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_stumbleupon.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_stumbleupon.png
new file mode 100644
index 0000000..aba0d14
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_stumbleupon.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_twitter.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_twitter.png
new file mode 100644
index 0000000..2865660
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_twitter.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_xing.png b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_xing.png
new file mode 100644
index 0000000..5b969f1
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/dummy_xing.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/es/dummy_box_facebook.png b/plugins/social_share_privacy/public/socialshareprivacy/images/es/dummy_box_facebook.png
new file mode 100644
index 0000000..78c4093
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/es/dummy_box_facebook.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/es/dummy_facebook.png b/plugins/social_share_privacy/public/socialshareprivacy/images/es/dummy_facebook.png
new file mode 100644
index 0000000..ce6c90e
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/es/dummy_facebook.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/fbshare.png b/plugins/social_share_privacy/public/socialshareprivacy/images/fbshare.png
new file mode 100644
index 0000000..5e2a84c
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/fbshare.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/fr/dummy_box_facebook.png b/plugins/social_share_privacy/public/socialshareprivacy/images/fr/dummy_box_facebook.png
new file mode 100644
index 0000000..0ad503e
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/fr/dummy_box_facebook.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/fr/dummy_facebook.png b/plugins/social_share_privacy/public/socialshareprivacy/images/fr/dummy_facebook.png
new file mode 100644
index 0000000..772ab1b
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/fr/dummy_facebook.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/fr/dummy_twitter.png b/plugins/social_share_privacy/public/socialshareprivacy/images/fr/dummy_twitter.png
new file mode 100644
index 0000000..bae309d
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/fr/dummy_twitter.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/mail.png b/plugins/social_share_privacy/public/socialshareprivacy/images/mail.png
new file mode 100644
index 0000000..690cc66
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/mail.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/nl/dummy_box_facebook.png b/plugins/social_share_privacy/public/socialshareprivacy/images/nl/dummy_box_facebook.png
new file mode 100644
index 0000000..77edbee
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/nl/dummy_box_facebook.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/nl/dummy_facebook.png b/plugins/social_share_privacy/public/socialshareprivacy/images/nl/dummy_facebook.png
new file mode 100644
index 0000000..b8e15e5
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/nl/dummy_facebook.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/nl/dummy_twitter.png b/plugins/social_share_privacy/public/socialshareprivacy/images/nl/dummy_twitter.png
new file mode 100644
index 0000000..392a5c6
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/nl/dummy_twitter.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/pt/dummy_box_facebook.png b/plugins/social_share_privacy/public/socialshareprivacy/images/pt/dummy_box_facebook.png
new file mode 100644
index 0000000..9f6a226
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/pt/dummy_box_facebook.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/pt/dummy_box_twitter.png b/plugins/social_share_privacy/public/socialshareprivacy/images/pt/dummy_box_twitter.png
new file mode 100644
index 0000000..ad809fd
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/pt/dummy_box_twitter.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/pt/dummy_facebook.png b/plugins/social_share_privacy/public/socialshareprivacy/images/pt/dummy_facebook.png
new file mode 100644
index 0000000..6f69ed7
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/pt/dummy_facebook.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/pt/dummy_twitter.png b/plugins/social_share_privacy/public/socialshareprivacy/images/pt/dummy_twitter.png
new file mode 100644
index 0000000..09cae2f
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/pt/dummy_twitter.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/ru/dummy_box_facebook.png b/plugins/social_share_privacy/public/socialshareprivacy/images/ru/dummy_box_facebook.png
new file mode 100644
index 0000000..6b43084
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/ru/dummy_box_facebook.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/ru/dummy_facebook.png b/plugins/social_share_privacy/public/socialshareprivacy/images/ru/dummy_facebook.png
new file mode 100644
index 0000000..5a46d95
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/ru/dummy_facebook.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/settings.png b/plugins/social_share_privacy/public/socialshareprivacy/images/settings.png
new file mode 100644
index 0000000..3016b7b
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/settings.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/socialshareprivacy_info.png b/plugins/social_share_privacy/public/socialshareprivacy/images/socialshareprivacy_info.png
new file mode 100644
index 0000000..733238d
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/socialshareprivacy_info.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/socialshareprivacy_on_off.png b/plugins/social_share_privacy/public/socialshareprivacy/images/socialshareprivacy_on_off.png
new file mode 100644
index 0000000..8e9e725
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/socialshareprivacy_on_off.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/images/tumblr.png b/plugins/social_share_privacy/public/socialshareprivacy/images/tumblr.png
new file mode 100644
index 0000000..c8c759c
Binary files /dev/null and b/plugins/social_share_privacy/public/socialshareprivacy/images/tumblr.png differ
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/javascripts/autoload.js b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/autoload.js
new file mode 100644
index 0000000..1c43bec
--- /dev/null
+++ b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/autoload.js
@@ -0,0 +1,4 @@
+jQuery(document).ready(function ($) {
+ $('*[data-social-share-privacy=true]:not([data-init=true])').
+ socialSharePrivacy().attr('data-init','true');
+});
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/javascripts/localstorage.js b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/localstorage.js
new file mode 100644
index 0000000..239fb1c
--- /dev/null
+++ b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/localstorage.js
@@ -0,0 +1,31 @@
+/*
+ * jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz
+ *
+ * Copyright (c) 2012 Mathias Panzenböck
+ *
+ * is released under the MIT License http://www.opensource.org/licenses/mit-license.php
+ *
+ * Spread the word, link to us if you can.
+ */
+(function ($, undefined) {
+ "use strict";
+
+ $.extend($.fn.socialSharePrivacy.settings, {
+ // Set perma_option to true.
+ // Initially it is only set to true if jQuery.cookie is available.
+ perma_option: true,
+ set_perma_option: function (service_name) {
+ localStorage.setItem('socialSharePrivacy_'+service_name, 'perma_on');
+ },
+ del_perma_option: function (service_name) {
+ localStorage.removeItem('socialSharePrivacy_'+service_name);
+ },
+ // Only one of the two methods "get_perma_options" and "get_perma_option" has
+ // to be implemented. Though the other has to be set to null, so the default
+ // cookie based method is not used.
+ get_perma_options: null,
+ get_perma_option: function (service_name) {
+ return localStorage.getItem('socialSharePrivacy_'+service_name) === 'perma_on';
+ }
+ });
+})(jQuery);
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/buffer.js b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/buffer.js
new file mode 100644
index 0000000..93989e2
--- /dev/null
+++ b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/buffer.js
@@ -0,0 +1,54 @@
+/*
+ * 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
+ *
+ * Copyright (c) 2012 Mathias Panzenböck
+ *
+ * is released under the MIT License http://www.opensource.org/licenses/mit-license.php
+ *
+ * Spread the word, link to us if you can.
+ */
+(function ($, undefined) {
+ "use strict";
+
+ function get (self, options, uri, settings, name) {
+ var value = options[name];
+ if (typeof value === "function") {
+ return value.call(self, options, uri, settings);
+ }
+ return String(value);
+ }
+
+ $.fn.socialSharePrivacy.settings.services.buffer = {
+ 'status' : true,
+ 'dummy_line_img' : 'images/dummy_buffer.png',
+ 'dummy_box_img' : 'images/dummy_box_buffer.png',
+ 'dummy_alt' : '"Buffer"-Dummy',
+ 'txt_info' : 'Two clicks for more privacy: The Buffer button will be enabled once you click here. Activating the button already sends data to Buffer – see i.',
+ 'txt_off' : 'not connected to Buffer',
+ 'txt_on' : 'connected to Buffer',
+ 'perma_option' : true,
+ 'display_name' : 'Buffer',
+ 'referrer_track' : '',
+ 'via' : '',
+ 'text' : $.fn.socialSharePrivacy.getTitle,
+ 'picture' : $.fn.socialSharePrivacy.getImage,
+ 'button' : function (options, uri, settings) {
+ return $('').attr(
+ 'src', 'https://widgets.bufferapp.com/button/?'+$.param({
+ count : settings.layout === 'line' ? 'horizontal' : 'vertical',
+ via : get(this, options, uri, settings, 'via'),
+ text : $.fn.socialSharePrivacy.abbreviateText(
+ get(this, options, uri, settings, 'text'), 120),
+ picture : get(this, options, uri, settings, 'picture'),
+ url : uri + options.referrer_track,
+ source : 'button'
+ }));
+ }
+ };
+})(jQuery);
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/delicious.js b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/delicious.js
new file mode 100644
index 0000000..d8502d4
--- /dev/null
+++ b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/delicious.js
@@ -0,0 +1,85 @@
+/*
+ * jquery.socialshareprivacy.js
+ *
+ * Copyright (c) 2012 Mathias Panzenböck
+ *
+ * is released under the MIT License http://www.opensource.org/licenses/mit-license.php
+ *
+ * Code inspired by Delicious Button v1.1:
+ * http://code.google.com/p/delicious-button/
+ *
+ * Warning: this button uses plaintext http and can be harmful to users under opressive regimes
+ *
+ */
+(function ($, undefined) {
+ "use strict";
+
+ $.fn.socialSharePrivacy.settings.services.delicious = {
+ 'status' : true,
+ 'dummy_line_img' : 'images/dummy_delicious.png',
+ 'dummy_box_img' : 'images/dummy_box_delicious.png',
+ 'dummy_alt' : '"Delicious"-Dummy',
+ 'txt_info' : 'Two clicks for more privacy: The Delicious button will be enabled once you click here. Activating the button already sends data to Delicious – see i.',
+ 'txt_off' : 'not connected to Delicious',
+ 'txt_on' : 'connected to Delicious',
+ 'perma_option' : true,
+ 'display_name' : 'Delicious',
+ 'txt_button' : 'Save',
+ 'referrer_track' : '',
+ 'title' : $.fn.socialSharePrivacy.getTitle,
+ 'button' : function (options, uri, settings) {
+ var $button = $('');
+ var url = uri + options.referrer_track;
+
+ $.ajax({
+ url: "http://feeds.delicious.com/v2/json/urlinfo/data",
+ data: {url: url},
+ dataType: "jsonp",
+ success: function (counts) {
+ var hash, total_posts, title, txt_button;
+ for (var i = 0; i < counts.length; ++ i) {
+ var count = counts[i];
+ if (count.url === url) {
+ total_posts = parseInt(count.total_posts, 10);
+ hash = count.hash;
+ title = count.title;
+ break;
+ }
+ }
+ if (total_posts) txt_button = $.fn.socialSharePrivacy.formatNumber(total_posts);
+ else txt_button = options.txt_button;
+ var save_url = "http://delicious.com/save?"+$.param({
+ v: "5",
+ url: url,
+ title: (typeof options.title === "function" ?
+ options.title.call(this, options, uri, settings) :
+ String(options.title)) || title
+ });
+
+ $button.html('');
+ $button.find('i').text(options.txt_button);
+ $button.find('b').text(txt_button);
+ $button.find('a.icon').attr("href", hash ? "http://delicious.com/url/" + hash : save_url);
+ var $count = $button.find('a.count').attr("href", save_url).click(function (event) {
+ window.open(save_url + "&noui&jump=close", "delicious", "toolbar=no,width=555,height=555");
+ event.preventDefault();
+ });
+
+ if (total_posts) {
+ $count.hover(function () {
+ var $self = $(this);
+ $self.find("b").stop(1, 1).css("display", "none");
+ $self.find("i").fadeIn();
+ }, function () {
+ var $self = $(this);
+ $self.find("i").stop(1, 1).css("display", "none");
+ $self.find("b").fadeIn();
+ });
+ }
+ }
+ });
+
+ return $button;
+ }
+ };
+})(jQuery);
diff --git a/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/disqus.js b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/disqus.js
new file mode 100644
index 0000000..f8e60b5
--- /dev/null
+++ b/plugins/social_share_privacy/public/socialshareprivacy/javascripts/modules/disqus.js
@@ -0,0 +1,77 @@
+/*
+ * jquery.socialshareprivacy.js
+ *
+ * Copyright (c) 2012 Mathias Panzenböck
+ *
+ * is released under the MIT License http://www.opensource.org/licenses/mit-license.php
+ *
+ */
+(function ($, undefined) {
+ "use strict";
+
+ var DISQUSWIDGETS = {
+ displayCount: function (data) {
+ $('.social_share_privacy_area .disqus .disqus-widget:not(.init)').each(function () {
+ var $widget = $(this);
+ var uri = data.counts[0].id;
+ if ($widget.attr("data-uri") === uri) {
+ var key = $widget.attr("data-count");
+ var count = data.counts[0][key];
+ var text = data.text[key];
+ var scount = $.fn.socialSharePrivacy.formatNumber(count);
+ $widget.attr('title', count === 0 ? text.zero : count === 1 ? text.one : text.multiple.replace('{num}', scount));
+ $widget.find('.count a').text(scount);
+ $widget.addClass('init');
+ }
+ });
+ }
+ };
+
+ $.fn.socialSharePrivacy.settings.services.disqus = {
+ 'status' : true,
+ 'dummy_line_img' : 'images/dummy_disqus.png',
+ 'dummy_box_img' : 'images/dummy_box_disqus.png',
+ 'dummy_alt' : '"Disqus"-Dummy',
+ 'txt_info' : 'Two clicks for more privacy: The Disqus button will be enabled once you click here. Activating the button already sends data to Disqus – see i.',
+ 'txt_off' : 'not connected to Disqus',
+ 'txt_on' : 'connected to Disqus',
+ 'perma_option' : true,
+ 'display_name' : 'Disqus',
+ 'referrer_track' : '',
+ 'shortname' : '',
+ 'count' : 'comments',
+ 'onclick' : null,
+ 'button' : function (options, uri, settings) {
+ var shortname = options.shortname || window.disqus_shortname || '';
+ var $code;
+ if (settings.layout === 'line') {
+ $code = $('