$(function () {
	if (!JSON || !JSON.stringify)
		$.getScript('/Javascript/JSON2.js');

	var cookie = $.cookie('socialMedia');
	if (cookie)
		$.cookie('socialMedia', cookie, { path: '/', expires: 365 });
	var settings = $.parseJSON(cookie);
	if (!settings)
		settings = {};

	var $target = $('.main:not(.front)');
	var div = $('<form class="socialMedia"></form>');
	if ($target.length == 0)
		$('body').prepend(div);
	else
		$target.append(div);

	function enableFacebook(e) {
		e.preventDefault();
		$('.socialMedia .facebook').append('<div class="provided"><div class="fb-like" data-href="' + location.href + '" data-send="true" data-layout="button_count" data-show-faces="false" data-colorscheme="light"/></div>');
		(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/en_US/all.js#xfbml=1";
			fjs.parentNode.insertBefore(js, fjs);
		} (document, 'script', 'facebook-jssdk'));
		$(this).val('Disable').unbind('click', enableFacebook).click(disableFacebook);
		settings.facebook = true;
		$.cookie('socialMedia', JSON.stringify(settings), { path: '/', expires: 365 });
	}

	function disableFacebook(e) {
		e.preventDefault();
		$('.socialMedia .facebook .provided, #facebook-jssdk').remove();
		$(this).val('Enable').unbind('click', disableFacebook).click(enableFacebook);
		settings.facebook = null;
		$.cookie('socialMedia', JSON.stringify(settings), { path: '/' });
	}

	function removeFacebook(e) {
		e.preventDefault();
		$('.socialMedia .facebook').remove();
		settings.facebook = false;
		$.cookie('socialMedia', JSON.stringify(settings), { path: '/' });
	}

	if (settings.facebook != false) {
		var divFacebook = $('<div class="facebook provider"/>');
		var divControl = $('<div class="control"/>').appendTo(divFacebook);
		$(document.createElement('a')).attr({ 'title': 'Control integration with Facebook.' }).appendTo(divControl);
		var divActions = $(document.createElement('div')).addClass('actions');
		if (settings.facebook == null)
			$('<input type="button" value="Enable"/>').appendTo(divActions).click(enableFacebook);
		else
			$('<input type="button" value="Disable"/>').appendTo(divActions).click(disableFacebook);
		$('<input type="button" value="Remove"/>').appendTo(divActions).click(removeFacebook);
		divControl.append(divActions);
		div.append(divFacebook);

		if (settings.facebook) {
			divFacebook.append('<div class="provided"><div class="fb-like" data-href="' + location.href + '" data-send="true" data-layout="button_count" data-show-faces="false" data-colorscheme="light"></div></div>');
			(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/en_US/all.js#xfbml=1";
				fjs.parentNode.insertBefore(js, fjs);
			} (document, 'script', 'facebook-jssdk'));
		}
	}

	function enableTwitter(e) {
		e.preventDefault();
		$('.socialMedia .twitter').append('<div class="provided"><a href="https://twitter.com/share" class="twitter-share-button" data-count="horizontal">Tweet</a></div>');
		$.getScript('//platform.twitter.com/widgets.js');
		$(this).val('Disable').unbind('click', enableFacebook).click(disableTwitter);
		settings.twitter = true;
		$.cookie('socialMedia', JSON.stringify(settings), { path: '/' });
	}

	function disableTwitter(e) {
		e.preventDefault();
		$('.socialMedia .twitter .provided').remove();
		$(this).val('Enable').unbind('click', disableFacebook).click(enableTwitter);
		settings.twitter = null;
		$.cookie('socialMedia', JSON.stringify(settings), { path: '/' });
	}

	function removeTwitter(e) {
		e.preventDefault();
		$('.socialMedia .twitter').remove();
		settings.twitter = false;
		$.cookie('socialMedia', JSON.stringify(settings), { path: '/' });
	}

	if (settings.twitter != false) {
		var divTwitter = $('<div class="twitter provider"/>');
		var divControl = $('<div class="control"/>').appendTo(divTwitter);
		$(document.createElement('a')).attr({ 'title': 'Control integration with Twitter.' }).appendTo(divControl);
		var divActions = $(document.createElement('div')).addClass('actions');
		if (settings.twitter == null)
			$('<input type="button" value="Enable"/>').appendTo(divActions).click(enableTwitter);
		else
			$('<input type="button" value="Disable"/>').appendTo(divActions).click(disableTwitter);
		$('<input type="button" value="Remove"/>').appendTo(divActions).click(removeTwitter);
		divControl.append(divActions);
		div.append(divTwitter);

		if (settings.twitter) {
			divTwitter.append('<div class="provided"><a href="https://twitter.com/share" class="twitter-share-button" data-count="horizontal">Tweet</a></div>');
			$.getScript('//platform.twitter.com/widgets.js');
		}
	}

	function enableGooglePlus(e) {
		e.preventDefault();
		$('.socialMedia .googlePlus').append('<div class="provided"><div class="g-plusone" data-size="medium"></div></div>');
		$.getScript('//apis.google.com/js/plusone.js');
		$(this).val('Disable').unbind('click', enableGooglePlus).click(disableGooglePlus);
		settings.googlePlus = true;
		$.cookie('socialMedia', JSON.stringify(settings), { path: '/' });
	}

	function disableGooglePlus(e) {
		e.preventDefault();
		$('.socialMedia .googlePlus .provided').remove();
		$(this).val('Enable').unbind('click', disableGooglePlus).click(enableGooglePlus);
		settings.googlePlus = null;
		$.cookie('socialMedia', JSON.stringify(settings), { path: '/' });
	}

	function removeGooglePlus(e) {
		e.preventDefault();
		$('.socialMedia .googlePlus').remove();
		settings.googlePlus = false;
		$.cookie('socialMedia', JSON.stringify(settings), { path: '/' });
	}

	if (settings.googlePlus != false) {
		var divGooglePlus = $('<div class="googlePlus provider"/>');
		var divControl = $('<div class="control"/>').appendTo(divGooglePlus);
		$(document.createElement('a')).attr({ 'title': 'Control integration with GooglePlus.' }).appendTo(divControl);
		var divActions = $(document.createElement('div')).addClass('actions');
		if (settings.googlePlus == null)
			$('<input type="button" value="Enable"/>').appendTo(divActions).click(enableGooglePlus);
		else
			$('<input type="button" value="Disable"/>').appendTo(divActions).click(disableGooglePlus);
		$('<input type="button" value="Remove"/>').appendTo(divActions).click(removeGooglePlus);
		divControl.append(divActions);
		div.append(divGooglePlus);

		if (settings.googlePlus) {
			divGooglePlus.append('<div class="provided"><div class="g-plusone" data-size="medium"></div></div>');
			$.getScript('//apis.google.com/js/plusone.js');
		}
	}

	function enableAddthis(e) {
		e.preventDefault();
		//$('.socialMedia .addthis').append('<div class="provided"><div class="addthis_toolbox addthis_default_style"><a class="addthis_counter addthis_pill_style"></a></div></div>');
		//$('head').append('<script type="javascript" src="http://s7.addthis.com/js/250/addthis_widget.js#pubid=ra-4eb496a32db5d11e"></script>');
		//$.getScript('http://s7.addthis.com/js/250/addthis_widget.js#pubid=ra-4eb496a32db5d11e');
		//$(this).val('Disable').unbind('click', enableAddthis).click(disableAddthis);
		settings.addthis = true;
		$.cookie('socialMedia', JSON.stringify(settings), { path: '/' });
		location.reload();
	}

	function disableAddthis(e) {
		e.preventDefault();
		$('.socialMedia .addthis .provided').remove();
		window._ate = null;
		$(this).val('Enable').unbind('click', disableAddthis).click(enableAddthis);
		settings.addthis = null;
		$.cookie('socialMedia', JSON.stringify(settings), { path: '/' });
	}

	function removeAddthis(e) {
		e.preventDefault();
		$('.socialMedia .addthis').remove();
		settings.addthis = false;
		$.cookie('socialMedia', JSON.stringify(settings), { path: '/' });
	}

	if (settings.addthis != false && $target.length > 0) {
		var divGooglePlus = $('<div class="addthis provider"/>');
		var divControl = $('<div class="control"/>').appendTo(divGooglePlus);
		$(document.createElement('a')).addClass('icon').attr({ 'title': 'Control integration with various sharing servies via Addthis.' }).appendTo(divControl);
		var divActions = $(document.createElement('div')).addClass('actions');
		if (settings.addthis == null)
			$('<input type="button" value="Enable"/>').appendTo(divActions).click(enableAddthis);
		else
			$('<input type="button" value="Disable"/>').appendTo(divActions).click(disableAddthis);
		$('<input type="button" value="Remove"/>').appendTo(divActions).click(removeAddthis);
		divControl.append(divActions);
		div.append(divGooglePlus);

		if (settings.addthis) {
			divGooglePlus.append('<div class="provided"><div class="addthis_toolbox addthis_default_style "><a class="addthis_counter addthis_pill_style"></a></div></div>');
			$.getScript('http://s7.addthis.com/js/250/addthis_widget.js#pubid=ra-4eb496a32db5d11e');
		}
	}
});




