
(function($){
	$.fn.jsocial = function(custom) {
var defaults = {
		  	highlight: true,
			buttons: "facebook,twitter,linkedin,flickr,youtube,rss",
			imagedir: "png/social/",
			imageextension: "png",
			blanktarget: true,
			shorturl: ""
		  };
var settings 		= $.extend({}, defaults, custom);
var jsocial 		= this;

		// Set target attribute
var target = settings.blanktarget ? 'target="_blank"' : '';
		
		// Write social icons to browser
var buttons = settings.buttons.split(",");
		for ( key in buttons ) {
			var name = buttons[key];
			var url = jformat[buttons[key]];
			if(url != undefined){
				url = url.replace("{TITLE}"			, urlencode(jsocial_title()));
				url = url.replace("{URL}"			, urlencode(jsocial_url()));
				url = url.replace("{SHORTURL}"		, urlencode(jsocial_short_url()));
				url = url.replace("{KEYWORDS}"		, urlencode(jsocial_metakeywords()));
				url = url.replace("{DESCRIPTION}"	, urlencode(jsocial_metadescription()));
				var sociallink = '<a ' + target + ' href="' + url + '" class="jsocial_button" title="' + name + '"><img border="0" src="' + settings.imagedir + name + '.' + settings.imageextension + '" alt="' + name + '" /></a>';
				this.append(sociallink);
			}
			
		}
		
		// If highlight bind mousehover and mouseout
		if(settings.highlight){
			// Trigger focus animation
			this.find(".jsocial_button").bind("mouseover", function(){
				$(this).siblings().stop().animate({"opacity": 0.2}, 500);
			});
			
			this.find(".jsocial_button").bind("mouseout", function(){
				$(this).siblings().stop().animate({"opacity": 1}, 500);
			});
		}
		
		// Meta keywords
var jsocial_keywords;
		function jsocial_metakeywords() { 
			if(jsocial_description == undefined){
				metaCollection = document.getElementsByTagName('meta'); 
				for (i=0;i<metaCollection.length;i++) { 
					nameAttribute = metaCollection[i].name.search(/keywords/);
					if (nameAttribute!= -1) { 
						jsocial_keywords = metaCollection[i].content;
						return jsocial_keywords; 
					} 
				} 
			}else{
				return jsocial_keywords;
			}
		} 
		
		// Meta description
		var jsocial_description;
		function jsocial_metadescription() { 
			if(jsocial_description == undefined){
				metaCollection = document.getElementsByTagName('meta'); 
				for (i=0;i<metaCollection.length;i++) { 
					nameAttribute = metaCollection[i].name.search(/description/);
					if (nameAttribute!= -1) { 
						jsocial_description = metaCollection[i].content;
						return jsocial_description; 
					} 
				} 
			}else{
				return jsocial_description;
			}
		} 
		
		// Title
		function jsocial_title(){
			return document.title;
		}
		
		// Url
		function jsocial_url(){
			var temp = document.location.href;
			return temp;
		}
		
		// Short url
		function jsocial_short_url(){
			if(settings.shorturl == ""){
				return jsocial_url();
			}else{
				return settings.shorturl;
			}
		}
		
		// Encode url
		function urlencode(string) {
			if(string == undefined){
				return "";
			}
			return string.replace(/\s/g, '%20').replace('+', '%2B').replace('/%20/g', '+').replace('*', '%2A').replace('/', '%2F').replace('@', '%40');
		}
		
		function highlight(element, state){
			
			if(state){
				element.style.opacity = 1;
				element.childNodes[0].style.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity=100);";
			}else{
				element.style.opacity = highlight_opacity/100;
				element.style.filter = "alpha(opacity=20)";
				element.childNodes[0].style.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity=" + highlight_opacity + ");";
			}
		}
		
		// returns the jQuery object to allow for chainability.
		return this;
	}
	
})(jQuery);

// Format list
var jformat				= Array();
jformat['linkedin'] 	= "http://www.ripleyhampers.co.uk/Hampers_Blog/";
jformat['facebook'] 	= "http://www.facebook.com/?sk=messages&ref=mb#!/pages/Ripley-Hampers/176852545660113";
jformat['twitter'] 		= "http://twitter.com/ripleyhampers";
jformat['flickr'] 		= "http://www.ripleyhampers.co.uk/Hampers_Blog/";
jformat['youtube'] 		= "http://www.youtube.com/user/ripleyhampers";
jformat['rss'] 			= "http://www.ripleyhampers.co.uk/Hampers_Blog/?feed=rss2#";


