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&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'
        );
        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(); } );
    };
	
	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() {
        //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();
		    }); 
          
            addThisTo(($(this).text()));
            return false;
        });  
        $('#cancel-submit').click(function(){
	
		$('#email-error').hide();
		$('#share-services').hide();		
		$('#share-email-post').hide(); 
		});		
		
		$('#share-submit').click(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();
                 				 
					 

				});
			   }
			 
			   
			 });
		   

		   }
		   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:not(.vis-email, .vis-txt)').click(function(){
		    
           shareFlag=true;
		   $('#visualizer-share-email').each(function(){
		 this.reset();
		 });
            addThisTo($(this).attr("href"),true); //true means visualizer share
            return false;
        });  
		
        $('#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();
		   $.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);


