/*------------------------------------------------------
--- Code to run after form submit event is registered. 
---   In the event of an error, scroll up the window to
---   an error message and focus the first failed field.
---   All fields should be indicated as failed via
---   onBlur events.
-------------------------------------------------------*/
    function validateForm() {
		// Add any fields you wish to check on submit here, an accompanying check event is required
		var fieldArr = new Array("inquiry","FirstName","Zip","DPhone","comments");
		for(var i=0; i<fieldArr.length; i++){ 
			if (!check(document.form[fieldArr[i]]))
			{   //<!--- Find which field needs the users attention with focus, all failed fields are already flagged in error. --->
				document.getElementById('redFields').innerHTML="<span style='color: #FF0000; text-align:center;'>There were problems with your input, refer to the red comments below.</span>";
				document.getElementById('redFields').setAttribute('class','popBox');
	      		document.getElementById('redFields').setAttribute('align','center');
				window.scrollTo(0,350);
	      		document.form[fieldArr[i]].focus();
				return false;
			} 
		}
      	document.form.submit();
      	return true;
    }
		/*--------------------------------------------------------------------
		---  Generates error messages in a consistant manner.
		---  	
		---	 Variables: 
		---		@name			id of label field to apply error message to
		---		@spantxt		text to use for an error message
		---		@bit			1 to apply error message
		---						0 to clear error message
		---------------------------------------------------------------------*/
    function errMsg(name, spantxt, bit) {
    	if(bit)
    		document.getElementById(name).innerHTML="<span>"+spantxt+"</span>";
       	else document.getElementById(name).innerHTML=spantxt;
    } 
		/*----------------------------------------------------------------------
		--- What's that you like huge switch statements?  Here's one 
		---
		---  Generic c-s validation, can be used inline with little code overhead.
		---	   Add fields needed, refer to errMsg() for creating an error message.
		---
		---	 Variables:
		---		@objEle			element to be passed ie.  check(this);
		------------------------------------------------------------------------*/
    function check(objEle){
		switch(objEle.name)
    	{
			case "comments" :
				if (objEle.value.length > 250){  
					errMsg(objEle.name,"Please limit your comments to 250 characters. \r Currently, you have " + objEle.value.length + " characters.",1);
					return false; }
				else{ 
					errMsg(objEle.name,"Additional Comments.",0); 
					return true; }
			case "inquiry" :
	    		if(objEle.value == ""){ 
	    			errMsg(objEle.name,"Indicate the nature of your inquiry.",1); 
	    			return false; }
	    		else{
	    			errMsg(objEle.name,"Indicate the nature of your inquiry:",0); 
	    			return true; }
	    	case "Email" :
	   			if(objEle.value.match(/^([\w]+)(.[\w]+)*@([\w]+)(.[\w]{1,3}){1,2}$/)){ 
	   				errMsg(objEle.name,"Email:",0); 
	   				return true; }
	   			else{ 
	   				errMsg(objEle.name,"Please Provide a valid email.",1); 
	   				return false; }
	   		case "DPhone" :
	   			if( objEle.value.match(/(\(\d\d\d\))?\s*(\d\d\d)\s*[\.-]?\s*(\d\d\d\d)/) && objEle.value.length >9 ){ 
	   				errMsg(objEle.name,"Day Time Phone #:",0); 
	   				return true;}
	   			else{
	   				errMsg(objEle.name,"Please enter your Day Time Phone #, including Area code.",1); 
	   				return false; }
				/*		
	   		case "NPhone" :
	   			if(objEle.value == "" || (objEle.value.match(/(\(\d\d\d\))?\s*(\d\d\d)\s*[\.-]?\s*(\d\d\d\d)/) && objEle.value.length > 9 )){ 	
	   				errMsg(objEle.name,"Night Time Phone #:",0); 
	   				return true; }	
	   			else{
	   				errMsg(objEle.name,"Please enter your Night Time Phone #, with Area code, or <a href='javascript:clearNP();'>clear</a> the field.",1); 
	   				return false; }
				*/
						
	   		case "FirstName" :
    			if(objEle.value == ""){
    				errMsg(objEle.name,"Please enter your first name.",1); 
					return false; }
    			else{
    				errMsg(objEle.name,"First Name:",0); 
					return true; }
    		
				/*case "LastName" :
    			if(objEle.value == ""){
    				errMsg(objEle.name,"Please enter your last name.",1); 
					return false; }
    			else{
    				errMsg(objEle.name,"Last Name:",0); 
					return true; }
    		case "Address" :
    			if(objEle.value == ""){
    				document.getElementById(objEle.name).innerHTML="<span>Please enter an Address.</span>"; 
					return false; }
    			else{
    				document.getElementById(objEle.name).innerHTML="Address:"; 
					return true; }
    		case "City" :
    			if(objEle.value == ""){
    				document.getElementById(objEle.name).innerHTML="<span>Please enter a City.</span>"; 
					return false; }
    			else{
    				document.getElementById(objEle.name).innerHTML="City:"; 
					return true; }
    		case "State" :
	    		if(objEle.value == "" ){ 
	    			errMsg(objEle.name,"Please select a State.",1); 
	    			return false; }
	    		else{ 
	    			errMsg(objEle.name,"State:",0); 
	    			return true; }
				*/
	    	case "Zip" :
	   			if(objEle.value.match(/^[\d]{5,9}$/)){ 
	   				errMsg(objEle.name,"Zip Code:",0);	
	   				return true; }
	   			else{ 
	   				errMsg(objEle.name,"Please Enter a Zip Code.",1); 
	   				return false; }
	    	default:
    			alert(objEle.name);
    	}
    	return true;
    }
	<!--- This wouldn't work with an inline anchor tag.  Quick fix to create a special function. --->
	function clearNP()
	{
		document.form.NPhone.value = "";
		errMsg('NPhone',"Night Time Phone #:",0);
	}
	/*----------------------------------------------------
	--- Finds all the fields in the form and clears them.
	---  Moves user focus to top of page.
	------------------------------------------------------*/ 
	function clearFields()
	{	
		errMsg('inquiry',"Indicate the nature of your inquiry:",0);
    	//errMsg('State',"State:",0);
   		errMsg('Email',"Email:",0);
   		errMsg('Zip',"Zip Code:",0);
   		errMsg('DPhone',"Day Time Phone #:",0);
   		//errMsg('NPhone',"Night Time Phone #:",0);	
   		errMsg('FirstName',"First Name:",0); 
    	//errMsg('LastName',"Last Name:",0);
    	//errMsg('Address',"Address:",0);
    	//errMsg('City',"City:",0);
    	document.getElementById('redFields').innerHTML="<img src='/images/prioritymarker_xsm.gif' width='10' height='15' alt='Priority Marker' border='0'> are required fields.";
   		document.getElementById('redFields').setAttribute('class','helperTxt');
   		document.getElementById('redFields').setAttribute('align','right');
   		window.scrollTo(0,350);
		document.form.inquiry.focus();
		/*
		---    
		---     This code works to clear all the fields it finds regardless 
		---     of browser implementation.  Optimize as you wish, this is
		---		3 lines of code to clear all browsers <> IE.
		---*/
		/*var isIE = navigator.appName == "Microsoft Internet Explorer"
		if(isIE)
		{	
			var form, elements, i, elm, formIdent; 
			  form = document.getElementById 
			    ? document.getElementById(formIdent) 
			    : document.forms[formIdent]; 	
			if (document.getElementsByTagName)
			{
				elements = form.getElementsByTagName('input');
				for( i=0, elm; elm=elements.item(i++); )
				{
					if (elm.getAttribute('type') == "text"){
						elm.value = '';
					}
				}
				elements = form.getElementsByTagName('select');
				for( i=0, elm; elm=elements.item(i++); ){
					elm.options.selectedIndex=0;
				}
			}
		}*/
    	return true;
	}			
