//<!-- 
function Validate_Form(theForm)
{
	var Name;
	var Type;
	var Caption;
	var Required;
	var Min_Length;
	var Max_Length;

	var theObject;
	var curCaption;
	
	var Iframe_Count = 0
	
	var formLength = theForm.length;
	
	// loop over each form field
	var FieldIDArray = theForm.Field_ID_List.value.split(',');
	
	for (var temp=0; temp < FieldIDArray.length; temp++)
	{
	    var count = FieldIDArray[temp];
		
		// get form field name
		Field = "Field" + count;
		
//		for (var j=0; j<formLength; j++)
//		{
			// check if the field exists
//			if (theForm.elements[j].name == Field)
//			{
				// get name of each variable 
				Type = "Type" + count;
				Caption = "Caption" + count;
				Required = "Required" + count;
				Min_Length = "Min_Length" + count;
				Max_Length = "Max_Length" + count;

				switch (theForm.elements[Type].value)
				{
					case "Text":
					case "Textarea":
					case "Color":
						if (!CheckLength(theForm.elements[theForm.elements[Field].value],
										 theForm.elements[Caption].value,
										 theForm.elements[Required].value,
										 theForm.elements[Min_Length].value,
										 theForm.elements[Max_Length].value))
							return (false);
						break;
					case "Password":
					case "LetterDigit":
						if (!CheckLength(theForm.elements[theForm.elements[Field].value],
										 theForm.elements[Caption].value,
										 theForm.elements[Required].value,
										 theForm.elements[Min_Length].value,
										 theForm.elements[Max_Length].value))
							return (false);
						if (!CheckLetterDigit(theForm.elements[theForm.elements[Field].value],
										 	  theForm.elements[Caption].value))
							return (false);
						break;
					case "Letter":
						if (!CheckLength(theForm.elements[theForm.elements[Field].value],
										 theForm.elements[Caption].value,
										 theForm.elements[Required].value,
										 theForm.elements[Min_Length].value,
										 theForm.elements[Max_Length].value))
							return (false);
						if (!CheckLetter(theForm.elements[theForm.elements[Field].value],
										 theForm.elements[Caption].value))
							return (false);
						break;
					case "Digit":
						if (!CheckLength(theForm.elements[theForm.elements[Field].value],
										 theForm.elements[Caption].value,
										 theForm.elements[Required].value,
										 theForm.elements[Min_Length].value,
										 theForm.elements[Max_Length].value))
							return (false);
						if (!CheckDigit(theForm.elements[theForm.elements[Field].value],
										theForm.elements[Caption].value))
							return (false);
						break;
					case "Number":
						if (!CheckLength(theForm.elements[theForm.elements[Field].value],
										 theForm.elements[Caption].value,
										 theForm.elements[Required].value,
										 theForm.elements[Min_Length].value,
										 theForm.elements[Max_Length].value))
							return (false);
						if (!CheckNumber(theForm.elements[theForm.elements[Field].value],
										 theForm.elements[Caption].value))
							return (false);
						break;
					case "Date/Time":
						if (!CheckDateTime(theForm.elements[(theForm.elements[Field].value+"_Month")],
									   theForm.elements[Caption].value,
									   theForm.elements[(theForm.elements[Field].value+"_Year")],
									   theForm.elements[(theForm.elements[Field].value+"_Month")],
									   theForm.elements[(theForm.elements[Field].value+"_Day")],
									   theForm.elements[(theForm.elements[Field].value+"_Hour")],
									   theForm.elements[(theForm.elements[Field].value+"_Minute")] ))
							return (false);
						break;
					case "Date":
						if (!CheckDate(theForm.elements[(theForm.elements[Field].value+"_Month")],
									   theForm.elements[Caption].value,
									   theForm.elements[(theForm.elements[Field].value+"_Year")],
									   theForm.elements[(theForm.elements[Field].value+"_Month")],
									   theForm.elements[(theForm.elements[Field].value+"_Day")] ))
							return (false);
						break;
					case "Time":
						if (!CheckTime(theForm.elements[(theForm.elements[Field].value+"_Hour")],
									   theForm.elements[Caption].value,
									   theForm.elements[(theForm.elements[Field].value+"_Hour")],
									   theForm.elements[(theForm.elements[Field].value+"_Minute")] ))
							return (false);
						break;
					case "Listbox":
					case "ValueList":
					case "ComboBox":
					case "DropDown":
						if (!CheckSelect(theForm.elements[theForm.elements[Field].value],
										 theForm.elements[Caption].value,
										 theForm.elements[Required].value))
							return (false);
						break;
					case "Province/State":
						if (!ValidateProv(theForm))
							return (false);
						break;
					case "Office Phone":
						if (!CheckLength(theForm.C_Area_Code, "Office Phone Area Code", 
										 theForm.elements[Required].value, 0, 3))
							return (false);
						if (!CheckDigit(theForm.C_Area_Code, "Office Phone Area Code"))
							return (false);
						if (!CheckLength(theForm.C_Number, "Office Phone Number", 
										 theForm.elements[Required].value, 0, 7))
							return (false);
						if (!CheckDigit(theForm.C_Number, "Office Phone Number"))
							return (false);
						break;
					case "Home Phone":
						if (!CheckLength(theForm.C_Area_Code2, "Home Phone Area Code", 
										 theForm.elements[Required].value, 0, 3))
							return (false);
						if (!CheckDigit(theForm.C_Area_Code2, "Home Phone Area Code"))
							return (false);
						if (!CheckLength(theForm.C_Number2, "Home Phone Number", 
										 theForm.elements[Required].value, 0, 7))
							return (false);
						if (!CheckDigit(theForm.C_Number2, "Home Phone Number"))
							return (false);
						break;
					case "Fax":
						if (!CheckLength(theForm.C_Area_Code3, "Fax Area Code", 
										 theForm.elements[Required].value, 0, 3))
							return (false);
						if (!CheckDigit(theForm.C_Area_Code3, "Fax Area Code"))
							return (false);
						if (!CheckLength(theForm.C_Number3, "Fax Number", 
										 theForm.elements[Required].value, 0, 7))
							return (false);
						if (!CheckDigit(theForm.C_Number3, "Fax Number"))
							return (false);
						break;
					case "Phone":
						// area code
						curCaption = theForm.elements[Caption].value + " Area Code";
						theObject = theForm.elements[theForm.elements[Field].value + "Area"];
						if (!CheckLength(theObject, curCaption, theForm.elements[Required].value, 0, 3))
							return (false);
						if (!CheckDigit(theObject, curCaption))
							return (false);
						
						// phone number
						curCaption = theForm.elements[Caption].value;
						theObject = theForm.elements[theForm.elements[Field].value];
						if (!CheckLength(theObject, curCaption, theForm.elements[Required].value, 0, 7))
							return (false);
						if (!CheckDigit(theObject, curCaption))
							return (false);

						// extension							
						theObject = theForm.elements[theForm.elements[Field].value + "Ext"];
						if (theObject) // if there is an extension
						{
						  curCaption = theForm.elements[Caption].value + " Extension";
						  if (!CheckLength(theObject, curCaption, 0, 0, 5))
							  return (false);
						  if (!CheckDigit(theObject, curCaption))
							  return (false);
						}
						break;
					case "CheckBox":
						
						if (theForm.elements['CheckBox_' + Field].checked)
							theForm.elements[theForm.elements[Field].value].value = '1';
						else
							theForm.elements[theForm.elements[Field].value].value = '0';
						break;
					case "CheckBoxList":
						if (Number(theForm.elements[Required].value))
						{
							if (!SelectCheckbox(theForm, theForm.elements[Field].value, theForm.elements[Caption].value))
								return (false);
						}
						break;
					case "Iframe":
						var strFrame = 'HTML' + theForm.elements[Field].value;
						var objIFrame = eval(strFrame);
						var str = objIFrame.oDiv.innerHTML;
						
						str = str.replace(/œ/gi, "&#339;");
						str = str.replace(/’/gi, "&#8217;");
						str = str.replace(/“/gi, "&#8220;");
						str = str.replace(/”/gi, "&#8221;");
						str = str.replace(/‘/gi, "&#8216;");
						str = str.replace(/…/gi, "&#8230;");
						
						var strObject = 'theForm.elements["' + theForm.elements[Field].value + '"]';
						var objObject = eval(strObject);
						objObject.value = str;
						theForm.elements[theForm.elements[Field].value].value = str;
						if (theForm.elements[Required].value == 1 && theObject.value == '')
						{
						    alert("Please enter a value for the \"" + theForm.elements[Caption].value + "\" field.");
							objIFrame.oDiv.focus();
							return (false);
						}
						
						//return (true);
					    /*switch (Iframe_Count)
						{
						  case 0:
						  	HTML0.MENU_FILE_SAVE_onclick();
							theForm.elements[theForm.elements[Field].value].value = HTML0.UploadForm.UploadDocument.value;
						  	break;
						  case 1:
						  	HTML1.MENU_FILE_SAVE_onclick();
							theForm.elements[theForm.elements[Field].value].value = HTML1.UploadForm.UploadDocument.value;
						  	break;
						  case 2:
						  	HTML2.MENU_FILE_SAVE_onclick();
							theForm.elements[theForm.elements[Field].value].value = HTML2.UploadForm.UploadDocument.value;
						  	break;
						  case 3:
						  	HTML3.MENU_FILE_SAVE_onclick();
							theForm.elements[theForm.elements[Field].value].value = HTML3.UploadForm.UploadDocument.value;
						  	break;
						}
						Iframe_Count = Iframe_Count + 1;*/
						break;
					case "Address":
						if (!CheckLength(theForm.Street, theForm.elements[Caption].value, 1, 0, 100) ||
							!CheckLength(theForm.City, "City", 1, 0, 50) ||
							!ValidateProv(theForm) ||
							!CheckLength(theForm.Zip, "Postal Code/Zip", 1, 0, 15) ||
							!CheckLetterDigit(theForm.Zip, "Postal Code/Zip"))
							return (false);
						break;
					case "Email":
						if (!CheckLength(theForm.elements[theForm.elements[Field].value],
										 theForm.elements[Caption].value,
										 theForm.elements[Required].value,
										 theForm.elements[Min_Length].value,
										 theForm.elements[Max_Length].value))
							return (false);
						if (Number(theForm.elements[Required].value) && !CheckEmail(theForm.elements[theForm.elements[Field].value], theForm.elements[Caption].value))
							return (false);
						break;
				}
//				break;
//			}
//		}
	
	}
	
	return (true);
}
// -->
