/***********************
BD SHARE PLUGIN
***********************/
(function($) {
$.fn.BDShare = function(options) {
	//Default settings
	$.fn.BDShare.defaults = {
		email:true,
		facebook:true,
		twitter:true,
		shareLink: location.href,
		shareTitle: document.title,
		urlShortener: true,
		emailSubject: "Somebody Shared a Webpage With You!"
	};
	
	//Defaults are Above
   	var settings = $.extend({}, $.fn.BDShare.defaults, options);
	
	return this.each(function() {
		//Define the share button and set up the basic html structure
		var shareBtn = $(this);	
		shareBtn.wrap("<span class='shareWrap'/>").after("<div class='shareLayer'/>");
		shareBtn.next().append("<span class='shareArrow'/>");
		//Get bit.ly url if called for
		if(settings.urlShortener){
			$.getJSON("http://api.bit.ly/v3/shorten?login=billupsdesign&apiKey=R_8671f057c334f858705c66e6c4e5d4e6&longUrl="+escape(settings.shareLink)+"&format=json&callback=?", 
			function(data,textStatus){
				
				settings.shareLink = data.data.url;
				
				//Now that the AJAX is back we add share links
				if(settings.facebook){
					shareBtn.next().append("<a href='http://www.facebook.com/sharer.php?u="+settings.shareLink+"&t="+settings.shareTitle+"'><img src='images/facebook_16.png'/> Share on Facebook</a>");
				}
				if(settings.twitter){
					shareBtn.next().append("<a href='http://twitter.com/home?status="+settings.shareLink+"'><img src='images/twitter_16.png'/> Post to Twitter</a>");
				}
				if(settings.email){
					shareBtn.next().append("<a href='javascript:;' class='btnShareEmail'><img src='images/email_16.png'/> Email to a Friend</a>");
				}
				
			});
		} else{
			//Add Share Links
			if(settings.facebook){
				shareBtn.next().append("<a href='javascript:;'><img src='images/facebook_16.png'/> Facebook</a>");
			}
			if(settings.twitter){
				shareBtn.next().append("<a href='http://twitter.com/home?status="+settings.shareLink+"'><img src='images/twitter_16.png'/> Twitter</a>");
			}
			if(settings.email){
				shareBtn.next().append("<a href='javascript:;' class='btnShareEmail'><img src='images/email_16.png'/> Email</a>");
			}
		}
				
		shareBtn.click(function(){
			shareBtn.next().toggle();
			shareBtn.toggleClass('on');
		});
		
		$(".btnShareEmail").live('click',function(){
			$(this).parent().hide();
			$("body").append("<div class='shareEmailLayer'>"+
				"<form action='emailClass.php' class='shareEmailForm' type='post'>"+
					"<p>"+
						"<label for='from'>From Email</label>"+
						"<input type='text' id='from' name='from' value=''/>"+
					"</p>"+
					"<p>"+
						"<label for='to'>To Email</label>"+
						"<input type='text' id='to' name='to' value=''/>"+
					"</p>"+
					"<p>"+
						"<label for='message'>Message</label>"+
						"<textarea id='message' name='message'></textarea>"+
					"</p>"+
					"<p>"+
						"<input type='submit' value='submit' id='shareSubmit'/>"+
						"&nbsp;&nbsp;&nbsp;<a href='javascript:;' class='cancelShareEmail'>cancel</a>"+
					"</p>"+
				"</form>"+
			"</div>");
		});
		$(".cancelShareEmail").live('click',function(){
			$(this).parent().parent().parent().remove();
		});
		$(".shareEmailForm").live('submit', function(event){
			//Basic Validation of To and From Fields
			if(/\w{1,}[@][\w\-]{1,}([.]([\w\-]{1,})){1,3}$/.test($(this).find('#from').val())==false){
				event.preventDefault();
				$(this).find('#from').after("<span class='error fromError'>Please enter a valid email address</span>");
			}else{
				$(".fromError").remove();
			}
			if(/\w{1,}[@][\w\-]{1,}([.]([\w\-]{1,})){1,3}$/.test($(this).find('#to').val())==false){
				event.preventDefault();
				$(this).find('#to').after("<span class='error toError'>Please enter a valid email address</span>");
			}else{
				$(".toError").remove();
			}
			
			if($(this).find(".toError").size() == 0){
				event.preventDefault();
				var emailForm = $(this);
				emailForm.find("#message").val(settings.shareLink+"\n"+emailForm.find("#message").val());
				var params = $(this).serialize();
				//All fields validate, lets send the ajax request
				$.ajax({
					url: "emailClass.php",
					data: params+"&subject="+settings.emailSubject,
					type: 'POST',
					dataType: 'json',
					success: function(data){
						emailForm.html("<span class='shareEmailSuccess'>Success! Your Email was Sent</span>");
					}
				});
			}
		});		
	});
};
})(jQuery);
