function submitForm(oFrm) {
	try {
		optRm();
		var sOut = "";
		var aFocus = Array();
		function isBlank(sFld) {
			try {
				setErrLbl(sFld+'Lbl',0);
				var bBad = false;
				var oF = document.forms[sForm].elements['CONF_'+sFld+'_Field'];
				var oL = document.forms[sForm].elements['CONF_'+sFld+'_Label'];
				var oR = document.forms[sForm].elements['CONF_'+sFld+'_Required'];
				if(oF.nodeName == 'INPUT' && oR.value == 'true' && oF.value == "") { bBad = true; }
				if(oF.nodeName == 'SELECT' && oR.value == 'true' && oF.options[oF.selectedIndex].value == "") bBad = true;
				if(bBad) {
					sOut += "<b>"+oL.value+"</b> is a required field.<br>";
					setErrLbl(sFld+'Lbl',1);
					aFocus.push(oF);
				}
				return {'field':oF,'label':oL,'required':oR,'bad':bBad};
			} catch(E) { }
		}
		isBlank('FirstName');
		isBlank('LastName');
		var email = isBlank('Email');
		if(!email.bad) {
			if (!checkEmail(email.field.value)) {
				sOut += "Please enter a valid email address.<br>";
				setErrLbl('EmailLbl',1);
				aFocus.push(email.field);
			}
		}
		var phone = isBlank('Phone');
		if(!phone.bad) {
			if (!checkPhone(phone.field.value)) {
				sOut += "Please enter a valid phone number.<br>";
				setErrLbl('PhoneLbl',1);
				aFocus.push(phone.field);
			}
		}
		isBlank('Company');
		isBlank('Department');
		isBlank('Industry');
		isBlank('AddressState');
		isBlank('AddressCountry');
		isBlank('AddressZip');
		isBlank('Product');
		isBlank('ImplementationTime');
		isBlank('PurchasingRole');
		isBlank('CompanySize');
		isBlank('CurrentSupportSolution');
		if (sOut != '') {
			document.getElementById('errorMessage').innerHTML = '<p><img src="/images/ec_error_icon.gif" width=16 height=16 alt="Error" style="float:left;margin-right:5px;"><span class="error"><span class="errorTitle"><b>Please correct the field(s) marked in red.</b></span></p><p style="margin-left:32px;"><span class="error">'+sOut+'</span></p>';
			aFocus[0].focus();
			return false;
		} else {
			document.getElementById('errorMessage').innerHTML = ' ';
			return true;
		}
	} catch(E) { return true; }
}
function checkEmail(sV) {
	var bR = false;
	var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;	  
	if (filter.test(sV)) bR = true;
	return bR;
}
function checkPhone(sV) {
	var bR = false;
	var filter = /^([\d|\~|\-|\s|\,|\.|\_|\(|\)|\#\+]){10,}((x|ext)([\d|\~|\-|\s|\,|\.|\_|\(|\)|\#])+)?([^a-z\`\!\@\$\%\^\&\*\=\"\?\\\/\;])*$/i;
	if (filter.test(sV)) bR = true;
	return bR;
}
function setErrLbl(sLId,bErr) {
	try {
		var oLbl = document.getElementById(sLId);
		var sErr = 'error';
		var sDel = ' ';
		if(oLbl.className) {
			if(!bErr) oLbl.className = stripAttrib(oLbl.className, sErr, sDel);
			else oLbl.className += ' '+sErr;
		}
	} catch(E){ }
}
function stripAttrib(sSrc, sSrch, sDelim) {
	var sRtn = sSrc;
	try {
		var a1 = sSrc.split(sDelim);
		var a2 = [ ];
		if(a1.length > 1) {
		  for(var itm in a1) {
		    if(a1[itm] != sSrch) a2.splice(a2.length,0,a1[itm]);
		  }
		  sRtn = a2.join(sDelim);
		}
	} catch(E) {}
	return sRtn;
}
function cpyDdToFld(oDd,oF) {
	try {
		oF.value = oDd[oDd.selectedIndex].value;
	} catch(E){ }
}
function optSet() {
	if(typeof oOptional == 'object') for(i in oOptional) if(document.forms[sForm].elements[i].value == '') document.forms[sForm].elements[i].value = oOptional[i];
}
function optRm() {
	if(typeof oOptional == 'object') for(i in oOptional) clearField(document.forms[sForm].elements[i],oOptional[i]);
}
function contactSalesInit() {
	try {
		optSet();
		document.LeadForm.CONF_FirstName_Field.focus();
	} catch(E) { }
}
