var engineKeys = new Array(); var displayKeys = new Array(); var engineScrubs = new Array(); engineKeys[0] = 'first'; displayKeys[0] = 'First name'; engineScrubs[0] = 'Alpha'; engineKeys[1] = 'last'; displayKeys[1] = 'Last name'; engineScrubs[1] = 'Alpha'; engineKeys[2] = 'email'; displayKeys[2] = 'Email address'; engineScrubs[2] = 'Email'; engineKeys[3] = 'home_area_code'; displayKeys[3] = 'Home phone area code'; engineScrubs[3] = 'Numeric|Min=3|Max=3'; engineKeys[4] = 'home_prefix'; displayKeys[4] = 'Home phone prefix'; engineScrubs[4] = 'Numeric|Min=3|Max=3'; engineKeys[5] = 'home_suffix'; displayKeys[5] = 'Home phone suffix'; engineScrubs[5] = 'Numeric|Min=4|Max=4'; engineKeys[6] = 'bus_area_code'; displayKeys[6] = 'Business phone area code'; engineScrubs[6] = 'Numeric|Min=3|Max=3'; engineKeys[7] = 'bus_prefix'; displayKeys[7] = 'Business phone prefix'; engineScrubs[7] = 'Numeric|Min=3|Max=3'; engineKeys[8] = 'bus_suffix'; displayKeys[8] = 'Business phone suffix'; engineScrubs[8] = 'Numeric|Min=4|Max=4'; engineKeys[9] = 'mail_addr_1'; displayKeys[9] = 'Address'; engineScrubs[9] = 'AlphaNumericAddr'; engineKeys[10] = 'mail_addr_2'; displayKeys[10] = 'Address line 2'; engineScrubs[10] = 'AlphaNumericAddr'; engineKeys[11] = 'mail_city'; displayKeys[11] = 'City'; engineScrubs[11] = 'Alpha|Max=29'; engineKeys[12] = 'mail_stateprov'; displayKeys[12] = 'State'; engineScrubs[12] = 'Alpha'; engineKeys[13] = 'mail_postalcode'; displayKeys[13] = 'Zip Code'; engineScrubs[13] = 'Numeric|Min=5|Max=5'; engineKeys[14] = 'mail_zip4'; displayKeys[14] = 'Zip Code'; engineScrubs[14] = 'Numeric|Min=5|Max=5'; engineKeys[15] = 'mail_zip_intl'; displayKeys[15] = 'Postal Zip Code'; engineScrubs[15] = 'AlphaNumeric|Min=5|Max=6'; engineKeys[16] = 'mortgage_credit'; displayKeys[16] = 'Mortgage Credit'; engineScrubs[16] = 'mortgage_credit'; engineKeys[17] = 'consumer_credit'; displayKeys[17] = 'Rate Your Credit'; engineScrubs[17] = 'consumer_credit'; engineKeys[18] = 'property_type'; displayKeys[18] = 'Property Type'; engineScrubs[18] = 'property_type'; engineKeys[19] = 'verify_income'; displayKeys[19] = 'Income'; engineScrubs[19] = 'verify_income'; engineKeys[20] = 'property_value'; displayKeys[20] = 'Value of Home'; engineScrubs[20] = 'Numeric'; engineKeys[21] = 'mortgage_balance'; displayKeys[21] = 'Mortgage Balance'; engineScrubs[21] = 'Numeric'; engineKeys[22] = 'additional_cash_needed'; displayKeys[22] = 'Additional Cash'; engineScrubs[22] = 'Numeric'; engineKeys[23] = 'loan_amount'; displayKeys[23] = 'Loan Amount'; engineScrubs[23] = 'Numeric'; engineKeys[24] = 'loan_type'; displayKeys[24] = 'Loan Type'; engineScrubs[24] = 'loan_type'; engineKeys[25] = 'mortgage_payment'; displayKeys[25] = 'Mortgage Payment'; engineScrubs[25] = 'mortgage_payment'; engineKeys[26] = 'income'; displayKeys[26] = 'Income'; engineScrubs[26] = 'Numeric|Max=6'; engineKeys[27] = 'property_purchase_price'; displayKeys[27] = 'Purchase Price'; engineScrubs[27] = 'property_purchase_price'; engineKeys[28] = 'preferred_calltime'; displayKeys[28] = 'Preferred Call time'; engineScrubs[28] = 'preferred_calltime'; engineKeys[29] = 'mortgage_interest_rate'; displayKeys[29] = 'Interest Rate'; engineScrubs[29] = 'mortgage_interest_rate'; engineKeys[30] = 'mortgage_interest_type'; displayKeys[30] = 'Loan Rate Type'; engineScrubs[30] = 'mortgage_interest_type'; engineKeys[31] = 'property_balance'; displayKeys[31] = 'Property Balance'; engineScrubs[31] = 'Numeric'; engineKeys[32] = 'loan_timeframe'; displayKeys[32] = 'Loan Timeframe'; engineScrubs[32] = 'loan_timeframe'; engineKeys[33] = 'past_bankruptcy'; displayKeys[33] = 'Bankruptcy Status'; engineScrubs[33] = 'past_bankruptcy'; engineKeys[34] = 'agreement'; displayKeys[34] = 'I understand that I may be contacted... '; engineScrubs[34] = 'agreement'; engineKeys[35] = 'verify_home_ownership'; displayKeys[35] = 'Home ownership'; engineScrubs[35] = 'verify_home_ownership'; engineKeys[36] = 'homeowner'; displayKeys[36] = 'Homeowner'; engineScrubs[36] = 'homeowner'; engineKeys[37] = 'callopt'; displayKeys[37] = 'I understand that a representative will call me ...'; engineScrubs[37] = 'callopt'; engineKeys[38] = 'opt_in'; displayKeys[38] = 'I would like to receive...'; engineScrubs[38] = 'opt_in'; engineKeys[39] = 'opt_out'; displayKeys[39] = 'I do not want to receive...'; engineScrubs[39] = 'opt_out'; engineKeys[40] = 'property_location'; displayKeys[40] = 'Property Location'; engineScrubs[40] = 'property_location'; //for bug#12995; OID#6367 checkbox name engineKeys[41] = 'realinterest'; displayKeys[41] = 'I have genuine interest in this offer ...'; engineScrubs[41] = ''; engineKeys[42] = 'callme'; displayKeys[42] = 'Please call me with quotes within 48 hours'; engineScrubs[42] = ''; var errmsg=""; var errcount=0; function getDisplayKey( engineKey ) { for (var i=0; i delete all spaces before validating / checking the length var js_key = "js_" + key; var js_val = ""; if (document.forms[formName].elements[js_key] != null) js_val = document.forms[formName].elements[js_key].value; if (key == engineKeys[e]) { var scrubVal = ""; if (js_val == "" || js_val == null) { scrubVal = engineScrubs[e].split('|'); } else { scrubVal = js_val.split('|'); } for (var s = 0; s < scrubVal.length; s++) { var scrub = ""; var arg = ""; if ( scrubVal[s].indexOf('=') ) { var tmp = scrubVal[s].split('='); scrub = tmp[0]; arg = tmp[1]; } else { scrub = scrubVal[s]; } switch (scrub.toLowerCase()) { case 'alpha': case 'alphaonly': case 'alphanumeric': if (val != null && val.match(regexes[scrub.toLowerCase()]) == null) { errmsg += displayKeys[e] + " contains non-valid characters.\n"; errors++; } break; case 'numeric': if (val != null && val.match(regexes['numeric']) == null) { if (displayKeys[e] == "Birth Month" || displayKeys[e] == "Birth Day" || displayKeys[e] == "Birth Year") { errmsg += "Select " + displayKeys[e] + ".\n"; } else { errmsg += displayKeys[e] + " must be only numbers (NO $,%.).\n"; } errors++; } break; case 'optionalnumeric': if (val != null && val.length > 0 && val.match(regexes['numeric']) == null) { errmsg += displayKeys[e] + " must be only numbers (NO $,%.).\n"; errors++; } break; case 'email': if (val != null && val.match(regexes['email'] ) == null) { errmsg += displayKeys[e] + " is not valid.\n"; errors++; } break; case 'min': if (val != null && val.length < arg) { errmsg += displayKeys[e] + " cannot be less than " + arg + " characters.\n"; errors++; } break; case 'max': if (val != null && val_max.length > arg) { errmsg += displayKeys[e] + " cannot be more than " + arg + " characters.\n"; errors++; } break; case 'gt': if (val != null && val <= arg) { errmsg += displayKeys[e] + " must be greater than " + arg + ".\n"; errors++; } break; case 'lt': if (val != null && val >= arg) { errmsg += displayKeys[e] + " must be less than " + arg + ".\n"; errors++; } break; case 'optional': break; case 'radio': if (document.forms[formName].elements[i].checked == true) { at_least_one = true; } radio_count++; if (radio_count == arg) { if (at_least_one == false) { errmsg += displayKeys[e] + " is a required field. Please choose an option.\n"; errors++; } radio_count = 0; at_least_once = false; } break; case 'terms': if (document.forms[formName].elements[i].checked != true) { errmsg += "Please agree to the terms to continue.\n"; errors++; } break; default: if (val == null || val == "") { errmsg += displayKeys[e] + " is a required field. Please click the checkbox or fill in the field.\n"; errors++; } break; } } } } // engineKeys loop } // form loop var allInputs = document.getElementsByTagName("input"), filledInputs = 0; for (var i in allInputs) { if (/optionalGroup(\d*)/.test(allInputs[i].name)) { var groupData = allInputs[i].value.split(":"); var niceName = groupData[0], group = groupData[1].split(","); var filledInputs = 0; for (var elemName in group) { elem = document.getElementById(group[elemName].replace(/^\s+|\s+$/g, '')); //remove leading and trailing spaces if (elem.value.length > 0) filledInputs++; } if (filledInputs != 0 && filledInputs != group.length) { errmsg += "Please enter a valid value for " + niceName + ".\n"; errors++; } } } if (errors <= 0) { try { if (getQueryValue("CID") && getQueryValue("CID") != "undefined") eval("document." + formName + ".CID.value = getQueryValue('CID')"); queryValues = ["SID", "OID", "ADTID", "HSID", "TID", "CRID", "KWID", "KWBID", "TEST", "NOPOP"] for (var i in queryValues) { if (getQueryValue(queryValues[i]) && getQueryValue(queryValues[i]) != "undefined") addHidden(getQueryValue(queryValues[i])); } } catch( $emsg ) { //this didn't work, oh well! } if (document.all || document.getElementById) { for (i = 0; i < allInputs.length; i++) { var tempobj = allInputs[i]; if ((tempobj.type.toLowerCase() == "submit") && (tempobj != null && document.forms[formName][tempobj.name] !=null) ) { tempobj.disabled = true; } else if ((tempobj.type.toLowerCase() == "image") && (tempobj != null && document.forms[formName][tempobj.name] !=null) ) { tempobj.disabled = true; tempobj.style.filter = "progid:DXImageTransform.Microsoft.BasicImage(grayscale=1, xray=0, mirror=0, invert=1, opacity=0.5, rotation=0);" } } } return true; } alert(errmsg); errmsg = errmsg.replace(/Please/,"Please"); errmsg = errmsg.replace(/continuing/,"continuing"); errmsg = errmsg.replace(/\n/g,"
"); if (errmsg != null && document.getElementById("error") != null) { document.getElementById("error").innerHTML = errmsg; } errcount = errors; return false; }