/***************************/
//@Author: Adrian "yEnS" Mato Gondelle & Ivan Guardado Castro
//@website: www.yensdesign.com
//@email: yensamg@gmail.com
//@license: Feel free to use it, but keep this credits please!					
/***************************/

$(document).ready(function(){
	//global vars
	var form = $("#entryform");
	var firstname = $("#firstname");
	var firstnameInfo = $("#firstnameInfo");
	var lastname = $("#lastname");
	var lastnameInfo = $("#lastnameInfo");
	var email = $("#email");
	var emailInfo = $("#emailInfo");
	var confirmemail = $("#confirmemail");
	var confirmemailInfo = $("#confirmemailInfo");
	var postalcode1 = $("#postalcode1");
	var postalcode2 = $("#postalcode2");
	var postalcodeInfo = $("#postalcodeInfo");
	var phone1 = $("#phone1");
	var phone2 = $("#phone2");
	var phone3 = $("#phone3");
	var phoneInfo = $("#phoneInfo");
	var birthday = $("#birthday");
	var birthdayInfo = $("#birthdayInfo");
	
	//On blur
	firstname.blur(validateName);
	lastname.blur(validateLastname);
	email.blur(validateEmail);
	confirmemail.blur(confirmEmail);
	postalcode1.blur(validatePostalcode);
	postalcode2.blur(validatePostalcode);
	phone1.blur(validatePhone);
	phone2.blur(validatePhone);
	phone3.blur(validatePhone);
	
	//On key press
	firstname.keyup(validateName);
	lastname.keyup(validateLastname);
	email.keyup(validateEmail);
	confirmemail.keyup(confirmEmail);
	postalcode1.keyup(validatePostalcode);
	postalcode2.keyup(validatePostalcode);
	phone1.keyup(validatePhone);
	phone2.keyup(validatePhone);
	phone3.keyup(validatePhone);

	//On Submitting
	form.submit(function(){
		if(validateName() & validateLastname() & validateEmail() & confirmEmail() & validatePostalcode() & validatePhone())
			return true
		else
			return false;
	});
		
	//validation functions
	function validateEmail(){
		//testing regular expression
		var a = $("#email").val();
		var filter = /^[a-zA-Z0-9]+[a-zA-Z0-9_.-]+[a-zA-Z0-9_-]+@[a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z0-9]+.[a-z]{2,4}$/;
		//if it's valid email
		if(filter.test(a)){
			email.removeClass("error");
			emailInfo.text("");
			emailInfo.removeClass("error");	
			
			//email.addClass("valid");

			return true;
		}
		//if it's NOT valid
		else{
			email.addClass("error");
			emailInfo.text("Type a valid e-mail please.");
			emailInfo.addClass("error");

			//email.removeClass("valid");

			return false;
		}
	}
	function confirmEmail(){
		var a = $("#email");
		var b = $("#confirmemail");
		
			//are NOT valid
			if( email.val() != confirmemail.val() || confirmemail.val() == ''){
				confirmemail.addClass("error");
				confirmemailInfo.text("Email doesn't match!");
				confirmemailInfo.addClass("error");
				//confirmemail.removeClass("valid");

				return false;
			}
			//are valid
			else{
				confirmemail.removeClass("error");
				confirmemailInfo.text("");
				confirmemailInfo.removeClass("error");
				//confirmemail.addClass("valid");

				return true;
			}
		} 

	function validateName(){
		//if it's NOT valid
		if(firstname.val().length < 1){
			firstname.addClass("error");
			firstnameInfo.text("You need to enter something!");
			firstnameInfo.addClass("error");
			return false;
		}
		//if it's valid
		else{
			firstname.removeClass("error");
			firstnameInfo.text("");
			firstnameInfo.removeClass("error");
			return true;
		}
	}

	function validateLastname(){
		//if it's NOT valid
		if(lastname.val().length < 1){
			lastname.addClass("error");
			lastnameInfo.text("You need to enter something!");
			lastnameInfo.addClass("error");
			return false;
		}
		//if it's valid
		else{
			lastname.removeClass("error");
			lastnameInfo.text("");
			lastnameInfo.removeClass("error");
			return true;
		}

	}
	
	function validatePostalcode(){
	
		var postalcode = $("#postalcode1").val() + $("#postalcode2").val();
	    var regEx = /[a-zA-Z][0-9][a-zA-Z](-| |)[0-9][a-zA-Z][0-9]/;

	    if(regEx.test(postalcode)){
	    	postalcode1.removeClass("error");
	    	postalcode2.removeClass("error");
			postalcodeInfo.text("");
			postalcodeInfo.removeClass("error");

	    	return true;
	    } else {
	    	postalcode1.addClass("error");
	    	postalcode2.addClass("error");
			postalcodeInfo.text("Check your Postal Code");
			postalcodeInfo.addClass("error");

	    	return false;
	    }
	}

	function validatePhone(){
	
		var phone = $("#phone1").val() + $("#phone2").val() + $("#phone3").val();
	    var regEx = /[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/;

	    if(regEx.test(phone)){
	    	phone1.removeClass("error");
	    	phone2.removeClass("error");
	    	phone3.removeClass("error");
			phoneInfo.text("");
			phoneInfo.removeClass("error");

	    	return true;
	    } else {
	    	phone1.addClass("error");
	    	phone2.addClass("error");
	    	phone3.addClass("error");
			phoneInfo.text("Double check you phone number please");
			phoneInfo.addClass("error");

	    	return false;
	    }
	}
	
	
	
});
