
function checkForm(formObj)
{	//alert("form focus is on " + formObj.search_method.value);

	if(formObj.search_method.value == "")
	{	alert("Please click the Search button to submit the form");
		return false;
	}
	
	var error = false;
	switch(formObj.name)
	{	case "usaform":
			switch(formObj.search_method.value)
			{	case "name": 
					// make sure state is selected
					if(formObj.search_state.selectedIndex == 0)
					{	error = true;
						alert("Please select a state from the list");
						break;
					}
					// search string is required for retailer search (but not for demo days)
					if((formObj.search_string.value.length == 0 || formObj.search_string.value == "enter name") && formObj.search_for[0].checked)
					{	error = true;
						alert("Please enter a " + formObj.search_type.options[formObj.search_type.selectedIndex].value + " to search for.");
						formObj.search_string.focus();
						break;
					}	 
				break;
				
				case "zipcode": // make sure 5-digit zip code is entered
					var regExpObj = /(^\d{5}$)/;
					if(!regExpObj.test(formObj.search_zip.value))
					{	error = true;
						alert("Please enter a 5-digit zip code\naround which to search.");
						break;
					}
					if(formObj.search_radius.selectedIndex == 0)
					{	error = true;
						alert("Please select a radius in miles to\nsearch around this zip code.");
						formObj.search_radius.focus();
						break;
					}
				break;
			}
		break;
		
		case "canadaform":
			switch(formObj.search_method.value)
				{	case "name":
						// state is always required
						if(formObj.search_state.selectedIndex == 0)
						{	error = true;
							alert("Please select a province from the list.");
							break;
						}									

						 // search string is required for retailer search (but not for demo days)
						if((formObj.search_string.value.length == 0 || formObj.search_string.value == "enter name") && formObj.search_for[0].checked)
						{	error = true;
							alert("Please enter a " + formObj.search_type.options[formObj.search_type.selectedIndex].value + " to search for.");
							formObj.search_string.focus();
							break;
						}	
					break;
					
					case "zipcode": // make sure postal code is formatted like "a1b2c3"
						//var regExpObj = /^\D{1}\d{1}\D{1}\d{1}\D{1}\d{1}$/;
						var regExpObj = /[a-zA-Z]\d[a-zA-Z]\d[a-zA-Z]\d/;
						if(!regExpObj.test(formObj.search_zip.value))
						{	error = true;
							alert("Please enter a 6-character postal\ncode around which to search.\n\nie. A1B2C3 (no dashes or spaces)");
							break;
						}
						if(formObj.search_radius.selectedIndex == 0)
						{	error = true;
							alert("Please select a radius in miles\nto search around this postal code.");
							formObj.search_radius.focus();
							break;
						}
					break;
				}
			break;
			
			case "worldform": // make sure a country has been selected from the list
					if(formObj.search_country.selectedIndex == 0)
					{	error = true;
						alert("Please select a country.");
						break;
					}
			break;
			
		}
	
	// window.status="form was processed, result was " + (error ? "error" : "OK");
	if(!error)
	{	formObj.submit();
	}
}

function setSearchMethod(formObj, type)
{	formObj.search_method.value = type;
	// window.status=formObj.name + "'s search_method was set to: " + formObj.search_method.value;
	alert(formObj.name + "'s search_method was set to: " + formObj.search_method.value);
}


function submitForm(formObj, type)
{	formObj.search_method.value = type;
	// window.status=formObj.name + "'s search_method was set to: " + formObj.search_method.value;
	//alert(formObj.name + "'s search_method was set to: " + formObj.search_method.value);
	checkForm(formObj);
}



