/***************************/
//@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 reqAddrName = $("#reqAddrName");
	var reqAddrNameInfo = $("#reqAddrNameInfo");
	var reqAddrCont = $("#reqAddrCont");
	var reqAddrContInfo = $("#reqAddrContInfo");
	var reqAddr1 = $("#reqAddr1");
	var reqAddr1Info = $("#reqAddr1Info");
	var reqAddr3 = $("#reqAddr3");
	var reqAddr3Info = $("#reqAddr3Info");
	var reqAddrCountry = $("#reqAddrCountry");
	var reqAddrCountryInfo = $("#reqAddrCountryInfo");
	var reqAddrState = $("#reqAddrState");
	var reqAddrStateInfo = $("#reqAddrStateInfo");
	var reqAddrPost = $("#reqAddrPost");
	var reqAddrPostInfo = $("#reqAddrPostInfo");
	var reqAddrPhone = $("#reqAddrPhone");
	var reqAddrPhoneInfo = $("#reqAddrPhoneInfo");
	var reqAddrFax = $("#reqAddrFax");
	var reqAddrFaxInfo = $("#reqAddrFaxInfo");
	var reqAddrFaxCheckBox = $("#reqAddrFaxCheckBox");
	var reqAddrEMail = $("#reqAddrEMail");
	var reqAddrEMailInfo = $("#reqAddrEMailInfo");
	
	//On blur
	reqAddrName.blur(valreqAddrName);
	reqAddrCont.blur(valreqAddrCont);
	reqAddr1.blur(valreqAddr1);
	reqAddr3.blur(valreqAddr3);
	reqAddrCountry.blur(valreqAddrCountry);
	reqAddrState.blur(valreqAddrState);
	reqAddrPost.blur(valreqAddrPost);
	reqAddrPhone.blur(valreqAddrPhone);
	reqAddrFax.blur(valreqAddrFax);
	reqAddrEMail.blur(valreqAddrEMail);
	//On key press
	reqAddrName.keyup(valreqAddrName);
	reqAddrCont.keyup(valreqAddrCont);
	reqAddr1.keyup(valreqAddr1);
	reqAddr3.keyup(valreqAddr3);
	reqAddrCountry.keyup(valreqAddrCountry);
	reqAddrState.keyup(valreqAddrState);
	reqAddrPost.keyup(valreqAddrPost);
	reqAddrPhone.keyup(valreqAddrPhone);
	reqAddrFax.keyup(valreqAddrFax);
	reqAddrEMail.keyup(valreqAddrEMail);
	//On Submitting
	form.submit(function(){
		if(valreqAddrName() & valreqAddrCont() & valreqAddr1() & valreqAddr3() & valreqAddrCountry() & valreqAddrState() & valreqAddrPost() & valreqAddrPhone() & valreqAddrFax() & valreqAddrEMail())
			return true;
		else
			return false;
	});
	
	//ation functions
	function valreqAddrEMail(){
		//testing regular expression
		var a = $("#reqAddrEMail").val();
		var filterEmail = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
		//if it's  email
		if(filterEmail.test(a)){
			reqAddrEMail.removeClass("error");
			reqAddrEMailInfo.html("<img src=\"/css/i/valid.gif\">");
			reqAddrEMailInfo.removeClass("error");
			return true;
		}
		//if it's NOT 
		else{
			reqAddrEMail.addClass("error");
			reqAddrEMailInfo.html("<img src=\"/css/i/invalid.gif\">");
			reqAddrEMailInfo.addClass("error");
			return false;
		}
	}
	function valreqAddrCont(){
         //testing regular expression
		var e = $("#reqAddrCont").val();
		var filterCont = /^[\w-'\.,\s]{3,29}$/;
		//if it's  email
		if(filterCont.test(e)){
			reqAddrCont.removeClass("error");
			reqAddrContInfo.html("<img src=\"/css/i/valid.gif\">");
			reqAddrContInfo.removeClass("error");
			return true;
		}
		//if it's 
		else{
			reqAddrCont.addClass("error");
			reqAddrContInfo.html("<img src=\"/css/i/invalid.gif\">");
			reqAddrContInfo.addClass("error");
			return false;
		}
	}
	function valreqAddrName(){
         //testing regular expression
		var f = $("#reqAddrName").val();
		var filterName = /^[\w-'\.,\s]{3,29}$/;
		//if it's  email
		if(filterName.test(f)){
			reqAddrName.removeClass("error");
			reqAddrNameInfo.html("<img src=\"/css/i/valid.gif\">");
			reqAddrNameInfo.removeClass("error");
			return true;
		}
		//if it's 
		else{
			reqAddrName.addClass("error");
			reqAddrNameInfo.html("<img src=\"/css/i/invalid.gif\">");
			reqAddrNameInfo.addClass("error");
			return false;
		}
	}
	function valreqAddr1(){
         //testing regular expression
		var g = $("#reqAddr1").val();
		var filterAddr1 = /^[\w-'\.,\s]{3,29}$/;
		//if it's  email
		if(filterAddr1.test(g)){
			reqAddr1.removeClass("error");
			reqAddr1Info.html("<img src=\"/css/i/valid.gif\">");
			reqAddr1Info.removeClass("error");
			return true;
		}
		//if it's 
		else{
			reqAddr1.addClass("error");
			reqAddr1Info.html("<img src=\"/css/i/invalid.gif\">");
			reqAddr1Info.addClass("error");
			return false;
		}
	}
	function valreqAddr3(){
         //testing regular expression
		var h = $("#reqAddr3").val();
		var filterAddr3 = /^[\w-'\.,\s]{3,29}$/;
		//if it's  email
		if(filterAddr3.test(h)){
			reqAddr3.removeClass("error");
			reqAddr3Info.html("<img src=\"/css/i/valid.gif\">");
			reqAddr3Info.removeClass("error");
			return true;
		}
		//if it's 
		else{
			reqAddr3.addClass("error");
			reqAddr3Info.html("<img src=\"/css/i/invalid.gif\">");
			reqAddr3Info.addClass("error");
			return false;
		}
	}
	function valreqAddrCountry(){		
		//if it's NOT 
		if(reqAddrCountry.val() == "none"){
			reqAddrCountry.addClass("error");
			reqAddrCountryInfo.html("<img src=\"/css/i/invalid.gif\">");
			reqAddrCountryInfo.addClass("error");
			return false;
		}
		//if it's 
		else{
			reqAddrCountry.removeClass("error");
			reqAddrCountryInfo.html("<img src=\"/css/i/valid.gif\">");
			reqAddrCountryInfo.removeClass("error");
			return true;
		}
	}
	function valreqAddrState(){
		//if it's NOT 
		if(reqAddrState.val() == "none"){
			reqAddrState.addClass("error");
			reqAddrStateInfo.html("<img src=\"/css/i/invalid.gif\">");
			reqAddrStateInfo.addClass("error");
			return false;
		}
		//if it's 
		else{
			reqAddrState.removeClass("error");
			reqAddrStateInfo.html("<img src=\"/css/i/valid.gif\">");
			reqAddrStateInfo.removeClass("error");
			return true;
		}
	}
	function valreqAddrPost(){
				//testing regular expression
		var b = $("#reqAddrPost").val();
		var filterPost = /^[0-9]{5}$/;
		//if it's  email
		if(filterPost.test(b)){
			reqAddrPost.removeClass("error");
			reqAddrPostInfo.html("<img src=\"/css/i/valid.gif\">");
			reqAddrPostInfo.removeClass("error");
			return true;
		}
		//if it's NOT 
		else{
			reqAddrPost.addClass("error");
			reqAddrPostInfo.html("<img src=\"/css/i/invalid.gif\">");
			reqAddrPostInfo.addClass("error");
			return false;
		}
	}
	function valreqAddrPhone(){
		//testing regular expression
		var c = $("#reqAddrPhone").val();
		var filterPhone = /^(0{1})([1-9]{3})\s?\d{3}\s?\d{4}$/;
		//if it's  email
		if(filterPhone.test(c)){
			reqAddrPhone.removeClass("error");
			reqAddrPhoneInfo.html("<img src=\"/css/i/valid.gif\">");
			reqAddrPhoneInfo.removeClass("error");
			return true;
		}
		//if it's NOT 
		else{
			reqAddrPhone.addClass("error");
			reqAddrPhoneInfo.html("<img src=\"/css/i/invalid.gif\">");
			reqAddrPhoneInfo.addClass("error");
			return false;
		}
	}
	function valreqAddrFax(){
		//testing regular expression
		var d = $("#reqAddrFax").val();
		var filterFax = /^(0{1})([1-9]{3})\s?\d{3}\s?\d{4}$/;
		//if it's  email
		if(filterFax.test(d)){
			reqAddrFax.removeClass("error");
			reqAddrFaxInfo.html("<img src=\"/css/i/valid.gif\">");
			return true;
		}
		//if it's NOT 
		else if(reqAddrFaxCheckBox.attr("checked")){
			reqAddrFax.removeClass("error");
			reqAddrFaxInfo.html("<img src=\"/css/i/valid.gif\">");
            reqAddrFax.val("N/A");
			return true;
		}
		else if(reqAddrFaxCheckBox.attr(null)){
			reqAddrFax.addClass("error");
			reqAddrFaxInfo.html("<img src=\"/css/i/invalid.gif\">");
			return false;
		}
	}
});
