var money = /(^(\d{1,3})\.\d{2}$)|(^(\d{1,3}),?\d{3}\.\d{2}$)|(^(\d{1,3}),?\d{3},?\d{3}\.\d{2}$)|(^0$)/;
var money2 = /^\$?-?(\d*)\.?(\d+)$/;
var phone = /^(\d{10})$/;
var zip = /^(\d{5})$/;

var email = /^([a-zA-Z\d_\.]+)@((\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3})|(([a-zA-Z\d_]+)\.([a-zA-Z]{2,4})))$/;

function defaultField(FormObject,field)
{
	FormObject.elements[field].focus();
}

function clearAll(FormObject)
{
	FormObject.reset();
}

function checkForm(FormObject)
{
	try
	{
		for (cfx = 0; cfx < FormObject.elements.length; cfx++)
		{
			if (FormObject.elements[cfx].id == "required")
			{
				switch (FormObject.elements[cfx].type.toLowerCase())
				{
					case "text":case "password":case "textarea":case "file":
						if (!checkText(FormObject.elements[cfx]))
						{
							formErrorMSG(FormObject.elements[cfx].type)
							FormObject.elements[cfx].focus();
							return false;
						}
					break;
					case "select-one":
						if (!checkSelect(FormObject.elements[cfx]))
						{
							formErrorMSG(FormObject.elements[cfx].type)
							FormObject.elements[cfx].focus();
							return false;
						}
					break;
					case "select-multiple":
						if (!checkMultipleSelect(FormObject.elements[cfx]))
						{
							formErrorMSG(FormObject.elements[cfx].type)
							FormObject.elements[cfx].focus();
							return false;
						}
					break;
					case "radio":
						if (!checkRadio(FormObject,FormObject.elements[cfx].name))
						{
							formErrorMSG(FormObject.elements[cfx].type)
							
							try
							{
								FormObject.elements[FormObject.elements[cfx].name][0].checked = true;
							}
							catch(e)
							{
								FormObject.elements[cfx].focus();
							}
							
							return false;
						}
					break;
	 				case "checkbox":
						if (!checkCheckBox(FormObject,FormObject.elements[cfx].name))
						{
							formErrorMSG(FormObject.elements[cfx].type)
							
							try
							{
								FormObject.elements[FormObject.elements[cfx].name][0].checked = true;
							}
							catch(e)
							{
								FormObject.elements[cfx].focus();
							}
							
							return false;
						}
					break;
	 			}
			}
			else if (FormObject.elements[cfx].id == "zip")
			{
				if (!zip.test(FormObject.elements[cfx].value))
				{
					formErrorMSG("zip");
					FormObject.elements[cfx].focus();
					return false;
				}
			}
			else if (FormObject.elements[cfx].id == "phone")
			{
				if (!phone.test(FormObject.elements[cfx].value))
				{
					formErrorMSG("phone");
					FormObject.elements[cfx].focus();
					return false;
				}
			}
			else if (FormObject.elements[cfx].id == "money")
			{
				if (!money.test(FormObject.elements[cfx].value))
				{
					formErrorMSG("money");
					FormObject.elements[cfx].focus();
					return false;
				}
			}


		}
	}
	catch(e)
	{
		alert(e.description);
	}
	return true;
}

function checkText(TextElement)
{
	TextElement.value = Trim(TextElement.value);
	if (TextElement.value == "")
	{
		return false;
	}
	return true;
}

function checkSelect(SelectElement)
{
	if (SelectElement.selectedIndex <= 0)
	{
		return false;
	}
	return true;
}

function checkMultipleSelect(SelectElement)
{
	var s_t = false;
	for (x = 1; x < SelectElement.options.length; x++)
	{
		if (SelectElement.options[x].selected == true)
		{
			s_t = true;
			break;
		}
	}
	return s_t;
}

function checkRadio(FormObj,radio_name)
{
	var radio_check = false;
	
	if (FormObj.elements[radio_name].length > 0)
	{
		for (crx = 0; crx < FormObj.elements[radio_name].length; crx++)
		{
			if (FormObj.elements[radio_name][crx].checked == true)
			{
				radio_check = true;
			}
		}
	}
	else
	{
		if (FormObj.elements[radio_name].checked == true)
		{
			radio_check = true;
		}
	}
	
	return radio_check;
}

function checkCheckBox(FormObj,radio_name)
{
	return checkRadio(FormObj,radio_name);
}

function formErrorMSG(type)
{
	switch (type)
	{
		case "text":case "password":case "textarea":case "file":
			alert("Please do not leave this field blank.");
		break;
		case "select-one":
			alert("Please select at least one option in this drop down.");
		break;
		case "select-multiple":
			alert("Please select one or more options in this drop down.");
		break;
		case "radio":
			alert("Please select at least one option in this group.");
		break;
		case "checkbox":
			alert("Please select one or more options in this group.");
		break;
		case "zip":
			alert("Proper zip code format required (eg.55555).");
		break;
		case "phone":
			alert("Proper phone format required (eg.0123456789).");
		break;
		case "money":
			alert("Proper money format required (eg.1000.00 or 1,000.00).");
		break;
	}
}

var start = /^\s*/;
var end = /\s*$/;

function Trim(txtString){
	return (txtString.replace(start,"")).replace(end,"");
} 

// end of file           