/***************************/
//@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!
/***************************/

jQ(document).ready(function(){
 //global vars
 var form = jQ("#customForm");
 var name = jQ("#name");
 var nameInfo = jQ("#nameInfo");
 var email = jQ("#email");
 var emailInfo = jQ("#emailInfo");
 var email = jQ("#email");
 var emailInfo = jQ("#emailInfo");
 var phone = jQ("#phone");
 var phoneInfo = jQ("#phoneInfo");
 var timeframe = jQ("#timeframe");
 var timeframeInfo = jQ("#timeframeInfo");
  var nobridges = jQ("#nobridges");
 var nobridgesInfo = jQ("#nobridgesInfo");
/* var pass1Info = $("#pass1Info");
 var pass2 = $("#pass2");
 var pass2Info = $("#pass2Info");*/
 var message = jQ("#message");

 //On blur
 //name.blur(validateName);
 email.blur(validateEmail);
 phone.blur(validatePhone);
 //timeframe.blur(validatetimeframe);
 //nobridgesInfo.blur(validatebridges);
/* pass2.blur(validatePass2);*/
 //On key press
 //name.keyup(validateName);
 /*pass1.keyup(validatePass1);
 pass2.keyup(validatePass2);*/
 //phone.keyup(validatePhone);
 //message.keyup(validateMessage);
 //On Submitting
 form.submit(function(){
 //if(validateName() & validateEmail() & validatePass1() & validatePass2() & validateMessage())
 //if(validateName() & validateEmail() & validatePhone() & validateMessage() & validatetimeframe() & validatebridges())
 if(validateEmail() & validatePhone())
 return true;
 else
 return false;
 });

 //validation functions
 function validateEmail(){
 //testing regular expression
 var a = jQ("#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}$/;
 var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{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("Please enter valid email address! (eg:testxyz@gmail.com)");
 emailInfo.addClass("error");
 return false;
 }
 }
 function validateName(){
 //if it's NOT valid
 if(name.val().length < 4){
 name.addClass("error");
 nameInfo.text("We want names with more than 3 letters!");
 nameInfo.addClass("error");
 return false;
 }
 //if it's valid
 else{
 name.removeClass("error");
 nameInfo.text("What's your name?");
 nameInfo.removeClass("error");
 return true;
 }
 }
 
 
 function validatetimeframe(){
 
 //if it's NOT valid

 if(timeframe.val() ==0){
 
	 
		
		 timeframe.addClass("error");
		 timeframeInfo.text("Choose time frames ");
		 timeframeInfo.addClass("error");
		 return false;
 }
 //if it's valid
 else{
		 timeframe.removeClass("error");
		 timeframeInfo.text("We want time frames!");
		 timeframeInfo.removeClass("error"); 
		 return true;
 }
 }
 
 function validatebridges(){
 
 //if it's NOT valid

 if(nobridges.val() ==0){
		nobridges.addClass("error");
		nobridgesInfo.text("Bridegs Involved!");
		nobridgesInfo.addClass("error");
		 return false;
 }
 //if it's valid
 else{
		 nobridges.removeClass("error");
		 nobridgesInfo.text("Bridegs Involved!!");
		 nobridgesInfo.removeClass("error"); 
		 return true;
 }
 }
 
 function validatePhone()
{ // tenacious phone # correction 

	var fld = document.getElementById('phone');
	var defaultAreaCode = '509';
	var sep = '-';
	if(!fld.value.length||fld.disabled) 
	{
		phone.addClass("error");
		phoneInfo.text("Please enter valid phone number!(eg:999-999-9999 or 9999999999)");
		phoneInfo.addClass("error");
		//alert('1');
		return false; // blank fields are the domain of requireValue 
	}
	
	
	if(typeof(sep)=='undefined') sep= '-';
	if(typeof(defaultAreaCode)!='undefined') defaultAreaCode= defaultAreaCode + sep;
	var ext= '', val= fld.value.toLowerCase();
	//alert (val);
	if(val.indexOf('x') > 0)
	{
		if(!noext) ext= ' x'+val.substr(val.indexOf('x')).replace(/\D/g,'');
		val= val.substr(0,val.indexOf('x'));
	}
	val= val.replace(/\D/g,'');
	//alert (val+'-'+val.length);
	if(val.length == 7)
	{
		fld.value= defaultAreaCode + val.substring(0,3) + sep + val.substring(3,20) + ext;
		phone.removeClass("error");
		phoneInfo.text("Please enter valid phone number!(eg:999-999-9999 or 9999999999)");
		phoneInfo.removeClass("error");
		//alert('2');
		return true;
	}
	if(val.length == 10)
	{
		fld.value= val.substring(0,3) + sep + val.substring(3,6) + sep + val.substring(6,20) + ext;
		phone.removeClass("error");
		phoneInfo.text("Please enter valid phone number!(eg:999-999-9999 or 9999999999)");
		phoneInfo.removeClass("error");
		//alert('3');
		return true;
	}
	if(val.length < 7)
	{
		//status= 'The phone number you supplied for the '+fieldname(fld)+' field was too short.';
		phone.addClass("error");
		phoneInfo.text("Please enter valid phone number!(eg:999-999-9999 or 9999999999)");
		phoneInfo.addClass("error");
		//alert('4');
		return false;
	}
	if(val.length > 10)
	{
		//status= 'The phone number you supplied for the '+fieldname(fld)+' field was too long.';
		phone.addClass("error");
		phoneInfo.text("(eg:999-999-9999 or 9999999999)");
		phoneInfo.addClass("error");
		//alert('5');
		return false;
	}
	//status= 'The phone number you supplied for the '+fieldname(fld)+' field was wrong.';
		phone.addClass("error");
		phoneInfo.text("Valid phone number please!");
		phoneInfo.addClass("error");
		//alert('6');
	return false;
}


 function validatePass1(){
 var a = jQ("#password1");
 var b = jQ("#password2");

 //it's NOT valid
 if(pass1.val().length <5){
 pass1.addClass("error");
 pass1Info.text("Ey! Remember: At least 5 characters: letters, numbers and '_'");
 pass1Info.addClass("error");
 return false;
 }
 //it's valid
 else{
 pass1.removeClass("error");
 pass1Info.text("At least 5 characters: letters, numbers and '_'");
 pass1Info.removeClass("error");
 validatePass2();
 return true;
 }
 }
 function validatePass2(){
 var a = jQ("#password1");
 var b = jQ("#password2");
 //are NOT valid
 if( pass1.val() != pass2.val() ){
 pass2.addClass("error");
 pass2Info.text("Passwords doesn't match!");
 pass2Info.addClass("error");
 return false;
 }
 //are valid
 else{
 pass2.removeClass("error");
 pass2Info.text("Confirm password");
 pass2Info.removeClass("error");
 return true;
 }
 }
 function validateMessage(){
 //it's NOT valid
 if(message.val().length < 10){
 message.addClass("error");
 return false;
 }
 //it's valid
 else{
 message.removeClass("error");
 return true;
 }
 }
});
