/*
 *  Sharrre.com - Make your sharing widget!
 *  Version: beta 1.3.3 
 *  Author: Julien Hany
 *  License: MIT http://en.wikipedia.org/wiki/MIT_License or GPLv2 http://en.wikipedia.org/wiki/GNU_General_Public_License
 */

;(function ( $, window, document, undefined ) {

	/* Defaults
	================================================== */
	var pluginName = 'sharrre',
	defaults = {
		className: 'sharrre',
		share: {
			googlePlus: false,
			facebook: false,
			twitter: false,
			digg: false,
			delicious: false,
			stumbleupon: false,
			linkedin: false,
			pinterest: false
		},
		shareTotal: 0,
		template: '',
		title: '',
		url: document.location.href,
		text: document.title,
		urlCurl: 'sharrre.php?',  //PHP script for google plus...
		count: {}, //counter by social network
		total: 0,  //total of sharing
		shorterTotal: true, //show total by k or M when number is to big
		enableHover: true, //disable if you want to personalize hover event with callback
		enableCounter: true, //disable if you just want use buttons
		enableTracking: false, //tracking with google analitycs
		lang: '',
		imageUrl: '',
		hover: function(){}, //personalize hover event with this callback function
		hide: function(){}, //personalize hide event with this callback function
		click: function(){}, //personalize click event with this callback function
		render: function(){}, //personalize render event with this callback function
		buttons: {  //settings for buttons
			googlePlus : {  //http://www.google.com/webmasters/+1/button/
				url: '',  //if you need to personnalize button url
				urlCount: false,  //if you want to use personnalize button url on global counter
				size: 'medium',
				lang: 'en-US',
				annotation: ''
			},
			facebook: { //http://developers.facebook.com/docs/reference/plugins/like/
				url: '',  //if you need to personalize url button
				urlCount: false,  //if you want to use personnalize button url on global counter
				action: 'like',
				layout: 'button_count',
				width: '',
				send: 'false',
				faces: 'false',
				colorscheme: '',
				font: '',
				lang: 'en_US'
			},
			twitter: {  //http://twitter.com/about/resources/tweetbutton
				url: '',  //if you need to personalize url button
				urlCount: false,  //if you want to use personnalize button url on global counter
				count: 'horizontal',
				hashtags: '',
				via: '',
				related: '',
				lang: 'en'
			},
			digg: { //http://about.digg.com/downloads/button/smart
				url: '',  //if you need to personalize url button
				urlCount: false,  //if you want to use personnalize button url on global counter
				type: 'DiggCompact'
			},
			delicious: {
				url: '',  //if you need to personalize url button
				urlCount: false,  //if you want to use personnalize button url on global counter
				size: 'medium' //medium or tall
			},
			stumbleupon: {  //http://www.stumbleupon.com/badges/
				url: '',  //if you need to personalize url button
				urlCount: false,  //if you want to use personnalize button url on global counter
				layout: '1'
			},
			linkedin: {  //http://developer.linkedin.com/plugins/share-button
				url: '',  //if you need to personalize url button
				urlCount: false,  //if you want to use personnalize button url on global counter
				counter: ''
			},
			pinterest: { //http://pinterest.com/about/goodies/
				url: '',  //if you need to personalize url button
				media: '',
				description: '',
				layout: 'horizontal'
			}
		}
	},
	/* Json URL to get count number
	================================================== */
	urlJson = {
		googlePlus: "",
		//new FQL method by Sire
		facebook: "https://graph.facebook.com/fql?q=SELECT%20url,%20normalized_url,%20share_count,%20like_count,%20comment_count,%20total_count,commentsbox_count,%20comments_fbid,%20click_count%20FROM%20link_stat%20WHERE%20url=%27{url}%27&callback=?",
		//old method facebook: "http://graph.facebook.com/?id={url}&callback=?",
		//facebook : "http://api.ak.facebook.com/restserver.php?v=1.0&method=links.getStats&urls={url}&format=json"
		twitter: CloudFwOp.protocol + "://opensharecount.com/count.json?url={url}&callback=?",
		digg: CloudFwOp.protocol + "://services.digg.com/2.0/story.getInfo?links={url}&type=javascript&callback=?",
		delicious: CloudFwOp.protocol + '://feeds.delicious.com/v2/json/urlinfo/data?url={url}&callback=?',
		//stumbleupon: "http://www.stumbleupon.com/services/1.01/badge.getinfo?url={url}&format=jsonp&callback=?",
		stumbleupon: "",
		linkedin: CloudFwOp.protocol + "://www.linkedin.com/countserv/count/share?format=jsonp&url={url}&callback=?",
		pinterest: ""
	},
	/* Load share buttons asynchronously
	================================================== */
	loadButton = {
		googlePlus : function(self){
			var sett = self.options.buttons.googlePlus;
			var lang = self.options.lang != '' ? self.options.lang : self.options.buttons.googlePlus.lang;
			//$(self.element).find('.buttons').append('<div class="button googleplus"><g:plusone size="'+self.options.buttons.googlePlus.size+'" href="'+self.options.url+'"></g:plusone></div>');
			$(self.element).find('.buttons').append('<div class="button googleplus"><div class="g-plusone" data-size="'+sett.size+'" data-href="'+(sett.url !== '' ? sett.url : self.options.url)+'" data-annotation="'+sett.annotation+'"></div></div>');
			window.___gcfg = {
				lang: lang
			};
			var loading = 0;
			if(typeof gapi === 'undefined' && loading == 0){
				loading = 1;
				(function() {
					var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
					po.src = '//apis.google.com/js/plusone.js';
					var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
				})();
			}
			else{
				gapi.plusone.go();
			}
		},
		facebook : function(self){
			var sett = self.options.buttons.facebook;
			var lang = self.options.lang != '' ? self.options.lang : sett.lang; 
			$(self.element).find('.buttons').append('<div class="button facebook"><div id="fb-root"></div><div class="fb-like" data-href="'+(sett.url !== '' ? sett.url : self.options.url)+'" data-send="'+sett.send+'" data-layout="'+sett.layout+'" data-width="'+sett.width+'" data-show-faces="'+sett.faces+'" data-action="'+sett.action+'" data-colorscheme="'+sett.colorscheme+'" data-font="'+sett.font+'" data-via="'+sett.via+'"></div></div>');
			var loading = 0;
			if(typeof FB === 'undefined' && loading == 0){
				loading = 1;
				(function(d, s, id) {
					var js, fjs = d.getElementsByTagName(s)[0];
					if (d.getElementById(id)) {return;}
					js = d.createElement(s); js.id = id;
					js.src = '//connect.facebook.net/'+lang+'/all.js#xfbml=1';
					fjs.parentNode.insertBefore(js, fjs);
				}(document, 'script', 'facebook-jssdk'));
			}
			else{
				FB.XFBML.parse();
			}
		},
		twitter : function(self){
			var sett = self.options.buttons.twitter;
			var lang = self.options.lang != '' ? self.options.lang : sett.lang; 

			$(self.element).find('.buttons').append('<div class="button twitter"><a href="https://twitter.com/share" class="twitter-share-button" data-url="'+(sett.url !== '' ? sett.url : self.options.url)+'" data-count="'+sett.count+'" data-text="'+self.options.text+'" data-via="'+sett.via+'" data-hashtags="'+sett.hashtags+'" data-related="'+sett.related+'" data-lang="'+lang+'">Tweet</a></div>');
			var loading = 0;
			if(typeof twttr === 'undefined' && loading == 0){
				loading = 1;
				(function() {
					var twitterScriptTag = document.createElement('script');
					twitterScriptTag.type = 'text/javascript';
					twitterScriptTag.async = true;
					twitterScriptTag.src = '//platform.twitter.com/widgets.js';
					var s = document.getElementsByTagName('script')[0];
					s.parentNode.insertBefore(twitterScriptTag, s);
				})();
			}
			else{
				$.ajax({ url: '//platform.twitter.com/widgets.js', dataType: 'script', cache:true}); //http://stackoverflow.com/q/6536108
			}
		},
		digg : function(self){
			var sett = self.options.buttons.digg;
			$(self.element).find('.buttons').append('<div class="button digg"><a class="DiggThisButton '+sett.type+'" rel="nofollow external" href="http://digg.com/submit?url='+encodeURIComponent((sett.url !== '' ? sett.url : self.options.url))+'"></a></div>');
			var loading = 0;
			if(typeof __DBW === 'undefined' && loading == 0){
				loading = 1;
				(function() {
					var s = document.createElement('SCRIPT'), s1 = document.getElementsByTagName('SCRIPT')[0];
					s.type = 'text/javascript';
					s.async = true;
					s.src = '//widgets.digg.com/buttons.js';
					s1.parentNode.insertBefore(s, s1);
				})();
			}
		},
		delicious : function(self){
			if(self.options.buttons.delicious.size == 'tall'){//tall
				var css = 'width:50px;',
				cssCount = 'height:35px;width:50px;font-size:15px;line-height:35px;',
				cssShare = 'height:18px;line-height:18px;margin-top:3px;';
			}
			else{//medium
				var css = 'width:93px;',
				cssCount = 'float:right;padding:0 3px;height:20px;width:26px;line-height:20px;',
				cssShare = 'float:left;height:20px;line-height:20px;';
			}
			var count = self.shorterTotal(self.options.count.delicious);
			if(typeof count === "undefined"){
				count = 0;
			}
			$(self.element).find('.buttons').append(
			'<div class="button delicious"><div style="'+css+'font:12px Arial,Helvetica,sans-serif;cursor:pointer;color:#666666;display:inline-block;float:none;height:20px;line-height:normal;margin:0;padding:0;text-indent:0;vertical-align:baseline;">'+
			'<div style="'+cssCount+'background-color:#fff;margin-bottom:5px;overflow:hidden;text-align:center;border:1px solid #ccc;border-radius:3px;">'+count+'</div>'+
			'<div style="'+cssShare+'display:block;padding:0;text-align:center;text-decoration:none;width:50px;background-color:#7EACEE;border:1px solid #40679C;border-radius:3px;color:#fff;">'+
			'<img src="http://www.delicious.com/static/img/delicious.small.gif" height="10" width="10" alt="Delicious" /> Add</div></div></div>');
			
			$(self.element).find('.delicious').on('click', function(){
				self.openPopup('delicious');
			});
		},
		stumbleupon : function(self){
			var sett = self.options.buttons.stumbleupon;
			$(self.element).find('.buttons').append('<div class="button stumbleupon"><su:badge layout="'+sett.layout+'" location="'+(sett.url !== '' ? sett.url : self.options.url)+'"></su:badge></div>');
			var loading = 0;
			if(typeof STMBLPN === 'undefined' && loading == 0){
				loading = 1;
				(function() {
					var li = document.createElement('script');li.type = 'text/javascript';li.async = true;
					li.src = '//platform.stumbleupon.com/1/widgets.js'; 
					var s = document.getElementsByTagName('script')[0];s.parentNode.insertBefore(li, s);
				})();
				s = window.setTimeout(function(){
					if(typeof STMBLPN !== 'undefined'){
						STMBLPN.processWidgets();
						clearInterval(s);
					}
				},500);
			}
			else{
				STMBLPN.processWidgets();
			}
		},
		linkedin : function(self){
			var sett = self.options.buttons.linkedin;
			$(self.element).find('.buttons').append('<div class="button linkedin"><script type="in/share" data-url="'+(sett.url !== '' ? sett.url : self.options.url)+'" data-counter="'+sett.counter+'"></script></div>');
			var loading = 0;
			if(typeof window.IN === 'undefined' && loading == 0){
				loading = 1;
				(function() {
					var li = document.createElement('script');li.type = 'text/javascript';li.async = true;
					li.src = '//platform.linkedin.com/in.js'; 
					var s = document.getElementsByTagName('script')[0];s.parentNode.insertBefore(li, s);
				})();
			}
			else{
				window.IN.init();
			}
		},
		pinterest : function(self){
			var sett = self.options.buttons.pinterest;
			$(self.element).find('.buttons').append('<div class="button pinterest"><a href="http://pinterest.com/pin/create/button/?url='+(sett.url !== '' ? sett.url : self.options.url)+'&media='+sett.media+'&description='+sett.description+'" class="pin-it-button" count-layout="'+sett.layout+'">Pin It</a></div>');

			(function() {
				var li = document.createElement('script');li.type = 'text/javascript';li.async = true;
				li.src = '//assets.pinterest.com/js/pinit.js'; 
				var s = document.getElementsByTagName('script')[0];s.parentNode.insertBefore(li, s);
			})();
		}
	},
	/* Tracking for Google Analytics
	================================================== */
	tracking = {
		googlePlus: function(){},
		facebook: function(){
			//console.log('facebook');
			fb = window.setInterval(function(){
				if (typeof FB !== 'undefined') {
					FB.Event.subscribe('edge.create', function(targetUrl) {
						_gaq.push(['_trackSocial', 'facebook', 'like', targetUrl]);
					});
					FB.Event.subscribe('edge.remove', function(targetUrl) {
						_gaq.push(['_trackSocial', 'facebook', 'unlike', targetUrl]);
					});
					FB.Event.subscribe('message.send', function(targetUrl) {
						_gaq.push(['_trackSocial', 'facebook', 'send', targetUrl]);
					});
					//console.log('ok');
					clearInterval(fb);
				}
			},1000);
		},
		twitter: function(){
			//console.log('twitter');
			tw = window.setInterval(function(){
				if (typeof twttr !== 'undefined') {
					twttr.events.bind('tweet', function(event) {
						if (event) {
							_gaq.push(['_trackSocial', 'twitter', 'tweet']);
						}
					});
					//console.log('ok');
					clearInterval(tw);
				}
			},1000);
		},
		digg: function(){
			//if somenone find a solution, mail me !
			/*$(this.element).find('.digg').on('click', function(){
				_gaq.push(['_trackSocial', 'digg', 'add']);
			});*/
		},
		delicious: function(){},
		stumbleupon: function(){},
		linkedin: function(){
			function LinkedInShare() {
				_gaq.push(['_trackSocial', 'linkedin', 'share']);
			}
		},
		pinterest: function(){
			//if somenone find a solution, mail me !
		}
	},
	/* Popup for each social network
	================================================== */
	popup = {
		googlePlus: function(opt){
		var lang = opt.lang != '' ? opt.lang : opt.buttons.googlePlus.lang; 

			window.open("https://plus.google.com/share?hl="+lang+"&url="+encodeURIComponent((opt.buttons.googlePlus.url !== '' ? opt.buttons.googlePlus.url : opt.url)), "", "toolbar=0, status=0, width=900, height=500");
		},
		facebook: function(opt){
			window.open("http://www.facebook.com/sharer/sharer.php?u="+encodeURIComponent((opt.buttons.facebook.url !== '' ? opt.buttons.facebook.url : opt.url))+"&t="+opt.text+"", "", "toolbar=0, status=0, width=900, height=500");
		},
		twitter: function(opt){
			window.open("https://twitter.com/intent/tweet?text="+encodeURIComponent(opt.text)+"&url="+encodeURIComponent((opt.buttons.twitter.url !== '' ? opt.buttons.twitter.url : opt.url))+(opt.buttons.twitter.via !== '' ? '&via='+opt.buttons.twitter.via : ''), "", "toolbar=0, status=0, width=650, height=360");
		},
		digg: function(opt){
			window.open("http://digg.com/tools/diggthis/submit?url="+encodeURIComponent((opt.buttons.digg.url !== '' ? opt.buttons.digg.url : opt.url))+"&title="+opt.text+"&related=true&style=true", "", "toolbar=0, status=0, width=650, height=360");
		},
		delicious: function(opt){
			window.open('http://www.delicious.com/save?v=5&noui&jump=close&url='+encodeURIComponent((opt.buttons.delicious.url !== '' ? opt.buttons.delicious.url : opt.url))+'&title='+opt.text, 'delicious', 'toolbar=no,width=550,height=550');
		},
		stumbleupon: function(opt){
			window.open('http://www.stumbleupon.com/badge/?url='+encodeURIComponent((opt.buttons.delicious.url !== '' ? opt.buttons.delicious.url : opt.url)), 'stumbleupon', 'toolbar=no,width=550,height=550');
		},
		linkedin: function(opt){
			window.open('https://www.linkedin.com/cws/share?url='+encodeURIComponent((opt.buttons.delicious.url !== '' ? opt.buttons.delicious.url : opt.url))+'&token=&isFramed=true', 'linkedin', 'toolbar=no,width=550,height=550');
		},
		pinterest: function(opt){
			window.open('http://pinterest.com/pin/create/button/?url='+encodeURIComponent((opt.buttons.pinterest.url !== '' ? opt.buttons.pinterest.url : opt.url))+'&media='+encodeURIComponent(opt.buttons.pinterest.media)+'&description='+opt.buttons.pinterest.description, 'pinterest', 'toolbar=no,width=700,height=300');
		}
	};

	/* Plugin constructor
	================================================== */
	function Plugin( element, options ) {
		this.element = element;
		
		this.options = $.extend( true, {}, defaults, options);
		this.options.share = options.share; //simple solution to allow order of buttons
		
		this._defaults = defaults;
		this._name = pluginName;
		
		this.init();
	};
	
	/* Initialization method
	================================================== */
	Plugin.prototype.init = function () {
		var self = this;
		if(this.options.urlCurl !== ''){
			urlJson.googlePlus = this.options.urlCurl + 'url={url}&type=googlePlus'; // PHP script for GooglePlus...
			urlJson.stumbleupon = this.options.urlCurl + 'url={url}&type=stumbleupon'; // PHP script for Stumbleupon...
			urlJson.pinterest = this.options.urlCurl + 'url={url}&type=pinterest'; // PHP script for Pinterest...
		}
		$(this.element).addClass(this.options.className); //add class
		
		//HTML5 Custom data
		if(typeof $(this.element).data('title') !== 'undefined'){
			this.options.title = $(this.element).attr('data-title');
		}
		if(typeof $(this.element).data('url') !== 'undefined'){
			this.options.url = $(this.element).data('url');
		}
		if(typeof $(this.element).data('text') !== 'undefined'){
			this.options.text = $(this.element).data('text');
		}
		
		//how many social website have been selected
		$.each(this.options.share, function(name, val) {
			if(val === true){
				self.options.shareTotal ++;
			}
		});
		
		if(self.options.enableCounter === true){  //if for some reason you don't need counter
			//get count of social share that have been selected
			$.each(this.options.share, function(name, val) {
				if(val === true){
					//self.getSocialJson(name);
					try {
						self.getSocialJson(name);
					} catch(e){
					}
				}
			});
		}
		else if(self.options.template !== ''){  //for personalized button (with template)
			this.options.render(this, this.options);
		}
		else{ // if you want to use official button like example 3 or 5
			this.loadButtons();
		}
		
		//add hover event
		$(this.element).hover(function(){
			//load social button if enable and 1 time
			if($(this).find('.buttons').length === 0 && self.options.enableHover === true){
				self.loadButtons();
			}
			self.options.hover(self, self.options);
		}, function(){
			self.options.hide(self, self.options);
		});
		
		//click event
		$(this.element).click(function(){
			self.options.click(self, self.options);
			return false;
		});
	};
	
	/* loadButtons methode
	================================================== */
	Plugin.prototype.loadButtons = function () {
		var self = this;
		$(this.element).append('<div class="buttons"></div>');
		$.each(self.options.share, function(name, val) {
			if(val == true){
				loadButton[name](self);
				if(self.options.enableTracking === true){ //add tracking
					tracking[name]();
				}
			}
		});
	};
	
	/* getSocialJson methode
	================================================== */
	Plugin.prototype.getSocialJson = function (name) {
		var self = this,
		count = 0,
		url = urlJson[name].replace('{url}', encodeURIComponent(this.options.url));
		if(this.options.buttons[name].urlCount === true && this.options.buttons[name].url !== ''){
			url = urlJson[name].replace('{url}', this.options.buttons[name].url);
		}
		//console.log('name : ' + name + ' - url : '+url); //debug
		if(url != '' && self.options.urlCurl !== ''){  //urlCurl = '' if you don't want to used PHP script but used social button
			$.getJSON(url, function(json){
				if(typeof json.count !== "undefined"){  //GooglePlus, Stumbleupon, Twitter and Digg
					var temp = json.count + '';
					temp = temp.replace('\u00c2\u00a0', '');  //remove google plus special chars
					count += parseInt(temp, 10);
				}
				//get the FB total count (shares, likes and more)
				else if(json.data && json.data.length > 0 && typeof json.data[0].total_count !== "undefined"){ //Facebook total count
					count += parseInt(json.data[0].total_count, 10);
				}     
				else if(typeof json.shares !== "undefined"){  //Facebook
				 count += parseInt(json.shares, 10);
				}
				else if(typeof json[0] !== "undefined"){  //Delicious
					count += parseInt(json[0].total_posts, 10);
				}
				else if(typeof json[0] !== "undefined"){  //Stumbleupon
				}
				self.options.count[name] = count;
				self.options.total += count;
				self.renderer();
				self.rendererPerso();
				//console.log(json); //debug
			})
			.error(function() { 
				self.options.count[name] = 0;
				self.rendererPerso();
			 });
		}
		else{
			self.renderer();
			self.options.count[name] = 0;
			self.rendererPerso();
		}
	};
	
	/* launch render methode
	================================================== */
	Plugin.prototype.rendererPerso = function () {
		//check if this is the last social website to launch render
		var shareCount = 0;
		for (e in this.options.count) { shareCount++; }
		if(shareCount === this.options.shareTotal){
			this.options.render(this, this.options);
		}
	};
	
	/* render methode
	================================================== */
	Plugin.prototype.renderer = function () {
		var total = this.options.total,
		template = this.options.template;
		if(this.options.shorterTotal === true){  //format number like 1.2k or 5M
			total = this.shorterTotal(total);
		}
		
		if(template !== ''){  //if there is a template
			template = template.replace('{total}', total);

			if (this.options.title !== '')
				template = template.replace('{title}', this.options.title);

			$(this.element).html(template);
		}
		else{ //template by defaults
			$(this.element).html(
														'<div class="box"><a class="count" href="#">' + total + '</a>' + 
														(this.options.title !== '' ? '<a class="share" href="#">' + this.options.title + '</a>' : '') +
														'</div>'
													);
		}
	};
	
	/* format total numbers like 1.2k or 5M
	================================================== */
	Plugin.prototype.shorterTotal = function (num) {
		if (num >= 1e6){
			num = (num / 1e6).toFixed(2) + "M"
		} else if (num >= 1e3){ 
			num = (num / 1e3).toFixed(1) + "k"
		}
		return num;
	};
	
	/* Methode for open popup
	================================================== */
	Plugin.prototype.openPopup = function (site) {
		popup[site](this.options);  //open
		if(this.options.enableTracking === true){ //tracking!
			var tracking = {
				googlePlus: {site: 'Google', action: '+1'},
				facebook: {site: 'facebook', action: 'like'},
				twitter: {site: 'twitter', action: 'tweet'},
				digg: {site: 'digg', action: 'add'},
				delicious: {site: 'delicious', action: 'add'},
				stumbleupon: {site: 'stumbleupon', action: 'add'},
				linkedin: {site: 'linkedin', action: 'share'},
				pinterest: {site: 'pinterest', action: 'pin'}
			};
			_gaq.push(['_trackSocial', tracking[site].site, tracking[site].action]);
		}
	};
	
	/* Methode for add +1 to a counter
	================================================== */
	Plugin.prototype.simulateClick = function () {
		var html = $(this.element).html();
		$(this.element).html(html.replace(this.options.total, this.options.total+1));
	};
	
	/* Methode for add +1 to a counter
	================================================== */
	Plugin.prototype.update = function (url, text) {
		if(url !== ''){
			this.options.url = url;
		}
		if(text !== ''){
			this.options.text = text;
		}
	};

	/* A really lightweight plugin wrapper around the constructor, preventing against multiple instantiations
	================================================== */
	$.fn[pluginName] = function ( options ) {
		var args = arguments;
		if (options === undefined || typeof options === 'object') {
			return this.each(function () {
				if (!$.data(this, 'plugin_' + pluginName)) {
					$.data(this, 'plugin_' + pluginName, new Plugin( this, options ));
				}
			});
		} else if (typeof options === 'string' && options[0] !== '_' && options !== 'init') {
			return this.each(function () {
				var instance = $.data(this, 'plugin_' + pluginName);
				if (instance instanceof Plugin && typeof instance[options] === 'function') {
					instance[options].apply( instance, Array.prototype.slice.call( args, 1 ) );
				}
			});
		}
	};
})(jQuery, window, document);

jQuery(document).ready(function(){

	var template_scheme = '';
		template_scheme	+=	'<div class="ui--sharrre-box">';
		template_scheme += '	<h5><a class="ui--sharrre-count" href="#">{total}</a></h5>';
		template_scheme += '	<a class="btn {button_class} btn-block btn-small" href="#">{title}</a>';
		template_scheme += '</div>';

	/** Twitter */
	jQuery('.ui--sharrre-twitter').sharrre({
		share: {
			twitter: true
		},
		enableHover: false,
		enableTracking: (typeof _gaq == 'object'),
		click: function(api, options){
			api.simulateClick();
			api.openPopup('twitter');
			return false;
		},
		template: template_scheme.replace('{button_class}', 'btn-twitter'),
		urlCurl: CloudFwOp.ajaxUrl + '?action=cloudfw_sharrre_json&'
	});

	/** Facebook */
	jQuery('.ui--sharrre-facebook').sharrre({
		share: {
			facebook: true
		},
		enableHover: false,
		enableTracking: (typeof _gaq == 'object'),
		click: function(api, options){
			api.simulateClick();
			api.openPopup('facebook');
			return false;
		},
		template: template_scheme.replace('{button_class}', 'btn-facebook'),
		lang: CloudFwOp.lang != '' ? CloudFwOp.lang.replace('-', '_') : null,
		urlCurl: CloudFwOp.ajaxUrl + '?action=cloudfw_sharrre_json&'
	});

	/** Google Plus */
	jQuery('.ui--sharrre-googleplus').sharrre({
		share: {
			googlePlus: true
		},
		enableHover: false,
		enableTracking: (typeof _gaq == 'object'),
		click: function(api, options){
			api.simulateClick();
			api.openPopup('googlePlus');
			return false;
		},
		template: template_scheme.replace('{button_class}', 'btn-googleplus'),
		lang: CloudFwOp.lang.replace('_', '-'),
		urlCurl: CloudFwOp.ajaxUrl + '?action=cloudfw_sharrre_json&'
	});

	/** LinkedIn */
	jQuery('.ui--sharrre-linkedin').sharrre({
		share: {
			linkedin: true
		},
		enableHover: false,
		enableTracking: (typeof _gaq == 'object'),
		click: function(api, options){
			api.simulateClick();
			api.openPopup('linkedin');
			return false;
		},
		template: template_scheme.replace('{button_class}', 'btn-linkedin'),
		urlCurl: CloudFwOp.ajaxUrl + '?action=cloudfw_sharrre_json&'
	});

	/** Pinterest */
	jQuery('.ui--sharrre-pinterest').each(function(){
		var that = jQuery(this); 
		that.sharrre({
			share: {
				pinterest: true
			},
			enableHover: false,
			enableTracking: (typeof _gaq == 'object'),
			click: function(api, options){
				api.simulateClick();
				api.openPopup('pinterest');
				return false;
			},
			buttons: {
				pinterest: {
					media: that.attr('data-featured-image')
				}
			},
			template: template_scheme.replace('{button_class}', 'btn-pinterest'),
			urlCurl: CloudFwOp.ajaxUrl + '?action=cloudfw_sharrre_json&'
		});
	});

});