/***************************/
//@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 schoolName = $("#schoolName");
	var schoolNameInfo = $("#schoolNameInfo");
	var schoolContactEmail = $("#schoolContactEmail");
	var schoolContactEmailInfo = $("#schoolContactEmailInfo");
	var schoolVanityURL = $("#schoolVanityURL");
	var schoolVanityURLInfo = $("#schoolVanityURLInfo");
	var schoolCounty = $("#schoolCounty");
	var schoolCountyInfo = $("#schoolCountyInfo");
	var schoolCodeword = $("#schoolCodeword");
	var schoolCodewordInfo = $("#schoolCodewordInfo");	
	var schoolAddress1 = $("#schoolAddress1");
	var schoolAddress1Info = $("#schoolAddress1Info");
	var schoolTown = $("#schoolTown");
	var schoolTownInfo = $("#schoolTownInfo");
	var schoolContactName = $("#schoolContactName");
	var schoolContactNameInfo = $("#schoolContactNameInfo");
	var schoolContactNumber = $("#schoolContactNumber");
	var schoolContactNumberInfo = $("#schoolContactNumberInfo");
	var schoolPostcode = $("#schoolPostcode");
	var schoolPostcodeInfo = $("#schoolPostcodeInfo");	

	
	//On blur
	schoolName.blur(validateSchoolName);
	schoolContactEmail.blur(validateSchoolContactEmail);
	schoolVanityURL.blur(validateVanityURL);
	schoolCounty.blur(validateSchoolCounty);
	schoolCodeword.blur(validateSchoolCodeword);
	schoolAddress1.blur(validateSchoolAddress1);
	schoolTown.blur(validateSchoolTown);
	schoolContactName.blur(validateSchoolContactName);
	schoolContactNumber.blur(validateSchoolContactNumber);
	schoolPostcode.blur(validateSchoolPostcode);
	//On key press
	schoolName.keyup(validateSchoolName);
	schoolContactEmail.keyup(validateSchoolContactEmail);
	schoolVanityURL.keyup(validateVanityURL);
	schoolCounty.keyup(validateSchoolCounty);
	schoolCodeword.keyup(validateSchoolCodeword);
	schoolAddress1.keyup(validateSchoolAddress1);
	schoolTown.keyup(validateSchoolTown);
	schoolContactName.keyup(validateSchoolContactName);
	schoolContactNumber.keyup(validateSchoolContactNumber);
	schoolPostcode.keyup(validateSchoolPostcode);
	//On Submitting
	form.submit(function(){
		if(validateSchoolName() & validateSchoolContactEmail() & validateVanityURL() & validateSchoolCounty() & validateSchoolCodeword() & validateSchoolAddress1() & validateSchoolTown() & validateSchoolContactName() & validateSchoolContactNumber() & validateSchoolPostcode())
			return true
		else
		schoolName.focus()
			return false;
	});
	
	//validation functions
	function validateSchoolContactEmail(){
		//testing regular expression
		var a = $("#schoolContactEmail").val();
		var filter = /^[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)){
			schoolContactEmail.removeClass("error");
			schoolContactEmailInfo.text("Valid E-mail please, you will need it to log in!");
			schoolContactEmailInfo.removeClass("error");
			return true;
		}
		//if it's NOT valid
		else{
			schoolContactEmail.addClass("error");
			schoolContactEmailInfo.text("We need a valid e-mail please");
			schoolContactEmailInfo.addClass("error");
			return false;
		}
	}
	function validateSchoolName(){
		//if it's NOT valid
		if(schoolName.val().length < 4){
			schoolName.addClass("error");
			schoolNameInfo.text("We want names with more than 3 letters!");
			schoolNameInfo.addClass("error");
			return false;
		}
		//if it's valid
		else{
			schoolName.removeClass("error");
			schoolNameInfo.text("What's your school name?");
			schoolNameInfo.removeClass("error");
			return true;
		}
	}
	function validateVanityURL(){

		//it's NOT valid
		if(schoolVanityURL.val().length <5){
			schoolVanityURL.addClass("error");
			schoolVanityURLInfo.text("Remember: At least 5 characters: letters, numbers and '_'");
			schoolVanityURLInfo.addClass("error");
			return false;
		}
		//it's valid
		else{					
			schoolVanityURL.removeClass("error");
			schoolVanityURLInfo.text("At least 5 characters: letters, numbers and '_'");
			schoolVanityURLInfo.removeClass("error");
			return true;
		}
	}
	
	function validateSchoolCodeword(){

		//it's NOT valid
		if(schoolCodeword.val().length <5){
			schoolCodeword.addClass("error");
			schoolCodewordInfo.text("Remember: At least 5 characters");
			schoolCodewordInfo.addClass("error");
			return false;
		}
		//it's valid
		else{					
			schoolCodeword.removeClass("error");
			schoolCodewordInfo.text("At least 5 characters");
			schoolCodewordInfo.removeClass("error");
			return true;
		}
	}
	
	
	function validateSchoolAddress1(){

		//it's NOT valid
		if(schoolAddress1.val().length <4){
			schoolAddress1.addClass("error");
			schoolAddress1Info.text("Required");
			schoolAddress1Info.addClass("error");
			return false;
		}
		//it's valid
		else{					
			schoolAddress1.removeClass("error");
			schoolAddress1Info.text("Required");
			schoolAddress1Info.removeClass("error");
			return true;
		}
	}
	
	function validateSchoolTown(){

		//it's NOT valid
		if(schoolTown.val().length <2){
			schoolTown.addClass("error");
			schoolTownInfo.text("Required");
			schoolTownInfo.addClass("error");
			return false;
		}
		//it's valid
		else{					
			schoolTown.removeClass("error");
			schoolTownInfo.text("Required");
			schoolTownInfo.removeClass("error");
			return true;
		}
	}
	
	function validateSchoolContactName(){

		//it's NOT valid
		if(schoolContactName.val().length <5){
			schoolContactName.addClass("error");
			schoolContactNameInfo.text("Required");
			schoolContactNameInfo.addClass("error");
			return false;
		}
		//it's valid
		else{					
			schoolContactName.removeClass("error");
			schoolContactNameInfo.text("Required");
			schoolContactNameInfo.removeClass("error");
			return true;
		}
	}
	
	function validateSchoolContactNumber(){

		//it's NOT valid
		if(schoolContactNumber.val().length <11){
			schoolContactNumber.addClass("error");
			schoolContactNumberInfo.text("Required.  Please include dialing code");
			schoolContactNumberInfo.addClass("error");
			return false;
		}
		//it's valid
		else{					
			schoolContactNumber.removeClass("error");
			schoolContactNumberInfo.text("Required");
			schoolContactNumberInfo.removeClass("error");
			return true;
		}
	}
	
	function validateSchoolPostcode(){

		//it's NOT valid
		if(schoolPostcode.val().length <5){
			schoolPostcode.addClass("error");
			schoolPostcodeInfo.text("Required");
			schoolPostcodeInfo.addClass("error");
			return false;
		}
		//it's valid
		else{					
			schoolPostcode.removeClass("error");
			schoolPostcodeInfo.text("Required");
			schoolPostcodeInfo.removeClass("error");
			return true;
		}
	}
	
	
	function validateSchoolCounty(){
		//if it's NOT valid
		if(schoolCounty.val() == "0"){
			schoolCounty.addClass("error");
			schoolCountyInfo.text("We need to know what county or area you are in");
			schoolCountyInfo.addClass("error");
			return false;
		}
		//if it's valid
		else{
			schoolCounty.removeClass("error");
			schoolCountyInfo.text("Where are you located?");
			schoolCountyInfo.removeClass("error");
			return true;
		}
	}
});