// <author>Scott Bassett</author>
// <date>09/03/2004</date>
// <summary>javascript form check library for parrislanding.com</summary>

// <summary></summary>
// <parameters></parameters>
function doFormCheck(theForm)
{
	
	// hash table of required fields
	// types: 
	//   CHECK - checkbox
	//   RADIO - radio button
	//   SELECT - select box
	//   TEXT - any text entered
	//   ALPHA - only alphabetical chars
	//   ZIP - 5 digit or 5-4 digit
	var req = {
			      "FirstName":"ALPHA", "LastName":"ALPHA", "Address":"TEXT", 
			      "City":"TEXT", "State":"ALPHA", "Zip":"ZIP",
			      "PriceRange":"RADIO"
	          }

	// default error message
	eMsg = "The following errors were found with your submission:\n\n"
	          
	// check variable
	check = 1
	
	// form object
	f = "document.forms['" + theForm + "']"
	
	// run standard check
	for (var i in req)
	{
		
		if(req[i] == "CHECK") 
		{
			if(eval(f + "." + i + ".checked == false"))
			{
				check = 0
				eMsg += "  - '" + i + "' is a required field\n"
			}
		}
		else if(req[i] == "RADIO") 
		{
			c = eval(f + "." + i + ".length")
			subcheck = 0
			for(j=0;j<c;j++)
			{
				if(eval(f + "." + i + "[" + j + "].checked == true"))
					subcheck = 1
			}
			if(subcheck == 0)
			{
				check = 0
				eMsg += "  - '" + i + "' is a required option\n"
			}
		}
		else if(req[i] == "SELECT")
		{
			if(eval(f + "." + i + ".value == ''"))
			{
				check = 0
				eMsg += "  - '" + i + "' is a required field\n"
			}
		}
		else if(req[i] == "TEXT")
		{
			if(eval(f + "." + i + ".value == ''"))
			{
				check = 0
				eMsg += "  - '" + i + "' is a required field\n"
			}
		}
		else if(req[i] == "ALPHA")
		{
			var reg = /^([A-Za-z]|\ |\'){1,}$/i
			var ar = reg.exec(eval(f + "." + i + ".value"))
			if(! ar)
			{
				check = 0
				eMsg += "  - '" + i + "' must have an alphabetical value\n"
			}
		}
		else if(req[i] == "ZIP")
		{
			var reg = /(^[0-9]{5}$)|(^[0-9]{5}\-[0-9]{4}$)/
			var ar = reg.exec(eval(f + "." + i + ".value"))
			if(! ar)
			{
				check = 0
				eMsg += "  - '" + i + "' must be a numerical zip code\n"
			}
		}
		else
		{
			alert("ERROR: Variable type not defined!")
			return false;
		}
			
	}
	
	// run custom checks
	// Unit Type Desired Fields
	subcheck = 0
	var reg = /UnitTypeDesired/i
	c = eval(f + ".elements.length")
	for (i=0;i<c;i++)
	{
		var ar = reg.exec(eval(f + ".elements[" + i + "].name"))
		if(ar)
		{
			if(eval(f + ".elements[" + i + "].checked == true"))
				subcheck = 1
		}
	}
	if(subcheck == 0)
	{
		check = 0
		eMsg += "  - You must select at least one Unit Type Desired\n"
	}
	
	// Phone OR Email
	if (eval(f + ".Email.value == '' && " + f + ".Phone.value == ''"))
	{
		check = 0
		eMsg += "  - You must enter either your Phone Number or Email Address\n"
	}
	else if (eval(f + ".Email.value != ''"))
	{
		var reg = /^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.(([0-9]{1,3})|([a-zA-Z]{2,3})|(aero|coop|info|museum|name))$/
		var ar = reg.exec(eval(f + ".Email.value"))
		if(! ar) {
			check = 0
			eMsg += "  - You must enter a valid Email Address\n"
		}
	}
	else if (eval(f + ".Phone.value != ''"))
	{
		var reg = /^([0-9]|\(|\)|\.|\-|\ |\+){10}$/i
		var ar = reg.exec(eval(f + ".Phone.value"))
		if(! ar) {
			check = 0
			eMsg += "  - You must enter a valid Phone Number\n"
		}
	}
	
	// close off error message
	eMsg += "\nPlease correct these errors and resubmit this form."
	
	// alert and return if we have errors
	if(check == 0)
	{
		alert(eMsg)
		return false
	}
	else
	{
		return true
	}

}
