/***************************/
//@Author: 
//@website: 
//@email: 
//@license: 				
/***************************/

function validate(form){
//msgbox("test");
	var firstname = form.txtFirstName.value;
	var lastname = form.txtLastName.value;	

	var email = form.txtEmailAddress.value;
	var phone1 = form.txtPhoneNumber1.value;
	var address = form.txtStreetAddress1.value;
	var city = form.txtCity.value;
	//var province = form.txtProvince.value;
	var postal = form.txtPostalZipCode.value;
	var agree = form.chkAgreeToTerms;
	var skill = form.txtSkillQuestion.value;
	var skill_answer = [(90+33-3)*2]*7;		
	
	var errors = [];	
	
	if (skill!=skill_answer) {
	  errors[errors.length] = "Your answer to the skill testing question is incorrect. Please try again"
	}
	
	if (!isChecked(agree)) {
	  errors[errors.length] = "You must agree to the contest rules and terms to proceed!";
	}
	
	if (!isEmpty(firstname)) {
	  errors[errors.length] = "Please enter first name.";
	}
 
 	if (!isEmpty(lastname)) {
	  errors[errors.length] = "Please enter last name.";
	}
	
	if (!validateEmail(email)) {
	  errors[errors.length] = "Please enter valid e-mail address.";
	}	

	if (!isEmpty(phone1)) {
	  errors[errors.length] = "Please enter a valid telephone number.";
	}
	
	if (!isEmpty(address)) {
	  errors[errors.length] = "Please enter a valid street address.";
	}
	
	if (!isEmpty(city)) {
	  errors[errors.length] = "Please enter a valid city.";
	}

	/*if (!isEmpty(province)) {
	  errors[errors.length] = "Please enter a valid province.";
	}*/
	
	if (!isEmpty(postal)) {
	  errors[errors.length] = "Please enter a valid postal code.";
	}
	
	if (errors.length > 0) {

	  reportErrors(errors);
	  return false;
	 }
	  return true;
}

/* Functions */
function reportErrors(errors){
 var msg = "Please Enter Valid Data...\n";
 for (var i = 0; i<errors.length; i++) {
 var numError = i + 1;
  msg += "\n" + numError + ". " + errors[i];
}
 alert(msg);
}

	
function validateEmail(elem){
	var emailExp = /^[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(elem.match(emailExp)){
		return true;
	}else{
		return false;
	}
}
	
	function validateName(name){
		//if it's NOT valid
		if(name.length < 4){
			return false;
		}
		//if it's valid
		else{
			return true;
		}
	}
	function validatePass1(){
		var a = $("#password1");
		var b = $("#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 = $("#password1");
		var b = $("#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;
		}
	}
	
function isNumeric(elem){
	var numericExpression = /^[0-9]+$/;
	if(elem.value.match(numericExpression)){
		return true;
	}else{
		//alert(helperMsg);
		elem.focus();
		return false;
	}
}

function isNumeric_space(elem){
	var numericExpression = /^[0-9]+$/;
	if(elem.value.match(numericExpression)){
		return true;
	}else{
		//alert(helperMsg);
		elem.focus();
		return false;
	}
}

function isAlphabet(elem){
	var alphaExp = /^[a-zA-Z]+$/;
	if(elem.match(alphaExp)){
		return true;
	}else{
		return false;
	}
}

function isAlphabet_space(elem){
	var alphaExp = /^[a-zA-Z]+$/;
	if(elem.match(alphaExp)){
		return true;
	}else{
		return false;
	}
}

function isAlphanumeric(elem){
	var alphaExp = /^[0-9a-zA-Z]+$/;
	if(elem.match(alphaExp)){
		return true;
	}else{
		//alert(helperMsg);
		//elem.focus();
		return false;
	}
}	


function isAlphanumeric_space(elem){
	var alphaExp = /^[0-9a-zA-Z ]+$/;
	if(elem.match(alphaExp)){
		return true;
	}else{
		//alert(helperMsg);
		//elem.focus();
		return false;
	}
}	

function isChecked(elem) {
	if (elem.checked == 1)
	{
		return true;
	} else
	{ 	return false; }	
}

function isEmpty(elem) {
   if ((elem.length==0) || (elem==null)) {
      return false;
   }
   else { return true; }
}	
