/* 
JavaScript Document
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Description:	functions for client side form validation
Author:			liz moyer	
Updated: 		4/21/2006

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
*/

//loop thru form and validate field whose class name = validate
function validateForm(thisForm) {
	
	uc = 0;
	
	//loop thru form 
	for(i=0; i < thisForm.length; i++) {
		
		//create some variables for the field, value, name and type of field	
		formField = thisForm.elements[i]; 
		fieldValue = thisForm.elements[i].value; 
		fieldName = thisForm.elements[i].name;
		fieldType = thisForm.elements[i].type;	
		
		//validate name
		if(fieldName == "Name") {
			//empty value
			if (fieldValue == "") { 
				alert("Please enter a " + fieldName + "."); 
				formField.focus(); 	
				return false;		
			}
	
			//too short or too long
			if (fieldValue.length < 1 || fieldValue.length > 255) { 
				alert("Incorrect number of characters in " + fieldName); 
				formField.focus(); 
				formField.select(fieldValue); 		
				return false;		
			}	
		}
		//validate contact method radio buttons
		if(fieldName == "ContactMethod") {
			if(!formField.checked) { 
				uc += 1;				
				if( uc == 2 ){
					alert("Please select a preffered method of contact.")
					formField.focus();
					return false;
				}
			}	
			else {
				contact = fieldValue;				
			}
		}		
		//validate email contact
		if(fieldName == "Email" && contact == "Email") {
			
			//regular expression against which to validate email
			var re_mail = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z])+$/; 
	
			//if email doesn't validate invoke alert message, move cursor to form field, and return form = false
			if (!re_mail.test(fieldValue) || !fieldValue) {
				alert("Please enter a valid email");
				formField.focus();	
				if (!fieldValue) {formField.select(fieldValue);}
				return false;		
			}
			
		}
		//validate phone contact
		if(fieldName == "Phone" && contact == "Phone") {
			
			//strip out acceptable non-numeric characters () - \ /.
			var strippedValue = fieldValue.replace(/[\(\)\.\-\ ]/g, '');
	
			//value is not number
			if(isNaN(strippedValue)) {
				alert("There are invalid characters in " + fieldName + ". The " + fieldName + " only excepts numbers plus any characters as indicated in the formatting example.");
				formField.focus();
				formField.select(fieldValue);		
				return false;		
			}
	
			//too short or too long
			if(strippedValue.length < 10  || strippedValue.length > 10) {
				alert("Please enter the correct number of digits in " + fieldName + ".");
				formField.focus();
				formField.select(fieldValue);		
				return false;								
			}
		}
	}	
	return true;
}