/*
	USAGE:
		<SCRIPT LANGUAGE="JavaScript" SRC="path to this file"></SCRIPT>
		<FORM onSubmit="return verify(this);">
	
	FIELD NAMING CONVENTION:
		If included, these fields are required:
			first, last, address, city, state, zip or azip, bzip, email
		All other field names will be treated as optional
	
	Version 1.1 
	Last Revision 9/25/01
	Tyler Rorabaugh	
*/




function errors() { return true; } 
window.onerror = errors;


var noverify = false;

function verify (myform) {
	if(noverify) {
	
		return true;
	
	
	} 
	
	var msg			  = "";
	var toselect	  = "";
	var empty_fields = "";
	var errors       = "";
	var numempty	  = 0;
	var numerrors	  = 0;
	
	// Check regexs and for empty fields
	for (var i = 0; i < myform.length; i++) {
		var e = myform.elements[i];
	
		// if the second argument is passed in check all select fields in form
		if(arguments.length == 2) {	
			if(e.type == "select-one" || e.type == "select") {
				if(e.selectedIndex == 0 && e.name != 'prefix') {
				 	if(e.name == 'issue') {
						errors += ("\n      Select an issue area");
					  	numerrors++;
						
					} else {
					     errors += ("\n          Select A Topic");
					     numerrors++;
					}

				}
			
			}
		}
		
		
		if ((e.type == "text") || (e.type == "textarea")) {
			if ((e.value == null) || (e.value == "")) {
				switch (e.name) {
					case "first":
						empty_fields += ("\n          First Name");
						if (toselect == "") toselect = e.name;
						numempty++;
						break;
					case "name":
						empty_fields += ("\n          Name");
						if (toselect == "") toselect = e.name;
						numempty++;
						break;
					case "last":
						empty_fields += ("\n          Last Name");
						if (toselect == "") toselect = e.name;
						numempty++;
						break;
					case "searchlast":
						empty_fields += ("\n          Last Name");
						if (toselect == "") toselect = e.name;
						numempty++;
						break;

					case "title":
						empty_fields += ("\n          Title");
						if (toselect == "") toselect = e.name;
						numempty++;
						break;
					case "website":
						empty_fields += ("\n          Web Site");
						if (toselect == "") toselect = e.name;
						numempty++;
						break;

					case "date":
						empty_fields += ("\n          Training Date");
						if (toselect == "") toselect = e.name;
						numempty++;
						break;
						
					case "location":
						empty_fields += ("\n          Location");
						if (toselect == "") toselect = e.name;
						numempty++;
						break;						
																		
					case "azip":

					case "zip":
						empty_fields += ("\n          Zip Code");
						if (toselect == "") toselect = e.name;
						numempty++;
						break;
					case "email":
						empty_fields += ("\n          Email Address");
						if (toselect == "") toselect = e.name;
						numempty++;
						break
				}
						

			} else if ((e.name == "first") && !(e.value.match(/[A-Za-z]+/))) {
				errors += ("\n          First Name");
				if (toselect == "") toselect = e.name;
				numerrors++;
			} else if ((e.name == "last") && !(e.value.match(/[A-Za-z]+/))) {
				errors += ("\n          Last Name");
				if (toselect == "") toselect = e.name;
				numerrors++;
			} else if ((e.name == "searchlast") && !(e.value.match(/[A-Za-z]+/))) {
				errors += ("\n          Last Name");
				if (toselect == "") toselect = e.name;
				numerrors++;
			} else if ((e.name == "title") && !(e.value.match(/[A-Za-z]+/))) {
				errors += ("\n          Title");
				if (toselect == "") toselect = e.name;
				numerrors++;
			
			} else if ((e.name == "website") && !(e.value.match(/.+/))) {
				errors += ("\n          Last Name");
				if (toselect == "") toselect = e.name;
				numerrors++;
			
			} else if ((e.name == "date") && !(e.value.match(/.+/))) {
				errors += ("\n          Training Date");
				if (toselect == "") toselect = e.name;
				numerrors++;
			} else if ((e.name == "location") && !(e.value.match(/.+/))) {
				errors += ("\n          Location");
				if (toselect == "") toselect = e.name;
				numerrors++;
			} else if ((e.name == "bzip") && (!(e.value.match(/\d{4}/)) || (e.value.length > 4))) {
				errors += ("\n          Zip +4");
				if (toselect == "") toselect = e.name;
				numerrors++;
			} else if ((e.name == "email") && !(e.value.match(/\w+@\w+/))) {
				errors += ("\n          Email Address");
				if (toselect == "") toselect = e.name;
				numerrors++;
			}
		}
	}
	
	// Return true if no errors or empty fields
	if (!empty_fields && !errors) return true;
	
	// Otherwise, create and display error message
	msg =  "_______________________________________\n\n";
	msg += "The form was unable to be submitted due to the\nfollowing ";
	numempty + numerrors == 1
		? msg += "error.  "
		+ "Please correct this error and\n"
		: msg += "errors.  "
		+ "Please correct these errors and\n";
	msg += "attempt to re-submit.\n";
	msg += "_______________________________________\n\n";
	
	if (empty_fields) {
		msg += "The following required ";
		numempty == 1
			? msg += "field was empty:"
			: msg += "fields were empty:";
		msg += (empty_fields + "\n");
		if (errors) msg += "\n";
	}
	
	if (errors) {
		msg += "The following ";
		numerrors == 1
			? msg += "field contained errors:"
			: msg += "fields contained errors:";
		msg += (errors + "\n");
	}
	
	// Show alert and stop submission
	alert(msg);
	if (toselect != "") {
	

		
			var i = myform.name;	
			if(i == '') {
				
				var myl = document.getElementById?true:false;
				var ie4 = (document.all && !myl)?true:false;	
				//alert(ie4);
				if(!ie4) {
				
					eval("myform." + toselect + ".select()");
					eval("myform." + toselect + ".focus()");
				} else {

				   return false;
				}
							

	
			} else {
				
			eval("document." + i +  "." + toselect + ".select()");
			eval("document." + i +  "." + toselect + ".focus()");
			return false;
			}

	}
	//alert('test');
	return false;



}


function chkselect(formname, selectname, message) {
		var x = eval('document.' + formname + '.' + selectname + '.options[0].selected');
		if(x) { alert(message); return false; }
}		

			
				

