$(function(){
	
	// initialise plugin menu
   $('ul.sf-menu').superfish({ 
           delay:      800,                            // one second delay on mouseout 
           speed:      'normal'                          // faster animation speed 
   }); 	
	
	
   // initialise plugin tabs
    $("#tabs").tabs();
    /*
	$( "#tabs" ).tabs({
		ajaxOptions: {
			error: function( xhr, status, index, anchor ) {
				$( anchor.hash ).html(
					"Couldn't load this tab. We'll try to fix this as soon as possible. " +
					"If this wouldn't be a demo." );
			}
		}
	});
	*/
   
	
   $('.circle').corner('47px');
   $('.ads').corner('10px');
   $('.mycb').corner('5px');
   
   $('.decorator120').corner("dog3 20px");
   $('.decorator160').corner("dog3 20px");
   $('.decorator300').corner("dog3 20px");
   $('.decorator336').corner("dog3 15px");
   $('.decorator728x90').corner("dog3 15px");

	var color="";
	$(".simple1 tr, .simple2 tr").hover(
		  function () {
			  color = $(this).css("background-color");
			  $(this).css("background-color","#65E800");
		  }, 
		  function () {
			  $(this).css("background-color",color);
		  }
	   );   

}); // initialise plugins


function updateData(aJSP, aSoundCode, aIdSoundCounter) {
	//alert("aJSP " + contentPath +"/"+ aJSP + "\naSoundCode " + aSoundCode + "\naIdSoundCounter " + aIdSoundCounter);
	$(aIdSoundCounter).load(contentPath +"/"+ aJSP, {
		psoundcode :aSoundCode
	});
}

function play(aSoundCode, aSoundFile, aPlaysCode, aUsesCode) {
	// var playCode  = "play" + aSoundCode;
	
	var currentSound = soundManager.getSoundById(aSoundCode);
	/*
	alert("aSoundCode1 " + aSoundCode +
		  "\naSoundFile " + aSoundFile +
		  "\naPlaysCode " + aPlaysCode +
		  "\naUsesCode  " + aUsesCode +
		  "\nwindow.location " + window.location
		  );
	*/	  
	if (currentSound==null) {
		soundManager.stopAll();
		var playButtons = getElementByClass("playButtons");
		//alert(playButtons);
	//	for (i=0; i<playButtons.length; i++) {
			playButtons.src= contentPath + "/images/icons/Play Green Button.png";
	//	}	

		changeStateToStop(aPlaysCode);
		if (!soundManager.canPlayURL(aSoundFile)) {
			alert("Sound manager cannot play " + aSoundFile);
			return;
		}
		
		var soundObject = soundManager.createSound({
			 id:aSoundCode,
			 url:aSoundFile,
			 onfinish: function() {
				changeStateToPlay(aPlaysCode);
				this.destruct();
		      },
			 onstop: function() {
				changeStateToPlay(aPlaysCode);					 
				this.destruct();
			  }
		});
		try {		  
		soundObject.play();
		}  catch(err) {
			  txt="There was an error on this page.\n\n";
			  txt+="Error description: " + err.description + "\n\n";
			  txt+="Click OK to continue.\n\n";
			  alert(txt);
		 }
		
		//alert("Debe cambiar imagen aqui");
		changeStateToStop(aPlaysCode);
		setTimeout("updateData('jsf/updatePlays.jsp', '"+ aSoundCode +"', '#" +aUsesCode +"')", 1000);
		//updateData("updatePlays.action", aSoundCode);
	} else {
		currentSound.destruct();
		changeStateToPlay(aPlaysCode);
	}	

}

function updateDownloads(aSoundCode, aDownloadCounter) {
	setTimeout("updateData('jsf/updateDownloads.jsp', '" + aSoundCode +"', '#"+ aDownloadCounter +"')", 3000);
}

function updateBuys(aSoundCode, aBuysCounter) {
	//alert("aSoundCode " + aSoundCode +" "+ "aBuysCounter " + aBuysCounter);
	setTimeout("updateData('jsf/updateBuys.jsp', '" + aSoundCode +"', '#"+ aBuysCounter +"')", 3000);
}

function changeStateToPlay(aPlayCode) {
	var imageStatus = document.getElementById(aPlayCode);
	imageStatus.src = contentPath + "/images/icons/Play Green Button.png";
	imageStatus.style.border="0";
}
function changeStateToStop(aPlayCode) {
	var imageStatus = document.getElementById(aPlayCode);
	imageStatus.src = contentPath + "/images/icons/Stop-Green-Button.png";
	imageStatus.style.border="1px solid green";
}
function getElementByClass(theClass) {
	var allHTMLTags=document.getElementsByTagName("img");
	var classCollection = new Array();
	for (var i=0; i<allHTMLTags.length; i++) {
		if (allHTMLTags[i].className==theClass) {
			classCollection[i] = allHTMLTags[i];
		}
	}
	return classCollection;
}

function shareTherapy(aSongCode, aShortTitle, aVotesCode, aLink, aLongTitle) {
	//alert("Entrando a shareTherapy: aSongCode= " + aSongCode + "\nshortTitle "+ aShortTitle + "\naVotesCode " + aVotesCode + "\naLink "+ aLink +"\naLongTitle" + aLongTitle);
	$('#theraphyTitle').html( "Sharing: " + aShortTitle );
	$('#link').val( aLink );
	$('#messagex').val( aLongTitle );
	$('#description').val( aLongTitle );
	$('#pSongCode').val( aSongCode );
	$('#pIdShareCode').val( aVotesCode );
	
	//$('#formDialog').dialog('open');
	var d = $('#formDialog').dialog('open');
	/*
	d.dialog("option", "width", 400);
	d.dialog("option", "height", 420);
	*/

}

/*-- Ajax dialog --*/
$(function() {
	
    var fromName  = $("#fromName"),
    	fromEmail = $("#fromEmail"),
    	toEmail   = $("#toEmail"),
    	message   = $('textarea[name="messagex"]'), 
    	link      = $("#link"),
    	description  = $("#description"),   
    	dialogSum1 = $("#sum1"),
    	dialogSum2 = $("#sum2"),
    	clientSum   = $("#clientSum"),
    	pSongCode = $('#pSongCode'),
    	pIdShareCode = $('#pIdShareCode'),
    	allFields = $([]).add(fromName).add(fromEmail).add(toEmail).add(message).add(clientSum).add(pSongCode).add(pIdShareCode),
    	tips = $("#validateTips");
    
	    function checkNotEmpty(o,n) {
	    	if ( o.val() == null || o.val().length == 0 ) {
	    		o.addClass('ui-state-error');
	    		updateTips(n + " must be introduced.");
	    		o.focus();
	    		return false;
	    	} else {
	    		return true;
	    	}
	    }
	
	    function updateTips(t) {
	    	tips.text(t).effect("highlight",{},3000);
	    }      
    
		function checkRegexp(o,regexp,n) {
			if ( !( regexp.test( o.val() ) ) ) {
				o.addClass('ui-state-error');
				updateTips(n);
				o.focus();
				return false;
			} else {
				return true;
			}
		}
		
		function checkLength(o, n, len){
			if ( o.val().length  > 140 ) {
				o.addClass('ui-state-error');
				updateTips(n);
				o.focus();
				return false;			
			} else {
				return true;
			}
		}
		
		function checkSum(o, s1, s2, n){
			var sum1 = parseInt (s1.text());
			var sum2 = parseInt (s2.text());
			var sumRight = sum1 + sum2;
			var  sumClient = parseInt (o.val()); 
			
			if ( isNaN(sumClient) || (sumClient != sumRight) ) {
				//alert("sumRightx " + sumRight + " clientSumx " + sumClient);
				o.addClass('ui-state-error');
				updateTips(n);
				o.focus();
				return false;			
			} else {
				return true;
			}
		}
		
		function checkMentallion(o, err){
			if (o.val().indexOf("@mentallion") > 0) {
				o.addClass('ui-state-error');
				updateTips(err);
				o.focus();
				return false;				
			} else {
				return true;
			}	
		} 
		$("#formDialog").dialog({
			bgiframe: true,
			autoOpen: false,
			width:  400,
			height: 450,
			modal: true,
			open: function() {
				var sum1 = Math.floor(Math.random()*10 + 1);
				var sum2 = Math.floor(Math.random()*10 + 1);
				var sumTotal = sum1 + sum2;
				$("#sum1").text(sum1);
				$("#sum2").text(sum2);
			},			
			buttons: {
				Cancel: function() {
					$(this).dialog('close');
				},				
				'Send': function() {
				   var bValid = true;
				   allFields.removeClass('ui-state-error');
	/*					
	fromName  fromEmail toEmail  message link description allFields
	*/           
				 //alert(" Before trim *" + fromName.val() +"*");  
				 fromName.val(trim(fromName.val())) ;
				 //alert(" After trim *" + fromName.val() +"*");
				 
				 //			 alert(" Before trim *" + fromEmail.val() +"*");  
				 fromEmail.val(trim(fromEmail.val()));
				 //alert(" After trim *" + fromEmail.val() +"*");

				 //alert(" Before trim *" + toEmail.val() +"*");  
				 toEmail.val(trim(toEmail.val())) ;
				 //alert(" After trim *" + toEmail.val() +"*");

				 
	             if (!checkNotEmpty(fromName,"Your Name must be introduced")) {
				 	return false;
				 }
	           	 if (!checkNotEmpty(fromEmail,"Your Email must be introduced")){
					return false;
				 }
				 var pattern = /^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/;
	           	 if (!checkRegexp(fromEmail, pattern, "Your Email must be a valid one")){
					return false;
				 }					
	           	 if (!checkNotEmpty(toEmail,"His/Her Email  must be introduced")){
					return false;
				 }					
	           	 if (!checkRegexp(toEmail, pattern, "His/Her Email must be a valid one")){
				    return false;
				 }                
			     /*     if (!checkLength(message,"Message"," must have Maximum 140 characters")) {
				   return false;
	           	} */
		         if (!checkSum(clientSum, dialogSum1,  dialogSum2,  "Your sum is wrong, try again")) {
					 return false; 
				 }
		         /*
		         if (!checkMentallion(fromEmail, "From email not allowed")) {
		        	 return false;
		         }
		         if (!checkMentallion(toEmail, "Destination email not allowed")) {
		        	 return false;
		         }	
		         */	         
				if (bValid) {
	               	/*					
					alert(
							"\nfromName : "+ fromName.val() +  
							"\nfromEmail: "+ fromEmail.val() + 
							"\ntoEmail:   "+ toEmail.val()   +
							"\nmessage text:  "+ message.text()   +
							"\nmessage val:   "+ message.val()   +
							"\nmessage htmlx:  "+ message.html()   +
							 $('textarea[name="messagex"]').attr('value') +
							"\nlink:      "+ link.val()      +
							"\ndescription: "+ description.val()
					);
					*/		
				   if (message.val() == "Enter your comment here...") {
					   message.val('');
				   }   
					
				   //contentPath + alert("Before semdMail pSongCode " + pSongCode + " pIdShareCode " + pIdShareCode +" contentPath " + contentPath);
				   semdMail("jsf/shareTherapy.jsp", fromName.val(), fromEmail.val(), toEmail.val(), message.val(), link.val(), description.val() ); 
				  // updateData("updateVotes.action", pSongCode, "#" + pIdShareCode);
				   updateTips('Your message was submited');
				   setTimeout("updateData('jsf/updateShares.jsp', '"+ pSongCode.val() +"', '#" +pIdShareCode.val() +"')", 1000);
				   
				   //setTimeout("closeDialog()",1000);
				   alert('Your message has been submited');
				   $(this).dialog('close');		  
				}
					
				}
			},
			close: function() {
				allFields.val('').removeClass('ui-state-error');
				updateTips('');
			}
		});

	});


	function semdMail(aJSP, aFromName, aFromEmail, aToEmail, aMessage, aLink, aDescription ) {
		//alert("Entring update data " + aJSP +" "+ aID +" "+ aSongCode);
		$("#validateTips").load(contentPath +"/"+ aJSP, {
			fromName: aFromName,   
			fromEmail: aFromEmail,  
			toEmail: aToEmail,
			message: aMessage,  
			link:    aLink, 
			description: aDescription 
		});
	}
	
	function countDown(control, maxLen, counter, typeName) {
	       var len = control.value.length;
	       var txt = control.value;
	       var span = document.getElementById(counter);
	       span.style.display = '';
	       span.innerHTML = (maxLen - len) + ' characters remaining';
	       if (len >= (maxLen - 10)) {
	            span.style.color = 'red';
	            if (len > maxLen) {
	                 control.innerHTML = txt.substring(0, maxLen);
	                 span.innerHTML = (maxLen - control.value.length) + ' characters remaining';
	                 alert(typeName + ' text exceeds the maximum allowed!');
	            }
	       } else {
	            span.style.color = '';
	       }
		 }
	/*-- Ajax dialog --*/
	
	function trim(stringToTrim) {
		return stringToTrim.replace(/^\s+|\s+$/g,"");
	}
	function ltrim(stringToTrim) {
		return stringToTrim.replace(/^\s+/,"");
	}
	function rtrim(stringToTrim) {
		return stringToTrim.replace(/\s+$/,"");
	}
	
/* ******************************************************************** */
	function showLoginDialog(){
		$('#loginDialog').dialog('open');
	}
	
	$(function(){
	    var userMail  = $("#userMail"),
	        password  = $("#password"),
	        loginFields = $([]).add(userMail).add(password),
	        loginTips = $("#validateTips"),
	        counter = 0;
	    
		function updateTips(t) {
			loginTips.text(t).addClass('ui-state-highlight');
			setTimeout(function() {
				loginTips.removeClass('ui-state-highlight', 1500);
			}, 500);
		}

		function checkLength(o,n,min,max) {
			if ( o.val().length > max || o.val().length < min ) {
				o.addClass('ui-state-error');
				updateTips("Length of " + n + " must be between "+min+" and "+max+".");
				return false;
			} else {
				return true;
			}
		}  
		
	    function checkNotEmpty(o,n) {
	    	if ( o.val() == null || o.val().length == 0 ) {
	    		o.addClass('ui-state-error');
	    		updateTips(n + " must be introduced.");
	    		o.focus();
	    		return false;
	    	} else {
	    		return true;
	    	}
	    }		
	    
		function checkRegexp(o,regexp,n) {
			if ( !( regexp.test( o.val() ) ) ) {
				o.addClass('ui-state-error');
				updateTips(n);
				o.focus();
				return false;
			} else {
				return true;
			}
		}	    
	    
		$("#loginDialog").dialog({
			bgiframe: true,
			autoOpen: false,
			width:  400,
			height: 400,
			modal: true,
			buttons: {
				Cancel: function() {
				    $(this).dialog('close');
			    },
				'Login': function() {
					var bValid = true;
					loginFields.removeClass('ui-state-error');
					userMail.val(trim(userMail.val())) ;
				
					bValid = bValid && checkNotEmpty(userMail,"User Mail");
					var pattern = /^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/;
					bValid = bValid && checkRegexp(userMail, pattern, "A valid Email must be submited");					
					bValid = bValid && checkNotEmpty(password,"Password");
					
					//alert("userMail "+ userMail.val() +" password " + password.val());
					if (bValid) {
						var urlString = contentPath + "/jsf/ajaxSigningUser.jsp";
						var retorno = authenticate(urlString, userMail, password);
						
						var answer="";
					    if (retorno==null || retorno=="false" ) {
					    	var answer = "The combination user/password doesn't extist. Try again";
					    	updateTips(answer);
					    	alert(answer);
					    	bValid = false;
					    	 
					    } else {
					    	bValid = true;
					    }
					    
				    	 if ( !bValid && (counter >= 3)) {
				    		 counter = 0; 
				    		 $("#counter").val(counter);
				    		 alert("You seem not to be registered. Register NOW in the box below");
				    		 $(this).dialog('close');
				    	 }	 
				    	 if (!bValid && (counter <= 3) ) {
				    		 counter = counter + 1;
				    		 $("#counter").val(counter);
				    		 return false;
				    	 }
			    		 if (bValid) {
				    		 counter = 0;
						     var answer = "You has been successfully logged. Now you can click the diskette image below to start to download";
//						    	          "\n\nif in 1 minute you don't receive your confirmation email check your email spelling and send again";
						     updateTips(answer);
			    			 alert("You has been successfully logged." + "\n\nNow you can click the diskette image below to start to download");
			    			 document.getElementById("anchorDownload").style.display="block";
			    			 document.getElementById("showDownloadMessage").style.display="block";
			    			 document.getElementById("imageDownload").style.display="none";
				    		 $(this).dialog('close');
				    	 }	 
					}			             
				}
	
			},
			close: function() {
				counter = 0; 
				loginFields.val('').removeClass('ui-state-error');
				updateTips('');
			}
			
		});
		
	});
	
	function authenticate(aJSP, userMail, password) {
		//alert("userMail "+ userMail.val() +" password " + password.val());
		var retorno = $.ajax({
		      url: aJSP,
		      global: false,
		      type: "POST",
		      data: ({xuserMail: userMail.val(), xpassword: password.val()}),
		      dataType: "text",
		      async:false,
		      cache: false,
		      /*
		      beforeSend: function (XMLHttpRequest){
			   alert ("xuserMail " + userMail.val() +" xpassword " + password.val());
	          },
	          */		      
              error: function (XMLHttpRequest, textStatus, errorThrown){
                  alert(XMLHttpRequest.status +" "+ textStatus +" "+ errorThrown);
              } 
		   }
		).responseText;
		return trim(retorno);
	}

	function varifyUserLogged() {
		var aJSP = contentPath + "/jsf/verifyUserLogged.jsp";
		var retorno = $.ajax({
		      url: aJSP,
		      global: false,
		      type: "POST",
		      dataType: "text",
		      cache: false,
		      async:false,
              error: function (XMLHttpRequest, textStatus, errorThrown){
                  alert(XMLHttpRequest.status +" "+ textStatus +" "+ errorThrown);
              } 
		   }
		).responseText;
		return trim(retorno);
	}	
	
	/* ******************************************************************** */	
	function openRegisterForm(){
		$('#registerDialog').dialog('open');
	}
	
	$(function(){	
	    var userMail  = $("#userMail"),
	        registerFields = $([]).add(userMail),
	        regTips = $("#validateTips");
	    
		function updateTips(t) {
			regTips.text(t).addClass('ui-state-highlight');
			setTimeout(function() {
				regTips.removeClass('ui-state-highlight', 1500);
			}, 500);
		}

	    function checkNotEmpty(o,n) {
	    	if ( o.val() == null || o.val().length == 0 ) {
	    		o.addClass('ui-state-error');
	    		updateTips(n + " must be introduced.");
	    		o.focus();
	    		return false;
	    	} else {
	    		return true;
	    	}
	    }		
	
		function checkRegexp(o,regexp,n) {
			if ( !( regexp.test( o.val() ) ) ) {
				o.addClass('ui-state-error');
				updateTips(n);
				o.focus();
				return false;
			} else {
				return true;
			}
		}
		
		function validateSpamMail(o) {
			if ( !validateDisposableEmails(o.val()) ) {
				o.addClass('ui-state-error');
				updateTips("Enter a valid email, Do not enter disposable emails");
				o.focus();
				return false;
			} else {
				return true;
			}
		}		
	    
		function checkLength(o, n, len){
			if ( o.val().length  > 140 ) {
				o.addClass('ui-state-error');
				updateTips(n);
				o.focus();
				return false;			
			} else {
				return true;
			}
		} 
	    
		$("#registerDialog").dialog({
			bgiframe: true,
			autoOpen: false,
			width:  400,
			height: 400,
			modal: true,
			buttons: {
				Cancel: function() {
				    $(this).dialog('close');
			    },
				'Submit': function() {

					var bValid = true;
					registerFields.removeClass('ui-state-error');
					userMail.val(trim(userMail.val())) ;

					bValid = bValid && checkNotEmpty(userMail,"An email ");
					var pattern = /^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/;
					bValid = bValid && checkRegexp(userMail, pattern, "Your Email must be a valid one");
					bValid = bValid && validateSpamMail(userMail);
					
					if (bValid) {
						document.body.style.cursor='wait';						
						//alert("userMail "+userMail.val());
						var retorno = registerForm(userMail);
						
						//alert("retorno "+ retorno);
						var answer = "";
					    if (retorno=="new" ) {
					    	answer = "Your account has been created." +
					    		      "\n\nAn email has been sent to this address: " + userMail.val() +
					    	          "\n\nThat email contains your login & password"; 
					    	updateTips(answer);
					    	alert(answer);
					    	 bValid = true;
					    	 
					    } else if (retorno=="exist"){
					    	 answer = "Your account exists. An email has been sent with your login & password";
					    	 updateTips(answer);
					    	 alert(answer);
					    	 bValid = true;
					    }
					    //setTimeout(function() {
					    	$(this).dialog('close');
						//}, 1000);
	 
					}			             
				}
			},
			close: function() {
				counter = 0; 
				registerFields.val('').removeClass('ui-state-error');
				updateTips('');
			}
			
		});
		
	});
	
	function registerForm(userMail) {
		//alert("registerForm " + userMail);
		//updateTips("Wait a minute");
		document.body.style.cursor='wait';
		var aJSP = contentPath + "/jsf/ajaxRegisterForm.jsp";
		var retorno = $.ajax({
		      url: aJSP,
		      global: false,
		      type: "POST",
		      data: ({xuserMail: userMail.val()}),
		      dataType: "text",
		      cache: false,
		      async:false,
              error: function (XMLHttpRequest, textStatus, errorThrown){
                  alert(XMLHttpRequest.status +" "+ textStatus +" "+ errorThrown);
              } 
		   }
		).responseText;
		document.body.style.cursor='default';
		return trim(retorno);
	}	
	
	function validateDisposableEmails(userMail) {
		var disposableEmails = [
			"@e4ward.com",
			"@mailexpire.com",
			"@otherinbox.com",
			"@0815.ru",
			"@0clickemail.com",
			"@0wnd.net",
			"@0wnd.org",
			"@10minutemail.com",
			"@20minutemail.com",
			"@2prong.com",
			"@3d-painting.com",
			"@4warding.com",
			"@4warding.net",
			"@4warding.org",
			"@9ox.net",
			"@a-bc.net",
			"@amilegit.com",
			"@anonbox.net",
			"@anonymbox.com",
			"@antichef.com",
			"@antichef.net",
			"@antispam.de",
			"@baxomale.ht.cx",
			"@beefmilk.com",
			"@binkmail.com",
			"@bio-muesli.net",
			"@bobmail.info",
			"@bodhi.lawlita.com",
			"@bofthew.com",
			"@brefmail.com",
			"@bsnow.net",
			"@bugmenot.com",
			"@bumpymail.com",
			"@casualdx.com",
			"@chogmail.com",
			"@cool.fr.nf",
			"@correo.blogos.net",
			"@cosmorph.com",
			"@courriel.fr.nf",
			"@courrieltemporaire.com",
			"@curryworld.de",
			"@cust.in",
			"@dacoolest.com",
			"@dandikmail.com",
			"@deadaddress.com",
			"@despam.it",
			"@devnullmail.com",
			"@dfgh.net",
			"@digitalsanctuary.com",
			"@discardmail.com",
			"@discardmail.de",
			"@disposableaddress.com",
			"@disposemail.com",
			"@dispostable.com",
			"@dm.w3internet.co.uk",
			"@example.com",
			"@dodgeit.com",
			"@dodgit.com",
			"@dodgit.org",
			"@dontreg.com",
			"@dontsendmespam.de",
			"@dump-email.info",
			"@dumpyemail.com",
			"@e4ward.com",
			"@email60.com",
			"@emailias.com",
			"@emailinfive.com",
			"@emailmiser.com",
			"@emailtemporario.com.br",
			"@emailwarden.com",
			"@ephemail.net",
			"@explodemail.com",
			"@fakeinbox.com",
			"@fakeinformation.com",
			"@fastacura.com",
			"@filzmail.com",
			"@fizmail.com",
			"@frapmail.com",
			"@garliclife.com",
			"@get1mail.com",
			"@getonemail.com",
			"@getonemail.net",
			"@girlsundertheinfluence.com",
			"@gishpuppy.com",
			"@great-host.in",
			"@gsrv.co.uk",
			"@guerillamail.biz",
			"@guerillamail.com",
			"@guerillamail.net",
			"@guerillamail.org",
			"@guerrillamail.com",
			"@guerrillamailblock.com",
			"@haltospam.com",
			"@hotpop.com",
			"@ieatspam.eu",
			"@ieatspam.info",
			"@ihateyoualot.info",
			"@imails.info",
			"@inboxclean.com",
			"@inboxclean.org",
			"@incognitomail.com",
			"@incognitomail.net",
			"@ipoo.org",
			"@irish2me.com",
			"@jetable.com",
			"@jetable.fr.nf",
			"@jetable.net",
			"@jetable.org",
			"@junk1e.com",
			"@kaspop.com",
			"@kulturbetrieb.info",
			"@kurzepost.de",
			"@lifebyfood.com",
			"@link2mail.net",
			"@litedrop.com",
			"@lookugly.com",
			"@lopl.co.cc",
			"@lr78.com",
			"@maboard.com",
			"@mail.by",
			"@mail.mezimages.net",
			"@mail4trash.com",
			"@mailbidon.com",
			"@mailcatch.com",
			"@maileater.com",
			"@mailexpire.com",
			"@mailin8r.com",
			"@mailinator.com",
			"@mailinator.net",
			"@mailinator2.com",
			"@mailincubator.com",
			"@mailme.lv",
			"@mailnator.com",
			"@mailnull.com",
			"@mailzilla.org",
			"@mbx.cc",
			"@mega.zik.dj",
			"@meltmail.com",
			"@mierdamail.com",
			"@mintemail.com",
			"@moncourrier.fr.nf",
			"@monemail.fr.nf",
			"@monmail.fr.nf",
			"@mt2009.com",
			"@mx0.wwwnew.eu",
			"@mycleaninbox.net",
			"@mytrashmail.com",
			"@neverbox.com",
			"@nobulk.com",
			"@noclickemail.com",
			"@nogmailspam.info",
			"@nomail.xl.cx",
			"@nomail2me.com",
			"@no-spam.ws",
			"@nospam.ze.tc",
			"@nospam4.us",
			"@nospamfor.us",
			"@nowmymail.com",
			"@objectmail.com",
			"@obobbo.com",
			"@onewaymail.com",
			"@ordinaryamerican.net",
			"@owlpic.com",
			"@pookmail.com",
			"@proxymail.eu",
			"@punkass.com",
			"@putthisinyourspamdatabase.com",
			"@quickinbox.com",
			"@rcpt.at",
			"@recode.me",
			"@recursor.net",
			"@regbypass.comsafe-mail.net",
			"@safetymail.info",
			"@sandelf.de",
			"@saynotospams.com",
			"@selfdestructingmail.com",
			"@sendspamhere.com",
			"@shiftmail.com",
			"@shitmail.me",
			"@skeefmail.com",
			"@slopsbox.com",
			"@smellfear.com",
			"@snakemail.com",
			"@sneakemail.com",
			"@sofort-mail.de",
			"@sogetthis.com",
			"@soodonims.com",
			"@spam.la",
			"@spamavert.com",
			"@spambob.net",
			"@spambob.org",
			"@spambog.com",
			"@spambog.de",
			"@spambog.ru",
			"@spambox.info",
			"@spambox.us",
			"@spamcannon.com",
			"@spamcannon.net",
			"@spamcero.com",
			"@spamcorptastic.com",
			"@spamcowboy.com",
			"@spamcowboy.net",
			"@spamcowboy.org",
			"@spamday.com",
			"@spamex.com",
			"@spamfree24.com",
			"@spamfree24.de",
			"@spamfree24.eu",
			"@spamfree24.info",
			"@spamfree24.net",
			"@spamfree24.org",
			"@spamgourmet.com",
			"@spamgourmet.net",
			"@spamgourmet.org",
			"@spamherelots.com",
			"@spamhereplease.com",
			"@spamhole.com",
			"@spamify.com",
			"@spaminator.de",
			"@spamkill.info",
			"@spaml.com",
			"@spaml.de",
			"@spammotel.com",
			"@spamobox.com",
			"@spamspot.com",
			"@spamthis.co.uk",
			"@spamthisplease.com",
			"@speed.1s.fr",
			"@suremail.info",
			"@tempalias.com",
			"@tempemail.biz",
			"@tempemail.com",
			"@tempe-mail.com",
			"@tempemail.net",
			"@tempinbox.co.uk",
			"@tempinbox.com",
			"@tempomail.fr",
			"@temporaryemail.net",
			"@temporaryinbox.com",
			"@thankyou2010.com",
			"@thisisnotmyrealemail.com",
			"@throwawayemailaddress.com",
			"@tilien.com",
			"@tmailinator.com",
			"@tradermail.info",
			"@trash2009.com",
			"@trash-amil.com",
			"@trashmail.at",
			"@trash-mail.at",
			"@trashmail.com",
			"@trash-mail.com",
			"@trash-mail.de",
			"@trashmail.me",
			"@trashmail.net",
			"@trashymail.com",
			"@trashymail.net",
			"@tyldd.com",
			"@uggsrock.com",
			"@wegwerfmail.de",
			"@wegwerfmail.net",
			"@wegwerfmail.org",
			"@wh4f.org",
			"@whyspam.me",
			"@willselfdestruct.com",
			"@winemaven.info",
			"@wronghead.com",
			"@wuzupmail.net",
			"@xoxy.net",
			"@yogamaven.com",
			"@yopmail.com",
			"@yopmail.fr",
			"@yopmail.net",
			"@yuurok.com",
			"@zippymail.info",
			"@jnxjn.com",
			"@trashmailer.com",
			"@klzlk.com"		                        
		];
			
		for (var i=0;i<disposableEmails.length;i++) {
			if (userMail.match(disposableEmails[i]) != null) {
				return false;
			}
		}
		return true;
	}
	

	function updateBookShares(aBookCode, aSharesId) {
		//alert ("updateBookShares: aBookCode " + aBookCode + " aSharesId " + aSharesId);
		setTimeout("updateData('jsf/updateBookShares.jsp', '" + aBookCode  +"', '#"+ aSharesId +"')", 2000);
	}
	
	function updateBookDownloads(aBookCode, aDownloadsId) {
		//alert ("updateBookDownloads: aBookCode " + aBookCode + " aReadsId " + aDownloadsId);
		setTimeout("updateData('jsf/updateBookDownloads.jsp', '" + aBookCode +"', '#"+ aDownloadsId +"')", 2000);
	}	
	
	function updateBookReads(aBookCode, aReadsId) {
		//	alert ("updateBookReads: aBookCode " + aBookCode + " aReadsId " + aReadsId);
		//	setTimeout("updateData('updateBookReads.action', '" + aBookCode  +"', '#"+ aReadsId +"')", 1);
	    updateData('jsf/updateBookReads.jsp', aBookCode  , '#'+ aReadsId );
	}		

	function validateReciprocalLink(partnerLinkId, stateLink) {
//		alert(partnerLinkId +" "+ stateLink);
		setTimeout("updateData('jsf/validateRciprocalLink.jsp', '" + partnerLinkId +"', '#"+ stateLink +"')", 1000);
	}

	
	//Parner Link Forms
	function partnerLinkForm() {
		var randomLink=Math.floor(Math.random()*2);
		var randomText=Math.floor(Math.random()*4);
		var myLinks = ["http://www.mentallion.com",
		           "http://www.mentallion.com/binaural-beats",
		           "http://www.mentallion.com/isochronic-tones"];
		var brainwaveEntrainmentLinks = ["brainwave entrainment",
		          		             "brainwave entrainment free",
		        		             "brainwave entrainment free download",
		          		             "brainwave entrainment free mp3",
		          		             "free brainwave entrainment"
		          		             ];
		var binauralBeatsLinks =  ["binaural beats",
	          		           "binaural beats free",
	        		           "binaural beats free download",
	          		           "binaural beats free mp3",
	          		           "free binaural beats"
	          		            ];
		var isochronicTonesLinks =  ["isochronic tones",
	          		             "isochronic tones free",
	        		             "isochronic tones free download",
	          		             "isochronic tones free mp3",
	          		             "free isochronic tones"
	          		             ];
		var singleLink = myLinks[randomLink];
		var singleText = "";
		if (randomLink == 0)
			singleText = brainwaveEntrainmentLinks[randomText];
		else if	(randomLink == 1)
			singleText = binauralBeatsLinks[randomText];
		else if	(randomLink == 2)
			singleText = isochronicTonesLinks[randomText];
			
		$('#suggestedLink').html(singleLink );
		$('#suggestedText').html(singleText );
		$('#partnerLinkLocal').val( singleLink );
		$('#partnerLinkLocalAnchor').val( singleText );
		
		/*
		$("#partnerLinkName").val("Alfa"), 
		$("#partnerLinkCompany").val("Cia"), 
		$("#email").val("xxx@mail.com"), 
		$("#partnerLinkUrl").val("http://www.xxxx.com"), 
		$("#partnerLinkText").val("Keywords"), 
		$("#linkHost").val("http://www.xxxx.com/xxx"), 
		*/
		
		$('#partnerLinkForm').dialog('open');

		
	}	
	
	$(function() {
		var partnerLinkName = $("#partnerLinkName"), 
			partnerLinkCompany = $("#partnerLinkCompany"), 
			email = $("#email"), 
			partnerLinkUrl = $("#partnerLinkUrl"), 
			partnerLinkText = $("#partnerLinkText"), 
			linkHost = $("#linkHost"), 
			partnerLinkLocal = $("#partnerLinkLocal"), 
			partnerLinkLocalAnchor = $("#partnerLinkLocalAnchor"), 
			partnerLinkDofollow = $("#partnerLinkDofollow"),
			sum1 = $("#sum1"),
			sum2 = $("#sum2"),
			sumError = $("#sumError"),
			clientSum = $("#clientSum"),
			feedback = $("#feedback");
			
		
		function checkLength(o, n, len){
			if ( o.val().length  > 140 ) {
				o.addClass('ui-state-error');
				updateTips(n);
				o.focus();
				return false;			
			} else {
				return true;
			}
		}
		
		function checkSum(o, s1, s2, n){
			var sum1 = parseInt (s1.text());
			var sum2 = parseInt (s2.text());
			var sumRight = sum1 + sum2;
			var  sumClient = parseInt (o.val()); 
			var validator = null;
//			alert("sumClient " + sumClient +" sumRight " + sumRight);
			if ( isNaN(sumClient) || (sumClient != sumRight) ) {
				o.addClass('ui-state-error');
				sumError.text(n).effect("highlight",{},3000);
				o.focus();
				return false;			
			} else {
				return true;
			}
		}		
		
		$("#partnerLinkForm").dialog({
			autoOpen: false,
			//show: "blind",
			//hide: "explode",
			bgiframe: true,
			width:  400,
			height: 450,
			modal: true,
			
			open: function() {
				var sum1 = Math.floor(Math.random()*10 + 1);
				var sum2 = Math.floor(Math.random()*10 + 1);
				var sumTotal = sum1 + sum2;
				$("#sum1").text(sum1);
				$("#sum2").text(sum2);
				$("#partnerLinkDofollow").attr('checked', true);
				validator = $("#partnerLinkForm").validate();
			},
			buttons: {
				"Add link": function() {
					
					 var bValid = $("#partnerLinkForm").valid();
					
			         if (!checkSum(clientSum, sum1,  sum2,  "Your sum is wrong, try again")) {
			        	 bValid = false; 
					 }
			     			         
					if (bValid) {
						
						alert(partnerLinkName.val()+"\n "+ partnerLinkCompany.val()+"\n "+ email.val()+"\n "+ partnerLinkUrl.val()+"\n "+ partnerLinkText.val()+"\n "+ linkHost.val()+"\n "+ partnerLinkLocal.val()+"\n "+ partnerLinkLocalAnchor.val()+"\n "+ partnerLinkDofollow.is(':checked') );
						
						updatePartnerLink("jsf/updatePartnerLink.jsp", partnerLinkName.val(), partnerLinkCompany.val(), email.val(), partnerLinkUrl.val(), partnerLinkText.val(), linkHost.val(), partnerLinkLocal.val(), partnerLinkLocalAnchor.val(), partnerLinkDofollow.is(':checked') );

					   //contentPath + alert("Before semdMail pSongCode " + pSongCode + " pIdShareCode " + pIdShareCode +" contentPath " + contentPath);
					  // updateData("updateVotes.action", pSongCode, "#" + pIdShareCode);
					  // updateTips('Your message was submited');
					   //setTimeout("updateData('jsf/updatePartnerLink.jsp', '"+ pSongCode.val() +"', '#" +pIdShareCode.val() +"')", 1000);
					   //setTimeout("closeDialog()",1000);
						
					   alert('Your message has been submited');
//					   setTimeout( "window.location.reload()", 1000 );
					   $(this).dialog('close');		  
					}
						
				},					
				Cancel: function() {
					$( this ).dialog( "close" );
				}
			},
			close: function() {
				//allFields.val( "" ).removeClass( "ui-state-error" );
				sumError.text("");
				clientSum.removeClass( "ui-state-error" );
				validator.resetForm();
			}			
		});			
	});

	
	function randomFromTo(from, to){
	       return Math.floor(Math.random() * (to - from + 1) + from);
	}	
	
	function updatePartnerLink(aJSP, partnerLinkName, partnerLinkCompany, email, partnerLinkUrl, partnerLinkText, linkHost, partnerLinkLocal, partnerLinkLocalAnchor, partnerLinkDofollow ) {
		//alert("Entring update data " + aJSP +" "+ aID +" "+ aSongCode);
		$("#feedback").load(contentPath +"/"+ aJSP, {
			partnerLinkName: partnerLinkName, 
			partnerLinkCompany: partnerLinkCompany, 
			email: email, 
			partnerLinkUrl: partnerLinkUrl, 
			partnerLinkText: partnerLinkText, 
			linkHost: linkHost, 
			partnerLinkLocal: partnerLinkLocal, 
			partnerLinkLocalAnchor: partnerLinkLocalAnchor, 
			partnerLinkDofollow: partnerLinkDofollow,
		}, function(response, status, xhr) {
			  if (status == "error") {
				    var msg = "There was an error: ";
				    alert(msg + xhr.status + " " + xhr.statusText);
		   }
		}
		
		);
	}	
