﻿//var ph1Focus = 0;
//var ph2Focus = 0;
//var ph3Focus = 0;
//var PhoneData = '';

//var howHeard1Focus = 0;
//var howHeard2Focus = 0;

//var gedMonthFocus = 0;
//var gedYearFocus = 0;

//var flexFormResizedCallback = null;

function SetFlexFormResizedCallback(callbackFunction) {
    window.flexFormResizedCallback = callbackFunction;
}

function moveFlexForm(displayFieldsID) {
}

function NextClick(pv, step2Name, step3Name, nextBtnName, nextClickRecorderName) {
    jQuery('#' + step2Name).slideToggle(400, flexFormResized);
    jQuery('#' + step3Name).css("display", "inline"); /*submit button*/
    jQuery('#' + nextBtnName).css("display", "none");
    trackPageView(pv);
    var hidItm = document.getElementById(nextClickRecorderName);
    if (hidItm != null) {
        var litStep1 = document.getElementById("phshortform_0_litStep1");
        if (litStep1 != null) {
            litStep1.setAttribute("class", "grtext");
        }
        hidItm.value = 'true';
    }
    return false;
}

function flexFormResized() {
    if (window.flexFormResizedCallback != null && typeof window.flexFormResizedCallback == 'function') {
        window.flexFormResizedCallback();
    }
}

function trackPageView(pv) {
    try {
        //if (pageTracker != null) {
        //    pageTracker._trackPageview(pv);
        //}
        //
        _gaq.push(['_trackPageview', '/ga_virtual/QuickLeadSubmit']);
    }
    catch (err) {
    }
}

function NextClickFast(step2Name, step3Name, nextBtnName, nextClickRecorderName) {
    jQuery('#' + step2Name).slideToggle("fast");
    jQuery('#' + step3Name).css("display", "inline"); /*submit button*/
    jQuery('#' + nextBtnName).css("display", "none");   /*next button*/
    var hidItm = document.getElementById(nextClickRecorderName);
    if (hidItm != null) {
        hidItm.value = 'true';
    }
    return false;
}


function showLongForm(step1Name, step2Name, step3Name) {
    var submitBtn = document.getElementById(step3Name);
    if (submitBtn != null) {
        submitBtn.style.display = 'inline';
    }

    var step2 = document.getElementById(step2Name);
    if (step2 != null) {
        step2.style.display = 'none';
    }

    var nextBtn = document.getElementById(step1Name);
    if (nextBtn != null) {
        nextBtn.style.display = 'none';
    }

}

function showShortForm(step1Name, step2Name, step3Name) {
    var submitBtn = document.getElementById(step3Name);
    if (submitBtn != null) {
        submitBtn.style.display = 'none';
    }

    var step2 = document.getElementById(step2Name);
    if (step2 != null) {
        step2.style.display = 'none';
    }

    var nextBtn = document.getElementById(step1Name);
    if (nextBtn != null) {
        nextBtn.style.display = 'inline';
    }
}

function hideTY(fldsPnl, tyPnl) {
    var pnl1 = document.getElementById(fldsPnl);
    pnl1.style.display = 'inline';

    var pnl2 = document.getElementById(tyPnl);
    pnl2.style.display = 'none';
}

function redirector(fldsPnl, tyPnl, oneSiteAddr) {
    if (oneSiteAddr.toString().length > 0) {
        if (oneSiteAddr != "#thankyou") {
            setTimeout("window.location = '" + oneSiteAddr + "';", 5000);
        }
    }

    var pnl1 = document.getElementById(fldsPnl);
    pnl1.style.display = 'none';

    var pnl2 = document.getElementById(tyPnl);
    pnl2.style.display = 'inline';
    var x = document.getElementById('thankyoufocus');
    if (x != null) {
        setTimeout("setTYFocus();", 1000);
    }
}

function setTYFocus() {
    setFormFocusByElementID('thankyoufocus');
}

function transmitErrorsToLivePerson() {
    if (typeof (Page_Validators) != 'undefined') {
        var i;
        var ErrorCounter = 0;
        var ErrorMessages = '';
        for (i = 0; i < Page_Validators.length; i++) {
            if (!Page_Validators[i].isvalid) {
                ErrorCounter += 1;
                if (ErrorMessages.length > 0) {
                    ErrorMessages = ErrorMessages + ', ' + Page_Validators[i].errormessage;
                }
                else {
                    ErrorMessages = Page_Validators[i].errormessage;
                }
            }
        }
        if (ErrorCounter > 0) {
            /*lpUASaction('CTUErrorCounter', ErrorCounter);*/
            lpAddVars('page', 'ErrorCounter', ErrorCounter);
            lpAddVars('page', 'ErrorName', ErrorMessages);
            setFormFocusByElementID('formfocus');
        }
    }
}

function setFormFocusByElementID(elementID) {
    var element = jQuery('#' + elementID);
    if (jQuery('#' + elementID).length > 0) {
        if (element.css('visibility').toLowerCase() != 'hidden' && element.css('display').toLowerCase() != 'none') {
            element.focus();
        }
    }
}

//var ph1 = '';
//var ph2 = '';
//var ph3 = '';

//function consolidatePhoneData(thePhoneField, tempName, MaxLength, replaceVariable) {
//    if (thePhoneField != null) {
//        var thePhoneValue = thePhoneField.value.toString();
//        if ((thePhoneValue == '') || (thePhoneValue.length < MaxLength)) {
//            var x = '';
//            for (var i = thePhoneValue.length; i < MaxLength; i++) {
//                thePhoneValue = thePhoneValue + ' ';
//            }
//        }
//        else {
//            /* In an unlikely case where the Length of the phone field is longer than the max length, get the substring*/
//            thePhoneValue = thePhoneValue.substring(0, MaxLength);
//        }

//        if (replaceVariable) {
//            ph1 = thePhoneValue;
//        }
//        else {
//            switch (tempName) {
//                case "phone1":
//                    if (jQuery.trim(ph1) != thePhoneValue) {
//                        ph1 = thePhoneValue;
//                    }
//                    break;
//                case "phone2":
//                    if (jQuery.trim(ph2) != thePhoneValue) {
//                        ph2 = thePhoneValue;
//                    }
//                    break;
//                case "phone3":
//                    if (jQuery.trim(ph3) != thePhoneValue) {
//                        ph3 = thePhoneValue;
//                    }
//                    break;
//                default:
//                    break;
//            }
//        }
//        if (ph1 == '') {
//            ph1 = '   ';
//        }
//        if (ph2 == '') {
//            ph2 = '   ';
//        }
//        if (ph3 == '') {
//            ph3 = '    ';
//        }
//        PhoneData = ph1.substring(0, 3) + ph2.substring(0, 3) + ph3.substring(0, 4);
//    }
//}

var minPhoneLength = 10;
var maxPhoneLength = 16;
function ValidatePhone(thePhoneFieldValue, requiredCheck) {
    var isValid = false;
    //var thePhoneValue = thePhoneField.value.toString();
    var thePhonenumericText = '';

    for (var i = 0; i < thePhoneFieldValue.length; i++) {
        //if (!isNaN(thePhoneValue[i])) {  //Checking for isNaN is always causing the required field validator to be validated if the text entered was all alpha.  So check only for the "known" characters
        var aSingleChar = thePhoneFieldValue.substring(i, i + 1);
        if ((aSingleChar != ' ') && (aSingleChar != '-') && (aSingleChar != '(') && (aSingleChar != ')')) {
            //thePhonenumericText = thePhonenumericText + '' + thePhoneFieldValue[i];
            thePhonenumericText = thePhonenumericText + '' + aSingleChar;
        }
    }

    if (requiredCheck == true) {
        isValid = (jQuery.trim(thePhonenumericText).length > 0);
    }
    else {
        isValid = (((jQuery.trim(thePhonenumericText).length >= minPhoneLength) && (jQuery.trim(thePhonenumericText).length <= maxPhoneLength)) && (!isNaN(thePhonenumericText)));
    }
    return isValid;
}


function getPageValidatorByErrorMessage(errorMsg, validationgroup) {
    var theValidator = null;
    if ((errorMsg != '') && (errorMsg != undefined)) {
        for (j = 0; j < Page_Validators.length; j++) {
            var tempValidator = Page_Validators[j];
            if ((jQuery.trim(tempValidator.errormessage) == jQuery.trim(errorMsg)) && (jQuery.trim(tempValidator.validationGroup) == jQuery.trim(validationgroup))) {
                theValidator = tempValidator;
                break;
            }
        }
    }
    return theValidator;
}

function getPageValidatorByID(validatorID, validationgroup) {
    var theValidator = null;
    if ((validatorID != '') && (validatorID != undefined)) {
        for (j = 0; j < Page_Validators.length; j++) {
            var tempValidator = Page_Validators[j];
            if ((jQuery.trim(tempValidator.id) == jQuery.trim(validatorID)) && (jQuery.trim(tempValidator.validationGroup) == jQuery.trim(validationgroup))) {
                theValidator = tempValidator;
                break;
            }
        }
    }
    return theValidator;
}

function getValidatorPositionInPreValidatedList(validatorID, validationgroup) {
    reSeedArray();
    var retVal = -1;
    for (var x = 0; x <= validatedFields.length; x++) {
        var a = validatedFields[x];
        if ((a != undefined) && (a != '')) {
            if ((a[0] != undefined) && (a[0] != '')) {
                var theValidator = getPageValidatorByID(a[0], validationgroup)
                if ((theValidator != null) && (theValidator != undefined) && (jQuery.trim(validatorID) == jQuery.trim(theValidator.id))) {
                    retVal = x;
                    break;
                }
            }
        }
    }
    return retVal;
}

function getValidatorPositionInHideList(validatorID, validationgroup) {
    var retVal = -1;
    for (var x = 0; x <= validatedFieldsToHide.length; x++) {
        if ((validatedFieldsToHide[x] != undefined) && (validatedFieldsToHide[x] != '')) {
            var theValidator = getPageValidatorByID(validatedFieldsToHide[x], validationgroup);
            if ((theValidator != null) && (theValidator != undefined) && (jQuery.trim(validatorID) == jQuery.trim(theValidator.id))) {
                retVal = x;
                break;
            }
        }
    }
    return retVal;
}

var validationsChecked = '';
var byPassExceptions = new Array();
var validatedFieldsToHide = new Array();

function reSeedArray() {
    var newValidatedFields = new Array();
    if ((validatedFields != null) && (validatedFields.length > 0)) {
        var tempValidatedFields = new Array();
        tempValidatedFields = validatedFields;
        if (tempValidatedFields.length > 0) {
            for (var l = 0; l < tempValidatedFields.length; l++) {
                var tempLen = newValidatedFields.length;
                if (tempLen < 0) {
                    tempLen = 0;
                }
                if (tempValidatedFields[l][0] != '') {
                    newValidatedFields[tempLen] = tempValidatedFields[l];
                }
            }
        }

        if (newValidatedFields.length > 0) {
            validatedFields = newValidatedFields;
        }

    }

}

function ValidatePage(ctl, ctlType, errMsg, altMsg, byPassValidation, ValidationGroup) {

    var retVal = true;

    reSeedArray();

    if (jQuery.trim(validationsChecked) == '') {
        var reqFieldValidator = null;
        var altValidator = null;
        var checkAltValidator = true;
        var flds = validatedFields.length;

        var validatorPosition = -1;
        var altvalidatorPosition = -1;
        var validatorHidePosition = -1;
        var altvalidatorHidePosition = -1;


        if (errMsg != '') {
            reqFieldValidator = getPageValidatorByErrorMessage(errMsg, ValidationGroup);
        }

        if (altMsg != '') {
            altValidator = getPageValidatorByErrorMessage(altMsg, ValidationGroup);
            if ((altValidator != null) && (altValidator != undefined)) {
                altvalidatorPosition = getValidatorPositionInPreValidatedList(altValidator.id, ValidationGroup);
                altvalidatorHidePosition = getValidatorPositionInHideList(altValidator.id, ValidationGroup);
            }
        }


        //if (errMsg != '') {
        //reqFieldValidator = getPageValidatorByErrorMessage(errMsg, ValidationGroup);

        if ((reqFieldValidator != null) && (reqFieldValidator != undefined)) {

            validatorPosition = getValidatorPositionInPreValidatedList(reqFieldValidator.id, ValidationGroup);
            validatorHidePosition = getValidatorPositionInHideList(reqFieldValidator.id, ValidationGroup);

            //if (ctlType == 'Phone') {
            ////if ((ph1Focus == '1') && (ph2Focus == '1') && (ph3Focus == '1')) {
            //reqFieldValidator.isvalid = ValidatePhone(ctl.value, true);
            ////} else {
            ////checkAltValidator = false;
            ////}
            //}
            //else {
            ValidatorValidate(reqFieldValidator, ValidationGroup, null);
            //}
            if (!reqFieldValidator.isvalid) {
                if ((validatorPosition == undefined) || (validatorPosition == -1)) {
                    /*validator not added to validatedFields array.  Add it.*/
                    validatedFields[flds] = [reqFieldValidator.id, ctl.value];
                }
                if (validatorHidePosition != -1) {
                    //do not hide the validator
                    validatedFieldsToHide[validatorHidePosition] = '';
                }

                if ((altValidator != null) && (altValidator != undefined)) {
                    if (altvalidatorPosition != -1) {
                        //the required field validator failed.  remove the alt validator if it was already partof the validation fields.
                        validatedFields[altvalidatorPosition] = ['', ''];
                    }

                    if (altvalidatorHidePosition == -1) {
                        //add to the "hide" list so the message will be removed
                        validatedFieldsToHide[validatedFieldsToHide.length] = altValidator.id;
                    }
                }

                /*set the alt validator check to false so that only one of the two validators is checked/validated.*/
                checkAltValidator = false;

            } else {
                if ((validatorPosition != undefined) && (validatorPosition != -1)) {
                    /*validator already added to the validatedFields array.  Remove it.*/
                    validatedFields[validatorPosition] = ['', ''];
                }
                if (validatorHidePosition == -1) {
                    //force hide the validator.  
                    validatedFieldsToHide[validatedFieldsToHide.length] = reqFieldValidator.id;
                }
                checkAltValidator = true;
            }
        }
        //}

        if (/*(altMsg != '') &&*/(checkAltValidator == true)) {

            //            altValidator = getPageValidatorByErrorMessage(altMsg, ValidationGroup);

            if ((altValidator != null) && (altValidator != undefined)) {

                altvalidatorPosition = getValidatorPositionInPreValidatedList(altValidator.id, ValidationGroup);
                altvalidatorHidePosition = getValidatorPositionInHideList(altValidator.id, ValidationGroup);

                //if (ctlType == 'Phone') {
                //    altValidator.isvalid = ValidatePhone(ctl.value);
                //}
                //else {
                ValidatorValidate(altValidator, ValidationGroup, null);
                //}

                if (!altValidator.isvalid) {
                    if ((altvalidatorPosition == undefined) || (altvalidatorPosition == -1)) {
                        validatedFields[flds] = [altValidator.id, ctl.value];
                    }
                    if (altvalidatorHidePosition != -1) {
                        //do not hide the validator
                        validatedFieldsToHide[altvalidatorHidePosition] = '';
                    }
                } else {
                    if ((altvalidatorPosition != undefined) && (altvalidatorPosition != -1)) {
                        /*validator already added to the validatedFields array.  Remove it.*/
                        validatedFields[altvalidatorPosition] = ['', ''];
                    }
                    if (altvalidatorHidePosition == -1) {
                        //force hide the validator.  
                        validatedFieldsToHide[validatedFieldsToHide.length] = altValidator.id;
                    }
                }
            }
        }

        /*Validator(s) have been added/removed to the array that "should" be validated.  Go through the array and validate all validators.*/
        retVal = ValidatePage1(ctl, ctlType, errMsg, altMsg, byPassValidation, ValidationGroup);

    }

    return retVal;

}

function ValidatePage1(ctl, ctlType, errMsg, altMsg, byPassValidation, ValidationGroup) {

    reSeedArray();

    if (!ValidationGroup || ValidationGroup == null) ValidationGroup = '';

    if (jQuery.trim(validationsChecked) == '') {
        var dvValSummary = document.getElementById('valSummary' + ValidationGroup);
        if (dvValSummary != null) {
            dvValSummary.innerHTML = '';
        }
        var retVal = true;
        var validatorsToCheck = -1;
        if (validatedFields.length < 0) {
            validatorsToCheck = Page_Validators.length;
        }
        else {
            validatorsToCheck = validatedFields.length;
        }

        for (i = 0; i <= validatorsToCheck - 1; i++) {
            var k = validatedFields[i][0];
            var fieldValue = validatedFields[i][1];
            var val = null;
            if (k != undefined) {
                val = getPageValidatorByID(jQuery.trim(validatedFields[i][0]), ValidationGroup);
                if ((val != null) && (val != undefined) && (val.errormessage != undefined)) {
                    if (!byPassValidation == true) {
                        //if (val.id.indexOf("phone") >= 0) {
                        //    val.isvalid = ValidatePhone(fieldValue);
                        //}
                        //else {
                        ValidatorValidate(val, ValidationGroup, null);
                        //}
                    }
                    else {
                        if (val.controltovalidate != undefined) {
                            var validatethisfield = false;
                            var itemtoremove = -1;
                            for (var l = 0; l < byPassExceptions.length; l++) {
                                itemtoremove = -1;
                                var bypassVal = getPageValidatorByID(jQuery.trim(byPassExceptions[l]), ValidationGroup);
                                if ((bypassVal != null) && (bypassVal != undefined) && (bypassVal.id == val.id)) {
                                    validatethisfield = true;
                                    itemtoremove = l;
                                    break;
                                }
                            }
                            if (validatethisfield == true) {
                                //if (val.id.indexOf("phone") >= 0) {
                                //    val.isvalid = ValidatePhone(fieldValue);
                                //}
                                //else {
                                ValidatorValidate(val, ValidationGroup, null);
                                //}
                            }
                            else {
                                val.isvalid = false;
                            }
                        }
                    }
                    if (!val.isvalid) {
                        if (dvValSummary != null) {
                            if (val.errormessage != undefined) {
                                dvValSummary.innerHTML += val.errormessage + '<br />';
                            }
                        }
                        val.style.display = 'inline';
                        retVal = false;
                    } else {
                        val.style.display = 'none';
                    }
                }
                else {
                    if (val != undefined) {
                        val.style.display = 'none';
                    }
                }
            }
            if (i >= Page_Validators.length) {
                break;
            }
        }

        for (var i = 0; i < validatedFieldsToHide.length; i++) {
            var theValidatorID = validatedFieldsToHide[i];
            if (theValidatorID != '') {
                var val = getPageValidatorByID(theValidatorID, ValidationGroup);
                if ((val != null) && (val != undefined)) {
                    val.style.display = 'none';
                }
            }
        }

        if (retVal == false) {
            dvValSummary.style.display = "inline";
        }
        else {
            dvValSummary.innerHTML = '';
            dvValSummary.style.display = "none";
        }
        remembertheFields(validatedFields);
        return retVal;
    }
}

function getMyValidator(controltobevalidated, validationgroup) {
    reSeedArray();
    var valID = '';
    var len = validatedFields.length;
    for (var i = 0; i < Page_Validators.length; i++) {
        var validator = Page_Validators[i];
        if (validator != null) {
            if ((validator.controltovalidate != undefined) && (validator.validationgroup == validationgroup)) {
                if (validator.controltovalidate.indexOf(controltobevalidated) >= 0) {
                    if (!validatorExistsInMemory(validator.id, i, true)) {
                        valID = validator.id.toString();
                    }
                    break;
                }
            }
        }
    }
    if (valID != '') {
        //        validatedFields[len][0] = valID;
        validatedFields[len] = [valID, ''];
        var len1 = byPassExceptions.length;
        byPassExceptions[len1] = valID;
    }
}

function validatorExistsInMemory(validatorID, ordinalPositionOfValidator, ValidateTheField) {
    /*find a validator's ID in "memory" and if it exists, also validate it.*/
    /*returns true if the validator is found.*/
    var flds = validatedFields.length;
    var found = false;
    for (var x = 0; x < flds; x++) {
        if ((validatedFields[x][0] != undefined) && (validatedFields[x][0] != '')) {
            var tempVal;
            if (jQuery.trim(validatorID.toString()) == jQuery.trim(validatedFields[x][0].toString())) {
                tempVal = validatedFields[x][0].toString();
                if (ValidateTheField == true) {
                    var thisValidator = Page_Validators[ordinalPositionOfValidator];
                    ValidatorValidate(thisValidator);
                    if (thisValidator.isvalid) {
                        validatedFields[x][0] = '';
                    }
                }
                found = true;
                break;
            }
        }
    }
    return (found);
}

var normalWidth = '0';
var $cssPositionOfTheDropDown = '';
var $containerpos = '';
var $positionChanged = false;
function DDMouseDown(ddl) {
    if (jQuery.browser.msie) {
        if (jQuery.browser.version.substr(0, 1) < 7) { return true; }

        try {
            var $thisDropDown = $(ddl);
            var $container = ($thisDropDown).parent();

            if (jQuery.trim($cssPositionOfTheDropDown) == '') {
                $cssPositionOfTheDropDown = ($thisDropDown).css("position");
            }
            if (jQuery.trim($containerpos) == '') {
                $containerpos = ($container).css("position");
            }

            if (jQuery(ddl).css("width") == "auto") { return true; }
            if (normalWidth == '0') {
                normalWidth = jQuery(ddl).css("width");
            }
            var w = jQuery(ddl).width();
            if (w > 220 || (w <= 220 && jQuery(ddl).parents("div.formFieldRows").length > 0)) {
                if (($cssPositionOfTheDropDown == "static") && ($containerpos == "relative")) {
                    jQuery(ddl).css("position", "absolute");
                    jQuery(ddl).css("width", "100%");
                }
                else {
                    jQuery(ddl).css("width", "auto");
                }
            }
            else { jQuery(ddl).css("width", "auto"); }

            if (jQuery.browser.version.substr(0, 1) == 8) {
                jQuery(ddl).css("overflow", "visible");
            }
            else {
                jQuery("#container").css("overflow", "visible");
                jQuery("#content").css("overflow", "visible");
            }

            $positionChanged = true;
        }
        catch (ex) {

        }

    }
}
function DDMouseOut(ddl) {
    if (jQuery.browser.msie) {
        if (jQuery.browser.version.substr(0, 1) < 7) { return true; }
        if (jQuery(ddl).css("width") == "auto" && normalWidth == '0') { return true; }

        try {
            if ($positionChanged == true) {
                jQuery(ddl).css("width", normalWidth);
                if (($cssPositionOfTheDropDown == "static") && ($containerpos == "relative")) {
                    if (jQuery(ddl).css("position") == "absolute") {
                        jQuery(ddl).css("position", "relative");
                    }
                    else { jQuery(ddl).css("position", "auto"); }
                }
                $positionChanged = false;

                if (jQuery.browser.version.substr(0, 1) == 8) {
                    jQuery(ddl).css("overflow", "hidden");
                }
                else {
                    jQuery("#container").css("overflow", "hidden");
                    jQuery("#content").css("overflow", "hidden");
                }
            }

        }
        catch (ex) {
        }
    }
}

function ValidatorCommonOnSubmit() {
    var dvValSummary1 = document.getElementById('valSummary' + validationgroup);
    if (dvValSummary1 != null)
    { dvValSummary1.style.display = 'none'; }
    var result = !Page_BlockSubmit;

    Page_BlockSubmit = false;
    try {
        transmitErrorsToLivePerson();
    }
    catch (err) {
    }
    return result;
}

function remembertheFields(x) {
    if ((x != null) && (x != 'undefined')) {
        var rememb = document.getElementById("remember" + validationgroup);
        if (rememb != null) {
            rememb.value = x;
        }
    }
}

function disableInlineValidation() {
    validationsChecked = 'true';
    remembertheFields('validationsChecked');
    for (z = 0; z < byPassExceptions.length; z++) {
        byPassExceptions[z] = '';
    }
    return true;
}

