				var arrReqLabels = new Array();
				var arrReqFields = new Array();
				var intCountReqFields = 0;

				function trim() {
				// Remove leading spaces
				var s = this.replace(/^\s+/g, "")

				// Remove trailing spaces
				s = s.replace(/\s+$/g, "")
				return s
				}

				// Assign this function to all strings
				String.prototype.trim = trim

				function setState()
				{
					document.frmContactRequest.state.value = document.frmContactRequest.cboState.options[document.frmContactRequest.cboState.selectedIndex].text;
				}

				function trimForm(form) {
					for (var i=0; i<form.elements.length; i++) {
						if ((form.elements[i].type=="text")||(form.elements[i].type=="hidden")||(form.elements[i].type=="textarea")) {
							form.elements[i].value = form.elements[i].value.trim();
						}
					}
				}

				function validateEmail(value) {
				var objRegExp  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

				return objRegExp.test(value);
				}

				function checkRequired(form) {
					var objCtl;
					var reqErr = "";
					for (var i=0; i<form.elements.length; i++) {

						if ( (!(form.elements[i].readonly)) && (!(form.elements[i].disabled)) && (!(form.elements[i].type=="hidden")) ) {

							if ((form.elements[i].type=="text")||(form.elements[i].type=="hidden")||(form.elements[i].type=="password")||(form.elements[i].type=="textarea")) {
								form.elements[i].value = form.elements[i].value.trim();
								if (form.elements[i].value == "") {
									for(var j=0; j<intCountReqFields; j++) {
										if(form.elements[i].name==arrReqFields[j]) {
											if ((reqErr=="") || (objCtl==null)) {
												if ( (!(form.elements[i].readonly)) && (!(form.elements[i].disabled)) && (!(form.elements[i].type=="hidden")) ) {
													objCtl = form.elements[i];
												} else {
													//loop starting with current element (var j=i)
													//check for ability to set focus
													//first time we can, set focus to that element
													objCtl = form.elements[i+1];
												}
											}
											reqErr = reqErr + "\n" + arrReqLabels[j];
											break;
										}
									}
								}
							}
							if ((form.elements[i].type.substr(0,6)=="select")&&(!(form.elements[i].multiple))) {
								if (form.elements[i].options[form.elements[i].selectedIndex].value=="-1") {
									for(var j=0; j<intCountReqFields;j++) {
										if(form.elements[i].name==arrReqFields[j]) {
											if ((reqErr=="") || (objCtl==null)) {
												if ( (!(form.elements[i].readonly)) && (!(form.elements[i].disabled)) && (!(form.elements[i].type=="hidden")) ) {
													objCtl = form.elements[i];
												} else {
													objCtl = form.elements[i+1];
												}
											}
											reqErr = reqErr + "\n" + arrReqLabels[j];
										}
									}
								}
							}
						}
					}
					if (reqErr!="") {
						reqErr = "The following required fields have been left blank.\nPlease enter appropriate values in each of these fields:\n" + reqErr
						alert(reqErr);
						if(objCtl!=null) {
							objCtl.focus();
						}
						return false;
					} else {
						//alert("all clear");
						return true;
					}
				}

				function MaxLength(ctl,label,maxChars) {
					var curLength = ctl.value.length;
					if (curLength>maxChars) {
						var errMsg = label + " is not to contain more than " + maxChars.toString() + " characters. Your entry contains " + curLength.toString() + " characters. Please edit your entry.";
						alert(errMsg);
						ctl.focus();
					}
				}

				var bError = false;
				var errMsg = "";
				var objFirst;
				var chkValid = 0;

				function setFirstError(obj) {
					if (bError==false) {
						bError = true;
						objFirst = obj;
					}
				}

				function SubmitForm() {
					errMsg = "";
					bError = false;
					objFirst = "";
					if (document.frmContactRequest.hdnSubmit.value=="1") {
						alert("Please only click the submit button once.");
						return;
					} else {
						document.frmContactRequest.hdnSubmit.value="1";
						trimForm(document.frmContactRequest);
						//verify the required fields
						//validate any additional data
						//display the error message or submit the form
						if(!(checkRequired(document.frmContactRequest))) {
							document.frmContactRequest.hdnSubmit.value="0";
						} else {
						// form level data validation
						//		setFirstError(frm.ControlName);
						//		errMsg = errMsg + "\nYou must ***statement of business rule***.";
							chkValid = chkValid + 1;

							if (!validateEmail(document.frmContactRequest.email.value)) {
								setFirstError(document.frmContactRequest.email);
								errMsg = errMsg + "\nYou must enter a valid Email address.";
							}

							if (objFirst) {
								chkValid = 0;
								objFirst.focus();
								errMsg = "The following data validation errors must be corrected before the system can process this action:\n" + errMsg;
								alert(errMsg);
								document.frmContactRequest.hdnSubmit.value="0";
							} else {
								document.frmContactRequest.action = "contact_ty.asp?a=s";
								//document.frmContactRequest.action = "https://www.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8";
								document.frmContactRequest.submit();
							}
						}
					}
				}

				function ResetForm() {
					window.document.frmContactRequest.reset();
				}

				function addRequired(strLabel,strName) {
					arrReqLabels[intCountReqFields] = strLabel;
					arrReqFields[intCountReqFields] = strName;
					intCountReqFields = intCountReqFields + 1;
				}

				addRequired("Email Address","email");
				addRequired("First Name","first_name");
				addRequired("Last Name","last_name");
