/*
	Plugin: jquery.sharebar
	Author: John Dodd  TheBarJ.com
	Written: 7/2011
	
	Used to add Social Network sharing to Bar-J Websites.
*/
(function($){  
     
	$.fn.shareBar = function(options, callback ) {  
          
     	var defaults = {
		  	email 			: true,
			email_logo		: 'http://thebarj.com/barj/images/table_background_contact_us.gif',
			top_message		: '',
			offsetTop       : '-5px',
			offsetLeft      : '-5px',
			preview			: null,
			facebook 		: true,
			fb_app_id		: '',
			ajax_gif		: 'http://thebarj.com/images/ajax-loader.gif',
			ajax_gif_big	: 'http://thebarj.com/images/ajax-loader-fff-big-circle.gif', 
			twitter			: false,
			printMe    		: false,
			printDiv		: '',
			fbName			: 'The Bar-J',
			fbLink			: 'http://thebarj.com/index.php',
			fbPic			: 'http://thebarj.com/images/bar-j_email_header.jpg',
			fbCapt			: 'This is The Bar-J',
			fbDesc			: '',
			fbMsg			: '',
			subject			: 'Check out this cool website',
			hoverColor		: '#fff',
			showLinkText	: false,
			use_overlay		: false
	 	}; 
      var counter=0;    
      var options = $.extend(defaults, options);  
     
      return this.each(function() {
			// Load Style Info
			$('head').append('<style type="text/css">.shareLink { cursor:pointer; float:left; padding:0; padding-right:5px;}.shareIcon {height: 24px;width: 24px;background-image: url(http://thebarj.com/images/share-icons-24x24.png);background-repeat: no-repeat;display: block;float:left;} .linkText {font-family: arial;font-size: 1.5em;padding: 3px 0 0 25px;text-align: left;}.email { background-position: -46px 0px; }.facebook {background-position: 0px 0px;background-repeat: no-repeat;}.twitter { background-position: -23px 0px; }.print { background-position: -69px 0px; }.digg { background-position: -130px 0px; }.rss { background-position: -162px 0px;}.stumbled { background-position: -193px 0px;}.myspace { background-position: -226px 0px; }.flickr { background-position: -259px 0px;}.blogger { background-position: -290px 0px;}.linkedin { background-position: -322px 0px;}.youtube { background-position: -353px 0px;}.google { background-position: -386px 0px;}.delicio { background-position: -418px 0px; }</style>');
			obj = $(this);  
			$(obj).append('<style>.oneColFixCtrHdr #container #header #shareBarHolder #shareDiv .share_toolbar a:hover { text-decoration:underline; color:'+defaults.hoverColor+';}img#shareLoader {z-index:6001; position:absolute;}</style><div id="shareDiv"><div class="share_toolbar"><span id="emailSpan" class="share_toolbar_item" style="display:none;"></span><span id="printSpan" style="display:none;" class="share_toolbar_item"></span><span id="tweetSpan" class="share_toolbar_item" style="display:none;"></span><span id="facebookSpan" class="share_toolbar_item" style="display:none;"></span></div><div id="shareBoxWrapper" style="display:none;"></div></div><div id="hiddenData" style="display:none;"></div>');
			
			$('#shareDiv',obj).css({'font-family':' Arial,Helvetica,sans-serif','font-size':' 12px','margin':'0','z-index':'2001'});
			$('.share_toolbar',obj).css({'clear':' both','height':'32px'});
			$('.share_toolbar a',obj).css({'font-weight':' bold','text-decoration':'none'});
			$('.share_toolbar a:hover',obj).css({'text-decoration':'underline'});
			$('.share_toolbar_item',obj).css({'margin-right':' 8px','float':'left'});
			
			$('#shareDiv .share_toolbar .share_toolbar_item a',obj).css({'color':'#fff'});
			
			$('#emailSpan',obj).hide();
			imageObj = new Image();
			imageObj.src="http://thebarj.com/fancyzoom/ressources/closebox.png";
			$('.share_toolbar a',obj).css({'cursor':'pointer','color':'#fff'}).hide();
			
			if (defaults.facebook) {  
			 	fb_Initialize( defaults.fb_app_id );
			 	setTimeout( function() { facebook(); }, 500 );
			}
			if (defaults.twitter) {  twitter(); }
			if (defaults.printMe) {  printMe(); }
			if (defaults.email) {  email(); }	
			if (!defaults.showLinkText) {
				$('.share_toolbar_item',obj).css({'padding-right':'0px','margin-right':'0','padding-left':'0','margin-left':'0'});
				$('.shareLink',obj).css('padding','0');
				$('.linkText',obj).remove();
			}
			
			function showOverlay(msg) {
				var overlayMessage='';
				if (msg) { overlayMessage=msg; }
				$('#shareOverlay').remove();
				var img=getImage(defaults.ajax_gif_big);
				var t=Math.floor(window.innerHeight/2);
				t -= Math.floor(img.height/2);
				
				$('body').append('<div id="shareOverlay" class="ui-widget-overlay" style="width: '+screen.availwidth+'px; height: '+screen.availHeight+'px; z-index: 1001;"></div>');

				$('#shareOverlay').html('<div id="loaderMessageDiv" style="position:absolute;top:'+t+'px; z-index:5010;"><img id="shareLoader" style="float:left; padding-right:10px;" src="'+defaults.ajax_gif_big+'" /><p id="loadingMessage" style=" color:fff; font-family: verdana;font-size: 30px;margin-left: 70px;margin-top: 10px;position: absolute;text-align: left;width: 500px;">'+overlayMessage+'</p></div>');
			
				counter=0;
				setTimeout( function() { isFbLoaded(); }, 1000 );	
			
			}
			function facebook() {
				var b={};
				b.id='facebookButton';
				b.className='facebook';
				b.text='';
				if (defaults.showLinkText) { b.text='Facebook'; }
				b.hover_color='#fff';
				b.tip='Share this page on Facebook';
				
				$('#facebookSpan',obj).append(addButton(b)).show(); 
				
				$('#facebookSpan',obj).click(function() { 
							
							if (defaults.use_overlay) { 
								showOverlay('Contacting Facebook . . .'); 
							}
							    
							scroll(0,0);
							
							var publish = {
								  method: 'stream.publish',
								  display: 'dialog',
								  message: URLDecode(defaults.fbMsg),
								  name: URLDecode(defaults.fbName),
								  caption: URLDecode(defaults.fbCapt),
								  description: URLDecode(defaults.fbDesc),
								  link: URLDecode(defaults.fbLink),
								  picture: URLDecode(defaults.fbPic),
								  actions: [
									{ name: 'fbrell', link: 'http://fbrell.com/' }
								  ],
								  user_message_prompt: 'Share your thoughts about RELL'
								};
								
								try {
								
									FB.ui(publish, function(response) {  
															$('#shareOverlay').remove(); 
															$('#facebookSpan div.shareIcon').empty();
													}
												);
							 	}
								catch(e) {}
					});
			}
			function isFbLoaded() {
				counter+=1;    
				var idx=$('.fb_dialog');
				if ( (idx.length>0) || (counter>5) ) {
					$('#loaderMessageDiv').hide(); 
				} else {
					setTimeout( function() { isFbLoaded(); }, 1000 );
				}
			}
			function twitter() {
				var b={};
				b.id='twitterButton';
				b.className='twitter';
				b.text='';
				if (defaults.showLinkText) { b.text='Tweet This'; }
				b.hover_color='#fff';
				b.tip='Tweet about this page';
				$('#tweetSpan').append(addButton(b)).click(function() {
										
										$('#tweetSpan div.shareIcon').html('<img id="shareLoader" src="'+defaults.ajax_gif+'" />');
										showOverlay('Contacting Twitter'); 
										var mypage='http://twitter.com/share';
										var myname='tweetWin';
										var w=600;
										var h=300;
										var features='location=no,menubar=no,resizable=no,scrollbars=no,status=no';
										features+=',toolbar=no,modal=yesdirectories=no,status=no';
										openWindow(mypage,myname,w,h,features);
										$('#tweetSpan div.shareIcon').empty();
										$('#shareOverlay').remove();
										
									}).show();
				
			}
			function printMe() {
				
				var b={};
				b.id='printButton';
				b.className='print';
				b.text='';
				if (defaults.showLinkText) { b.text='Print'; }
				b.hover_color='#fff';
				b.tip='Open a Printer-Friemdly version of this page';
				 
				$('#printSpan',obj).append(addButton(b)).show();
				
				/*$('#printSpan').html('<a class="printer_link" id="printLink" style="background: url(&quot;http://thebarj.com/images/printer-icon.png&quot;) no-repeat scroll 0pt 0px transparent; height: 16px; padding: 0px 0pt 0pt 24px; white-space: nowrap; cursor: pointer;"><span style="padding-top:2px;">Printer Friendly</span></a>').show();*/
				$('#printSpan',obj).click(function() { printerFriendly(  $('body') ); });
				
			}
			function email() {  
				
				var b={};
				b.id='emailButton';
				b.className='email';
				b.text='';
				if (defaults.showLinkText) { b.text='Send email'; }
				b.hover_color='#fff';
				b.tip='Email a link to this page';
				
				$('#emailSpan',obj).append(addButton(b)).show();
				
				$("#emailSpan",obj).unbind().click(function(e){
							
							
							var box={};
							box.height=400;
							box.width= 500;
							
							box.content='<style>#shareBoxWrapper {text-align:left;z-index: 5001;position:absolute;}#shareActionDiv {display:none;}#emailTable tr td.label {width: 140px; font-size:14px;}#emailTable input { border: 1px solid #ccc; }.checkbox { margin: 2px 0; padding: 0;}</style><div id="boxHeader" class="ui-widget-header"><div><img id="closeShare" title="Close" class="closeButton" align="right" src="http://thebarj.com/fancyzoom/ressources/closebox.png" width="30" \></div><h3 style="font-size:1.6em;" align="center">Email to a Friend</h3></div><div id="contactPanel" style="padding-top:10px;"><div style="height:22px;"> <img id="loading" src="'+defaults.ajax_gif+'" height="20" style="display:none; float:left; padding-right:15px;"><div id="response" style="overflow:hidden; opacity:0;"></div></div><div style="min-height:100px;"><img src="'+defaults.email_logo+'" name="emailImage" width="60" id="emailImage" style="float:left; padding-right:25px;" /><br /><p id="topMessage">'+defaults.top_message+'</p><p>Share this website with you friends.<br style="clear:both" /></p></div><form id="formail" name="formail" class="secure" action="" method ="post" style="opacity:0"><input name="type" id="type" type="hidden" value="includes/email/basic_email.php" /><table id="emailTable" border="1" width="490" cellspacing="0" cellpadding="2"><tr valign="baseline"><td class="main label">Your Name:<span style="color: #F00;">*</span></td><td class="data"><input type="text" class="input" id="from_name" />&nbsp;</td></tr><tr><td class="main label">Your Email Address:<span style="color: #F00;">*</span></td><td class="data"><input class="input" type="text" name="from_mail" id="from_mail"></td></tr><tr><td class="main label">To Name:<span style="color: #F00;">*</span></td><td class="data"><input type="text" class="input" id="to_name" name="to_name" />&nbsp;</td></tr><tr><td class="main label">To Email Address:<span style="color: #F00;">*</span></td><td class="data"><input class="input" type="text" name="to_mail" id="to_mail"></td></tr><tr id="messageLine"><td class="main label">Message:</td><td class="data"><textarea class="input" style="resize:none;" name="text" id="text" cols="50" rows="4"></textarea></td></tr><tr><td colspan="2"><div style="font-size: 12px; margin-bottom: 10px;padding-left:10px; display:none;"><input type="checkbox" checked="checked" name="copyMeBox" id="copyMeBox" class="checkbox"><label for="copyMeBox">&nbsp;Send me a copy of this e-mail</label></div></td></tr><tr id="previewLine" style="display:none;"><td colspan="2"></td></tr><tr><td id="buttonBar" align="center" colspan="2" style="padding-top:15px;"></td></tr></table></form><p>&nbsp;</p></div>';
							
							$('#shareBoxWrapper',obj).remove();
							var options = { to: { width: box.width, height: box.height } };
							$('#shareDiv',obj).append('<div id="shareBoxWrapper" style="padding:10px;display:none;"><div id="shareActionDiv" class="ui-widget ui-corner-all ui-widget-content"></div></div>');	
							
							$('#shareActionDiv',obj).css({'display':'block','padding':' 10px','border':'1px solid #333','-moz-border-radius':'6px','-webkit-border-radius':' 6px',' border-radius':'6px'});
							
							$.fx.speeds._default = 500;
							$('#shareBoxWrapper',obj).show();	
							 
							showOverlay('Loading . . .'); 
						
							showBody(box);
							
							$( '#shareActionDiv').hide().css({'height':'1px','width':'1px','opacity':'0'});
						
							$('#shareBoxWrapper',obj).css({'position':'absolute','top': defaults.offsetTop,'left': defaults.offsetLeft });
							$('#boxHeader').css({'position':'relative','left':'-10px','top':'-10px','width':'517px','height':'35px'}).addClass('ui-corner-top');
							
							if (defaults.preview) { 
								$('#formail #previewLine td').html($('<div id="previewDiv">'+defaults.preview+'</div>')); 
								$('#shareActionDiv #previewDiv').removeClass().addClass('ui-widget ui-corner-all').css({'background-color':'#F1F8FE','border':'thin solid #000000','height':'auto','max-height':'160px','overflow':'auto','padding':'10px' }); 
								$('#previewLine').show();
								box.height += 130;
								
							}
							
							var speed=700;
							var easing='linear';
							$('#shareActionDiv').show();
							$('#shareActionDiv').animate({
								opacity: '1',					 
								height: box.height,
								width: box.width
							  }, speed, easing, function() { 
							  						
										$('#boxBody').css('opacity','1');
										$('#response').css('opacity','1');
										$('#formail').css('opacity','1');
										$('#shareActionDiv').css('height','auto');
										
							  		});
							
							
 						});
					
			}
			function showBody(box)  {
				 	
					$('#shareActionDiv',obj).html(box.content);
					$('#buttonBar',obj).html('<button  id="sendmail" title="Send Email" /><button id="resetButton" title="Reset Form" /><button id="closeButton" class="close" title="Close form" />');
					$('#response',obj).css({'font-size':'14px','text-align':'left','padding-left':'3px'}).html('<span style="color: #F00;">* Required Information</span>');
					$('td',obj).css({'padding-bottom':'4px','vertical-align':'top'});
					$('table tr td .label',obj).css({'font-size':'16px'});
					$('#contactMessage',obj).css({'padding':'0px'});
					$('#contactPanel',obj).css({'font-family':'Arial, Helvetica, sans-serif'});
					$('#contactPanel #formail table tr .main.label',obj).css({'font-family':'Arial, Helvetica, sans-serif','font-size':'14px','padding-right':'4px','text-align':'right'});
					
					
					$('#closeShare',obj).css({'padding':' 2px','cursor':'pointer'});
					$('#shareBody',obj).css({' padding-top':'35px'});
					$('#boxBody',obj).css({'font-size':'18px','opacity':'0'});
				 
					$('#formail .main.label',obj).css('text-align','right');
					$('#formail td',obj).css({'padding-bottom':'4px','vertical-align':'top'});
					$('#formail .input',obj).not('.button').css('width','320px');
					
					$('#closeButton').button({ label: "Close", icons: {primary:'ui-icon-closethick'} }).click(function() {
																						$('#closeShare').trigger('click');
																						return false;
																					});
					
					$('#closeShare').click(function() { 
										
										$('#shareActionDiv',obj).fadeOut("slow", function(){ 
																				$('#shareOverlay').fadeOut("slow", function() { 
																							$('#shareOverlay').remove(); 
																							return false;
																						});  
																			});
				  						
									});
					
					$('#resetButton').button({ label: "Reset", icons: {primary:'ui-icon-refresh'} })
																				.click(function() {
																					document.formail.reset();
																					$('.input').removeClass('ui-state-error'); 
																					$('#response',obj).css({'font-size':'14px','text-align':'center'}).html('<span style="color: #F00;">* Required Information</span>').removeClass('ui-state-error');
																					return false;
																				});
					$('#sendmail').button({ label: "Send", icons: {primary:'ui-icon-mail-open'} }).click(function() {
																						sendLink();
																						return false;
																					});
			}
			function person(nm,eml) {
				var p={};
				p.name=nm;
				p.email=eml;
				return p;
			}
			function sendLink() {
			
				var valid = '';
				var from_name = $('#from_name',obj).val();
				var from_mail = trim($("#from_mail",obj).val());
				var to_name = $('#to_name',obj).val();
				var to_mail = trim($("#to_mail",obj).val());
				var isr = ' is required.';
				
				$('.input').removeClass('ui-state-error'); 
				
				var text = trim($("#text").val());
				text += '<p>&nbsp;</p><p>I thought you would enjoy this <a href="'+ $(location).attr('href') +'" >'+$(location).attr('host')+'</a><br></p>';
				if (defaults.preview) { text +=  defaults.preview; }
				var ts = trim($("#ts").val());
				
				if (from_name.length<1) { $('#from_name',obj).addClass('ui-state-error'); }
				if (!from_mail.match(/^([a-z0-9._-]+@[a-z0-9._-]+\.[a-z]{2,4}$)/i)) { valid += '<br />A valid Email'+isr; $('#from_mail',obj).addClass('ui-state-error'); }
				if (to_name.length<1) { valid += '<br />Name Required'+isr; $('#to_name',obj).addClass('ui-state-error'); }
				if (!to_mail.match(/^([a-z0-9._-]+@[a-z0-9._-]+\.[a-z]{2,4}$)/i)) { valid += '<br />A valid Email'+isr; $('#to_mail',obj).addClass('ui-state-error'); }
				if (valid!='') { 
					//$("#response",obj).fadeIn("slow"); 
					$("#response",obj).html('One or more errors have ocurred').addClass('ui-state-error').fadeIn("slow");  
				} else {
					$('#contactPanel .input',obj).attr("disabled","disabled");
					$('input[type=button]',obj).fadeTo('slow', 0);
					//$('button',obj).fadeTo('slow', 0);
					$('#buttonBar',obj).fadeOut();
					$("#response",obj).css({"display":"block","background":"none", "border":"none", "text-align":"left", "color":"#900"}).html('Sending message .... ').fadeIn("slow");
					$("#loading",obj).show();
					
					var from=person( from_name, from_mail );
					var to=person( to_name, to_mail );
					
					$("#ts").remove();
					$.get("includes/token.php",function(data){
							result = JSON.parse(data);
							var f= $('#formail');
							sendEmail(f, from, to, text, result.token, defaults.subject);
						});	 
					
					
					
				}
			}
			function fb_Initialize( appId ) {
				FB.init({
					appId  : appId,
					status : true, 
					cookie : true, 
					xfbml  : true  
				 });
			} 
			
			function printerFriendly( selector ) {
				 
				if (defaults.use_overlay) { 
					showOverlay('Printer Friendly Loading . . .'); 
				}
				var w=Math.floor($(window).width()*.8);
				var h=Math.floor($(window).height()*.75);
				var l=Math.floor( ($(window).width()-w)/2 );
				 
				$( selector ).append('<div id="print_wrapper" class="ui-widget ui-corner-all" style="display:none;position:absolute;top:10px;left:'+l+'px; width:'+w+'px; height:'+h+'px; z-index: 2002; background-color:#FFF; border: solid 1px #000;"></div>');
				
				$('#print_wrapper').append('<div align="right" style="padding:3px; background-color:#666;"> <button id="printButton" class="print" /><button id="closeButton" class="close" /></div>');
				h=Math.floor($('#print_wrapper').height()*.9);
				$('#print_wrapper').append('<div id="printerFriendlyBody" style="height:'+h+'px; overflow:auto"></div>');
				$('#printerFriendlyBody').append( $('#'+defaults.printDiv).html() );
				
				$('#printButton').button({ label: "Print", icons: {primary:'ui-icon-print'} }).click(function() {
																						 
																						$('#closeButton').trigger('click');
																					});
				$('#closeButton').button({ label: "Close", icons: {primary:'ui-icon-closethick'} }).click(function() {
																						$('#print_wrapper').remove();
																						$('#shareOverlay').remove();
																					});
				var options = {};
				options = { to: { width: 800, height: 600 } };
				//$( '#print_wrapper' ).show( "size", options, 500);
				
				
				$( '#print_wrapper' ).hide().css({'height':'1px','width':'1px','opacity':'0'});
								
				var speed=700;
				var easing='linear';
				$( '#print_wrapper' ).show();
				$( '#print_wrapper' ).animate({
					opacity: '1',					 
					height: '600',
					width: '800'
				  }, speed, easing, function() { 
										// Animation complete
							});
				
				
				
				
			}
			function addButton(b) {
				var newButton = $('<div class="shareLink"><div class="shareIcon" ></div><div class="linkText"></div></div>');
				$('div.shareIcon',newButton).addClass(b.className);
				$('div.linkText',newButton).html(b.text);
				$(newButton).hover(function () {
								$(this).find('div.linkText').attr('previosColor',$(this).find('div.linkText').css('color'));
								$(this).find('div.linkText').css({ 'color':defaults.hoverColor,'text-decoration':'underline' });
							  }, 
							  function () {
								$(this).find('div.linkText').css({ 'color':$(this).find('div.linkText').attr('previosColor'),'text-decoration':'none' });
							  }
							);	
				 $(newButton).attr('title',b.tip);
				 $("[title]",newButton).tooltip({ position: "bottom center", opacity: 0.7, delay: 3});
				 
				return newButton;
			
			}	
			function openWindow(mypage,myname,w,h,features) {
				if(screen.width){
				var winl = (screen.width-w)/2;
				var wint = (screen.height-h)/2;
				}else{winl = 0;wint =0;}
				if (winl < 0) winl = 0;
				if (wint < 0) wint = 0;
				var settings = 'height=' + h + ',';
				settings += 'width=' + w + ',';
				settings += 'top=' + wint + ',';
				settings += 'left=' + winl + ',';
				settings += features;
				
				if (window.showModalDialog) {
						var settings = 'dialogWidth:'+w+'px;dialogHeight:'+h+'px;';
						settings += 'dialogTop:' + wint + ';';
						settings += 'dialogLeft:' + winl;
						
						window.showModalDialog(mypage,myname,settings);
					} else {
						window.top.captureEvents (Event.CLICK|Event.FOCUS)
						window.top.onclick=IgnoreEvents
						window.top.onfocus=HandleFocus 
						winModalWindow = window.open(mypage,myname,settings);
						winModalWindow.focus();
					}
				 
			}
      		function IgnoreEvents(e) { return false; }
			function HandleFocus() {
				if (winModalWindow) {
					if (!winModalWindow.closed) {
				  		winModalWindow.focus();
						alert('got focus');
					} else {
				  		window.top.releaseEvents (Event.CLICK|Event.FOCUS);
				  		window.top.onclick = "";
					}
			  	}
			  	return false
			}
			
			
		
		});  // end of return.each ...
	  
	  
	}; 
	
})(jQuery);  
