jQuery(document).ready(function($){
	
	Array.prototype.in_array = function(p_val) {
		for(var i = 0, l = this.length; i < l; i++) {
			if(this[i] == p_val) {
				return true;
			}
		}
		return false;
	}
	
	
	var cword = {
        EN: [null, "playtime", "chocolate", "surprise", "children", "parents", "responsible", "family"],
        FR: [null, "jeux", "chocolat", "surprise", "enfants", "parents", "responsable", "famille"]
    };

	var lotCodes = ["L015X","L016X","L017X","L018X","L019X","L020X","L021X","L022X","L023X","L024X","L025X",'L026X','L027X',"L028X","L029X","L030X","L031X","L032X","L033X","L034X","LXX1M","LXX2M"];
	
	var error = {
		"EN":{
			"firstName":"This field is required",
			"lastName":"This field is required",
			"address":"This field is required",
			"city":"This field is required",
			"province":"Please select a province",
			"email":"Please enter a valid email.",
			"pinCode":"Sorry the PIN Code entered is not valid. Please try again.",
			"postalCode":"Please enter a valid postal code.",
			"phone":"Please enter a valid phone.",
			"essay":"Essay must be at least 50 words",
			"readRules":"This field is required",
			"birthDate":"Please select a year, month and a day.",
			"captcha":"Please enter the valid security keyword.",
			"oncePerDay":"Limit of one entry per household per day.  Please try again tomorrow."
			},
		"FR":{
			"firstName":"Ce champs est requis.",
			"lastName":"Ce champs est requis.",
			"address":"Ce champs est requis.",
			"city":"Ce champs est requis.",
			"province":"Veuillez choisir une province.",
			"email":"Veuillez entrer une adresse email valide.",
			"pinCode":"Désolés, mais le numéro de nip que vous avez entré n’est pas valide. Veuillez essayer de nouveau.",
			"postalCode":"Veuillez entrer un code postal valide.",
			"phone":"Veuillez entrer un numéro de téléphone valide.",
			"essay":"Les textes doivent compter au moins 50 mots",
			"readRules":"Ce champs est requis.",
			"birthDate":"Veuillez sélectionner une année, un mois et une journée.",
			"captcha":"Veuillez entrer le mot-clé de sécurité valide.",
			"oncePerDay":"Limite d'une inscription par ménage et par jour. Veuillez essayer de nouveau demain."
		}
	}
	

	
	//global vars  
	   var form = $("#playhouseForm");  
	   var firstName = $("#firstName");  
	   var lastName = $("#lastName");  
	   var address = $("#address");  
	   var city = $("#city");  
	   var province = $("#province");  
	   var email = $("#email");  
	   var pinCode = $("#pinCode");  
	   var postalCode = $("#postalCode");  
	   var phone = $("#phone");  
	   var essay = $("#essay");  
		var rules = $('#readRules:checked');
		var year = $("#birth_year");
		var month = $("#birth_month");
		var day = $("#birth_day");
		
		var lang = $("#language").val();

 	
		function validateFirstName() {
		
	   		if(firstName.val().length <= 0 || firstName.val().length > 255){  
	            firstName.addClass("inputError");
	           $('#firstNameError').text(error[lang].firstName);  
	           return false;  
	      	}else{
				firstName.removeClass("inputError");
				$('#firstNameError').text("");  
				return true;
			}
		}
		function validateAddress() {
			if(address.val().length <= 0 || address.val().length > 255){  
	       		address.addClass("inputError");
	           $('#addressError').text(error[lang].address);  
	           return false;  
	      	}else{
				address.removeClass("inputError");
				$('#addressError').text("");  
				return true;
			}
		}
		function validateLastName() {
			if(lastName.val().length <= 0 || lastName.val().length > 255){  
	         	lastName.addClass("inputError");
	           $('#lastNameError').text(error[lang].lastName);  
	           return false;  
	      	}else{
				lastName.removeClass("inputError");
				$('#lastNameError').text("");  
				return true;
			}
		}
		function validateCity() {
			if(city.val().length <= 0 || city.val().length > 255){  
	         	city.addClass("inputError");
	           $('#cityError').text(error[lang].city);  
	           return false;  
	      	}else{
				city.removeClass("inputError");
				$('#cityError').text("");  
				return true;
			}
		}
	
	
		function validateProvince() {
			if(province.val() == ""){
				province.addClass("inputError");
				$('#provinceError').text(error[lang].province);  
		           return false;
			}else{
				province.removeClass("inputError");
				$('#provinceError').text("");  
				return true;
			}
		}
		function validatePostalCode() {
			if(postalCode.val().length != 7){  
	         	postalCode.addClass("inputError");
	           $('#postalCodeError').text(error[lang].postalCode);  
	           return false;  
	      	}else{
				postalCode.removeClass("inputError");
				$('#postalCodeError').text("");  
				return true;
			}
		}
		function validatePhone() {
			if(phone.val().length < 12){  
	           phone.addClass("inputError");
	           $('#phoneError').text(error[lang].phone);  
	           return false;  
	      	}else{
				phone.removeClass("inputError");
				$('#phoneError').text("");  
				return true;
			}
		}
		function validateEmail() {
		
			if (!emailcheck(email.val())){
				email.addClass("inputError");
		         $('#emailError').text(error[lang].email);  
		         return false;
			}else{
				email.removeClass("inputError");
				$('#emailError').text("");  
				return true;
			}
		}
		function validatePinCode() {
		
			if (!lotCodes.in_array(pinCode.val().toUpperCase())){
				pinCode.addClass("inputError");
		         $('#pinCodeError').text(error[lang].pinCode);  
		         return false;
			}else{
				pinCode.removeClass("inputError");
				$('#pinCodeError').text("");  
				return true;
			}
		}
		function validateEssay() {
			var essayVal = essay.val();
			var essayAry = essayVal.split(" ");
			
			if (essayAry.length < 49){
				  essay.addClass("inputError");
		         $('#essayError').text(error[lang].essay);  
		         return false;
			}else{
				essay.removeClass("inputError");
				$('#essayError').text("");  
				return true;
			}
		}
		
		function validateBirthDate(){
			
			
			if (year.val() == "" || month.val() == "" || day.val() == ""){
				if(year.val() ==""){
					year.addClass("inputError");
				}
				if(month.val() ==""){
					month.addClass("inputError");
				}
				if(day.val() ==""){
					day.addClass("inputError");
				}
		         $('#birthDateError').text(error[lang].birthDate);  
		         return false;
			}else{
				year.removeClass("inputError");
				month.removeClass("inputError");
				day.removeClass("inputError");
				
				$('#birthDateError').text("");  
				return true;
			}
		}
	
		function emailcheck(str) {

				var at="@"
				var dot="."
				var lat=str.indexOf(at)
				var lstr=str.length
				var ldot=str.indexOf(dot)
				if (str.indexOf(at)==-1){
			   
				   return false
				}

				if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
			  
				   return false
				}

				if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
			  
				    return false
				}

				 if (str.indexOf(at,(lat+1))!=-1){
			   
				    return false
				 }

				 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
			    
				    return false
				 }

				 if (str.indexOf(dot,(lat+2))==-1){
			    
				    return false
				 }

				 if (str.indexOf(" ")!=-1){
			   
				    return false
				 }

		 		 return true					
			}
			
			
			function validateRules () {
				if ($('#readRules:checked').val() == null){
					  //rules.addClass("inputError");
			         $('#rulesError').text(error[lang].readRules);  
			         return false;	
				}else{
					$('#rulesError').text("");  
					return true;
				}
			}
			
			function validateCaptcha(){
				if ($("#security_word").val().toLowerCase() != cword[$("#language").val()][document.getElementById("security_img").title]) {
					 $('#captchaError').text(error[lang].captcha);  
			         return false;
				}else{
					$('#captchaError').text("");  
					return true;
				}
			}
			
			function checkDate(){
				$.post("/extra/playhouseForm/includes/checkDate.php", { "address": address.val(), "postalCode": postalCode.val() },
				   function(data){
					
					if(data =="true"){
						
						form.submit();
						return true;
					}else{
					
						alert(error[lang].oncePerDay);
						return false;
						
					}
				     
				   });
			}
			
			
			  //On blur  
			    firstName.blur(validateFirstName);  
			    lastName.blur(validateLastName);  
			    address.blur(validateAddress);  
			    city.blur(validateCity);  
			    province.blur(validateProvince);  
			    postalCode.blur(validatePostalCode);  
			    phone.blur(validatePhone);  
			    email.blur(validateEmail);  
			    pinCode.blur(validatePinCode);  
			    essay.blur(validateEssay); 
				year.blur(validateBirthDate);
				month.blur(validateBirthDate);
				day.blur(validateBirthDate);
			 	

				$('#submitButton').click(function(e){
					e.preventDefault();
					
						if(validateCaptcha() & validateRules() & validateFirstName() & validateLastName() & validateAddress() & validateCity() & validateProvince() & validatePostalCode() & validatePhone() & validateEmail() & validateBirthDate()& validatePinCode() & validateEssay()){  
							if(checkDate()){
								form.submit();
							}
							
							
							
//return true ;

				       	}else{  

				           // return false;  

				    	}
					
				});

				function submitForm () {
				/*	if(validateCaptcha() & validateRules() & validateFirstName() & validateLastName() & validateAddress() & validateCity() & validateProvince() & validatePostalCode() & validatePhone() & validateEmail() & validateBirthDate()& validatePinCode() & validateEssay()){  
						if(checkDate()){
							return true ;
						}

			       	}else{  

			            return false;  

			    	}*/
				}

				/*form.submit(function(){
					
					if(validateRules & validateFirstName() & validateLastName() & validateAddress() & validateCity() & validateProvince() & validatePostalCode() & validatePhone() & validateEmail() & validateBirthDate()& validatePinCode() & validateEssay()){  
						return true ;

			       	}else{  

			            return false;  

			    	}
				})*/

			
	
})