$(document).ready(function(){

	var form = $("#contact");
	var submit_form = $("#contact_submit");			  
	var fname = $("#contact_fname");
	var fnameInfo = $("#contact_fnameinfo");
	var lname = $("#contact_lname");
	var lnameInfo = $("#contact_lnameinfo");
	var email = $("#contact_email");
	var emailInfo = $("#contact_emailinfo");
	var company = $("#contact_company");
	var companyInfo = $("#contact_companyinfo");
	
	fname.blur(validateFName);
	lname.blur(validateLName);
	company.blur(validateCompany);
	email.blur(validateEmail);
	
	fname.keyup(validateFName);
	lname.keyup(validateLName);
	company.keyup(validateCompany);
	
	submit_form.click(function(){
		if(validateFName() & validateLName() & validateCompany() & validateEmail()) {
			return true;
		} else {
			return false;
		}
	});
	
	//validation functions
	
	function validateFName() {
		
		if(fname.val().length < 1) {
			fname.addClass("error");
			fnameInfo.text("Required Field")
			fnameInfo.addClass("error");
			return false;
		} else {
			fname.removeClass("error");
			fnameInfo.text("");
			fnameInfo.removeClass("error");
			return true;
		}
	}
		
	function validateLName() {
		if(lname.val().length < 1) {
			lname.addClass("error");
			lnameInfo.text("Required Field")
			lnameInfo.addClass("error");
			return false;
		} else {
			lname.removeClass("error");
			lnameInfo.text("");
			lnameInfo.removeClass("error");
			return true;
		}
		
	}
	
	function validateCompany() {
		if(company.val().length < 1) {
			company.addClass("error");
			companyInfo.text("Required Field")
			companyInfo.addClass("error");
			return false;
		} else {
			company.removeClass("error");
			companyInfo.text("");
			companyInfo.removeClass("error");
			return true;
		}
		
	}
	
	function validateEmail() {
		
		if(email.val().length < 1) {
			email.addClass("error");
			emailInfo.text("Required Field")
			emailInfo.addClass("error");
			return false;
		} else {
				
			var a = $("#contact_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(a != '' ) {
			
				if(filter.test(a)) {
					email.removeClass("error");
					emailInfo.text("");
					emailInfo.removeClass("error");
					return true;
				} else {
					email.addClass("error");
					emailInfo.text("Invalid Email Address");
					emailInfo.addClass("error");
					return false;
				}
				
			} else {
				return true;
			}
		}
	}

});
