if ( window.console == undefined || window.console.log == undefined ) {	window.console = { log:function(msg){ /* msg */ } } }
if ( typeof(window.billboard)=="undefined"){ billboard={}; }

billboard.share = new ( function($) {
	
	var SHAREMOBILE_URL = "http://www.share4mobile.com/url/?";
    
	function addThisTo(s,visLink) {
        var shareURL;
		if(visLink==true)
		  shareURL=billboard.visualizer.getDeepLink(); //we want link with visualizer params
		 else
		 shareURL = me.getSharedUrl();
		
        var windowTitle = document.title;
        
		window.open(
            'http://www.addthis.com/bookmark.php?v=20&pub=billboardcom&winname=addthis&s=' + s + '&url=' + encodeURIComponent(shareURL) + '&title=' + encodeURIComponent(windowTitle),'addthis' ,'scrollbars=yes ,menubar=no ,width=800 ,height=600 ,resizable=yes ,toolbar=no ,location=no ,status=no'
        );
		
		googleA.trackShareEvent(s);

        return false;
    }
	
	function validateEmails(address) {
	
	    var reg= /^\.|\.\.|\.$/ ;
	    if(reg.test(address) == true) {		
		return false;
		}
		reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z0-9_\-\.])+$/; 
        if(reg.test(address) == false) 
        return false;
        else 
		return true;	
	}
	function validateText(text) {
	
	    if(text.indexOf('~')>-1||text.indexOf('{')>-1||text.indexOf('}')>-1||text.indexOf('|')>-1)
		return false;
		else 
		return true;
	}

    var me = this;

    me.init = function() {
		billboard.broadcaster.addListener( "pageLoaded", function() { me.onPageLoaded(); } );
		try{
			me.initVisShareToolbox();
		}
		catch(e) {}
    };
	
	me.getSharedUrl= function(){
		
		var sharedUrl=window.location.protocol + "//" + window.location.host +   window.location.href.substr( window.location.href.indexOf("#") + 1 );
		var finalSharedUrl='';		
		if(sharedUrl.indexOf('#')>=0)
		finalSharedUrl=sharedUrl.substring(0,sharedUrl.indexOf('#'));
		else 
		finalSharedUrl=sharedUrl;
		finalSharedUrl=finalSharedUrl.replace('/bbcom','');
		
		if(billboard.section!='charts'){
			
			if(finalSharedUrl.indexOf('?')>=0) {
				finalSharedUrl=finalSharedUrl.substring(0,finalSharedUrl.indexOf('?'));
			}
		}
		
		if(billboard.user.isLoggedIn()){
			finalSharedUrl=finalSharedUrl.replace('/soyl/edit','/soyl/list/'+billboard.user.username);
			finalSharedUrl=finalSharedUrl.replace('/soyl/delete','/soyl/list/'+billboard.user.username);
			finalSharedUrl=finalSharedUrl.replace('/soyl/deleteall','/soyl/list/'+billboard.user.username);
			finalSharedUrl=finalSharedUrl.replace('/soyl/wizard','/soyl/list/'+billboard.user.username);
			
		}
		else 
		{
			finalSharedUrl=finalSharedUrl.replace('/soyl/edit','/soyl/list');
			finalSharedUrl=finalSharedUrl.replace('/soyl/delete','/soyl/list');
			finalSharedUrl=finalSharedUrl.replace('/soyl/deleteall','/soyl/list');
		}
		
		if(finalSharedUrl.indexOf('soyl/list/')<0)
		finalSharedUrl=finalSharedUrl.replace('/soyl/list','/soyl/wizard'); 
		return finalSharedUrl;
		
		
	};


    me.onPageLoaded = function() {

		try{
			me.initShareToolbox();
		}
		catch(e) {}
        //share hover
		$('#share-url').click(function(){$(this).select();});
		$('#share-url').attr('value',me.getSharedUrl);	
		
     $('#share-wrap a.share').click(function(){
		 	   
			$('#share-services').toggle();
			
			if($('#share-services').css('display')=='block' )  {
				
				
			//	$('body:not(.news,.artist) #share-container').css({
			//		"padding" : "3px 0 8px 0"
			//	});
				
			} 
			else { 
					
					$('#email-error').hide();
					$('#share-email-post').hide();
					$('#share-email-login').hide();
				//	$('body:not(.news,.artist) #share-container').css({
				//		"padding" : "3px 0 5px 0"
				//	});
				 }
		 
			
        });
		
		$("#share-container a.txt").click(function(){
			window.open (SHAREMOBILE_URL + window.location.protocol + "//" + window.location.host +   window.location.href.substr( window.location.href.indexOf("#") + 1 ),"mobileshare","location=1,status=1,scrollbars=1,resizable=1,width=700,height=550"); 
			return false;
		});

        $('#share-container a.emailid').click(function(){
		
		 $('#shareEmail').each(function(){
		 this.reset();
		 if(billboard.user.isLoggedIn()){
		  $('#share-emailfrom').val(billboard.user.email);
		 }
		 });
		$('#email-error').hide();
		$('#share-email-login').show();
		$('#share-email-post').show();
		$('#share-sent').hide();
		$('#share-submit').show();
        $('#cancel-submit').show();
				 
		});
        $('#share-services a:not(.emailid,.txt)').click(function(){
		   $('#shareEmail').each(function(){
		    this.reset();
		    }); 
			googleA.trackShareEvent($(this).text().toLowerCase());
          
            //addThisTo(($(this).text()));
            //return false;
        });  

	/*	$('#share-icons a:not(.emailid,.print,.rss)').click(function(){
			if($(this).hasClass("facebook") && billboard.subsection == 'video-play'){
				u='http://www.billboard.com' + billboard.history.hash;
				t=document.title;
				window.open('http://www.facebook.com/sharer.php?u='+encodeURIComponent(u)+'&t='+encodeURIComponent(t),'sharer','toolbar=0,status=0,width=626,height=436');
			}
			else
				addThisTo(($(this).text()));
            return false;
        });  */
		$('#share-icons a:not(.emailid,.print,.rss)').click(function(){
			googleA.trackShareEvent($(this).text().toLowerCase());
		});

		$('#share-icons a.rss').click(function(){
			var url = "/rss/" + $("#rss-grab-url").text();
			var params = 'width=' + screen.width;
				params += ', height=' + screen.height;
				params += ', top=0, left=0';
				params += ', fullscreen=yes, scrollbars=yes, resizable=yes';
				newWindow = window.open(url, 'rssWindow', params);
				if (newWindow != null) {
					if (window.focus) {newWindow.focus()}
				} 
            //window.open(url,'rssWindow','scrollbars=yes,resizable=yes, ');
			googleA.trackShareEvent("rss");
            return false;
        });  
		$('#share-icons a.print').click(function(){
            window.open('/jsp/tiles/news/print-article.jsp?decorator=print&confirm=true','_blank','scrollbars=yes,resizable=yes,menubar=yes,width=800,height=600');
			googleA.trackShareEvent("print");
            return false;
        });  
		$('#share-icons a.emailid').click(function(){
			var el = $("#share-email-modal").clone();
			el.removeAttr("id");
			el.attr("id","share-email-modal-active");
			el.css({'display' : 'block'});
			el.find(".email-error").attr("id","email-error");
			el.find(".share-email").attr("id","share-email-post");
			el.find("form").attr("id","shareEmail");
			el.find("input.to-field").attr("id","share-emailto");
			el.find("input.from-field").attr("id","share-emailfrom");
			if(billboard.user.isLoggedIn()){
			  el.find("input.from-field").val(billboard.user.email);
			 }
			el.find("input.subject-field").attr("id","share-subject");
			el.find(".share-email-textarea").attr("id","share-message");
			el.find(".share-sent").attr("id","share-sent");
			el.find(".email-submit").attr("id","share-submit")
									.click(function() { me.emailSubmit(); } );
			el.find(".email-cancel").attr("id","cancel-submit")
									.click(function(){
				billboard.modal.hide();
				$("#share-email-modal-active").empty();

			});
			el.find("#share-close-email").click(function(){
				billboard.modal.hide();
				$("#share-email-modal-active").empty();
			});
			
			billboard.modal.show(el);
			
			
            return false;
        });  

		$('#visualizer-share-expand a:not(.vis-email, .vis-txt)').click(function(){
		    
           shareFlag=true;
		   $('#visualizer-share-email').each(function(){
				 this.reset();
			});		
			var t_url = $(this).attr('href');
			var t_param = t_url.split('&');
			t_url = "";
			for(var i in t_param){
				if(t_param[i].indexOf('url=')>-1)
					t_url+= "url=" + billboard.visualizer.getDeepLink() + "&";
				else
					t_url+= t_param[i] + "&";
			}
			$(this).attr('href', t_url);

			googleA.trackShareEvent($(this).text().toLowerCase());

          //  addThisTo($(this).attr("href"),true); //true means visualizer share
            //return false;
        });  
		
        $('#cancel-submit').click(function(){
	
		$('#email-error').hide();
		$('#share-services').hide();		
		$('#share-email-post').hide(); 
		});		
		
		$('#share-submit').click(function(){
			me.emailSubmit();
		});
    };
	
	me.initVisShareToolbox = function(){
		me.initShareToolbox(true);
	};

	me.initShareToolbox = function(isVis){
		var windowTitle = document.title;
		var shareURL = me.getSharedUrl();

		
		
		svcs = {twitter: 'Twitter', facebook: 'Facebook', myspace: 'Myspace', digg: 'Digg'};
		svcs2 = {expanded: 'More'};
		svcs_orig = {linkedin: 'LinkedIn', digg: 'Digg', delicious: 'Delicious', facebook: 'Facebook', twitter: 'Twitter', myspace: 'Myspace', google: 'Google', live: 'Live'}
		$(".share-toolbox, .share-toolbox-orig, .share-toolbox-vis").empty();
		
		addthis.links = []; //clear out prev toolbox

		if($(".share-toolbox").length > 0){
			for (var s in svcs) {
				if(svcs[s].toLowerCase() != 'facebook' || (svcs[s].toLowerCase() == 'facebook' && billboard.subsection != 'video-play'))
					$(".share-toolbox").append('<a class="addthis_button_'+s+'" addthis:url="'+ shareURL +'" addthis:title="'+ windowTitle +'">'+svcs[s]+'</a>');
			}	
			for (var s in svcs2) {
				$(".share-toolbox-more").html('<a class="addthis_button_'+s+'" addthis:url="'+ shareURL +'" addthis:title="'+ windowTitle +'">'+svcs2[s]+'</a>');
			}
			addthis.toolbox(".share-toolbox");
			addthis.toolbox(".share-toolbox-more");
		}
		else if($(".share-toolbox-orig").length > 0){
			for (var s in svcs_orig) {
				$(".share-toolbox-orig").append('<a class="addthis_button_'+s+'" addthis:url="'+ shareURL +'" addthis:title="'+ windowTitle +'">'+svcs_orig[s]+'</a>');
			}
			addthis.toolbox(".share-toolbox-orig");
		}
		
		
		for (var s in svcs_orig) {
			$(".share-toolbox-vis").append('<a class="addthis_button_'+s+'" addthis:url="'+ billboard.visualizer.getDeepLink() +'" addthis:title="'+ windowTitle +'">'+svcs_orig[s]+'</a>');
		}
		addthis.toolbox(".share-toolbox-vis");
		
	};

	me.emailSubmit = function() {
		$('#email-error').html('Sorry the e-mail address you have entered isn\'t valid. Have another look at it. Make sure you\'ve entered the full address.(It should follow the name@site.com format. Multiple e-mail addresses should be separated by \',\') with a maximum of 10 Email addresses.');

		   var correctEmail1=true;
		   
		   
		   var address1=$('#share-emailto').attr("value");	
           var addressList1= address1.split(',');
		   if(addressList1.length>10)
		   {
		   
		    $('#email-error').show('slow');
			$('#share-emailto').removeClass('share-email-input').addClass('error-test');
			return false;
		   }
		   
		   for(i=0;i<addressList1.length;i++) {
		   addressList1[i]=addressList1[i].replace(/\s+/g,"");
		    correctEmail1=validateEmails(addressList1[i]);
			
			if(correctEmail1)
			continue;
			else {
			$('#email-error').show('slow');
			$('#share-emailto').removeClass('share-email-input').addClass('error-test');
			return false;
			break;
			
			}
		   }
		   $('#share-emailto').removeClass('error-test').addClass('share-email-input');
		   
		   var fromEmail=$('#share-emailfrom').attr("value");
		   fromEmail = fromEmail.replace(/\s+/g,"");
		   correctEmail1=validateEmails(fromEmail);
		   if(!correctEmail1) {
		   $('#email-error').show('slow');
		   $('#share-emailfrom').removeClass('share-email-input').addClass('error-test');
		   
		   return false;
		   }
		   else {
		   $('#share-emailfrom').removeClass('error-test').addClass('share-email-input');
		   }
		   
		 if(!validateText($('#share-message').val())||!validateText($('#share-subject').val()))
		   {
		   $('#email-error').html('The subject and message can have characters from the following set only : a-z; A-Z; 0-9; ` ! @ $ % ^ & * ( ) - _ = + [ ] ; : \' " , < . > / ? ');
		   $('#share-message').css('height','70px');
		   $('#email-error').show();
		   $('#share-message').removeClass('share-email-textarea').addClass('error-test');
		   $('#share-subject').removeClass('share-email-input').addClass('error-test');
		   
		   return false;
		   }
		   
		   if($('#share-message').val().length>3000){
			   $('#email-error').html('The message can have a maximum of 3000 characters only.');
			   $('#share-message').css('height','70px');
			   $('#email-error').show();
			   $('#share-message').removeClass('share-email-textarea').addClass('error-test');
			   
				return false;
		   
		   }
		 
		 
		   if(correctEmail1) {
		   		   			
			var to=($('#share-emailto').val()).split(',');
			for(var i=0;i<to.length;i++)
			to[i]=to[i].replace(/\s+/g,"");
			var from=($('#share-emailfrom').val()).replace(/\s+/g,"");
			
		   var emailparam="from="+from+"&to="+to+"&msg="+$('#share-message').val()
		    +"&subject="+$('#share-subject').val()+"&url="+me.getSharedUrl();
			
		     //alert('Valid email :'+emailparam);	
			$.ajax({
			   type: "POST",
			   url: "/user/email/email-friend.svc",
			   data: emailparam,
			   
                 complete : function() {
			   	 $('#share-submit').hide();
				 $('#cancel-submit').hide();
				 $('#email-error').hide();
				 $('#share-emailfrom').removeClass('error-test').addClass('share-email-input');
				 $('#share-emailto').removeClass('error-test').addClass('share-email-input');
				 $('#share-message').removeClass('error-test').addClass('share-email-textarea');
				 $('#share-subject').removeClass('error-test').addClass('share-email-input');

				 $('#share-sent').show();
				 $('#share-close-email').click(function(){
				    
				 
				 $('#share-services').hide();		
		         $('#share-email-post').hide();
                 				 
					 

				});

				googleA.trackShareEvent("email");
			   }
			 
			   
			 });
		   

		   }
		   return false;		

	};

    /**
	 * onload... any script placed within this block will be executed 
	 * onLoad event of the page
	 */
    $( function() 
	{		
		
		$('#visualizer-share-email input').click(function(){
		 $(this).css({"background-color":"white"});		
		});
		$('#visualizer-share-email textarea').click(function(){
		 $(this).css({"background-color":"white"});		
		});
        
		
		var shareFlag=true;
     /*   $('#visualizer-share').mouseover(function(){
		     
            $('#visualizer-share-expand').show();
			var deepLinkVis=billboard.visualizer.getDeepLink();
			deepLinkVis=deepLinkVis.replace('/bbcom','');
			$('#visualizer-share-url').attr('value',deepLinkVis);
            
        }).mouseout(function(e){
            if(shareFlag) {
         
            $('#visualizer-share-expand').hide();
			
			$('#visualizer-share-email-post').hide();
           
			 }//end if
        }); */
		$('#visualizer-share-url').click(function(){$(this).select();});
		$('#visualizer-share').hover(
		    
			function(){
		    $('#visualizer-share-expand').show();
			var deepLinkVis=billboard.visualizer.getDeepLink();
			$('#visualizer-share-url').attr('value',deepLinkVis);
			},
			
			function(){
				if(shareFlag) {
			 
					$('#visualizer-share-expand').hide();
					
					$('#visualizer-share-email-post').hide();
			   
				 }//end if
            }
	    ); 
		
		$("#visualizer-share-expand a.vis-txt").click(function(){
			window.open (SHAREMOBILE_URL + window.location.protocol + "//" + window.location.host +   window.location.href.substr( window.location.href.indexOf("#") + 1 ),"mobileshare","location=1,status=1,scrollbars=1,resizable=1,width=700,height=550"); 
			return false;
			//$(this).attr("href", );
		});
		
		

		
        $('#visualizer-share-expand a[href="#email"]').click(function(){
		shareFlag=false;
		$('#visualizer-email-error').hide();
		$('#visualizer-share-email').each(function(){
		 this.reset();
		  if(billboard.user.isLoggedIn()){
		  $('#visualizer-share-emailfrom').val(billboard.user.email);
		 }
		 });
		
		$('#visualizer-share-email-post').show();
		$('#visualizer-share-sent').hide();
		$('#visualizer-share-submit').show();
		$('#visualizer-cancel-submit').show();	
		});
        $('#visualizer-cancel-submit').click(function(){
		shareFlag=true;
		$('#visualizer-email-error').hide();
		$('#visualizer-share-expand').hide();		
		$('#visualizer-share-email-post').hide(); 
		});		
		
		$('#visualizer-share-submit').click(function(){
		   $('#visualizer-email-error').html('Sorry the email address is not valid.Try again.');
           $('#visualizer-share-message').css('height','80px');
		   var correctEmail=true;
		   
		   var address=$('#visualizer-share-emailto').attr("value");	
           var addressList= address.split(',');
		   if(addressList.length>10)
		   {
		    $('#visualizer-email-error').html('Maximum of 10 Email addresses allowed.');
		    $('#visualizer-email-error').show('slow');
			$('#visualizer-share-emailto').removeClass('share-email-input').addClass('error-test');
			return false;
		   }
		   
		   for(i=0;i<addressList.length;i++) {
		    addressList[i]=addressList[i].replace(/\s+/g,"");
		    correctEmail=validateEmails(addressList[i]);
			if(correctEmail)
			continue;
			else {
			$('#visualizer-email-error').show('slow');
			$('#visualizer-share-emailto').removeClass('visualizer-share-email-input').addClass('visualizer-error-test');
			return false;
			break;
			}
		   }
		   $('#visualizer-share-emailto').removeClass('visualizer-error-test').addClass('visualizer-share-email-input');
		   
		   var fromEmail=$('#visualizer-share-emailfrom').attr("value");
		   fromEmail = fromEmail.replace(/\s+/g,"");
		   correctEmail=validateEmails(fromEmail);
		   if(!correctEmail) {
		   $('#visualizer-email-error').show('slow');
		   $('#visualizer-share-emailfrom').removeClass('visualizer-share-email-input').addClass('visualizer-error-test');
		   		   
		   return false;
		   }
		   else {		   
		   $('#visualizer-share-emailfrom').removeClass('visualizer-error-test').addClass('visualizer-share-email-input');
		   }
		   
		   
		   if(!validateText($('#visualizer-share-message').val())||!validateText($('#visualizer-share-subject').val()))
		   {
		   $('#visualizer-email-error').html('The subject and message can have characters from the following set only : a-z; A-Z; 0-9; ` ! @ $ % ^ & * ( ) - _ = + [ ] ; : \' " , < . > / ? ');
		   $('#visualizer-share-message').css('height','65px');
		   $('#visualizer-email-error').show();
		   $('#visualizer-share-message').removeClass('vis-share-email-textarea').addClass('visualizer-error-test');
		   $('#visualizer-share-subject').removeClass('vis-share-email-input').addClass('visualizer-error-test');
		   
		   return false;
		   }
		   
		    		   
		   if(correctEmail) {
		   
		   var to=($('#visualizer-share-emailto').val()).split(',');
			for(var i=0;i<to.length;i++)
			 to[i]=to[i].replace(/\s+/g,"");
		   var from=($('#visualizer-share-emailfrom').val()).replace(/\s+/g,"");
		   
		   //var emailparam="from="+from+"&to="+to+"&msg="+$('#visualizer-share-message').val()
		    //+"&subject="+$('#visualizer-share-subject').val()+"&url="+billboard.visualizer.getDeepLink();
			var emailparam ={};
			emailparam.from = from;
			emailparam.to = to;
			emailparam.msg = $('#visualizer-share-message').val();
			emailparam.subject = $('#visualizer-share-subject').val();
			emailparam.url = billboard.visualizer.getDeepLink();
		   $.ajax({
			   type: "POST",
			   url: "/user/email/email-friend.svc",
			   data: emailparam,
			               
			   complete : function() {
			   	 $('#visualizer-share-submit').hide();
				 $('#visualizer-cancel-submit').hide();
				 $('#visualizer-email-error').hide('slow');
				 $('#visualizer-share-emailfrom').removeClass('visualizer-error-test').addClass('visualizer-share-email-input');
				 $('#visualizer-share-emailto').removeClass('visualizer-error-test').addClass('visualizer-share-email-input');
				 $('#visualizer-share-message').removeClass('visualizer-error-test').addClass('vis-share-email-textarea');
				 $('#visualizer-share-subject').removeClass('visualizer-error-test').addClass('vis-share-email-input');
				 
				 $('#visualizer-share-sent').show();
				 $('#close-email').click(function(){
				    
					 $('#visualizer-share-email-post').hide(); 
					 shareFlag=true;
					 $('#visualizer-share-expand').hide();		
					 

				});
			   }
			 
			});
		   
		   
		   }
		   return false;		
		});
        
	});//End Onload
})(jQuery);



