/***************************/
//@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 email = $("#email");
	var emailInfo = $("#emailInfo");
	var grad = $("#grad");
	var gradInfo = $("#gradInfo");
	var city = $("#city");
	var cityInfo = $("#cityInfo");
	var street = $("#street");
	var streetInfo = $("#streetInfo");
	var zip = $("#zip");
	var zipInfo = $("#zipInfo");
	var attending = $("#attending");
	var attendingInfo = $("#attendingInfo");

	

	

	
	//On blur
	fname.blur(validatefName);
	lname.blur(validatelName);
	email.blur(validateEmail);
	grad.blur(validateGrad);
	street.blur(validateStreet);
	city.blur(validateCity);
	zip.blur(validateZip);
	attending.blur(validateAttending);
	//On key press
	fname.keyup(validatefName);
	lname.keyup(validatelName);
	grad.keyup(validateGrad);
	street.keyup(validateStreet);
	city.keyup(validateCity);
	zip.keyup(validateZip);
	attending.keyup(validateAttending);
	//On Submitting
	form.submit(function(){
		if(validatefName() & validatelName() & validateEmail() & validateGraduation() & validateStreet() & validateCity() & validateZip() & validateAttending())
			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("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 there! Type a valid e-mail please :P");
			emailInfo.addClass("error");
			return false;
		}
	}
	function validateAttending(){
		//if it's NOT valid
		if(attending.val().length < 1){
			attending.addClass("error");
			attendingInfo.text("We need to know how many people are attending with you.");
			attendingInfo.addClass("error");
			return false;
		}
		//if it's valid
		else{
			attending.removeClass("error");
			attendingInfo.text("We need to know how many people are attending with you.");
			attendingInfo.removeClass("error");
			return true;
		}
	}
	function validatefName(){
		//if it's NOT valid
		if(fname.val().length < 2){
			fname.addClass("error");
			fnameInfo.text("We want names with more than 2 letters!");
			fnameInfo.addClass("error");
			return false;
		}
		//if it's valid
		else{
			fname.removeClass("error");
			fnameInfo.text("What's your name?");
			fnameInfo.removeClass("error");
			return true;
		}
	}
	function validatelName(){
		//if it's NOT valid
		if(lname.val().length < 2){
			lname.addClass("error");
			lnameInfo.text("We want names with more than 2 letters!");
			lnameInfo.addClass("error");
			return false;
		}
		//if it's valid
		else{
			lname.removeClass("error");
			lnameInfo.text("What's your name?");
			lnameInfo.removeClass("error");
			return true;
		}
	}


	function validateGrad(){
		//if it's NOT valid
		if(grad.val().length < 3){
			grad.addClass("error");
			gradInfo.text("We want to know your graduation date!");
			gradInfo.addClass("error");
			return false;
		}
		//if it's valid
		else{
			grad.removeClass("error");
			gradInfo.text("What year will you graduate?");
			gradInfo.removeClass("error");
			return true;
		}
	}
	function validateStreet(){
		//if it's NOT valid
		if(street.val().length < 3){
			street.addClass("error");
			streetInfo.text("What Street do you live on?");
			streetInfo.addClass("error");
			return false;
		}
		//if it's valid
		else{
			street.removeClass("error");
			streetInfo.text("What is your street address?");
			streetInfo.removeClass("error");
			return true;
		}
	}
	function validateCity(){
		//if it's NOT valid
		if(city.val().length < 3){
			city.addClass("error");
			cityInfo.text("We want to know what city you live in!");
			cityInfo.addClass("error");
			return false;
		}
		//if it's valid
		else{
			city.removeClass("error");
			cityInfo.text("What city do you live in?");
			cityInfo.removeClass("error");
			return true;
		}
	}
	
	function validateZip(){
		//if it's NOT valid
		if(zip.val().length < 5){
			zip.addClass("error");
			zipInfo.text("We want to know your zip code!");
			zipInfo.addClass("error");
			return false;
		}
		//if it's valid
		else{
			zip.removeClass("error");
			zipInfo.text("What is your zip code?");
			zipInfo.removeClass("error");
			return true;
		}
	}
	
});
