","http:","https:","ftp:","prepare(","execute(","odbc_exec(","mssql_query(","mysqli","www","html");
for(var xy=1; xy<24; xy++){
if (xy!=14) {
var argy = "forms_field_"+xy;
if (typeof eval("document.myForm.forms_field_"+xy) !== 'undefined') {
var check_value = eval("document.myForm.forms_field_"+xy+".value");
check_value = check_value.toLowerCase();
for(var in_ar=0; in_ar < injects.length; in_ar++){
if ((check_value.indexOf(injects[in_ar]) > -1)){
//alert(check_value);
eval("document.myForm.forms_field_"+xy+'.value="";')
}
}
}
}
}
// Sanitize pickup/dropoff address fields
var addrFields = ['pickup_address', 'dropoff_address'];
for (var af = 0; af < addrFields.length; af++) {
var addrEl = document.myForm[addrFields[af]];
if (addrEl) {
var addrVal = addrEl.value.toLowerCase();
for (var in_ar = 0; in_ar < injects.length; in_ar++) {
if (addrVal.indexOf(injects[in_ar]) > -1) {
addrEl.value = '';
}
}
}
}
}
function lookup(search,nod) {
var xmlhttp=false;
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
try {
xmlhttp = new XMLHttpRequest();
} catch (e) {
xmlhttp=false;
}
}
if (!xmlhttp && window.createRequest) {
try {
xmlhttp = window.createRequest();
} catch (e) {
xmlhttp=false;
}
}
var outext='';
xmlhttp.open("GET", "https://maps.googleapis.com/maps/api/geocode/xml?address="+search,true);
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4) {
var xmlDoc = xmlhttp.responseText;
out = xmlDoc.split("formatted_address>");
if (out[1].indexOf("USA") > -1){
var outext = out[1].replace(", USA", "");
outext = outext.substring(0, outext.length - 5);
if (nod==1 && outext!="") {
document.myForm.forms_field_5.value = outext;
document.myForm.forms_field_6.value = "";
document.myForm.forms_field_4.value ="";
}else if (nod==2 && outext!=""){
document.myForm.forms_field_8.value = outext;
document.myForm.forms_field_9.value = "";
document.myForm.forms_field_7.value="";
}
}
}
}
xmlhttp.send(null);
}
function myalert(message,func){
var pleft = -6;
var ptop = 100; //desktop
var offset = jQuery('#forms_form').offset();
var DIVX=offset.left;
var DIVY=offset.top;
var divline = [];
my_alert2 = document.createElement('div');
document.body.appendChild(my_alert2);
my_alert2.id='my_alert2';
my_alert2.style.position = 'absolute';
my_alert2.style.left = parseInt(DIVX)+'px';
my_alert2.style.top = parseInt(DIVY)+'px';
my_alert2.style.background = 'transparent';
divline.push('
');
document.getElementById('my_alert2').innerHTML = divline.join('');
}
function phone(){
var phoneField = document.myForm.forms_field_2;
if (!phoneField) { return; }
var originalValue = phoneField.value;
var mp = originalValue.replace(/\s+/g, '');
var regexObj = /^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/;
if (regexObj.test(mp)) {
phoneField.value = mp.replace(regexObj, "$1-$2-$3");
}
}
// Inline validation helper functions
function showFieldError(errorId, inputElement) {
var errorDiv = document.getElementById(errorId);
if (errorDiv) {
errorDiv.classList.add('visible');
}
if (inputElement) {
inputElement.classList.add('field-error-input');
}
}
function hideFieldError(errorId, inputElement) {
var errorDiv = document.getElementById(errorId);
if (errorDiv) {
errorDiv.classList.remove('visible');
}
if (inputElement) {
inputElement.classList.remove('field-error-input');
}
}
function clearAllErrors() {
var errors = document.querySelectorAll('.field-error');
for (var i = 0; i < errors.length; i++) {
errors[i].classList.remove('visible');
}
var inputs = document.querySelectorAll('.field-error-input');
for (var j = 0; j < inputs.length; j++) {
inputs[j].classList.remove('field-error-input');
}
}
function scrollToError(element) {
if (element) {
element.scrollIntoView({ behavior: 'smooth', block: 'center' });
element.focus();
}
}
// Continental 48 US states + DC (excludes AK and HI)
var CONTINENTAL_STATE_PATTERN = /^(AL|AZ|AR|CA|CO|CT|DE|FL|GA|ID|IL|IN|IA|KS|KY|LA|ME|MD|MA|MI|MN|MS|MO|MT|NE|NV|NH|NJ|NM|NY|NC|ND|OH|OK|OR|PA|RI|SC|SD|TN|TX|UT|VT|VA|WA|WV|WI|WY|DC)$/i;
var NON_CONTINENTAL_PATTERN = /^(AK|HI)$/i;
var MANUAL_STATE_ALIASES = {
'ALABAMA': 'AL', 'ALASKA': 'AK', 'ARIZONA': 'AZ', 'ARKANSAS': 'AR', 'CALIFORNIA': 'CA',
'COLORADO': 'CO', 'CONNECTICUT': 'CT', 'DELAWARE': 'DE', 'DISTRICT OF COLUMBIA': 'DC',
'FLORIDA': 'FL', 'GEORGIA': 'GA', 'HAWAII': 'HI', 'IDAHO': 'ID', 'ILLINOIS': 'IL',
'INDIANA': 'IN', 'IOWA': 'IA', 'KANSAS': 'KS', 'KENTUCKY': 'KY', 'LOUISIANA': 'LA',
'MAINE': 'ME', 'MARYLAND': 'MD', 'MASSACHUSETTS': 'MA', 'MICHIGAN': 'MI', 'MINNESOTA': 'MN',
'MISSISSIPPI': 'MS', 'MISSOURI': 'MO', 'MONTANA': 'MT', 'NEBRASKA': 'NE', 'NEVADA': 'NV',
'NEW HAMPSHIRE': 'NH', 'NEW JERSEY': 'NJ', 'NEW MEXICO': 'NM', 'NEW YORK': 'NY',
'NORTH CAROLINA': 'NC', 'NORTH DAKOTA': 'ND', 'OHIO': 'OH', 'OKLAHOMA': 'OK', 'OREGON': 'OR',
'PENNSYLVANIA': 'PA', 'RHODE ISLAND': 'RI', 'SOUTH CAROLINA': 'SC', 'SOUTH DAKOTA': 'SD',
'TENNESSEE': 'TN', 'TEXAS': 'TX', 'UTAH': 'UT', 'VERMONT': 'VT', 'VIRGINIA': 'VA',
'WASHINGTON': 'WA', 'WEST VIRGINIA': 'WV', 'WISCONSIN': 'WI', 'WYOMING': 'WY'
};
function normalizeManualState(value) {
var normalized = (value || '').replace(/\s+/g, ' ').trim();
if (!normalized) return '';
if (/^[A-Za-z]{2}$/.test(normalized)) return normalized.toUpperCase();
return MANUAL_STATE_ALIASES[normalized.toUpperCase()] || '';
}
function parseManualCityState(value, fallbackState) {
var text = (value || '').replace(/\s+/g, ' ').trim();
var state = normalizeManualState(fallbackState);
if (!text) {
return { city: '', state: state, display: state };
}
text = text.replace(/,\s*USA$/i, '');
var city = text;
var parts = text.split(',').map(function(part) { return part.trim(); }).filter(Boolean);
if (parts.length >= 2) {
var tail = parts.pop().replace(/\b\d{5}(?:-\d{4})?\b$/, '').trim();
var parsedState = normalizeManualState(tail);
if (parsedState) {
state = parsedState;
city = parts.join(', ');
}
} else {
var match = text.match(/^(.*?)(?:,?\s+)([A-Za-z]{2}|[A-Za-z]+(?:\s+[A-Za-z]+)*)\s*(\d{5}(?:-\d{4})?)?$/);
if (match) {
var inferredState = normalizeManualState(match[2]);
if (inferredState) {
state = inferredState;
city = match[1].trim();
}
}
}
city = city.replace(/\s+/g, ' ').trim().replace(/^,+|,+$/g, '');
if (!city) city = text;
return {
city: city,
state: state,
display: state ? city + ', ' + state : city
};
}
function syncManualAddressField(visibleId, cityId, stateId, fullId) {
var visibleField = document.getElementById(visibleId);
var cityField = document.getElementById(cityId);
var stateField = document.getElementById(stateId);
var fullField = document.getElementById(fullId);
if (!visibleField || !cityField || !stateField) return;
var resolved = parseManualCityState(visibleField.value, stateField.value);
if (!resolved.display) return;
cityField.value = resolved.city || resolved.display;
stateField.value = resolved.state || stateField.value;
if (fullField && !fullField.value.trim()) {
fullField.value = visibleField.value.trim();
}
}
function syncManualAddressFields() {
syncManualAddressField('pickup_address', 'forms_field_5', 'forms_field_4', 'forms_field_6');
syncManualAddressField('dropoff_address', 'forms_field_8', 'forms_field_7', 'forms_field_9');
}
// Check if address is valid — requires city + state in continental US from Google Places API
function isValidAddress(addressText, cityFromApi, stateFromApi) {
if (!addressText || addressText.trim() === '') return 'empty';
var hasCity = cityFromApi && cityFromApi.trim().length > 0;
var state = stateFromApi ? stateFromApi.trim() : '';
// Reject Alaska and Hawaii explicitly
if (hasCity && NON_CONTINENTAL_PATTERN.test(state)) return 'non_continental';
// Require both city and a valid continental US state
if (hasCity && CONTINENTAL_STATE_PATTERN.test(state)) return 'valid';
return 'invalid';
}
function func2(){
document.getElementById("forms_form").style.opacity = "1";
document.getElementById("forms_field_23").disabled = false;
document.getElementById("wait2").style.display = "none";
}
function CFL(string) {
var snnn = string;
snnn = snnn.replace(/[0-9]/g, '');
snnn = snnn.replace(/[`~!@#$%^&*()_|+\-=?;:'",.<>\{\}\[\]\\\/]/gi, ' ');
snnn = snnn.trim();
snnn = snnn.toLowerCase().replace( /\b./g, function(a){ return a.toUpperCase(); } );
return snnn;
}
function CFL1(string) {
var snnn = string;
//snnn = snnn.replace(/[0-9]/g, '');
//snnn = snnn.replace(/[`~!@#$%^&*()_|+\-=?;:'",.<>\{\}\[\]\\\/]/gi, ' ');
snnn = snnn.trim();
snnn = snnn.toLowerCase().replace( /\b./g, function(a){ return a.toUpperCase(); } );
return snnn;
}
function func1(){
document.getElementById("forms_field_23").disabled = true;
document.getElementById("forms_form").style.opacity = "0.9";
fun47();
phone();
//var str_zip = document.myForm.forms_field_6.value;
//if (str_zip!="") { lookup(str_zip,1); }
//var end_zip = document.myForm.forms_field_9.value;
//if (end_zip!="") { setTimeout(function(){lookup(end_zip,2)},200); }
//setTimeout(function(){func11()},600);
func11();
}
function func11(){
document.myForm.forms_field_1.value = CFL1(document.myForm.forms_field_1.value);
var mmm = document.myForm.forms_field_3.value;
document.myForm.forms_field_6.value = "";
document.myForm.forms_field_9.value = "";
syncManualAddressFields();
var str_city = CFL(document.myForm.forms_field_5.value);
var end_city = CFL(document.myForm.forms_field_8.value);
document.myForm.forms_field_5.value = str_city;
document.myForm.forms_field_8.value = end_city;
var landmarks = document.myForm.forms_field_4.value;
var landmarks2 = document.myForm.forms_field_7.value;
document.getElementById("forms_form").style.opacity = "0.6";
// Clear all previous errors and reset backgrounds
clearAllErrors();
document.myForm.forms_field_1.style.background = "#ffffff";
document.myForm.forms_field_3.style.background = "#ffffff";
document.myForm.pickup_address.style.background = "#ffffff";
document.myForm.dropoff_address.style.background = "#ffffff";
var hasError = false;
var phoneRegex = /^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/;
var emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
if (document.myForm.forms_field_1.value.trim() == "") {
showFieldError('error_name', document.myForm.forms_field_1);
scrollToError(document.myForm.forms_field_1);
hasError = true;
}else if (!phoneRegex.test(document.myForm.forms_field_2.value.replace(/\s+/g, ''))) {
showFieldError('error_phone', document.myForm.forms_field_2);
scrollToError(document.myForm.forms_field_2);
hasError = true;
}else if (!emailRegex.test(mmm.trim())) {
showFieldError('error_email', document.myForm.forms_field_3);
scrollToError(document.myForm.forms_field_3);
hasError = true;
}else {
var pickupResult = isValidAddress(document.myForm.pickup_address.value, document.myForm.forms_field_5.value, document.myForm.forms_field_4.value);
if (pickupResult === 'non_continental') {
showFieldError('error_pickup_continental', document.myForm.pickup_address);
scrollToError(document.myForm.pickup_address);
hasError = true;
} else if (pickupResult !== 'valid') {
showFieldError('error_pickup', document.myForm.pickup_address);
scrollToError(document.myForm.pickup_address);
hasError = true;
} else {
var dropoffResult = isValidAddress(document.myForm.dropoff_address.value, document.myForm.forms_field_8.value, document.myForm.forms_field_7.value);
if (dropoffResult === 'non_continental') {
showFieldError('error_dropoff_continental', document.myForm.dropoff_address);
scrollToError(document.myForm.dropoff_address);
hasError = true;
} else if (dropoffResult !== 'valid') {
showFieldError('error_dropoff', document.myForm.dropoff_address);
scrollToError(document.myForm.dropoff_address);
hasError = true;
}
}
}
if (hasError) {
func2();
return;
} else {
document.getElementById("forms_form").style.opacity = "0.3";
$.ajax({
type:"POST",
url: 'spelling.php',
data: ({dats: mmm}),
cache: false,
success: function(result){
var suggestion = (typeof result === "string") ? result.trim() : "";
var emailHint = document.getElementById("email_hint");
if (emailHint) {
emailHint.textContent = "";
emailHint.classList.remove("visible");
}
if (suggestion !== "" && suggestion !== mmm) {
document.myForm.newemail.value = suggestion;
document.myForm.forms_field_3.value = suggestion;
if (emailHint) {
emailHint.textContent = "We refreshed your email address to avoid delivery issues: " + suggestion;
emailHint.classList.add("visible");
}
}
func12();
},
error: function (request, status, error) {
alert(request.responseText);
}
});
}
}
function func12(){
document.getElementById("forms_form").style.opacity = "0.1";
document.getElementById("wait2").style.display = "block";
document.myForm.action = "calculate.php";
document.myForm.method = "POST";
setTimeout(function(){document.myForm.submit();},200);
//alert("OK Submit: "+document.myForm.forms_field_3.value);
}
// Google Places Autocomplete
var pickupAutocomplete, dropoffAutocomplete;
function initAutocomplete() {
var pickupInput = document.getElementById('pickup_address');
var dropoffInput = document.getElementById('dropoff_address');
var options = {
types: ['(regions)'],
componentRestrictions: { country: 'us' }
};
pickupAutocomplete = new google.maps.places.Autocomplete(pickupInput, options);
dropoffAutocomplete = new google.maps.places.Autocomplete(dropoffInput, options);
pickupAutocomplete.addListener('place_changed', function() {
var place = pickupAutocomplete.getPlace();
extractAddressComponents(place, 'pickup');
});
dropoffAutocomplete.addListener('place_changed', function() {
var place = dropoffAutocomplete.getPlace();
extractAddressComponents(place, 'dropoff');
});
}
function extractAddressComponents(place, type) {
if (!place.address_components) return;
var city = '';
var sublocality = '';
var county = '';
var state = '';
var postalCode = '';
var fullAddress = place.formatted_address || '';
for (var i = 0; i < place.address_components.length; i++) {
var component = place.address_components[i];
var types = component.types;
if (types.indexOf('locality') > -1) {
city = component.long_name;
}
if (types.indexOf('sublocality') > -1 || types.indexOf('sublocality_level_1') > -1) {
sublocality = component.long_name;
}
if (types.indexOf('administrative_area_level_2') > -1) {
county = component.long_name;
}
if (types.indexOf('administrative_area_level_1') > -1) {
state = component.short_name;
}
if (types.indexOf('postal_code') > -1) {
postalCode = component.long_name;
}
}
// Use city, or fall back to sublocality, then county
var locationName = city || sublocality || county || '';
var cityState = locationName && state ? locationName + ', ' + state : '';
// Set the visible input to a clean "City, ST" format
var displayValue = cityState || (postalCode ? postalCode : fullAddress);
if (type === 'pickup') {
document.getElementById('pickup_address').value = displayValue;
document.getElementById('forms_field_5').value = cityState;
document.getElementById('forms_field_4').value = state;
document.getElementById('forms_field_6').value = fullAddress;
hideFieldError('error_pickup', document.getElementById('pickup_address'));
} else {
document.getElementById('dropoff_address').value = displayValue;
document.getElementById('forms_field_8').value = cityState;
document.getElementById('forms_field_7').value = state;
document.getElementById('forms_field_9').value = fullAddress;
hideFieldError('error_dropoff', document.getElementById('dropoff_address'));
}
}
function getQueryParam(name) {
var search = window.location.search;
if (!search) return '';
var params = new URLSearchParams(search);
return params.get(name) || '';
}
function setGclidFromQuery() {
var field = document.getElementById('gclid_field');
if (!field || field.value) return;
var gclid = getQueryParam('gclid');
if (gclid) {
field.value = gclid;
}
}
// Add event listeners to clear errors on user input
document.addEventListener('DOMContentLoaded', function() {
var nameField = document.getElementById('forms_field_1');
var phoneField = document.getElementById('forms_field_2');
var emailField = document.getElementById('forms_field_3');
var pickupField = document.getElementById('pickup_address');
var dropoffField = document.getElementById('dropoff_address');
if (nameField) {
nameField.addEventListener('input', function() {
hideFieldError('error_name', this);
});
}
if (phoneField) {
phoneField.addEventListener('input', function() {
hideFieldError('error_phone', this);
});
}
if (emailField) {
emailField.addEventListener('input', function() {
hideFieldError('error_email', this);
});
}
if (pickupField) {
pickupField.addEventListener('input', function() {
document.getElementById('forms_field_5').value = '';
document.getElementById('forms_field_4').value = '';
document.getElementById('forms_field_6').value = '';
hideFieldError('error_pickup', this);
});
}
if (dropoffField) {
dropoffField.addEventListener('input', function() {
document.getElementById('forms_field_8').value = '';
document.getElementById('forms_field_7').value = '';
document.getElementById('forms_field_9').value = '';
hideFieldError('error_dropoff', this);
});
}
setGclidFromQuery();
});