/***************************/
//@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 fname = $("#fname"); 
	var fnameInfo = $("#fnameInfo");
	var lname = $("#lname");
	var lnameInfo = $("#lnameInfo");
	var street = $("#street");
	var streetInfo = $("#streetInfo");
	var city = $("#city");
	var cityInfo = $("#cityInfo");
	var state = $("#state");
	var stateInfo = $("#stateInfo"); 
	var zip = $("#zip");
	var zipInfo = $("#zipInfo"); 
	var phone = $("#phone");
	var phoneInfo = $("#phoneInfo"); 
	var email = $("#email");
	var emailInfo = $("#emailInfo"); 
	var requests = $("#requests");
	var requestsInfo = $("#requestsInfo"); 
	
	
	
	//On blur
	fname.blur(validatefName);
	//lname.blur(validatelName);
	//street.blur(validatestreet); 
	//city.blur(validatecity);
	//state.blur(validatestate);
	//zip.blur(validatezip);
	phone.blur(validatephone);
	email.blur(validateEmail);
	//requests.blur(validaterequests);

	//On key press
	//fname.keyup(validatefName);
	//lname.keyup(validatelName);
	//street.keyup(validatestreet);
	//city.keyup(validatecity);
	//state.keyup(validatestate); 
	//zip.keyup(validatezip);
	phone.keyup(validatephone);
	email.keyup(validateEmail);
	//requests.keyup(validaterequests);
	//On Submitting
	form.submit(function(){
		//if(validateName() & validateEmail() & validatePass1() & validatePass2() & validateMessage())
	if(validatefName() & validatephone() & validateEmail())
			return true;
		else 
			return false; 
	});
	
	function validatefName(){
		//if it's NOT valid
		var a = $("#fname").val();  
		var filter = /^([a-zA-Z' ])+$/;
		var str=fname.val().trim();
		/*if(str.length < 4){
			fname.addClass("error");
			fnameInfo.text("We want First Name");
			fnameInfo.addClass("error");
			return false;
		} else*/ if(!filter.test(a)){
			fname.addClass("error");
			fnameInfo.text("Invalid Letters in First Name!");
			fnameInfo.addClass("error");
			return false;
		} else {
			fname.removeClass("error");
			fnameInfo.text("What's your First Name?");
			fnameInfo.removeClass("error");
			return true;
		}

	
	}
/*	function validatelName(){
		//if it's NOT valid
		var a = $("#lname").val();
		var filter = /^([a-zA-Z' ])+$/;
		var str=lname.val().trim();
		//if it's NOT valid
		if(str.length < 1){
			lname.addClass("error");
			lnameInfo.text("We want Last Name with atleast 1 letter!");
			lnameInfo.addClass("error");
			return false;
		} else if(!filter.test(a)){ 
			lname.addClass("error");
			lnameInfo.text("Invalid Letters in Last Name!");
			lnameInfo.addClass("error");
			return false;
		} else{
			lname.removeClass("error");
			lnameInfo.text("What's your Last Name?");
			lnameInfo.removeClass("error");
			return true;
		}
		
	}
	function validatestreet(){
		//if it's NOT valid
		var a = $("#street").val();
		var filter = /^([a-zA-Z0-9' ])+$/;
		var str=street.val().trim();
		if(str.length <= 0){
			street.addClass("error");
			streetInfo.text("We want Street Name!");
			streetInfo.addClass("error");
			return false;
		} else if(!filter.test(a)){ 
			street.addClass("error");
			streetInfo.text("Invalid Letters in street Name!");
			streetInfo.addClass("error");
			return false;
		} else{
			street.removeClass("error");
			streetInfo.text("What's your Street Name?");
			streetInfo.removeClass("error");
			return true;
		}
	
	}
	
	function validatecity(){
		//if it's NOT valid
		var a = $("#city").val();  
		var filter = /^([a-zA-Z ])+$/;
		var str=city.val().trim();
		if(str.length <= 0){
			city.addClass("error");
			cityInfo.text("We want City Name!");
			cityInfo.addClass("error");
			return false;
		} else if(!filter.test(a)){
			city.addClass("error");
			cityInfo.text("Invalid Letters in City!");
			cityInfo.addClass("error"); 
			return false;
		} else{
			city.removeClass("error");
			cityInfo.text("What's your City Name?");
			cityInfo.removeClass("error");
			return true;
		}
	
	}
	function validatestate(){
		//if it's NOT valid
		var a = $("#state").val();  
		var filter = /^([a-zA-Z ])+$/;
		var str=state.val().trim();
		if(str.length <= 0){
			state.addClass("error");
			stateInfo.text("We want State Name!");
			stateInfo.addClass("error");
			return false;
		} else if(!filter.test(a)){
			state.addClass("error");
			stateInfo.text("Invalid Letters in State!");
			stateInfo.addClass("error"); 
			return false;
		} else{
			state.removeClass("error");
			stateInfo.text("What's your State Name?");
			stateInfo.removeClass("error");
			return true;
		}
	
	}
	function validatezip(){
		//if it's NOT valid
		var a = $("#zip").val();  
		var filter = /^([a-zA-Z0-9 -])+$/; 
		var str=zip.val().trim();
		if(str.length <= 0){
			zip.addClass("error");
			zipInfo.text("We want zip code!");
			zipInfo.addClass("error");
			return false;
		} else if(!filter.test(a)){
			zip.addClass("error");
			zipInfo.text("Invalid Letters in ZipCode!");
			zipInfo.addClass("error");  
			return false;
		} else{
			zip.removeClass("error");
			zipInfo.text("What's your zip code?");
			zipInfo.removeClass("error");
			return true;
		}
	
	}*/
	function validatephone(){
		//if it's NOT valid
		
		var a = $("#phone").val();  
		var filter = /^([0-9\]\[ -])+$/; 
		var str=phone.val().trim();
		if(str.length <= 0){
			phone.addClass("error");
			phoneInfo.text("We want Phone Number!");
			phoneInfo.addClass("error");
			return false;
		}  else if(!filter.test(a)){ 
			phone.addClass("error");
			phoneInfo.text("Invalid Letters in Phone Number!");
			phoneInfo.addClass("error");
			return false;
		}  else{
			phone.removeClass("error");
			phoneInfo.text("What's your Phone Number?");
			phoneInfo.removeClass("error");
			return true;
		}
	
	}
	
	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}$/;
		var str=email.val().trim();
		//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 validaterequests(){
		//it's NOT valid 
		var str=requests.val().trim();
		if(str.length < 10){ 
			requests.addClass("error"); 
			return false;
		}
		//it's valid
		else{			
			requests.removeClass("error"); 
			return true; 
		}
	} 	
});
