/***************************/
//Validate form 23/2/10			
/***************************/

$(document).ready(function(){
	//global vars
	var form = $("#customForm");
	var firstname = $("#firstname");
	var lastname = $("#lastname");
	var company = $("#company");
	var position = $("#position");
	var email = $("#email");
	var emailInfo = $("#emailInfo");
	
	//On blur
	email.blur(validateEmail);
	firstname.blur(function(){ valField(this,2) });
	lastname.blur(function(){ valField(this,2) });
	company.blur(function(){ valField(this,3) });
	position.blur(function(){ valField(this,3) });
	//On key press
	firstname.keyup(function(){ valField(this,2) });
	lastname.keyup(function(){ valField(this,2) });
	company.keyup(function(){ valField(this,3) });
	position.keyup(function(){ valField(this,3) });
	//On Submitting
	form.submit(function(){
		if(validateEmail() & valField(firstname,2) & valField(lastname,2) & valField(company,3) & valField(position,2) )
			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")
				.next('span')
				.show()
				.next('span')
				.hide();
			return true;
		}
		//if it's NOT valid
		else{
			email.addClass("error")
				.next('span')
				.hide()
				.next('span')
				.show();

			return false;
		}
	}
	function valField(fieldname,reqLength){
		//if it's NOT valid
		if($(fieldname).val().length < reqLength){
			$(fieldname)
				.addClass("error")
				.next('span')
				.hide()
				.next('span')
				.show();
			return false;
		}
		//if it's valid
		else{
			$(fieldname)
				.removeClass("error")
				.next('span')
				.show()
				.next('span')
				.hide();
			return true;
		}
	}
	function validateName(){
		//if it's NOT valid
		if(firstname.val().length < 2){
			firstname.addClass("error");
			firstnameInfo.text("Your first name must have more than 1 letter");
			firstnameInfo.addClass("error");
			return false;
		}
		//if it's valid
		else{
			firstname.removeClass("error");
			firstnameInfo.text("Enter your first name");
			firstnameInfo.removeClass("error");
			return true;
		}
	}
	function validateCompany(){
		//if it's NOT valid
		if(company.val().length < 4){
			company.addClass("error");
			companyInfo.text("Your company must have more than 3 letters");
			companyInfo.addClass("error");
			return false;
		}
		//if it's valid
		else{
			company.removeClass("error");
			companyInfo.text("Enter your company name");
			companyInfo.removeClass("error");
			return true;
		}
	}
	function validatePosition(){
		//if it's NOT valid
		if(position.val().length < 2){
			position.addClass("error");
			positionInfo.text("Your job position must have more than 1 letter");
			positionInfo.addClass("error");
			return false;
		}
		//if it's valid
		else{
			position.removeClass("error");
			positionInfo.text("Enter your job position");
			positionInfo.removeClass("error");
			return true;
		}
	}
});
