﻿// Messages in english
var sErrIsEmpty = " is required.\n";
var sErrNotChoosen = " is not choosen.\n";
var sErrValidateTextMinLength1 = " must be at least ";
var sErrValidateTextMinLength2 = " characters.\n";
var sErrValidateTextMaxLength1 = " can be at most ";
var sErrValidateTextMaxLength2 = " characters.\n";
var sErrValidateEmail = " is not a valid e-mail address.\n";
var sSetFocus = false;

pic = new Image(); pic.src = '/images/submitting.gif';

function validateText(sText, sName, bAllowEmpty, iMinLength, iMaxLength) {
    var sErrorMsg = "";
    sText = trim(sText);

    if (!bAllowEmpty && sText == "") // If empty
    {
        sErrorMsg = "- " + sName + sErrIsEmpty;
    }
    else if (sText != "") // else if to short or to long string
    {
        if (iMinLength != null && sText.length < iMinLength)
            sErrorMsg += "- " + sName + sErrValidateTextMinLength1 + iMinLength + sErrValidateTextMinLength2;
        if (iMaxLength != null && sText.length > iMaxLength)
            sErrorMsg += "- " + sName + sErrValidateTextMaxLength1 + iMaxLength + sErrValidateTextMaxLength2;
    }

    return sErrorMsg;
}
function validateEmail(sEmail, sName, bAllowEmpty) {
    var exclude = /[^@\-\.\w]|^[_@\.\-]|[\._\-]{2}|[@\.]{2}|(@)[^@]*\1/;
    var check = /@[\w\-]+\./;
    var checkend = /\.[a-zA-Z]{2,3}$/;
    var sErrorMsg = "";
    sEmail = trim(sEmail);

    if (!bAllowEmpty && sEmail == "") {
        sErrorMsg = "- " + sName + sErrIsEmpty;
    }
    else if (sEmail != "") {
        if (((sEmail.search(exclude) != -1) ||
          (sEmail.search(check)) == -1) ||
          (sEmail.search(checkend) == -1)) {
            sErrorMsg = "- " + sName + sErrValidateEmail;
        }
    }
    return sErrorMsg;
}

function validateSelect(oFormObj, sName) {
    var sErrorMsg = "";

    if (oFormObj.multiple) {
        sErrorMsg = "- " + sName + sErrNotChoosen;
        for (var i = 0; i < oFormObj.options.length; i++) {
            if (oFormObj.options[i].selected) {
                sErrorMsg = "";
                break;
            }
        }
    }
    else {
        if (oFormObj.options[oFormObj.selectedIndex].value == "0" ||
         oFormObj.options[oFormObj.selectedIndex].value == "") {
            sErrorMsg = "- " + sName + sErrNotChoosen;
        }
    }
    return sErrorMsg;
}

function ltrim(sValue) {
    while (1) {
        if (sValue.substring(0, 1) != " ")
            break;
        sValue = sValue.substring(1, sValue.length);
    }
    return sValue;
}

function rtrim(sValue) {
    while (1) {
        if (sValue.substring(sValue.length - 1, sValue.length) != " ")
            break;
        sValue = sValue.substring(0, sValue.length - 1);
    }
    return sValue;
}

function trim(sValue) {
    var sTemp = ltrim(sValue);
    return rtrim(sTemp);
}

function setFocusFun(parObjSetFocus, parSSetFocus, parSErrMsg) {
    if (parSSetFocus == false && parSErrMsg != "") {
        parObjSetFocus.focus();
        parObjSetFocus.select();
        sSetFocus = true;
    }
}

//Dates Validations BEGIN
function check_date(field) {
    var checkstr = "0123456789";
    var DateField = field;
    var Datevalue = "";
    var DateTemp = "";
    var seperator = "/";
    var day;
    var month;
    var year;
    var leap = 0;
    var err = 0;
    var i;
    var sErrorMsg = "";
    err = 0;
    DateValue = DateField;
    /* Delete all chars except 0..9 */
    for (i = 0; i < DateValue.length; i++) {
        if (checkstr.indexOf(DateValue.substr(i, 1)) >= 0) {
            DateTemp = DateTemp + DateValue.substr(i, 1);
        }
    }
    if (DateTemp.length == 0) {
        return "- Date is Invalid \n";
    }
    DateValue = DateTemp;
    /* Always change date to 8 digits - string*/
    /* if year is entered as 2-digit / always assume 20xx */
    if (DateValue.length == 6) {
        DateValue = DateValue.substr(0, 4) + '20' + DateValue.substr(4, 2);
    }
    if (DateValue.length != 8) {
        err = 19;
    }
    /* year is wrong if year = 0000 */
    year = DateValue.substr(4, 4);
    if (year == 0) {
        err = 20;
    }
    /* Validation of month*/
    month = DateValue.substr(0, 2);
    if ((month < 1) || (month > 12)) {

        err = 21;
    }
    /* Validation of day*/
    day = DateValue.substr(2, 2);
    if (day < 1) {

        err = 22;
    }
    /* Validation leap-year / february / day */
    if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) {
        leap = 1;
    }
    if ((month == 2) && (leap == 1) && (day > 29)) {
        err = 23;
    }
    if ((month == 2) && (leap != 1) && (day > 28)) {
        err = 24;
    }
    /* Validation of other months */
    if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12"))) {
        err = 25;
    }
    if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11"))) {
        err = 26;
    }
    /* if 00 ist entered, no error, deleting the entry */
    if ((day == 0) && (month == 0) && (year == 00)) {
        err = 0; day = ""; month = ""; year = ""; seperator = "";
    }

    /* if no error, write the completed date to Input-Field (e.g. 13.12.2001) */
    if (err == 0) {
        DateField.value = month + seperator + day + seperator + year;
    }
    /* Error-message if err != 0 */
    else {
        sErrorMsg += "- " + "Date is incorrect! Please Check the days in the selected Month \n";
    }
    return sErrorMsg;
}

function chkPrevDate(month, day, year) {
    var sErrorMsg = "";
    var strfulldate = new Date()

    //System Dates
    var strMonth = strfulldate.getMonth() + 1;
    var strDate = strfulldate.getDate()
    var strYear = strfulldate.getFullYear()

    //User Selected Dates
    intMM = month;
    intDD = day;
    intYr = year;

    if (intYr > strYear) {
        sErrorMsg = "";
    }
    else if (intYr == strYear) {
        if (intMM == strMonth) {
            if (intDD < strDate) {
                sErrorMsg += "- " + "Please check the Date,It should be Above the current date \n";
                //	return sErrorMsg;
            }
            else {
                sErrorMsg = "";
            }
        }
        else if (intMM < strMonth) {
            sErrorMsg += "- " + "Please check the Month,It should be Above the current date \n";
            //return sErrorMsg;
        }
    }
    return sErrorMsg;
}

function showZip(objFrm, txtZip) {
    LeftPosition = (screen.width) ? (screen.width - 630) / 2 : 0;
    TopPosition = (screen.height) ? (screen.height - 270) / 2 : 0;
    window.open('/zipCodes.asp?frm=' + objFrm + '&txtZip=' + txtZip, 'ZipCodes', 'height=' + 400 + ',width=' + 586 + ',top=' + TopPosition + ',left=' + LeftPosition + ',scrollbars=yes');
}

function validateFrmUsaQuote() {
    var sErrMsg = "";
    var objFrm = document.frmQuoteFrmUsa;

    sErrMsg += validateText(objFrm.txtZip.value, "From Zip", false, null, 50);
    setFocusFun(objFrm.txtZip, sSetFocus, sErrMsg);

    sErrMsg += check_date(objFrm.ddlMnth.value + "/" + objFrm.ddlDate.value + "/" + objFrm.ddlYear.value)
    setFocusFun(objFrm.ddlMnth, true, sErrMsg);

    sErrMsg += chkPrevDate(objFrm.ddlMnth.value, objFrm.ddlDate.value, objFrm.ddlYear.value)
    setFocusFun(objFrm.ddlMnth, true, sErrMsg);

    sErrMsg += validateSelect(objFrm.ddlMoveSize, "Move Size");
    setFocusFun(objFrm.ddlMoveSize, true, sErrMsg);

    sErrMsg += validateSelect(objFrm.ddlSrvType, "Type of Service");
    setFocusFun(objFrm.ddlSrvType, true, sErrMsg);

    sErrMsg += validateText(objFrm.txtToCity.value, "To City", false, null, 50);
    setFocusFun(objFrm.txtToCity, sSetFocus, sErrMsg);

    sErrMsg += validateSelect(objFrm.ddlToCountry, "To Country");
    setFocusFun(objFrm.ddlToCountry, true, sErrMsg);

    sErrMsg += validateText(objFrm.txtFName.value, "First Name", false, null, 50);
    setFocusFun(objFrm.txtFName, sSetFocus, sErrMsg);

    sErrMsg += validateText(objFrm.txtLName.value, "Last Name", false, null, 50);
    setFocusFun(objFrm.txtLName, sSetFocus, sErrMsg);

    sErrMsg += validateText(objFrm.txtPhone.value, "Phone", false, null, 50);
    setFocusFun(objFrm.txtPhone, sSetFocus, sErrMsg);

    sErrMsg += validateEmail(objFrm.txtmail.value, "Email Address", false, null, 50);
    setFocusFun(objFrm.txtmail, sSetFocus, sErrMsg);

     if (sErrMsg != "") {
        sSetFocus = false;
        alert("The form could not be submited because of the following errors:\n\n" + sErrMsg);
        return false;
    }
    else {
        document.getElementById("imgBtnSubmit").src = '/images/submitting.gif';
        document.getElementById("imgBtnSubmit").style.cursor = 'wait'; return true;
    }
}

function validateToUsaQuote() {
    var sErrMsg = "";
    var objFrm = document.frmQuoteToUsa;

    sErrMsg += validateText(objFrm.txtFromCity.value, "From City", false, null, 50);
    setFocusFun(objFrm.txtFromCity, sSetFocus, sErrMsg);

    sErrMsg += validateSelect(objFrm.ddlFromCountry, "From Country");
    setFocusFun(objFrm.ddlFromCountry, true, sErrMsg);

    sErrMsg += check_date(objFrm.ddlMnth.value + "/" + objFrm.ddlDate.value + "/" + objFrm.ddlYear.value)
    setFocusFun(objFrm.ddlMnth, true, sErrMsg);

    sErrMsg += chkPrevDate(objFrm.ddlMnth.value, objFrm.ddlDate.value, objFrm.ddlYear.value)
    setFocusFun(objFrm.ddlMnth, true, sErrMsg);

    sErrMsg += validateSelect(objFrm.ddlMoveSize, "Move Size");
    setFocusFun(objFrm.ddlMoveSize, true, sErrMsg);

    sErrMsg += validateSelect(objFrm.ddlSrvType, "Type of Service");
    setFocusFun(objFrm.ddlSrvType, true, sErrMsg);

    sErrMsg += validateText(objFrm.txtZip.value, "To Zip", false, null, 50);
    setFocusFun(objFrm.txtZip, sSetFocus, sErrMsg);

    sErrMsg += validateText(objFrm.txtFName.value, "First Name", false, null, 50);
    setFocusFun(objFrm.txtFName, sSetFocus, sErrMsg);

    sErrMsg += validateText(objFrm.txtLName.value, "Last Name", false, null, 50);
    setFocusFun(objFrm.txtLName, sSetFocus, sErrMsg);

    sErrMsg += validateText(objFrm.txtPhone.value, "Phone", false, null, 50);
    setFocusFun(objFrm.txtPhone, sSetFocus, sErrMsg);

    sErrMsg += validateEmail(objFrm.txtmail.value, "Email Address", false, null, 50);
    setFocusFun(objFrm.txtmail, sSetFocus, sErrMsg);

    if (sErrMsg != "") {
        sSetFocus = false;
        alert("The form could not be submited because of the following errors:\n\n" + sErrMsg);
        return false;
    }
    else {
        document.getElementById("imgBtnSubmit").src = '/images/submitting.gif';
        document.getElementById("imgBtnSubmit").style.cursor = 'wait'; return true;
    }
}

function validateCarShipping() {
    var sErrMsg = "";
    var objFrm = document.frmCarShpng;

    sErrMsg += validateText(objFrm.txtZip.value, "From Zip", false, null, 50);
    setFocusFun(objFrm.txtZip, sSetFocus, sErrMsg);

    sErrMsg += check_date(objFrm.ddlMnth.value + "/" + objFrm.ddlDate.value + "/" + objFrm.ddlYear.value)
    setFocusFun(objFrm.ddlMnth, true, sErrMsg);

    sErrMsg += chkPrevDate(objFrm.ddlMnth.value, objFrm.ddlDate.value, objFrm.ddlYear.value)
    setFocusFun(objFrm.ddlMnth, true, sErrMsg);

    sErrMsg += validateSelect(objFrm.ddlSrvType, "Type of Service");
    setFocusFun(objFrm.ddlSrvType, true, sErrMsg);

    sErrMsg += validateSelect(objFrm.ddlToCountry, "To Country");
    setFocusFun(objFrm.ddlToCountry, true, sErrMsg);

    sErrMsg += validateText(objFrm.txtType.value, "Vehicle Type", false, null, 50);
    setFocusFun(objFrm.txtType, sSetFocus, sErrMsg);

    sErrMsg += validateText(objFrm.txtMake.value, "Vehicle Make", false, null, 50);
    setFocusFun(objFrm.txtMake, sSetFocus, sErrMsg);

    sErrMsg += validateText(objFrm.txtYear.value, "Vehicle Year", false, null, 50);
    setFocusFun(objFrm.txtYear, sSetFocus, sErrMsg);

    sErrMsg += validateText(objFrm.txtFName.value, "First Name", false, null, 50);
    setFocusFun(objFrm.txtFName, sSetFocus, sErrMsg);

    sErrMsg += validateText(objFrm.txtLName.value, "Last Name", false, null, 50);
    setFocusFun(objFrm.txtLName, sSetFocus, sErrMsg);

    sErrMsg += validateText(objFrm.txtPhone.value, "Phone", false, null, 50);
    setFocusFun(objFrm.txtPhone, sSetFocus, sErrMsg);

    sErrMsg += validateEmail(objFrm.txtmail.value, "Email Address", false, null, 50);
    setFocusFun(objFrm.txtmail, sSetFocus, sErrMsg);

    if (sErrMsg != "") {
        sSetFocus = false;
        alert("The form could not be submited because of the following errors:\n\n" + sErrMsg);
        return false;
    }
    else {
        document.getElementById("imgBtnSubmit").src = '/images/submitting.gif';
        document.getElementById("imgBtnSubmit").style.cursor = 'wait'; return true;
    }
}

function validateCorpRelocate() {
    var sErrMsg = "";
    var objFrm = document.frmCorpRelocate;

    sErrMsg += validateText(objFrm.txtZip.value, "From Zip", false, null, 50);
    setFocusFun(objFrm.txtZip, sSetFocus, sErrMsg);

    sErrMsg += check_date(objFrm.ddlMnth.value + "/" + objFrm.ddlDate.value + "/" + objFrm.ddlYear.value)
    setFocusFun(objFrm.ddlMnth, true, sErrMsg);

    sErrMsg += chkPrevDate(objFrm.ddlMnth.value, objFrm.ddlDate.value, objFrm.ddlYear.value)
    setFocusFun(objFrm.ddlMnth, true, sErrMsg);

    sErrMsg += validateText(objFrm.txtToCity.value, "To City", false, null, 50);
    setFocusFun(objFrm.txtToCity, sSetFocus, sErrMsg);

    sErrMsg += validateSelect(objFrm.ddlToCountry, "To Country");
    setFocusFun(objFrm.ddlToCountry, true, sErrMsg);

    sErrMsg += validateSelect(objFrm.ddlMoveSize, "Move Size");
    setFocusFun(objFrm.ddlMoveSize, true, sErrMsg);

    sErrMsg += validateText(objFrm.txtFName.value, "First Name", false, null, 50);
    setFocusFun(objFrm.txtFName, sSetFocus, sErrMsg);

    sErrMsg += validateText(objFrm.txtLName.value, "Last Name", false, null, 50);
    setFocusFun(objFrm.txtLName, sSetFocus, sErrMsg);

    sErrMsg += validateText(objFrm.txtCompany.value, "Company Name", false, null, 50);
    setFocusFun(objFrm.txtCompany, sSetFocus, sErrMsg);

    sErrMsg += validateText(objFrm.txtPhone.value, "Phone", false, null, 50);
    setFocusFun(objFrm.txtPhone, sSetFocus, sErrMsg);

    sErrMsg += validateEmail(objFrm.txtmail.value, "Email Address", false, null, 50);
    setFocusFun(objFrm.txtmail, sSetFocus, sErrMsg);

    if (sErrMsg != "") {
        sSetFocus = false;
        alert("The form could not be submited because of the following errors:\n\n" + sErrMsg);
        return false;
    }
    else {
        document.getElementById("imgBtnSubmit").src = '/images/submitting.gif';
        document.getElementById("imgBtnSubmit").style.cursor = 'wait'; return true;
    }
}
