$(function() {

   	//global vars  
   	var form = $("#contactForm"); //form

   	// inputs
   	var name = $("#name"); 
	var email = $("#email"); 
//  var address = $("#address");  
//  var city = $("#city");  
//  var state = $("#state");
	var zip = $("#zip");
   	var phone = $("#phone");
   	var type = $("#type");  
//   	var project = $("#project");
   	
	// labels
   	var nameInfo = $("#lname");  
	var emailInfo = $("#lemail");
//  var addressInfo = $("#laddress"); 
//  var cityInfo = $("#lcity");  
//  var stateInfo = $("#lstate");
   	var zipInfo = $("#lzip");  
   	var phoneInfo = $("#lphone");
   	var typeInfo = $("#ltype");	
//   	var projectInfo = $("#lproject");

   	//On blur  
	name.blur(validateName);  
	email.blur(validateEmail);  
//	address.blur(validateAddress);
//	city.blur(validateCity);
//	state.blur(validateState);
	zip.blur(validateZip);  
	phone.blur(validatePhone);
	type.blur(validateType); 
//	project.blur(validateProject); 

	//On key press  
   	name.keyup(validateName);   
   	email.keyup(validateEmail);   
//	address.keyup(validateAddress);
//	city.keyup(validateCity);
//	state.keyup(validateState);
	zip.keyup(validateZip);
	phone.keyup(validatePhone);
	type.keyup(validateType);
//	project.keyup(validateProject);


	//On Submitting  
   	form.submit(function(){  
       if(validateName() & validateEmail() & validateZip()  & validatePhone() & validateType())
           return true 
       else  
           return false;  
   });

	// validation functions
	
	// validate email
	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("Email:");
			emailInfo.removeClass("error");
			return true;
		}
		//if it's NOT valid
		else{
			email.addClass("error");
			emailInfo.text("Please type in a valid Email Address");
			emailInfo.addClass("error");
			return false;
		}
	}
	
	// validate name
	 function validateName(){  
	     //if it's NOT valid  
	     if(name.val().length < 4){  
	         name.addClass("error");  
	         nameInfo.text("Please add your name with more than 3 letters!");  
	         nameInfo.addClass("error");  
	         return false;  
	     }  
	     //if it's valid  
	     else{  
	         name.removeClass("error");  
	         nameInfo.text("Name:");  
	         nameInfo.removeClass("error");  
	         return true;  
	     }  
	 }  
	
/*
	// validate Address
	 function validateAddress(){  
	     //if it's NOT valid  
	     if(address.val().length == 0){  
	         address.addClass("error");  
	         addressInfo.text("Please enter your address");  
	         addressInfo.addClass("error");  
	         return false;  
	     }  
	     //if it's valid  
	     else{  
	         address.removeClass("error");  
	         addressInfo.text("Address:");  
	         addressInfo.removeClass("error");  
	         return true;  
	     }  
	 }  
	
	// validate city
	 function validateCity(){  
	     //if it's NOT valid  
	     if(city.val().length == 0){  
	         city.addClass("error");  
	         cityInfo.text("Please enter your city");  
	         cityInfo.addClass("error");  
	         return false;  
	     }  
	     //if it's valid  
	     else{  
	         city.removeClass("error");  
	         cityInfo.text("City:");  
	         cityInfo.removeClass("error");  
	         return true;  
	     }  
	 }
	
	// validate state
	 function validateState(){  
	     //if it's NOT valid  
	     if(state.val().length == 0) {  
	         state.addClass("error");  
	         stateInfo.text("State");  
	         stateInfo.addClass("error");  
	         return false;  
	     }  
	     //if it's valid  
	     else{  
	         state.removeClass("error");  
	         stateInfo.text("State:");  
	         stateInfo.removeClass("error");  
	         return true;  
	     }  
	 }
*/	
	
	// validate zip
	 function validateZip(){  
	      if(zip.val().length > 0) {	
	     	//if it's NOT valid  
	     	if(zip.val().length < 5 && zip.numeric()){  
	     	    zip.addClass("error");  
	     	    zipInfo.text("Zip - 5 Digits");  
	     	    zipInfo.addClass("error");  
	     	    return false;  
	     	}  
	     	//if it's valid  
	     	else{  
	     	    zip.removeClass("error");  
	     	    zipInfo.text("Zip:");  
	     	    zipInfo.removeClass("error");  
	     	    return true;  
	     	}
	     }  
	 }	 	
	
	// validate Phone
	 function validatePhone(){  
	     //if it's NOT valid  
	     if(phone.val().length > 0) {
	     	if(phone.val().length < 7 && phone.numeric({allow:"-"})) {  
	     	    phone.addClass("error");  
	     	    phoneInfo.text("Phone number must be numeric and between 7-10 digits");  
	     	    phoneInfo.addClass("error");  
	     	    return false;  
	     	}  
	     	//if it's valid  
	     	else{  
	     	    phone.removeClass("error");  
	     	    phoneInfo.text("Phone:");  
	     	    phoneInfo.removeClass("error");  
	     	    return true;  
	     	}
	     }  
	 }
	 
	// validate type of Finish
	 function validateType(){  
	     //if it's NOT valid  
	     if(type.val().length == 0) {  
	         type.addClass("error");  
	         typeInfo.text("Please enter a type of finish");  
	         typeInfo.addClass("error");  
	         return false;  
	     }  
	     //if it's valid  
	     else{  
	         type.removeClass("error");  
	         typeInfo.text("Type of Finish:");  
	         typeInfo.removeClass("error");  
	         return true;  
	     }  
	 }
	 
/*
	 	// validate Project
	 function validateProject(){  
	     //if it's NOT valid  
	     if(project.val().length == 0) {  
	         project.addClass("error");  
	         projectInfo.text("Please enter a type of finish");  
	         projectInfo.addClass("error");  
	         return false;  
	     }  
	     //if it's valid  
	     else{  
	         project.removeClass("error");  
	         projectInfo.text("Type of Finish:");  
	         projectInfo.removeClass("error");  
	         return true;  
	     }  
	 }
*/
	
});