/***************************/
//@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 = $("#registrationForm");
	
	var regname = $("#regname");
	var regnameInfo = $("#regnameInfo");
	
	var regemail = $("#regemail");
	var regemailInfo = $("#regemailInfo");
	
	var regpass1 = $("#regpass1");
	var regpass1Info = $("#regpass1Info");
	
	var regpass2 = $("#regpass2");
	var regpass2Info = $("#regpass2Info");
	
	var regtandc = $("#regtandc");
	var regtandcInfo = $("#regtandcInfo");
	
	//On blur
	regname.blur(validateRegName);
	regemail.blur(validateRegEmail);
	regpass1.blur(validateRegPass1);
	regpass2.blur(validateRegPass2);

	//On key press
	//regname.keyup(validateRegName);
	//regpass1.keyup(validateRegPass1);
	//regpass2.keyup(validateRegPass2);
	
	//On Submitting
	form.submit(function(){
		if(validateRegName() & validateRegEmail() & validateRegPass1() & validateRegPass2() & validateTermAndCondition())
			return true
		else
			return false;
	});
	
	//validation functions
	function validateRegEmail(){
		//testing regular expression
		var a = $("#regemail").val();
		var filter = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
		//if it's valid email
		
		var s=regemail.val();
     	var i;
        var returnString = "";
   
     	for (i = 0; i < s.length; i++){   
              var c = s.charAt(i);
        		if (c == " " ){
   					regemail.addClass("error");
   					regemailInfo.text("White Spaces are  not allowed.");
   					regemailInfo.addClass("error5");
   					return false;
        		}
        }
		
		if(regemail.val().length == 0){
			regemail.addClass("error");
			regemailInfo.text("Please enter an email address.");
			regemailInfo.addClass("error5");
			return false;
		} else if(filter.test(a)){
			regemail.removeClass("error");
			regemailInfo.text("This is where important notifications and email will be sent.");
			regemailInfo.removeClass("error5");
			return true;
		}
		//if it's NOT valid
		else{
			regemail.addClass("error");
			regemailInfo.text("Please enter a valid email address.");
			regemailInfo.addClass("error5");
			return false;
		}
	}
	/*
	function validatePass1(){
  
  var a = $("#password1");
  var b = $("#password2");
          var s=pass1.val();
     var i;
           var returnString = "";
   
     for (i = 0; i < s.length; i++)
      {   
              var c = s.charAt(i);
        if (c == " " )
    {
    pass1.addClass("error");
   pass1Info.text("White Spaces are  not allowed !");
   pass1Info.addClass("error");
   return false;
        }
        }
  //it's NOT valid
  if(pass1.val().length <8){
   pass1.addClass("error");
   pass1Info.text("Ey! Remember: At least 8 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 validateRegName(){
		//alert(regname.val().length);
		var s=regname.val();
     	var i;
        var returnString = "";
   
     	for (i = 0; i < s.length; i++){   
              var c = s.charAt(i);
        		if (c == " " ){
   					regname.addClass("error");
   					regnameInfo.text("White Spaces are  not allowed.");
   					regnameInfo.addClass("error5");
   					return false;
        		}
        }
		
		if(regname.val().length == 0){
			regname.addClass("error");
			regnameInfo.text("Please enter username.");
			regnameInfo.addClass("error5");
			return false;
		} else if(regname.val().length < 4){
			regname.addClass("error");
			regnameInfo.text("Username must be more than 3 letters.");
			regnameInfo.addClass("error5");
			return false;
		}else{
			regname.removeClass("error");
			regnameInfo.text("");
			regnameInfo.removeClass("error5");
			return true;
		}
	}
	function validateRegPass1(){
		var a = $("#regpassword1");
		var b = $("#regpassword2");

		//it's NOT valid
		var s=regpass1.val();
     	var i;
        var returnString = "";
   
     	for (i = 0; i < s.length; i++){   
              var c = s.charAt(i);
        		if (c == " " ){
   					regpass1.addClass("error");
   					regpass1Info.text("White Spaces are  not allowed.");
   					regpass1Info.addClass("error5");
   					return false;
        		}
        }
		
		if(regpass1.val().length <5){
			regpass1.addClass("error");
			regpass1Info.text("At least 5 characters are required (Password can contain letters, numbers and \"_\" symbol).");
			regpass1Info.addClass("error5");
			return false;
		}
		//it's valid
		else{			
			regpass1.removeClass("error");
			regpass1Info.text("At least 5 characters are required (Password can contain letters, numbers and \"_\" symbol).");
			regpass1Info.removeClass("error5");
			validateRegPass2();
			return true;
		}
	}
	function validateRegPass2(){
		var a = $("#regpassword1");
		var b = $("#regpassword2");
		//are NOT valid
		if( regpass1.val() != regpass2.val() ){
			regpass2.addClass("error");
			regpass2Info.text("Type the same password again.");
			regpass2Info.addClass("error5");
			return false;
		}
		//are valid
		else{
			regpass2.removeClass("error");
			regpass2Info.text("");
			regpass2Info.removeClass("error5");
			return true;
		}
	}
	
	function validateTermAndCondition(){
		if(document.getElementById('regtandc').checked){
			regtandc.removeClass("error");
			regtandcInfo.text("");
			regtandcInfo.removeClass("error5");
			return true;
		}else{
			regtandc.addClass("error");
			regtandcInfo.text("You must agree to the Terms & Conditions.");
			regtandcInfo.addClass("error5");
			return false;
		}
	}
	
});
