/* FILE HEADER **************************************************
** 
** Input tag names:
** 		Phone
** 		Fax
** 		Email
**		required = "yes"  
**		numeric = "yes"
**		alphanumeric = "yes"
**		error = "New error message"
**      date = "yes"
** 		lengthmax = "max number of characters"
**		
**		Add this to head  <script language="javascript" src="/formval.js"></script>
**
**		Add this to form  <form name="input" action="add.htm" method="post" onsubmit="javascript: return validate(this)">
**
** END HEADER ***************************************************/

function validate(f) {
		
		
		for(var i = 0; i < f.length; i++) {
			var e = f.elements[i];
			
			
			// Looks for empty fields that have been marked "required = yes"
			// By adding the "error" flag to the form input you can redefine the alert message.

			if(e.required == "yes"){
							
				if ((e.value == null) || (e.value == "")){
					if(e.error == null)
						alert(e.name + " is required!");
					else	
					alert(e.error);
					e.focus();
					return false;
				}
			}

			// Phone and Fax Validation
			if ((e.name.toLowerCase() == "phone" || e.name.toLowerCase() == "fax" || e.name.toLowerCase() == "telephone" || e.name.toLowerCase() == "mobile") && e.value != ""){
				re = /^\d{3}-\d{3}-\d{4}$/;
				if(!re.test(e.value)){
					alert('Invalid Number. Must be 10 digits and in the form NNN-NNN-NNNN.');
				e.focus();
				e.select();
				return false;
				}
			}
			
			//Email Validation
			if ((e.name.toLowerCase() == "email") && e.value != ""){
				re = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;  
				if(!re.test(e.value)) {
					alert("Invalid email address format.\nMust be in name@domainname.com");
				e.focus();
				e.select();
				return false;
				}
			}
			
			//Numeric Validation numbers only.
			if ((e.numeric == "yes") && e.value != ""){
				re = /^[0-9]*$/;
				if(!re.test(e.value)){
					if(e.error == null)
						alert(e.name + " must be numeric only!");
					else	
					alert(e.error);
				e.focus();
				e.select();
				return false;
				}
			}
			
			//Max Length Validation.
			if (e.lengthmax != ""){
				if(e.value.length > e.lengthmax){
					alert(e.name + " can be no greater then " + e.lengthmax + " characters long!");
				e.focus();
				e.select();
				return false;
				}
			}
			
			//Date Validation mm/dd/yyyy.
			if ((e.date == "yes") && e.value != ""){
				re = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/;
				if(!re.test(e.value)){
					alert(e.name + " must be in this format mm/dd/yyyy!");
				e.focus();
				e.select();
				return false;
				}
			}
			
			//Alphanumeric Validation letters and numbers.
			if ((e.alphanumeric == "yes") && e.value != ""){
				re = /^\w*(?=\w*\d)(?=\w*[a-zA-Z])\w*$/;
				if(!re.test(e.value)){
				alert(e.name +  " must contain letters and numbers");
				e.focus();
				e.select();
				return false;
				}
			}
		}
		
}