/***************************************************************
# Date:        March 29, 2010
# Description: This js file handles client side validation.
# Author : Brian Kovach
****************************************************************/
/* *
 * Call Method:
 * 		validate(obj); --> Call validate function and pass this
 * 
 * Validation Types:
 * 		isEmpty(field);
 * 		emailValidator(field);
 */

function validate(obj){
  var alertMssg = '';
  var mssg = Array();
  var i = 0;
  
    // check to see if name is empty
  var chkName = isEmpty(obj.elements['name']);
  if(chkName == false){
    mssg[i] = 'Please fill in a name.';
    i++;
  }
  
    // check to see if email is empty
  var chkEmail = isEmpty(obj.elements['email']);
  if(chkEmail == false){
    mssg[i] = 'Please fill in a email.';
    i++;
  }
  else{
      // validate email address
    var chkValidEmail = emailValidator(obj.elements['email']);
    if(chkValidEmail == false){
      mssg[i] = 'Invalid email address.';
      i++;
    }  
  }
    
    // check to see if zipcode is empty
  var chkZipcode = isEmpty(obj.elements['zipcode']);
  if(chkZipcode == false){
    mssg[i] = 'Please fill in a postal code.';
    i++;
  }

    // check to see if handedness is empty only if element exists in form
  if(obj.elements['handedness']){
    var chkHandedness = isEmpty(obj.elements['handedness']);
    if(chkHandedness == false){
      mssg[i] = 'Please select if you golf right or left handed.';
      i++;
    }
  }
  
    // check to see if store is empty only if element exists in form
  if(obj.elements['store'])
  {
    var chkStore = isEmpty(obj.elements['store']);
    if(chkStore == false)
    {
      mssg[i] = 'Please select a improvement center.';
      i++;
    }
  }
  
    // build alert message if we have errors
  if(mssg != ''){
    var cnt = mssg.length;
    alertMssg = "Error submitting, Please correct the following:\r\n";
    for(j=0;j<cnt;j++){
      alertMssg += "\r\n"+mssg[j];
    }
    alert(alertMssg);
    return false;
  }
  else{
    return true;
  }
}


/*The following functions came from http://www.tizag.com/javascriptT/javascriptform.php?*/

/*Empty Validation*/
function isEmpty(field){
 	if(field.value != ""){
 	 	return true;
 	} 
  else {
 	 	return false;
 	}
}

/*Email Validation*/
function emailValidator(field){
	var emailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;
	if(field.value.match(emailExp)){
		var classTmp = field.className; //retrieve the class name
		var tmp = new Array();
		tmp = classTmp.split('error'); //remove the class error
		field.className = tmp[0]; //return remaining class names		
		return true;
	}	else {
		field.className += " error";
		return false;
	}
}
/*End functions from http://www.tizag.com/javascriptT/javascriptform.php?*/
