/***************************/
//@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 firstname = $("#firstname");
	var firstnameInfo = $("#firstnameInfo");
	var lastname = $("#lastname");
	var lastnameInfo = $("#lastnameInfo");
	var businesstype = $("#businesstype");
	var businesstypeInfo = $("#businesstypeInfo");
	var phone = $("#phone");
	var phoneInfo = $("#phoneInfo");
	var email = $("#email");
	var emailInfo = $("#emailInfo");
	var message = $("#message");
	var messageInfo = $("#messageInfo");
	
	//On blur
		phone.click(validatePhone);
	message.click(validateMessage);
	firstname.click(validatefirstname);
	lastname.click(validatelastname);
	businesstype.click(validatebusinesstype);	
	email.click(validateEmail);
	
	//On key press
	phone.keyup(validatePhone);
	message.keyup(validateMessage);
	firstname.keyup(validatefirstname);
	lastname.keyup(validatelastname);
	businesstype.keyup(validatebusinesstype);	
	email.keyup(validateEmail);
	
	//On Submitting
	form.submit(function(){
		if(validatefirstname() & validatelastname() & validatebusinesstype() & validatePhone() & validateEmail() & validateMessage())
			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("Thank you!");
			emailInfo.removeClass("error");
			return true;
		}
		//if it's NOT valid
		else{
			email.addClass("error");
			emailInfo.text("Please provide a valid E-Mail!");
			emailInfo.addClass("error");
			return false;
		}
		
		}
		
		
		
	function validatefirstname(){
		//if it's NOT valid
		if(firstname.val().length < 4){
			firstname.addClass("error");
			firstnameInfo.text("We want a name with more than 3 letters!");
			firstnameInfo.addClass("error");
			return false;
		}
		//if it's valid
		else{
			firstname.removeClass("error");
			firstnameInfo.text("Thank you!");
			firstnameInfo.removeClass("error");
			return true;
		}
	}
	
	
	
		function validatelastname(){
		//if it's NOT valid
		if(lastname.val().length < 4){
			lastname.addClass("error");
			lastnameInfo.text("We want a name with more than 3 letters!");
			lastnameInfo.addClass("error");
			return false;
		}
		//if it's valid
		else{
			lastname.removeClass("error");
			lastnameInfo.text("Thank you!");
			lastnameInfo.removeClass("error");
			return true;
		}
	}
	
	
		
	function validatebusinesstype(){
		//if it's NOT valid
		if(businesstype.val()== ''){ 
			businesstype.addClass("error");
			businesstypeInfo.text("What's your business type?");
			businesstypeInfo.addClass("error");
			
			return false;
		}
		//if it's valid
		else{
			businesstype.removeClass("error");
			businesstypeInfo.text("Thank you!");
			businesstypeInfo.removeClass("error");
			return true;
		}
	}
	
	
		function validatePhone(){
		//if it's NOT valid
		if(phone.val().length < 10){
			phone.addClass("error");
			phoneInfo.text("We need at least a 10 digit number. i.e. 1-800-222-1312");
			phoneInfo.addClass("error");
			return false;
		}
		//if it's valid
		else{
			phone.removeClass("error");
			phoneInfo.text("Thank you!");
			phoneInfo.removeClass("error");
			return true;
		}
	}
	
	
	function validateMessage(){
		//it's NOT valid
		if(message.val().length < 10){
			message.addClass("error");
			messageInfo.text("How can a message be less then 10 characters?");
			messageInfo.addClass("error");
			return false;
		}
		//it's valid
		else{			
			message.removeClass("error");
			messageInfo.text("Thank you!");
			messageInfo.removeClass("error");
			return true;
		}
	}
});