function validateEmailContactDealer(formName) {
    var alerts = '';
    var pass = 'true';
    var passconf = 'true';
    var phonemax = 12;
    var commentsmax = 250;
    var ValidEmailChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.@-_1234567890';
    var invalidNameChars = '`~!@#$%^&*()_+=[]\\{}|:;\"<>?/';
    var skipOtherEmailChecks = 0;
    var commentDefaultText = 'Enter your message here. Maximum 250 characters.';

    //Validate the fields
    if (!formName.user_name.value) {
        alerts += "Please enter a User Name.\n";
    } else {
        if (formName.user_name.value == " ") {
            alerts += "User Name must not be a ' ' blank space.\n";
        }
        if (formName.user_name.value.indexOf("--") != -1) {
            alerts += "User Name must not contain '--' dashes.\n";
        }
        for (var i = 0; i < formName.user_name.value.length; i++) {
            if (invalidNameChars.indexOf(formName.user_name.value.charAt(i)) != -1) {
                alerts += " User Name may not contain the following special characters:\n";
                alerts += "??????`~!@#$%^&*)(_+=][}{|:;\"<>?/\\\n";
                break;
            }
        }
    }

    if (formName.day_phone_number.value && (formName.day_phone_number.value.length < phonemax && formName.day_phone_number.value.length != 10)) {
        alerts = alerts + "Please enter a valid 10-digit Daytime Phone Number.\n";
    }
    if (formName.night_phone_number && formName.night_phone_number.value && (formName.night_phone_number.value.length < phonemax && formName.night_phone_number.value.length != 10)) {
        alerts = alerts + "Please enter a valid 10-digit Evening Phone Number.\n";
    }
    if (!formName.email_address.value) {
        alerts = alerts + "Please enter an Email address.\n";
        skipOtherEmailChecks = 1;
    }

    //comments
    if (formName.comment.value.length > commentsmax) {
        alerts = alerts + "Comments must be no more than 250 characters.\n";
    }
    if (formName.comment.value && formName.comment.value == commentDefaultText) {
        formName.comment.value = "";
    }

    // start email validation rules
    if (formName.email_address.value) {
        if (formName.email_address.value.indexOf(" ") != -1) {
            alerts = alerts + "Email Address has a space in it.\n";
        }
        if (formName.email_address.value.indexOf("..") != -1) {
            alerts = alerts + "Email Address has double periods in it.\n";
        }
        if (formName.email_address.value.indexOf("--") != -1) {
            alerts = alerts + "Email Address has double dashes in it.\n";
        }
        if (formName.email_address.value.indexOf("@@") != -1) {
            alerts = alerts + "Email Address has a double @ in it.\n";
        }
        for (var i = 0; i < formName.email_address.value.length; i++) {
            if (ValidEmailChars.indexOf(formName.email_address.value.charAt(i)) == -1) {
                alerts = alerts + "Email Address may only contain alpha-numeric characters.\n";
                break;
            }
        }
    }

    // more email validation checks
    // there must be >= 1 character before @, so we
    // start looking at character position 1
    // (i.e. second character)
    var i = 1;
    var sLength = formName.email_address.value.length;
    var j = 0;
    var failedFirstCheck = 0;
    var s = formName.email_address.value;
    // look for @
    while ((i < sLength) && (s.charAt(i) != "@")) {
        i++;
    }
    if (((i >= sLength) || (s.charAt(i) != "@")) && skipOtherEmailChecks == 0) {
        alerts = alerts + "There must be a valid Email address (like jsmith@somewhere.com). Please reenter it now.\n";
        failedFirstCheck = 1;
    } else {
        i += 2;
    }
    // look for . starting with second character after @
    while ((i < sLength) && (s.charAt(i) != ".")) {
        i++;
    }
    // there must be at least one character after the .
    if (((i >= sLength - 1) || (s.charAt(i) != ".")) && failedFirstCheck == 0 && skipOtherEmailChecks == 0) {
        alerts = alerts + "There must be a valid Email address (like jsmith@somewhere.com). Please reenter it now.\n";
    }
    // email cannot begin with @, ., or -
    if (s.charAt(j) == "@" | s.charAt(j) == "." | s.charAt(j) == "-") {
        alerts = alerts + "Your Email address may not begin with a '" + s.charAt(j) + "' character.\n";
    }
    // email cannot end with @, ., or -
    var numb = (formName.email_address.value.substring((formName.email_address.value.length)-1, formName.email_address.value.length));
    if ((numb == "@") | (numb == ".") | (numb == "-")) {
        alerts = alerts + "Your Email address may not end with a '" + numb + "' character.\n";
    }

    //inform or submit
    if (alerts) {
        alert (alerts);
        return false;
    } else {
        return true;
    }
}

function validateEmailData(formName) {
    var alerts = '';
    var pass = 'true';
    var passconf = 'true';
    var phonemax = 12;
    var commentsmax = 250;
    var ValidEmailChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.@-_1234567890';
    var invalidNameChars = '`~!@#$%^&*()_+=[]\\{}|:;\"<>?/';
    var skipOtherEmailChecks = 0;
    var commentDefaultText = 'Enter your message here. Maximum 250 characters.';

    //Validate the fields
    if (!formName.first_name.value) {
        alerts += "Please enter a First Name.\n";
    } else {
        if (formName.first_name.value == " ") {
            alerts += "Frist Name must not be a ' ' blank space.\n";
        }
        if (formName.first_name.value.indexOf("--") != -1) {
            alerts += "First Name must not contain '--' dashes.\n";
        }
        for (var i = 0; i < formName.first_name.value.length; i++) {
            if (invalidNameChars.indexOf(formName.first_name.value.charAt(i)) != -1) {
                alerts += " First Name may not contain the following special characters:\n";
                alerts += "??????`~!@#$%^&*)(_+=][}{|:;\"<>?/\\\n";
                break;
            }
        }
    }
    if (!formName.last_name.value) {
        alerts += "Please enter a Last Name.\n";
    } else {
        if (formName.last_name.value == " ") {
            alerts += "Last Name must not be a ' ' blank space.\n";
        }
        if (formName.last_name.value.indexOf("--") != -1) {
            alerts += "Last Name must not contain '--' dashes.\n";
        }
        for (var i = 0; i < formName.last_name.value.length; i++) {
            if (invalidNameChars.indexOf(formName.last_name.value.charAt(i)) != -1) {
                alerts += " Last Name may not contain the following special characters:\n";
                alerts += "??????`~!@#$%^&*)(_+=][}{|:;\"<>?/\\\n";
                break;
            }
        }
    }
    if (formName.day_phone_number.value && (formName.day_phone_number.value.length < phonemax && formName.day_phone_number.value.length != 10)) {
        alerts = alerts + "Please enter a valid 10-digit Daytime Phone Number.\n";
    }
    if (formName.night_phone_number && formName.night_phone_number.value && (formName.night_phone_number.value.length < phonemax && formName.night_phone_number.value.length != 10)) {
        alerts = alerts + "Please enter a valid 10-digit Evening Phone Number.\n";
    }
    if (!formName.email_address.value) {
        alerts = alerts + "Please enter an Email address.\n";
        skipOtherEmailChecks = 1;
    }

    //comments
    if (formName.comment.value.length > commentsmax) {
        alerts = alerts + "Comments must be no more than 250 characters.\n";
    }
    if (formName.comment.value && formName.comment.value == commentDefaultText) {
        formName.comment.value = "";
    }

    // start email validation rules
    if (formName.email_address.value) {
        if (formName.email_address.value.indexOf(" ") != -1) {
            alerts = alerts + "Email Address has a space in it.\n";
        }
        if (formName.email_address.value.indexOf("..") != -1) {
            alerts = alerts + "Email Address has double periods in it.\n";
        }
        if (formName.email_address.value.indexOf("--") != -1) {
            alerts = alerts + "Email Address has double dashes in it.\n";
        }
        if (formName.email_address.value.indexOf("@@") != -1) {
            alerts = alerts + "Email Address has a double @ in it.\n";
        }
        for (var i = 0; i < formName.email_address.value.length; i++) {
            if (ValidEmailChars.indexOf(formName.email_address.value.charAt(i)) == -1) {
                alerts = alerts + "Email Address may only contain alpha-numeric characters.\n";
                break;
            }
        }
    }

    // more email validation checks
    // there must be >= 1 character before @, so we
    // start looking at character position 1
    // (i.e. second character)
    var i = 1;
    var sLength = formName.email_address.value.length;
    var j = 0;
    var failedFirstCheck = 0;
    var s = formName.email_address.value;
    // look for @
    while ((i < sLength) && (s.charAt(i) != "@")) {
        i++;
    }
    if (((i >= sLength) || (s.charAt(i) != "@")) && skipOtherEmailChecks == 0) {
        alerts = alerts + "There must be a valid Email address (like jsmith@somewhere.com). Please reenter it now.\n";
        failedFirstCheck = 1;
    } else {
        i += 2;
    }
    // look for . starting with second character after @
    while ((i < sLength) && (s.charAt(i) != ".")) {
        i++;
    }
    // there must be at least one character after the .
    if (((i >= sLength - 1) || (s.charAt(i) != ".")) && failedFirstCheck == 0 && skipOtherEmailChecks == 0) {
        alerts = alerts + "There must be a valid Email address (like jsmith@somewhere.com). Please reenter it now.\n";
    }
    // email cannot begin with @, ., or -
    if (s.charAt(j) == "@" | s.charAt(j) == "." | s.charAt(j) == "-") {
        alerts = alerts + "Your Email address may not begin with a '" + s.charAt(j) + "' character.\n";
    }
    // email cannot end with @, ., or -
    var numb = (formName.email_address.value.substring((formName.email_address.value.length)-1, formName.email_address.value.length));
    if ((numb == "@") | (numb == ".") | (numb == "-")) {
        alerts = alerts + "Your Email address may not end with a '" + numb + "' character.\n";
    }

    // RegEx patterns.
    var zip_pattern = /^(\d{5}-\d{4})|(\d{5})$/;
    var date_pattern = /(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.]\d{4}/;
    var email_pattern = /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/;
    // zipCode
    var zipCode = $F("zipCode");
    if(zipCode != "")
    {
        if(!zip_pattern.test(zipCode))
        {
            alerts += "Please enter a valid ZIP code.\n";
        }
    }
    // scamDate
    var scamDate = $F("scamDate");
    if(scamDate != "")
    {
        if(!date_pattern.test(scamDate))
        {
            alerts += "Please enter a valid date.\n";
        }
    }
    // fraudstersEmail
    var fraudstersEmail = $F("fraudstersEmail");
    if(fraudstersEmail != "")
    {
        if(!email_pattern.test(fraudstersEmail))
        {
            alerts += "Please enter a valid email address.\n";
        }
    }
    // westernUnionDetails
    var westernUnionDetails = $F("westernUnionDetails");
    if(westernUnionDetails.length > 2000)
    {
        alerts += "Please keep details to 2000 characters or less.\n";
    }
    // scamComments
    var scamComments = $F("scamComments");
    if(scamComments.length > 2000)
    {
        alerts += "Please keep details to 2000 characters or less.\n";
    }

    //inform or submit
    if (alerts) {
        alert (alerts);
        return false;
    } else {
        return true;
    }
}

var defaultEmptyOK = true
var dUSPhone = "10 digit U.S. phone number (like 415 555 1212)."
var pEmail = "valid Email address (like jsmith@somewhere.com)."
var pEntryPrompt = "Please enter a "
// non-digit characters which are allowed in phone numbers
var phoneNumberDelimiters = "()- ";
var digitsInUSPhoneNumber = 10;
var iUSPhone = "This field must be a 10 digit U.S. phone number (like 415 555 1212). Please reenter it now."
var iEmail = "This field must be a valid Email address (like jsmith@somewhere.com). Please reenter it now!"
// whitespace characters
var whitespace = " \t\n";

function validateUSPersonalInfo() {
    return (checkUSPhone(formName.elements["Phone"]));
}

function checkUSPhone(theField, emptyOK) {
    if (checkUSPhone.arguments.length == 1) {
        emptyOK = defaultEmptyOK;
    }
    if ((emptyOK == true) && (isEmpty(theField.value))) {
        return true;
    } else {
        var normalizedPhone = stripCharsInBag(theField.value, phoneNumberDelimiters);
        if (!isUSPhoneNumber(normalizedPhone, false)) {
            return warnInvalid(theField, iUSPhone);
        } else {
            // if you don't want to reformat as (123) 456-789, comment next line out
            theField.value = reformatUSPhone(normalizedPhone);
            return true;
        }
    }
}

// Check whether string s is empty.
function isEmpty(s) {
    return ((s == null) || (s.length == 0));
}

// Removes all characters which appear in string bag from string s.
function stripCharsInBag(s, bag) {
    var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++) {
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) {
            returnString += c;
        }
    }
    return returnString;
}

function isUSPhoneNumber(s) {
    if (isEmpty(s)) {
        if (isUSPhoneNumber.arguments.length == 1) {
            return defaultEmptyOK;
        } else {
            return (isUSPhoneNumber.arguments[1] == true);
        }
    }
    return (isInteger(s) && s.length == digitsInUSPhoneNumber);
}

// Notify user that contents of field theField are invalid.
// String s describes expected contents of theField.value.
// Put select theField, pu focus in it, and return false.
function warnInvalid(theField, s) {
    theField.focus();
    theField.select();
    alert(s);
    return false;
}

// takes USPhone, a string of 10 digits
// and reformats as (123) 456-789
function reformatUSPhone(USPhone) {
    return (reformat (USPhone, "(", 3, ") ", 3, "-", 4));
}

// Display data entry prompt string s in status bar.
function promptEntry(s) {
    window.status = pEntryPrompt + s;
}

function checkEmail(theField, emptyOK) {
    if (checkEmail.arguments.length == 1) {
        emptyOK = defaultEmptyOK;
    }
    if ((emptyOK == true) && (isEmpty(theField.value))) {
        return true;
    } else if (!isEmail(theField.value, false)) {
        return warnInvalid (theField, iEmail);
    } else {
        return true;
    }
}

function isEmail(s) {
    if (isEmpty(s)) {
        if (isEmail.arguments.length == 1) {
            return defaultEmptyOK;
        } else {
            return (isEmail.arguments[1] == true);
        }
        // is s whitespace?
        if (isWhitespace(s)) {
            return false;
        }
        // there must be >= 1 character before @, so we
        // start looking at character position 1
        // (i.e. second character)
        var i = 1;
        var sLength = s.length;
        // look for @
        while ((i < sLength) && (s.charAt(i) != "@")) {
            i++;
        }
        if ((i >= sLength) || (s.charAt(i) != "@")) {
            return false;
        } else {
            i += 2;
        }
        // look for .
        while ((i < sLength) && (s.charAt(i) != ".")) {
            i++;
        }
        // there must be at least one character after the .
        if ((i >= sLength - 1) || (s.charAt(i) != ".")) {
            return false;
        } else {
            return true;
        }
    }
}

function isInteger(s) {
    var i;
    if (isEmpty(s)) {
        if (isInteger.arguments.length == 1) {
            return defaultEmptyOK;
        } else {
            return (isInteger.arguments[1] == true);
        }
        // Search through string's characters one by one
        // until we find a non-numeric character.
        // When we do, return false; if we don't, return true.
        for (i = 0; i < s.length; i++) {
            // Check that current character is number.
            var c = s.charAt(i);
            if (!isDigit(c)) {
                return false;
            }
        }
    }
    // All characters are numbers.
    return true;
}

// Returns true if character c is a digit
// (0 .. 9).
function isDigit(c) {
    return ((c >= "0") && (c <= "9"));
}

function isUSPhoneNumber(s) {
    if (isEmpty(s)) {
        if (isUSPhoneNumber.arguments.length == 1) {
            return defaultEmptyOK;
        } else {
            return (isUSPhoneNumber.arguments[1] == true);
        }
        return (isInteger(s) && s.length == digitsInUSPhoneNumber);
    }
}

function reformat(s) {
    var arg;
    var sPos = 0;
    var resultString = "";
    for (var i = 1; i < reformat.arguments.length; i++) {
        arg = reformat.arguments[i];
        if (i % 2 == 1) {
            resultString += arg;
        } else {
            resultString += s.substring(sPos, sPos + arg);
            sPos += arg;
        }
    }
    return resultString;
}

// Returns true if string s is empty or
// whitespace characters only.
function isWhitespace(s) {
    var i;
    // Is s empty?
    if (isEmpty(s)) {
        return true;
    }
    // Search through string's characters one by one
    // until we find a non-whitespace character.
    // When we do, return false; if we don't, return true.
    for (i = 0; i < s.length; i++) {
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (whitespace.indexOf(c) == -1) {
            return false;
        }
    }
    // All characters are whitespace.
    return true;
}

//limit character entry in the comments field
function textCounter(field, maxlimit) {
    if (field.value.length > maxlimit) {
        field.value = field.value.substring(0, maxlimit);
        alert("Comments must be no more than " + maxlimit + " characters.");
    }
}

//clear the value of the comments field on focus if the value is default text
function clearComments(field) {
    if (field.value == "Enter your message here. Maximum 250 characters.") {
        field.value = "";
    }

}
function enableTextArea(field){
    field.removeAttribute('disabled');
}


function validateEmailData_SRPVDP(formName) {
    var alerts = '';
    var pass = 'true';
    var passconf = 'true';
    var phonemax = 12;
    var commentsmax = 250;
    var ValidEmailChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.@-_1234567890';
    var invalidNameChars = '`~!@#$%^&*()_+=[]\\{}|:;\"<>?/';
    var skipOtherEmailChecks = 0;
    var commentDefaultText = 'Enter your message here. Maximum 250 characters.';
    var subjectDefaultText='Select One';

    //Validate the fields
    if (!formName.first_name.value) {
        alerts += "Please enter your first name.<br/>";
        document.getElementById('first_name_error').style.display='block';
        document.getElementById('first_name').style.display='none';
    } else {
        if (formName.first_name.value == " ") {
            alerts += "Frist Name must not be a ' ' blank space.<br/>";
            document.getElementById('first_name_error').style.display='block';
            document.getElementById('first_name').style.display='none';
        }
        if (formName.first_name.value.indexOf("--") != -1) {
            alerts += "First Name must not contain '--' dashes.<br/>";
            document.getElementById('first_name_error').style.display='block';
            document.getElementById('first_name').style.display='none';
        }
        for (var i = 0; i < formName.first_name.value.length; i++) {
            if (invalidNameChars.indexOf(formName.first_name.value.charAt(i)) != -1) {
                alerts += " First Name may not contain the following special characters:<br/>";
                alerts += "??????`~!@#$%^&*)(_+=][}{|:;\"<>?/\\\n";
                document.getElementById('first_name_error').style.display='block';
                document.getElementById('first_name').style.display='none';
                break;
            }else {
                document.getElementById('first_name_error').style.display='none';
                document.getElementById('first_name').style.display='block';
            }
        }
    }
    if (!formName.last_name.value) {
        alerts += "Please enter your last name.<br/>";
        document.getElementById('last_name_error').style.display='block';
        document.getElementById('last_name').style.display='none';
    } else {
        if (formName.last_name.value == " ") {
            alerts += "Last Name must not be a ' ' blank space.<br/>";
            document.getElementById('last_name_error').style.display='block';
            document.getElementById('last_name').style.display='none';
        }
        if (formName.last_name.value.indexOf("--") != -1) {
            alerts += "Last Name must not contain '--' dashes.<br/>";
            document.getElementById('last_name_error').style.display='block';
            document.getElementById('last_name').style.display='none';
        }
        for (var i = 0; i < formName.last_name.value.length; i++) {
            if (invalidNameChars.indexOf(formName.last_name.value.charAt(i)) != -1) {
                alerts += " Last Name may not contain the following special characters:<br/>";
                alerts += "??????`~!@#$%^&*)(_+=][}{|:;\"<>?/\\\n";
                document.getElementById('last_name_error').style.display='block';
                document.getElementById('last_name').style.display='none';
                break;
            }else{
            document.getElementById('last_name_error').style.display='none';
            document.getElementById('last_name').style.display='block';
             }
        }
    }
    if (formName.day_phone_number.value && (formName.day_phone_number.value.length < phonemax && formName.day_phone_number.value.length != 10)) {
        alerts = alerts + "Please enter a valid 10-digit U.S. phone number.<br/>";
        document.getElementById('day_phone_number_error').style.display='block';
        document.getElementById('day_phone_number').style.display='none';
    }else if(formName.day_phone_number.value &&  !validateUSPhone(formName.day_phone_number)){
         alerts = alerts + "Please enter a valid 10-digit U.S. phone number.<br/>";
        document.getElementById('day_phone_number_error').style.display='block';
        document.getElementById('day_phone_number').style.display='none';
    }else {

        document.getElementById('day_phone_number_error').style.display='none';
        document.getElementById('day_phone_number').style.display='block';
    }
    if (formName.night_phone_number && formName.night_phone_number.value && (formName.night_phone_number.value.length < phonemax && formName.night_phone_number.value.length != 10)) {
        alerts = alerts + "Please enter a valid 10-digit Evening Phone Number.<br/>";
    }
    if (!formName.email_address.value) {
        alerts = alerts + "Please enter a valid email address (such as name@domain.com).<br/>";
        document.getElementById('email_error').style.display='block';
        document.getElementById('email').style.display='none';
        skipOtherEmailChecks = 1;
    }

    //comments

    if (formName.comment.value && formName.comment.value == commentDefaultText) {
        formName.comment.value = "";
        alerts = alerts + "Please enter your message to the seller.<br/>";
        document.getElementById('message_error').style.display='block';
        document.getElementById('message').style.display='none';
    }else  if(formName.comment.value==" " || formName.comment.value=="")  {
        alerts = alerts + "Please enter your message to the seller.<br/>";
        document.getElementById('message_error').style.display='block';
        document.getElementById('message').style.display='none';
    } else if (formName.comment.value.length > commentsmax) {
        alerts = alerts + "Comments must be no more than 250 characters.<br/>";
        document.getElementById('message_error').style.display='block';
        document.getElementById('message').style.display='none';
    } else {
        document.getElementById('message_error').style.display='none';
        document.getElementById('message').style.display='block';
    }

    //subject
    var sbj_box= formName.subject;
    var sbj_opt_value=sbj_box.options[sbj_box.selectedIndex].value ;
    var sbj_selectedIndex=sbj_box.selectedIndex;
    if (sbj_selectedIndex==0) {
        sbj_opt_value = "";
        alerts = alerts + "Please select a subject for your email.<br/>";
        document.getElementById('subject_error').style.display='block';
        document.getElementById('subject').style.display='none';
    }else {
        document.getElementById('subject_error').style.display='none';
        document.getElementById('subject').style.display='block';
    }

    // start email validation rules
    if (formName.email_address.value) {
        if (formName.email_address.value.indexOf(" ") != -1) {
            alerts = alerts + "Email Address has a space in it.<br/>";
            document.getElementById('email_error').style.display='block';
            document.getElementById('email').style.display='none';
        }
        if (formName.email_address.value.indexOf("..") != -1) {
            alerts = alerts + "Email Address has double periods in it.<br/>";
            document.getElementById('email_error').style.display='block';
            document.getElementById('email').style.display='none';
        }
        if (formName.email_address.value.indexOf("--") != -1) {
            alerts = alerts + "Email Address has double dashes in it.<br/>";
            document.getElementById('email_error').style.display='block';
            document.getElementById('email').style.display='none';
        }
        if (formName.email_address.value.indexOf("@@") != -1) {
            alerts = alerts + "Email Address has a double @ in it.<br/>";
            document.getElementById('email_error').style.display='block';
            document.getElementById('email').style.display='none';
        }
        for (var i = 0; i < formName.email_address.value.length; i++) {
            if (ValidEmailChars.indexOf(formName.email_address.value.charAt(i)) == -1) {
                alerts = alerts + "Email Address may only contain alpha-numeric characters.<br/>";
                document.getElementById('email_error').style.display='block';
                document.getElementById('email').style.display='none';
                break;
            } else {
                document.getElementById('email_error').style.display='none';
                document.getElementById('email').style.display='block';
            }
        }
    }

    // more email validation checks
    // there must be >= 1 character before @, so we
    // start looking at character position 1
    // (i.e. second character)
    var i = 1;
    var sLength = formName.email_address.value.length;
    var j = 0;
    var failedFirstCheck = 0;
    var s = formName.email_address.value;
    // look for @
    while ((i < sLength) && (s.charAt(i) != "@")) {
        i++;
    }
    if (((i >= sLength) || (s.charAt(i) != "@")) && skipOtherEmailChecks == 0) {
        alerts = alerts + "Please enter a valid email address (such as name@domain.com).<br/>";
        document.getElementById('email_error').style.display='block';
        document.getElementById('email').style.display='none';
        failedFirstCheck = 1;
    } else {
        i += 2;
    }
    // look for . starting with second character after @
    while ((i < sLength) && (s.charAt(i) != ".")) {
        i++;
    }
    // there must be at least one character after the .
    if (((i >= sLength - 1) || (s.charAt(i) != ".")) && failedFirstCheck == 0 && skipOtherEmailChecks == 0) {
        alerts = alerts + "Please enter a valid email address (such as name@domain.com).<br/>";
        document.getElementById('email_error').style.display='block';
        document.getElementById('email').style.display='none';
    }
    // email cannot begin with @, ., or -
    if (s.charAt(j) == "@" | s.charAt(j) == "." | s.charAt(j) == "-") {
        alerts = alerts + "Your Email address may not begin with a '" + s.charAt(j) + "' character.<br/>";
        document.getElementById('email_error').style.display='block';
        document.getElementById('email').style.display='none';
    }
    // email cannot end with @, ., or -
    var numb = (formName.email_address.value.substring((formName.email_address.value.length)-1, formName.email_address.value.length));
    if ((numb == "@") | (numb == ".") | (numb == "-")) {
        alerts = alerts + "Your Email address may not end with a '" + numb + "' character.<br/>";
        document.getElementById('email_error').style.display='block';
        document.getElementById('email').style.display='none';
    }

    //inform or submit
    if (alerts) {
        //alert (alerts);
        document.getElementById('error_message').innerHTML=alerts;
        document.getElementById('error_message').style.display='block';
        return false;
    } else {
        document.getElementById('error_message').style.display='none';
        return true;
    }
}

function enableContactTime(phNumber){
    var contactTime=document.getElementById('contactTime');
    if(phNumber.value=="" || phNumber.value==" "){
         //contactTime.setAttribute('disabled','disabled');
         contactTime.disabled=true;
    }else{
       //contactTime.removeAttribute('disabled');
        contactTime.disabled=false;
    }

}


function validateUSPhone(theField) {

    if ( (isEmpty(theField.value))) {
        return true;
    } else {
        var normalizedPhone = stripCharsInBag(theField.value, phoneNumberDelimiters);
        if (!isValidUSPhoneNumber(normalizedPhone)) {
            return false;
        } else {
            return true;
        }
    }
}


function isValidUSPhoneNumber(s) {
    if (isEmpty(s)) {
        if (isUSPhoneNumber.arguments.length == 1) {
            return defaultEmptyOK;
        } else {
            return (isUSPhoneNumber.arguments[1] == true);
        }
    }
    return (isInteger(s) && s.length == digitsInUSPhoneNumber);
}
        var alerts = "";

        //check email
        function checkEmailAddress(emailType, emailName) {
            if (! emailType.value) {
                alerts += "Please enter " + emailName + ".\n";
            } else {
                if (emailType.value.indexOf("@") < 0) {
                    alerts += emailName + " must contain an '@' symbol.\n";
                }
                if (emailType.value.indexOf(".") < 0) {
                    alerts += emailName + " must contain a '.' dot.\n";
                }
                if (emailType.value.indexOf(" ") != -1) {
                    alerts += emailName + " must not contain ' ' spaces.\n";
                }
                if (emailType.value.indexOf("|") != -1) {
                    alerts += emailName + " must not contain ' |' pipes.\n";
                }
                if (emailType.value.indexOf('"') != -1) {
                    alerts += emailName + " must not contain ' '' ' double quotes.\n";
                }
                if (emailType.value.indexOf('\'') != -1) {
                    alerts += emailName + " must not contain ' \' ' single quotes.\n";
                }
                if (emailType.value.indexOf('(') != -1) {
                    alerts += emailName + " must not contain ' ( ' an open parentheses.\n";
                }
                if (emailType.value.indexOf('\)') != -1) {
                    alerts += emailName + " must not contain ' ) ' a close parentheses.\n";
                }
                if (emailType.value.indexOf('<') != -1) {
                    alerts += emailName + " must not contain ' < ' a less than sign.\n";
                }
                if (emailType.value.indexOf('>') != -1) {
                    alerts += emailName + " must not contain ' > ' a greater than sign.\n";
                }
                if (emailType.value.indexOf('*') != -1) {
                    alerts += emailName + " must not contain ' * ' an asterisk.\n";
                }
                if (emailType.value.indexOf('[') != -1) {
                    alerts += emailName + " must not contain ' [ ' an open bracket.\n";
                }
                if (emailType.value.indexOf(']') != -1) {
                    alerts += emailName + " must not contain ' ] ' a close bracket.\n";
                }
                if (emailType.value.indexOf(',') != -1) {
                    alerts += emailName + " must not contain ' , ' a comma.\n";
                }
                if (emailType.value.indexOf(';') != -1) {
                    alerts += emailName + " must not contain ' ; ' a semi-colon.\n";
                }
            }
        }

        //check Name field
        function checkNameField(nameType, nameFieldName) {
            var invalidNameChars = '`~!@#$%^&*()_+=[]\\{}|:;\"<>?/';
            if (!nameType.value) {
                alerts += "Please enter " + nameFieldName + ".\n";
            } else {
                if (nameType.value == " ") {
                    alerts += nameFieldName + " must not be a ' ' blank space.\n";
                }
                if (nameType.value.indexOf("--") != -1) {
                    alerts += nameFieldName + " must not contain '--' dashes.\n";
                }
                for (var i = 0; i < nameType.value.length; i++) {
                    if (invalidNameChars.indexOf(nameType.value.charAt(i)) != -1) {
                        alerts += nameFieldName + " may not contain the following special characters:\n";
                        alerts += "`~!@#$%^&*)(_+=][}{|:;\"<>?/\\\n";
                        return false;
                    }
                }
            }
        }

        //validate form
        function validateData(form) {
            checkEmailAddress(form.friendsEmail, "Friend's Email");
            checkEmailAddress(form.yourEmail, "Your Email");
            checkNameField(form.yourName, "Your Name");

            clearComments(form.comment);

            if (form.comment.value.indexOf("|") != -1) {
                alerts += "Personal Message must not contain '|' pipes.\n";
            }

            //check message length
            var messageMax = 250;
            if (form.comment.value.length > messageMax) {
                alerts + "Personal Message must be no more than 250 characters.\n";
            }

            //alert or submit
            if (alerts) {
                alert(alerts);
                alerts = "";
                return false;
            } else {
                return true;
            }
        }

/**
 * Update the model list.
 */
function makeChanged()
{
    var makeField = $("make");
    var makeValue = $F("make");
    var modelField = $("model");
    var modelValue = $F("model");
    FycSearchForm.getMakeAndModelLists(SEARCH_TYPE_ALL, BODY_STYLE_NONE, makeValue, null, null,
    {
        callback:function(makesAndModels)
        {
            populateSelectCallback(makesAndModels.modelSelectOptions, modelField, modelValue);
        }
    }
    );
}

/**
 * Counts down the number of characters remaining.
 * @param e the element to watch.
 * @param m the maximum number of characters allowed.
 */
function countDown(e, m)
{
    // Verify parameters.
    if(e == null)
    {
        return;
    }
    if(m == null)
    {
        return;
    }
    // Get value.
    var v = $F(e);
    // Get length.
    var l = v.length;
    // Find out how many characters are remaining.
    var r = m - l;
    // Get ID of counter.
    var i = e.id + "_counter";
    // Get counter.
    var s = $(i);
    // Update text.
    if (s) {
        s.innerHTML = new String(r);
    }
}

/**
 * Event handler for click events on labels.
 * Fixes a bug in IE that resets the select box
 * to the first item in the list when you click on the label.
 * @param evt the event
 * @return false
 */
function labelClick(evt)
{
    var e = null;
    if(evt)
    {
        e = evt.target;
    }
    else
    {
        e = window.event.srcElement;
    }
    if(e == null)
    {
        return false;
    }
    var i = e.htmlFor;
    e = $(i);
    e.focus();
    return false;
}

/**
 * Adds the labelClick event handler to labels.
 */
function fixLabels()
{
    var lSelect = document.getElementsByTagName("select");
    var xSelect = 0;
    var ySelect = lSelect.length;
    var lLabel = document.getElementsByTagName("label");
    var xLabel = 0;
    var yLabel = lLabel.length;
    for(xSelect = 0; xSelect < ySelect; xSelect++)
    {
        var eSelect = lSelect.item(xSelect);
        var varID = eSelect.getAttribute("id");
        for(xLabel = 0; xLabel < yLabel; xLabel++)
        {
            var eLabel = lLabel.item(xLabel);
            var varFor = eLabel.htmlFor;
            if(varFor != varID)
            {
                continue;
            }
            eLabel.onclick = labelClick;
            break;
        }
    }
}

/**
 * Event handler for the onchange event on the contact_reason dropdown.
 * @param e the event.
 */
function contact_reason_change(e)
{
    var scammed = "I Was Scammed";
    var eContactReason = e.target;
    var v = eContactReason.value;
    var iWasScammed = (v == scammed) ? true : false;
    var displayMessage = iWasScammed ? "none" : "";
    var displayScam = iWasScammed ? "" : "none";
    var shareWithLawEnforcement = $("shareWithLawEnforcement");
    var submit_buttons =
    [
        "/img/findacar/isp/btn_100x21_send_email.gif",
        "/img/help/send-secure-email-disabled.gif",
        "/img/help/send-secure-email-enabled.gif"
    ];
    var submit_button_index = 0;
    if(iWasScammed)
    {
        submit_button_index = (shareWithLawEnforcement.checked) ? 2 : 1;
    }
    var messageAreaBox = $("messageAreaBox");
    var scamBox = $("scamBox");
    var links = $("links");
    var streetAddress = $("streetAddress");
    var ac_contact_p = $("ac_contact_p");
    var shareWithLawEnforcement_p = $("shareWithLawEnforcement_p");
    var shareWithLawEnforcement = $("shareWithLawEnforcement");
    var submit_button = $("Submit");
    var disabled = false;
    if(iWasScammed)
    {
        disabled = ! shareWithLawEnforcement.checked;
    }
    var submit_title = iWasScammed ? "Send Secure Email" : "Send Email";
    messageAreaBox.style.display = displayMessage;
    scamBox.style.display = displayScam;
    ac_contact_p.style.display = displayMessage;
    shareWithLawEnforcement_p.style.display = displayScam;
    links.style.display = displayScam;
    submit_button.src = submit_buttons[submit_button_index];
    submit_button.setAttribute("alt", submit_title);
    submit_button.setAttribute("title", submit_title);
    submit_button.disabled = disabled;
    if(iWasScammed)
    {
        if(streetAddress)
        {
            streetAddress.focus();
        }
    }
}

/**
 * Event handler for the onblur event on the dollarAmount textbox.
 * Reformats the value to be numbers and decimal only.
 * @param e the event.
 */
function dollarAmount_blur(e)
{
    // Define constants.
    var DECIMAL = 0x2E;
    var ZERO = 0x30;
    var NINE = 0x39;
    var MAX_DIGITS_AFTER_DECIMAL = 2;
    // Get current value.
    var dollarAmount = $("dollarAmount");
    var temp = dollarAmount.value;
    // Create temp variables.
    var value = "";
    var x = 0;
    var y = temp.length;
    var c = 0;
    var decimals = 0;
    var ditigsAfterDecimal = 0;
    // Loop through each character in the value string.
    for(x=0; x<y; x++)
    {
        // Get a character.
        c = temp.charCodeAt(x);
        // decimal
        if(c == DECIMAL)
        {
            decimals++;
            // Only allow it one time.
            if(decimals == 1)
            {
                value += String.fromCharCode(c);
            }
            continue;
        }
        // digits
        if( (c >= ZERO) && (c <= NINE) )
        {
            // Only allow a certain number of digits after the decimal.
            if(decimals > 0)
            {
                ditigsAfterDecimal++;
            }
            if(ditigsAfterDecimal <= MAX_DIGITS_AFTER_DECIMAL)
            {
                value += String.fromCharCode(c);
            }
        }
    }
    // Update the value.
    dollarAmount.value = value;
}

/**
 * Event handler for the onchange event on the shareWithLawEnforcement checkbox.
 * @param e the event.
 */
function shareWithLawEnforcement_change(e)
{
    var shareWithLawEnforcement = $("shareWithLawEnforcement");
    var submit_button = $("Submit");
    var submit_buttons =
    [
        "/img/help/send-secure-email-disabled.gif",
        "/img/help/send-secure-email-enabled.gif"
    ];
    var submit_button_index = (shareWithLawEnforcement.checked) ? 1 : 0;
    var disabled = (submit_button_index == 0) ? true : false;
    submit_button.src = submit_buttons[submit_button_index];
    submit_button.disabled = disabled;
}

/**
 * Updates the counters.
 */
function updateCounters()
{
    var comment = $("comment");
    countDown(comment, 250);
    var westernUnionDetails = $("westernUnionDetails");
    countDown(westernUnionDetails, 2000);
    var scamComments = $("scamComments");
    countDown(scamComments, 2000);
}

/**
 * Adds event handlers.
 */
function addEventHandlers()
{
    var eContactReason = $("contact_reason");
    if(eContactReason != null)
    {
        Event.observe(eContactReason, "change", contact_reason_change);
    }
    var dollarAmount = $("dollarAmount");
    if (dollarAmount){
        dollarAmount.observe("blur", dollarAmount_blur);
    }
    var eShareWithLawEnforcement = $("shareWithLawEnforcement");
    if(eShareWithLawEnforcement != null)
    {
        Event.observe(eShareWithLawEnforcement, "change", shareWithLawEnforcement_change);
        if(Prototype.Browser.IE)
        {
            Event.observe(eShareWithLawEnforcement, "click", shareWithLawEnforcement_change);
        }
    }
    if(Prototype.Browser.IE) { fixLabels(); }
}

/**
 * Event handler that runs when the document is loaded.
 */
var dom_loaded = function(){
    updateCounters();
    addEventHandlers();
}

/**
 * Initializes the page.
 */
document.observe('dom:loaded', dom_loaded);
