/***************************/
//@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 = $("#customForm");
	var f_name = $("#f_name");
	var l_name = $("#l_name");
	var email = $("#email_field");
	var phone = $("#phone");
	var address_a = $("#address_a");
	var address_b = $("#address_b");
	var city = $("#city");
	var state = $("#state");
	var zip = $("#zip");
	
	//On blur
	f_name.blur(validateFName);
	l_name.blur(validateLName);
	email.blur(validateEmail);

	//On key press
	f_name.blur(validateFName);
	l_name.blur(validateLName);
	email.blur(validateEmail);

	//On Submitting
	form.submit(function(){
		if(validateFName() & validateLName() & validateEmail())
			return true
		else
			return false;
	});
	
	//validation functions
	function validateEmail(){
		//testing regular expression
		var a = $("#email_field").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("Valid E-mail please, you will need it to log in!");
			emailInfo.removeClass("error");
			return true;
		}
		//if it's NOT valid
		else{
			email.addClass("error");
			emailInfo.text("Stop cowboy! Type a valid e-mail please :P");
			emailInfo.addClass("error");
			return false;
		}
	}
	function validateFName(){
		//if it's NOT valid
		if(f_name.val().length < 3){
			f_name.addClass("error");
			f_nameInfo.text("We want names with more than 3 letters!");
			f_nameInfo.addClass("error");
			return false;
		}
		//if it's valid
		else{
			f_name.removeClass("error");
			f_nameInfo.text("What's your name?");
			f_nameInfo.removeClass("error");
			return true;
		}
	}
	function validateLName(){
		//if it's NOT valid
		if(l_name.val().length < 3){
			l_name.addClass("error");
			l_nameInfo.text("We want names with more than 3 letters!");
			l_nameInfo.addClass("error");
			return false;
		}
		//if it's valid
		else{
			l_name.removeClass("error");
			l_nameInfo.text("What's your last name?");
			l_nameInfo.removeClass("error");
			return true;
		}
	}
	function validatePhone(){
		//if it's NOT valid
		if(phone.val().length < 10){
			phone.addClass("error");
			phoneInfo.text("Please include area code!");
			phoneInfo.addClass("error");
			return false;
		}
		//if it's valid
		else{
			phone.removeClass("error");
			phoneInfo.text("Phone?");
			phoneInfo.removeClass("error");
			return true;
		}
	}
	function validateAddressA(){
		//if it's NOT valid
		if(address_a.val().length < 4){
			address_a.addClass("error");
			address_aInfo.text("We want names with more than 3 letters!");
			address_aInfo.addClass("error");
			return false;
		}
		//if it's valid
		else{
			address_a.removeClass("error");
			address_aInfo.text("What's your name?");
			address_aInfo.removeClass("error");
			return true;
		}
	}
	function validateAddressB(){
		//if it's NOT valid
		if(address_b.val().length < 4){
			address_b.addClass("error");
			address_bInfo.text("We want names with more than 3 letters!");
			nameInfo.addClass("error");
			return false;
		}
		//if it's valid
		else{
			address_b.removeClass("error");
			address_bInfo.text("What's your name?");
			address_bInfo.removeClass("error");
			return true;
		}
	}
	function validateCity(){
		//if it's NOT valid
		if(city.val().length < 4){
			city.addClass("error");
			cityInfo.text("We want names with more than 3 letters!");
			cityInfo.addClass("error");
			return false;
		}
		//if it's valid
		else{
			city.removeClass("error");
			cityInfo.text("What's your name?");
			cityInfo.removeClass("error");
			return true;
		}
	}
	function validateState(){
		//if it's NOT valid
		if(state.val().length < 4){
			state.addClass("error");
			stateInfo.text("We want names with more than 3 letters!");
			stateInfo.addClass("error");
			return false;
		}
		//if it's valid
		else{
			state.removeClass("error");
			stateInfo.text("What's your name?");
			stateInfo.removeClass("error");
			return true;
		}
	}
	function validateZip(){
		//if it's NOT valid
		if(zip.val().length < 4){
			zip.addClass("error");
			zipInfo.text("We want names with more than 3 letters!");
			zipInfo.addClass("error");
			return false;
		}
		//if it's valid
		else{
			zip.removeClass("error");
			zipInfo.text("What's your name?");
			zipInfo.removeClass("error");
			return true;
		}
	}
});
