var noPopup=false;
var exitPopupWindow = '';
var formSubmitted=false;
var phoneFieldLength=0;

var zipcodeDataUrl = '/forms/zipcodemap';
var zipcodeDataTimeout = 1000;
var zipcodeDataFields = [["city","CITY_01"],["state","STATE_01"]];

var ns4;
var dom;
if (navigator.appName=="Netscape") {
    ns4 = parseInt(navigator.appVersion)<5;
}
dom=!ns4;

function AjaxHelper() {}

AjaxHelper.prototype.getReq = function() {
    if (!this.reqObj || this.reqObj === null) {
        this.reqObj = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
    }
    return this.reqObj;
};

AjaxHelper.prototype.replaceAllInText = function(strText, strTarget, replacement) {
    var intIndexOfMatch = strText.indexOf(strTarget);
    while (intIndexOfMatch >= 0) {
        strText = strText.replace(strTarget, replacement);
        intIndexOfMatch = strText.indexOf(strTarget);
    }
    return strText;
};

AjaxHelper.prototype.getParams = function(formObj) {
    var s = new Array();

    var formElements = formObj.elements;
    for (var j=0;j<formElements.length;++j) {
        var el = formElements[j];
        // If the value is an array then the key names need to be repeated
        if ( el.constructor == Array ) {
            for (var i=0;i<el.length;++i) {
                if (el.name) {
                    s[s.length] = el[i].name + "=" + encodeURIComponent(el[i].value);
                }
            }
        }
        else if (el.name) {
            s[s.length] = el.name + "=" + encodeURIComponent(el.value);
        }
    }
    // Return the resulting serialization
    return s.join("&").replace(/%20/g, "+");
};

var AjaxObject = new AjaxHelper();


var ValidationTracker = {
        reportedUrl: '/forms/validationtracking',

        trackAlert: function(fieldName, reason) {
    var imprP = null;
    var fieldValue = "UNKNOWN";
    try {    
        try {
            fieldValue = window.document.form1[fieldName].value;
        } catch(e) {}
        reason = "field value: " + fieldValue + ", " + reason;

        var params = "type=jsAlert&field=" + encodeURIComponent(fieldName) + "&reason=" + encodeURIComponent(reason);;

        if (window.document.form1 && window.document.form1.H) {
            var hiddenValue = encodeURIComponent(window.document.form1.H.value);
            imprP = 'H=' + hiddenValue;
            params +='&' + imprP;
        }

        AjaxObject.getReq().open("POST", this.reportedUrl, false); 
        AjaxObject.getReq().setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
        AjaxObject.getReq().setRequestHeader("Cache-Control", "no-cache"); 

        AjaxObject.getReq().send(params);
    } catch(e) {
        try {
            var reasonMes = "reason: " + reason + "problem: " + e.name + ": ";
            if (e.stack) {
                // reasonMes += " stack: " + e.stack;
            }
            if (e.message) {
                reasonMes += " message: " + e.message;
            }
            if (e.description) {
                reasonMes += " desc: " + e.description;
            }
            if (e.lineNumber) {
                reasonMes += " line number: " + e.lineNumber;
            }

            reasonMes = "field value: " + fieldValue + ", " + reasonMes;

            params = "type=jsProblem&field=" + encodeURIComponent(fieldName) + "&reason=" + encodeURIComponent(reasonMes);
            if (imprP) {
                params +="&" + imprP;
            }

            AjaxObject.getReq().open("POST", this.reportedUrl, false); 
            AjaxObject.getReq().setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
            AjaxObject.getReq().setRequestHeader("Cache-Control", "no-cache"); 

            AjaxObject.getReq().send(params);

        } catch(e) {}
    }
}
};


function changeSoftenField(fieldName, fieldValue) {
    window.document.form1.SOFTENNAME.value=fieldName;
    window.document.form1.SOFTENVALUE.value=fieldValue;
    submitForm();
}

function submitForm(form) {
    noPopup=true;
    formSubmitted = true;
    if (form) {
    	form.submit();
    } else {
    	window.document.form1.submit();
    }
}

function showExitPopUp() {
    var exitPopUpUrl = "goodbye.html";
    var exitUrlParams = "";
    var popHeight = window.screen.availHeight - 100;
    if(window.document.form1.exPopZip) {
        exitUrlParams += "zp=" + window.document.form1.exPopZip.value;
    }
    if(window.document.form1.D) {
        if(exitUrlParams.length > 0) {
            exitUrlParams += "&D=" + window.document.form1.D.value;
        } else {
            exitUrlParams += "D=" + window.document.form1.D.value;
        }
    }
    if (window.document.form1.MASTER_IMPRESSION_STRING) {
        if(exitUrlParams.length > 0) {
            exitUrlParams += "&_ADCCSI=" + window.document.form1.MASTER_IMPRESSION_STRING.value;
        } else {
            exitUrlParams += "_ADCCSI=" + window.document.form1.MASTER_IMPRESSION_STRING.value;
        }
    }
    if(exitUrlParams.length > 0) {
        exitPopUpUrl += "?" + exitUrlParams;
    }
    exitPopupWindow=window.open(exitPopUpUrl,"popup","menubar=0,resizable=1,scrollbars=1,top=50,left=50,width=850,height=" + popHeight);
    if(exitPopupWindow != null) {
        exitPopupWindow.blur();
    }
    if (self.focus) self.focus();
}

function redirect2XsellUrlWithParams(xsellUrl) {
    var urlParams = "";
    if (window.document.form1.MASTER_IMPRESSION_STRING) {
        if(urlParams.length > 0) {
            urlParams += "&_ADCCSI=" + window.document.form1.MASTER_IMPRESSION_STRING.value;
        } else {
            urlParams += "_ADCCSI=" + window.document.form1.MASTER_IMPRESSION_STRING.value;
        }
    }
    if (urlParams.length > 0) {
        if (xsellUrl.indexOf("?") < 0) {
            xsellUrl += "?";
        } else if (xsellUrl.lastIndexOf("?") < (xsellUrl.length - 1)) {
            xsellUrl += "&";
        }
        xsellUrl += urlParams;
    }
    window.location = xsellUrl;
}
function exitF() {
	if (isShowExitPopUp()) {
		showExitPopUp();
		return null;
	}
	else {
		var result = showAbandonOffer();
		if (result != null) {
			return result;
		}
	}
	return null;
}
function isShowExitPopUp() {
    if(noPopup==false && window.document.form1 && window.document.form1.exPop && window.document.form1.exPop.value=='true'  && window.name != 'formWindow') {
        if ( !(exitPopupWindow && !exitPopupWindow.closed && exitPopupWindow.location) && (window.showExitPop==undefined || window.showExitPop) ) {
        	return true;
        }
    }
    return false;
}
var abandonOfferCount = 0;
function showAbandonOffer() {
	if (!window.backWasClicked && noPopup==false && window.isShowAbandonOffer=="true" && abandonOfferCount == 0) {
		trackShowingAbandonOffer();
		setTimeout(function() {
            setTimeout(trackCancelClosingPage, 500);
        },1);
		
		var obj = document.getElementById("abandonOffer");
		if (obj) {
			obj.style.display="block";
			abandonOfferCount++;
			
			var textObj = document.getElementById("abandonOfferText");
			if (textObj) {
				return textObj.value;
			}
		}
	}
	return null;
}
function isNewPage4Offer() {
	if ( typeof(errors) == undefined ) {
		return true;
	}
	if (errors && errors.length == 0) {
		return true;
	}
	return false;
}
function trackShowingAbandonOffer() {
	var imgSrc = "/forms/eventtracking?event=abandon_offer_showed&alpscompname=abandon_offer_showed&uid=";
	if (window.alpsSessionId) {
		imgSrc += window.alpsSessionId;
	}
	var imageObj = new Image(0,0);
	imageObj.border = 0;
	imageObj.src = imgSrc;
    document.body.appendChild(imageObj);
}
function trackCancelClosingPage() {
	var imgSrc = "/forms/eventtracking?event=cancel_closing_page&alpscompname=cancel_closing_page&uid=";
	if (window.alpsSessionId) {
		imgSrc += window.alpsSessionId;
	}
	var imageObj = new Image(0,0);
	imageObj.border = 0;
	imageObj.src = imgSrc;
    document.body.appendChild(imageObj);
}
function trackAbandonOfferUrl(eventName) {
    var url = "/forms/eventtracking?event=" + escape(eventName) + "&alpscompname=" + escape(eventName) + "&uid=";
	if (window.alpsSessionId) {
		url += window.alpsSessionId;
	}
    AjaxObject.getReq().open("GET", url); 
    AjaxObject.getReq().send(null);
}

function clickedOnExternalLink() {
	window.onbeforeunload = null;
}
function clickOnOpenId() {
	noPopup = true;
}
function initF() {
}
window.initAdchemyPixels = function() {
	var iframe = document.getElementById('adchemyPixelIframe');
	if (iframe && window.adchemyPixelIframeSrc) {
		iframe.src = window.adchemyPixelIframeSrc;
		iframe.onload = function() {
			var iframe2 = document.getElementById('adchemyPixelIframe');
			if (iframe2) {
				iframe.onload = null;
				iframe2.src = "";
			}
		}
	}
}
function PageQuery(q) {
    if(q.length > 1) this.q = q.substring(1, q.length);
    else this.q = null;
    this.keyValuePairs = new Array();
    if(q) {
        for(var i=0; i < this.q.split("&").length; i++) {
            this.keyValuePairs[i] = this.q.split("&")[i];
        }
    }
    this.getKeyValuePairs = function() { return
        this.keyValuePairs; }
    this.getValue = function(s) {
        for(var j=0; j < this.keyValuePairs.length; j++) {
            if(this.keyValuePairs[j].split("=")[0] == s) {
                if(this.keyValuePairs[j].split("=").length>1)
                {
                    return this.keyValuePairs[j].split("=")[1];
                }
            }
        }
        return "";
    }
    this.getParameters = function() {
        var a = new Array(this.getLength());
        for(var j=0; j < this.keyValuePairs.length; j++) {
            a[j] = this.keyValuePairs[j].split("=")[0];
        }
        return a;
    }
    this.getLength = function() { return
        this.keyValuePairs.length; }
}

function queryString(key){
    var page = new PageQuery(window.location.search);
    return unescape(page.getValue(key));
}

function replaceSpecialSymbols(value) {
    if (value && value.length) {
        var re = /%20/gi;
        value = value.replace(re, " ");
        re = /\+/gi;
        value = value.replace(re, " ");
        re = /%25/gi;
        value = value.replace(re, "%");
        re = /%26/gi;
        value = value.replace(re, "&");
        re = /%A9/gi;
        value = value.replace(re, "@");
        re = /%3B/gi;
        value = value.replace(re, ";");
        re = /%3C/gi;
        value = value.replace(re, "<");
        re = /%3E/gi;
        value = value.replace(re, ">");
    }

    return value;
}
function popUp(url,title) {
    dwindow=window.open(url,"window","width=600,height=480,scrollbars=yes,resizable=yes");
    if(dwindow.focus) dwindow.focus();
}


function createOptGroup(label) {
    var optGroup = document.createElement("optgroup")
    optGroup.label = label;
    return optGroup;
}

function createAndAddOptionToOptGroup(optGroup, optionLabel, optionValue) {
    var option = document.createElement("option");
    option.innerHTML = optionLabel;
    option.value = optionValue;
    optGroup.appendChild(option);
}

function addOptionToOptGroup(optGroup, optionValue, optionLabel) {
    var option = document.createElement("option");
    option.innerHTML = optionLabel;
    option.value = optionValue;
    optGroup.appendChild(option);
}

function addOptionToListBox(listBox, optionValue, optionLabel) {
    var option = document.createElement("option");
    option.innerHTML = optionLabel;
    option.value = optionValue;
    listBox.appendChild(option);
}

function alertError(field, message) {
    alert(message);
    if (field) {
        if (field.focus) {
            field.focus();
        }
        else if (field.length && field.length >0 && field[0].focus) {
            field[0].focus();
        }
    }
    if (window.formFamily && window.formFamily == "DegreesInfo") {
        var fieldName = "UNKNOWN";

        if (field) {
            if (field.length && field.length >0 && field[0].name && field[0].name!=null) {
                fieldName = field[0].name;
            }
            else if (field.name && field.name!=null){
                fieldName = field.name;
            }
        }

        ValidationTracker.trackAlert(fieldName, message);
    }

    return false;
}

function TabNext(obj, event, fieldLength, nextField, e) {
    if (event == "down") {
        phoneFieldLength=obj.value.length;
    }
    else if (event == "up") {
        if (obj.value.length != phoneFieldLength) {
            phoneFieldLength=obj.value.length;
            if (phoneFieldLength == fieldLength && e.keyCode != 8 && e.keyCode != 16 && e.keyCode != 9) {
                nextField.focus();
            }
        }
    }
}

function validate_COUNTRY_01(form) {
    value = getFieldValueTF(form.COUNTRY_01)
    if(!validateIsRequired(value)) {
        return alertError(form.COUNTRY_01, "Please select a country." );
    }
    return true;
}
function validate_FIRSTNAME_01_optional(form, message1, message2) {
    value = getFieldValueTF(form.FIRSTNAME_01)
    if (validateIsRequired(value)) {
        if(!validateMinLength(value,2)) {
            return alertError(form.FIRSTNAME_01, message1);
        } else if(!validateAlphaChar(value)) {
            return alertError(form.FIRSTNAME_01, message2);
        }
    }
    return true;
}

function validate_FIRSTNAME_01_with_messages(form, message1, message2) {
    value = getFieldValueTF(form.FIRSTNAME_01)
    if(!validateIsRequired(value) || !validateMinLength(value,2)) {
        return alertError(form.FIRSTNAME_01, message1);
    } else if(!validateAlphaChar(value)) {
        return alertError(form.FIRSTNAME_01, message2);
    }
    return true;
}
function validate_FIRSTNAME_01(form) {
    return validate_FIRSTNAME_01_with_messages(form, "Please enter your First Name.", "Please enter a valid First Name. Be sure to only use alphabetic characters."); 
}

function validate_LASTNAME_01(form) {
    value = getFieldValueTF(form.LASTNAME_01)
    if(!validateIsRequired(value) || !validateMinLength(value,2)) {
        return alertError(form.LASTNAME_01, "Please enter your Last Name." );
    } else if(!validateAlphaChar(value)) {
        return alertError(form.LASTNAME_01, "Please enter a valid Last Name. Be sure to only use alphabetic characters." );
    }
    return true;
}

function validate_EMAIL_01(form) {
    var returnValue = true;
    if (form.EMAIL_01) {
        email = getFieldValueTF(form.EMAIL_01);
        var validEmail = validateEmailAddress(email);
        if(validEmail == false) {
            return alertError(form.EMAIL_01, "Please enter a valid Email Address." );
        }
        else {
            if (form.EMAIL_CONFIRM_01) {// check if it is in the form
                var email2 = getFieldValueTF(form.EMAIL_CONFIRM_01);
                if (!validateIsRequired(email2)) {
                    return alertError(form.EMAIL_CONFIRM_01, "Please confirm your email address.");
                }
                else if(email != email2) {
                    return alertError(form.EMAIL_CONFIRM_01, "Please check that the email you entered matches the confirmation field.");
                }
            }
        }
    }

    return returnValue;
}

function validate_EMAIL_CONFIRM_01() {
    var field = window.document.form1.EMAIL_CONFIRM_01;
    var field2 = window.document.form1.EMAIL_01;
    var value = getFieldValueTF(field);
    if (!validateIsRequired(value)) {
        return alertError(field, "Please confirm your email address.");
    }
    else if(value != getFieldValueTF(field2)) {
        return alertError(field, "Please check that the email you entered matches the confirmation field.");
    }
    return true;
}


function validateEmailAddress(email) {
    var pattern=/[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&''*+/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?/;
    return pattern.test(email);
}


function validate_ADDRESS1_01(form) {
    value = getFieldValueTF(form.ADDRESS1_01);
    if(!validateIsRequired(value) || !validateMinLength(value,6)) {
        return alertError(form.ADDRESS1_01, "Please enter your Address." );
    }
    return true;
}

function validate_CITY_01(form) {
    value = getFieldValueTF(form.CITY_01)
    if(!validateIsRequired(value)) {
        return alertError(form.CITY_01, "Please enter your City." );
    }
    return true;
}

function validate_BESTTIME_01(form) {
    value = getFieldValueTF(form.BESTTIME_01)
    if(!validateIsRequired(value)) {
        return alertError(form.BESTTIME_01, "Please select the best time to call." );
    }
    return true;
}


function validate_STATE_01(form) {
    countryValue = getCountryValue(form.COUNTRY_01);
    if(countryValue == "USA" || countryValue == "CAN") {
        value = getFieldValueTF(form.STATE_01)
        if(!validateIsRequired(value)) {
            return alertError(form.STATE_01, "Please select your State." );
        }
    }
    return true;
}

function isUSZip(value) {
    if(validateMinLength(value,5) && validateMaxLength(value,5) && allDigits(value)) {
        return true;
    } else {
        return false;
    }
}

function isCANZip(value) {
    value=stripAwayHyphAndSpaces(value);
    if(validateMinLength(value,6) && validateMaxLength(value,6)) {
        entry=value.toUpperCase();
        if ('ABCEGHJKLMNPRSTVXY'.indexOf(entry.charAt(0))<0 || '0123456789'.indexOf(entry.charAt(1))<0 || 'ABCDEFGHJKLMNPQRSTUVWXYZ'.indexOf(entry.charAt(2))<0 || '0123456789'.indexOf(entry.charAt(3))<0 || 'ABCDEFGHJKLMNPQRSTUVWXYZ'.indexOf(entry.charAt(4))<0 || '0123456789'.indexOf(entry.charAt(5))<0) {
            return false;
        } else {
            return true;
        }
    }
    return false;
}

function validate_fullSSN(form) {
    message =  "Please enter a valid SSN number.";
    ssn1Value = getFieldValueTF(form.SSN1_01);
    ssn2Value = getFieldValueTF(form.SSN2_01);
    ssn3Value = getFieldValueTF(form.SSN3_01);
    if(allCharsTheSame(ssn1Value + ssn2Value + ssn3Value)) {
        alert( message );
        form.SSN1_01.focus();
        return false;
    }
    if(ssn1Value == '123' && ssn2Value == '45' && ssn3Value == '6789') {
        alert( message );
        form.SSN1_01.focus();
        return false;
    }
    if(ssn1Value == '987' && ssn2Value == '65' && ssn3Value == '4321') {
        alert( message );
        form.SSN1_01.focus();
        return false;
    }
    return true;
}

function validate_SSN1(form) {
    message =  "Please enter a valid SSN number.";
    value = getFieldValueTF(form.SSN1_01);
    if(!validateIsRequired(value)) {
        alert( message );
        form.SSN1_01.focus();
        return false;
    } else {
        value=stripAwayNonDigits(value);
        if(!validateMinLength(value,3)) {
            alert( message );
            form.SSN1_01.focus();
            return false;
        }
        if(!validateMaxLength(value,3)) {
            alert( message );
            form.SSN1_01.focus();
            return false;
        }
        if(value == "000") {
            alert( message );
            form.SSN1_01.focus();
            return false;
        }
    }
    return true;
}

function validate_SSN2(form) {
    message =  "Please enter a valid SSN number.";
    value = getFieldValueTF(form.SSN2_01);
    if(!validateIsRequired(value)) {
        alert( message );
        form.SSN2_01.focus();
        return false;
    } else {
        value=stripAwayNonDigits(value);
        if(!validateMinLength(value,2)) {
            alert( message );
            form.SSN2_01.focus();
            return false;
        }
        if(!validateMaxLength(value,2)) {
            alert( message );
            form.SSN2_01.focus();
            return false;
        }
        if(value == "00") {
            alert( message );
            form.SSN2_01.focus();
            return false;
        }
    }
    return true;
}

function validate_SSN3(form) {
    message =  "Please enter a valid SSN number.";
    value = getFieldValueTF(form.SSN3_01);
    if(!validateIsRequired(value)) {
        alert( message );
        form.SSN3_01.focus();
        return false;
    } else {
        value=stripAwayNonDigits(value);
        if(!validateMinLength(value,4)) {
            alert( message );
            form.SSN3_01.focus();
            return false;
        }
        if(!validateMaxLength(value,4)) {
            alert( message );
            form.SSN3_01.focus();
            return false;
        }
        if(value == "0000") {
            alert( message );
            form.SSN3_01.focus();
            return false;
        }
    }
    return true;
}

function validateSSNFields(form) {
    if(!validate_SSN1(form)) {
        return false;
    } else if(!validate_SSN2(form)) {
        return false;
    } else if(!validate_SSN3(form)) {
        return false;
    } else if(!validate_fullSSN(form)) {
        return false;
    }

    return true;
}
function noSSN() {
    setFieldValueTF(window.document.form1.SSN_SKIP, 'SKIP' );
    submitForm();
}

function validate_ZIP_01(form) {
    value = getFieldValueTF(form.ZIP_01);
    if(!validateIsRequired(value)) {
        return alertError(form.ZIP_01,  "Please enter a valid Zip Code." );
    } 

    countryValue = getCountryValue(form.COUNTRY_01);
    if(countryValue == "USA") {
        if(!isUSZip(value)) {
            return alertError(form.ZIP_01,  "Please enter a valid Zip Code." );
        }
    } else if(countryValue == "CAN") {
        if(!isCANZip(value)) {
            return alertError(form.ZIP_01,  "Please enter a valid Zip Code." );
        }
    }
    return true;
}

function validate_PHONE_DAY_AREA_01_with_messages(form, message1, message2) {    
    countryValue = getCountryValue(form.COUNTRY_01);
    return validate_PHONE_GENERIC_AREA_01_with_messages(form.PHONE_DAY_AREA_01, countryValue, message1, message2);
}

function validate_PHONE_DAY_AREA_01(form) {
    return validate_PHONE_DAY_AREA_01_with_messages(form, "Please enter your daytime Area Code.", "Please enter a valid daytime phone number.");
}

function validate_PHONE_DAY_PREFIX_01_with_message(form, message) {
    var value = getFieldValueTF(form.PHONE_DAY_PREFIX_01);
    var focusField = form.PHONE_DAY_PREFIX_01;

    if(!validateIsRequired(value)) {
        return alertError(focusField, message);
    }
    countryValue = getCountryValue(form.COUNTRY_01);
    if(countryValue == "USA") {
        value=stripAwayNonDigits(value);
        if(!validateMinLength(value,3) || !validateMaxLength(value,3)) {
            return alertError(focusField, message);
        } else if(value.charAt(0)=="0" || value.charAt(0)=="1") {
            return alertError(focusField, message );
        }
    }
    return true;
}
function validate_PHONE_DAY_SUFFIX_01_with_message(form, message) {
    var value = getFieldValueTF(form.PHONE_DAY_SUFFIX_01);
    var focusField = form.PHONE_DAY_SUFFIX_01;

    if(!validateIsRequired(value)) {
        return alertError(focusField, message);
    }
    countryValue = getCountryValue(form.COUNTRY_01);
    if(countryValue == "USA") {
        value=stripAwayNonDigits(value);
        if(!validateMinLength(value,4) || !validateMaxLength(value,4)) {
            return alertError(focusField, message);
        }
    }
    return true;
}

function validate_PHONE_DAY_01_with_message(form, message) {
    value = getFieldValueTF(form.PHONE_DAY_01);

    return validate_PHONE_DAY_01_with_params(form, value, form.PHONE_DAY_01, message);
}

function validate_PHONE_DAY_01_with_params(form, value, focusField, message) {
    if(!validateIsRequired(value)) {
        return alertError(focusField, message);
    }
    countryValue = getCountryValue(form.COUNTRY_01);
    if(countryValue == "USA") {
        value=stripAwayNonDigits(value);
        if(!validateMinLength(value,7) || !validateMaxLength(value,7) || allCharsTheSame(value)) {
            return alertError(focusField, message);
        } else if(value.charAt(0)=="0" || value.charAt(0)=="1" || value == "5551212") {
            return alertError(focusField, message );
        }
    }
    return true;
}

function validate_PHONE_DAY_01(form) {
    return validate_PHONE_DAY_01_with_message(form, "Please enter your daytime phone number.");
}
function validate_PHONE_GENERIC_AREA_01_with_messages(field, countryValue, message1, message2) {
    value = getFieldValueTF(field)
    if(!validateIsRequired(value)) {
        return alertError(field, message1 );
    }

    if(countryValue == "USA") {
        value=stripAwayNonDigits(value);
        if(!validateMinLength(value,3) || !validateMaxLength(value,3)) {
            return alertError(field, message2 );
        } else if(value.charAt(0)=="0" || value.charAt(0)=="1" || allCharsTheSame(value)) {
            return alertError(field, message2 );
        } 
    }
    return true;
}

function validate_PHONE_DAY_ALL_optional(form, mesValidArea, mesValidPrefix, mesValidSuffix) {
    var value1 = getFieldValueTF(form.PHONE_DAY_AREA_01);
    var value2 = getFieldValueTF(form.PHONE_DAY_PREFIX_01);
    var value3 = getFieldValueTF(form.PHONE_DAY_SUFFIX_01);
    if (validateIsRequired(value1) || validateIsRequired(value2) || validateIsRequired(value3)) {
        if (!validate_PHONE_DAY_AREA_01_with_messages(form, "Please enter a valid Phone Number.", mesValidArea)) {
            return false;
        } else if (!validate_PHONE_DAY_PREFIX_01_with_message(form, mesValidPrefix)) {
            return false;
        } else if (!validate_PHONE_DAY_SUFFIX_01_with_message(form, mesValidSuffix)) {
            return false;
        }
    }
    return true;
}

function validate_PHONE_EVENING_AREA_01_with_messages(form, message1, message2) {
    countryValue = getCountryValue(form.COUNTRY_01);
    return validate_PHONE_GENERIC_AREA_01_with_messages(form.PHONE_EVENING_AREA_01, countryValue, message1, message2);
}

function validate_PHONE_EVENING_AREA_01(form) {
    return validate_PHONE_EVENING_AREA_01_with_messages(form, "Please enter your Area Code.", "Please enter a valid evening phone number.");
}

function validate_PHONE_EVENING_01_with_message(form, message) {
    value = getFieldValueTF(form.PHONE_EVENING_01);

    return validate_PHONE_EVENING_01_with_params(form, value, form.PHONE_EVENING_01, message);
}
function validate_PHONE_EVENING_01_with_params(form, value, focusField, message) {   
    if(!validateIsRequired(value)) {
        return alertError(focusField, message );
    }
    countryValue = getCountryValue(form.COUNTRY_01);
    if(countryValue == "USA") {
        value=stripAwayNonDigits(value);        
        if(!validateMinLength(value,7) || !validateMaxLength(value,7) || allCharsTheSame(value)) {
            return alertError(focusField, message);
        } else if(value.charAt(0)=="0" || value.charAt(0)=="1" || value == "5551212") {
            return alertError(focusField, message );
        }
    }
    return true;
}

function validate_PHONE_EVENING_01(form) {
    return validate_PHONE_EVENING_01_with_message(form, "Please enter your evening phone number.");
}

function validate_PHONE_EVENING_PREFIX_01_with_message(form, message) {
    var value = getFieldValueTF(form.PHONE_EVENING_PREFIX_01);
    var focusField = form.PHONE_EVENING_PREFIX_01;

    if(!validateIsRequired(value)) {
        return alertError(focusField, message);
    }
    countryValue = getCountryValue(form.COUNTRY_01);
    if(countryValue == "USA") {
        value=stripAwayNonDigits(value);
        if(!validateMinLength(value,3) || !validateMaxLength(value,3)) {
            return alertError(focusField, message);
        } else if(value.charAt(0)=="0" || value.charAt(0)=="1") {
            return alertError(focusField, message );
        }
    }
    return true;
}
function validate_PHONE_EVENING_SUFFIX_01_with_message(form, message) {
    var value = getFieldValueTF(form.PHONE_EVENING_SUFFIX_01);
    var focusField = form.PHONE_EVENING_SUFFIX_01;

    if(!validateIsRequired(value)) {
        return alertError(focusField, message);
    }
    countryValue = getCountryValue(form.COUNTRY_01);
    if(countryValue == "USA") {
        value=stripAwayNonDigits(value);
        if(!validateMinLength(value,4) || !validateMaxLength(value,4)) {
            return alertError(focusField, message);
        }
    }
    return true;
}

function getCountryValue(field) {
    if (window.formFamily && window.formFamily == "DegreesInfo") {
        if(field.length && field.length > 1){
            return getFieldValueRB(field);
        } else{
            return getFieldValueTF(field);
        }
    } else {
        return getFieldValueLB(field);
    }
}

function validate_GRADYEAR_01(form) {
    var field = form.GRADYEAR_01;
    var value = getFieldValueLB(form.GRADYEAR_01)
    if(!validateIsRequired(value)) {
        return alertError(field, "Please indicate the year you graduated.");
    }
    return true;
}

function validate_SELECT(field, message) {
    var value = getFieldValueLB(field)
    if(!validateIsRequired(value)) {
        return alertError(field, message);
    }
    return true;
}

function validate_RADIOBOX(field, message) {
    value = getFieldValueRB(field)
    if(!validateIsRequired(value)) {
        return alertError(field, message);
    }
    return true;
}

function validate_TEXTAREA(field, message) {
    if(!validateIsRequired(field.value)) {
        return alertError(field, message);
    }
    return true;
}

function validate_TEXTFIELD(field, message) {
    var value = getFieldValueTF(field);
    if(!validateIsRequired(field.value)) {
        return alertError(field, message);
    }
    return true;
}

function stripAwayNonDigits(checkStr) {
    var checkOK = "0123456789";
    var newstring = "";
    for (var i = 0;  i < checkStr.length;  i++)
    {
        ch = checkStr.charAt(i);
        for (var j = 0;  j < checkOK.length;  j++) {
            if (ch == checkOK.charAt(j)){
                newstring = newstring + ch;
                break;
            }
        }
    }
    return newstring;
}

function stripAwayHyphAndSpaces(checkStr) {
    var newstring = "";
    for (var i = 0;  i < checkStr.length;  i++)
    {
        ch = checkStr.charAt(i);
        if (ch != " " && ch != "-"){
            newstring = newstring + ch;
        }
    }
    return newstring;
}

function allCharsTheSame(checkStr) {
    var ch = checkStr.charAt(0);
    for (var i = 0;  i < checkStr.length;  i++)
    {
        if (ch != checkStr.charAt(i)){
            return false;
        }
    }
    return true;
}

function allDigits(checkStr) {
    var checkOK = "0123456789";
    var allValid = true;
    for (var i = 0;  i < checkStr.length;  i++)
    {
        ch = checkStr.charAt(i);
        for (var j = 0;  j < checkOK.length;  j++) {
            if (ch == checkOK.charAt(j)){
                break;
            }
        }
        if (j == checkOK.length)
        {
            allValid = false;
            break;
        }
    }
    return allValid;
}

function validateIsRequired ( value )
{
    if (value == null || value.length <= 0) {
        return false;
    }
    return true;
}

function getFieldValueLB ( field ) {
    if (field == undefined || field == null) {
        return null;
    }    
    if(field.value) {
        return field.value;
    }
    if(field.selectedIndex >=0) {
        return field.options[field.selectedIndex].value;
    } else {
        return "";
    }
}
function setFieldValueLB ( field, value ) {
    if(field.value) {
        field.value = value;
    }
    for(var index = 0; index < field.length; index++) {
        if(field.options[index].value == value) {
            field.selectedIndex = index;
            break;
        }
    }
}

function getFieldTextLB ( field )
{
    if (field == undefined || field == null) {
        return null;
    }    
    if(field.text) {
        return field.text;
    }
    if(field.selectedIndex >=0) {
        return field.options[field.selectedIndex].text;
    } else {
        return "";
    }
}

function setFieldValueTF ( field, value ) {
    if(field) {
        field.value = value;	
    }    
}
function getFieldValueTF ( field ) {
    if (field == undefined || field == null) {
        return null;
    }
    return field.value;
}

function getFieldValueRB ( field )
{
    if (field == undefined || field == null) {
        return null;
    }
    
    if(field.value) {
        return field.value;
    }
    for (var i = 0; i < field.length; i++)
    {
        if (field[i].checked == true) return field[i].value;
    } 
    return "";
}

function setFieldValueRB ( field, value ) {
    if(field.value) {
        field.value = value;
    }
    else {
        for (var i = 0; i < field.length; i++) {
            if(field[i].value == value)
                field[i].checked = true;
            else
                field[i].checked = false;
        }
    }
}

function setFieldValueCB ( field, value ) {
    if(field.value) {
        field.value = value;
    }
    else {
        for (var i = 0; i < field.length; i++) {
            if(field[i].value == value)
                field[i].checked = true;
        }
    }
}

function isCBChecked ( field ) {
    if(field.value) {
        return field.checked;
    }
    else {
        for (var i = 0; i < field.length; i++) {
            if(field[i].checked) {
                return true;
            }
        }
    }

    return false;
}

function isRBChecked ( field ) {
    return isCBChecked(field);
}


function getFieldValueCB( field ) {
	
	if (field == undefined || field == null) {
        return null;
    }
	
	var value = "";
	
	for (var i = 0; i < field.length; i++) {
		if(field[i].checked) {
			value = value + field[i].value;
        }
	}
    return value;
}

function getFieldValueCBWithSeparator( field ) {
	
	if (field == undefined || field == null) {
        return null;
    }
	
	var value = "";
	
	for (var i = 0; i < field.length; i++) {
		if(field[i].checked) {
			if(value != "") {
				value += ","
			}
			value += field[i].value;
        }
	}
    return value;
}

function setFieldValue(field, value) {
    if (field) {
        if(field.type == 'text' || field.type == 'hidden') {
            setFieldValueTF(field, value);
        } else if(field.type == 'select-one') {
            setFieldValueLB(field, value);
        } else if(field.type == 'checkbox' || field[0].type == 'checkbox') {
            setFieldValueCB(field, value);
        } else if(field.type == 'radio' || field[0].type == 'radio') {
            setFieldValueRB(field, value);
        }
    }
}

/**
 * In the case of check box, it returns true if it is checked else false.
 * 
 * @param field
 * @return
 */
function getFieldValue(field) {
    if (field) {
        if(field.type == 'text' || field.type == 'hidden') {
            return getFieldValueTF(field);
        } else if(field.type == 'select-one') {
            return getFieldValueLB(field);
        } else if(field.type == 'checkbox' || field[0].type == 'checkbox') {
            return isCBChecked(field);
        } else if(field.type == 'radio' || field[0].type == 'radio') {
            return getFieldValueRB(field);
        }
    } 

    return null;
}

function initField(field, value) {
    if(field[0].type == 'radio')
        setFieldValueRB(field, value);
    else if(field[0].type == 'text')
        setFieldValueTF(field[0], value);
    else if(field[0].type == 'select-one')
        setFieldValueLB(field[0], value);
    else if(field[0].type == 'checkbox')
        setFieldValueCB(field, value);
    else if(field[0].type == 'hidden')
        setFieldValueTF(field[0], value); 
    else {
        return;
    }

    if(field[0].onclick != undefined && field[0].onclick != null)
        field[0].onclick();
    if(field[0].onchange != undefined && field[0].onchange != null)
        field[0].onchange();
}

function validateMinLength ( value, minSize )
{
    if(!value) {
        return false;
    }
    if (value.length < minSize) {
        return false;
    }
    return true;
}

function validateMaxLength ( value, maxSize )
{
    if(!value) {
        return true;
    }
    if (value.length > maxSize) {
        return false;
    }
    return true;
}

function validateAlphaChar(value)
{
    var acceptableChars = ' ,.-ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
    // check username for bad characters
    for (var i = 0; i < value.length; i++) {
        var current = value.charAt(i);
        if (acceptableChars.indexOf(current) == -1) return false;
    }
    return true;
}

function show(id) {
    showElement(id)
}
function showElement(id) {
    els = window.document.all ? window.document.all[id] : dom ? window.document.getElementById(id) : window.document.layers[id];
    if (els) {
        if (ns4){
            els.visibility = "show";
        } else {
        	if(typeof(els.style) !== "undefined") {
        		els.style.display = "block";
        		// els.style.visibility = "visible";
            }
        }
    }
}

function hide(id) {
    hideElement(id);
}
function hideElement(id) {
    els = window.document.all ? window.document.all[id] : dom ? window.document.getElementById(id) : window.document.layers[id];
    if (els) {
        if (ns4){
            els.visibility = "hide";
        } else {
            els.style.display = "none";
            // els.style.visibility = "hidden";
        }
    }
}

function isHidden(id) {
    var hidden = true;
    var els = window.document.all ? window.document.all[id] : dom ? window.document.getElementById(id) : window.document.layers[id];
    
    if(els) {
      hidden = isHiddenElement(els);
    }
    
	return hidden;
}

function isVisible(id) {
    return !isHidden(id);
}

/**
 * Recursive function that tries to figure out if the element is hidden.
 * Checks element's ancestors as well.
 * 
 * @param elementObj
 * @return
 */
function isHiddenElement(elementObj) {
	if (!elementObj) {
	  return true;	
	}
	
	//if this is <body> element it cannot be hidden
	if(elementObj.nodeName && elementObj.nodeName.toLowerCase() == "body") {
	  return false;	
	}

	//Determine if element is hidden
	//1 - check inline css display attribute
	//2 - check css class (if inline display attribute not set)
	if(isHiddenByInlineCssDisplay(elementObj) 
	   || (!hasInlineCssDisplay(elementObj) && isHiddenByCssClass(elementObj))) {
	  return true;	
	}
	
	//Element itself is not hidden,
	//Check parent
	var hidden = false;
	var parent = elementObj.parentNode;
	if(parent && isHiddenElement(parent)) {
	  hidden = true;	
	}
	
    return hidden;
}

function isHiddenByCssClass(elementObj) {
	var hidden = false;
	if(elementObj.className && elementObj.className.indexOf("hidden") >= 0) {
        hidden = true;   
    }
	
	return hidden;
}

function isHiddenByInlineCssDisplay(elementObj) {
	var hidden = false;
	if (ns4 && elementObj.visibility){
        hidden = elementObj.visibility == "hide";
    } else if(elementObj.style) {
        hidden = elementObj.style.display == "none";
    }

	return hidden;
}

function hasInlineCssDisplay(elementObj) {
	return elementObj.style && elementObj.style.display && elementObj.style.display.length > 0;
}

function isVisibleElement(elementObj) {
	return !isHiddenElement(elementObj);
}

var calledCapella = false;
var ctcWindow;
function clickToCall() {
    if(calledCapella == false) {
        calledCapella = true;
        clickToCallMessage = window.document.getElementById("ctcErrorMsg");
        if (clickToCallMessage) clickToCallMessage.innerHTML = '';
        if(window.document.form1.numberradio) {
            _phone = getFieldValueRB(window.document.form1.numberradio);
        } else {
            _phone = 'other';
        }
        _ctcPhone = getFieldValueTF(window.document.form1.ctcphone);
        if(_phone == 'other') {
            _phone = getFieldValueTF(window.document.form1.otherphone);
        }
        if(window.document.form1.selectedprogram) {
            _selectedProgram = getFieldValueTF(window.document.form1.selectedprogram);
        } else {
            _selectedProgram = _phone;
        }
        if(validateClickToCall(_phone)) {
            setTimeout("resetClickToCallNoMessage()", 60000);
            ctcWindow=window.open("ctcd9bf.html?phone="+_phone+"&selectedProgram="+_selectedProgram,"window","width=600,height=480,scrollbars=yes,resizable=yes");
            if(ctcWindow.focus) ctcWindow.focus();
        } else {
            alert("Please enter a valid phone number, including area code.");
            calledCapella = false;
        }
    } else {
        alert('Your call is already in process.  If you do not receive a call shortly, please call us at '+_ctcPhone);
    }
    return false;
}

function validateClickToCall(value) {
    if(!validateIsRequired(value)) {
        return false;
    }
    value=stripAwayNonDigits(value);
    if(!validateMinLength(value,10)) {
        return false;
    } else if(!validateMaxLength(value,10)) {
        return false;
    } else if(allCharsTheSame(value)) {
        return false;
    } else if(value.charAt(0)=="0" || value.charAt(0)=="1") {
        return false;
    }
    return true;
}

function resetClickToCallNoMessage() {
    calledCapella=false;
}

function resetClickToCall(message) {
    calledCapella=false;
    clickToCallMessage = window.document.getElementById("ctcErrorMsg");
    if (clickToCallMessage) clickToCallMessage.innerHTML = message;
}

function selectCTCOther() {
    if (window.document.form1.numberradio[2].checked!=true) {
        window.document.form1.numberradio[2].checked = true;
    }
    return;
}
//for tab pages, require including dojo script and dojo.io library
function loadContent(area,level,career) {
    dojo.require("dojo.io.*");
    switchDiv(level);
    updateBreadCrumb(area,level,career);
    updateContentImage(area,level,career);
    var fileURL = "/general/contentsite/" + area + "/";
    if(career!='') {
        fileURL += "careers/" + career;
    } else {
        if(level != 'main' && level != '') {
            fileURL += level + "/";
        }
        fileURL += "index";
    }
    fileURL += ".txt";
    dojo.io.bind({
        url: fileURL,
        load: function(type, data, evt){ displayContentData(data); },
        mimetype: "text/plain",
        transport: "XMLHTTPTransport"
    });
}
var lastLevel="main";
function switchDiv(level) {
    if(level!='') {
        var levelElement = window.document.getElementById(level);
        if(levelElement) {
            window.document.getElementById(lastLevel).className = 'levelOff';
            levelElement.className = 'levelOn';
            lastLevel=level;
        }
    }
}
function updateBreadCrumb(area,level,career) {
    var breadcrumb = '<a href="#" onclick="javascript:loadContent(\''+area+'\',\'main\',\'\');return false;">Home</a>';
    if(level == '') {
        level = lastLevel;
    }
    if(level=='main') {
        breadcrumb += ' &gt; '+'<a href="#" onclick="javascript:loadContent(\''+area+'\',\'main\',\'\');return false;">' + getName(area)+ '</a>';
    } else if(level != '') {
        breadcrumb += ' &gt; <a href="#" onclick="javascript:loadContent(\''+area+'\',\''+level+'\',\'\');return false;">'+getName(level)+'</a>';
    }
    if(career !='') {
        breadcrumb += ' &gt; '+getName(career);
    }
    var breadcrumbElement = window.document.getElementById("breadcrumb");
    if(breadcrumbElement) {
        breadcrumbElement.innerHTML = breadcrumb;
    }
}

function updateContentImage(area,level,career) {
    var contentImageElement = window.document.getElementById("hqimage");
    if(contentImageElement) {
        var imageURL = '/images/degreesInfo/hq/'+area+"/"+((career!='')?career:level)+'.jpg';
        contentImageElement.src = imageURL;
    }
}

function getName(value) {
    var name = '';
    var valueArray = value.split("-");
    for(var i=0;i<valueArray.length;i++) {
        name+=valueArray[i].charAt(0).toUpperCase() +valueArray[i].substr(1) +' ';
    }
    return name;
}

function displayContentData(data) {
    if(data == null || data.length == 0) {
        return;
    }
    var contentElement = window.document.getElementById("content");
    if(contentElement) {
        contentElement.innerHTML = data;
    }
}

function addFieldToArrayWhenNotExists(myArray, field) {
    var fieldExists = false;

    for (var i = 0; i < myArray.length; i++) {
        if (isFieldsEqualInNameOrId(field, myArray[i])) {
            fieldExists = true;
            break;
        }
    }

    if (!fieldExists) {
        myArray.push(field);
    }
}

function removeFieldFromArray(myArray, field) {
    for (var i = 0; i < myArray.length; i++) {
        if (isFieldsEqualInNameOrId(field, myArray[i])) {
            myArray.splice(i, 1)
            break;
        }
    }
}

/**
 * Compares two field if it has same name or id.
 * 
 * @param field1
 * @param field2
 * @return true if equal in name or id else false.
 */
function isFieldsEqualInNameOrId(field1, field2) {
    var el1 = field1;
    var el2 = field2;

    if (field1.length > 1 && field1[0].type == 'radio') {
        el1 = field1[0];
    }
    if (field2.length > 1 && field2[0].type == 'radio') {
        el2 = field2[0];
    }
    if ((el1.name != "" && el2.name != "" && el1.name == el2.name) || (el1.id != "" && el2.id != "" && el1.id == el2.id)) {
        return true;
    }

    return false;
}

function isBlank(value) {
    if (!(value === false || value === true) && (value == null  || value == undefined || value.replace(/^\s\s*/, '').length == 0)) {
        return true
    }

    return false;
}

function isNotBlank(value) {
    return !isBlank(value);
}

function isBlankOrFalse(value) {
    return (isBlank(value) || value === false);
}

function isEmpty(value) {
    if (!(value === false || value === true) && (value != null && value != undefined && value.replace(/^\s\s*/, '').length == 0)) {
        return true
    }

    return false;
}

function isNotEmpty(value) {
    return !isEmpty(value);
}

function isFieldBlank(field) {
    if (field) {
        return isBlank(getFieldValue(field));
    }

    return true;
}

function isFieldNotBlank(field) {
    return !isFieldBlank(field);
}

function isFieldEmpty(field) {
    if (field) {
        return isEmpty(getFieldValue(field));
    }

    return false;
}

function isFieldNotEmpty(field) {
    return !isFieldEmpty(field);
}

function nonLicensedPropState(value) {
    if(value=='MA' || value=='RI' || value == 'MT') {
        return true;
    } else {
        return false;
    }
}

function makeGetCityStateCallback(zipField) {
    var existingEvent = zipField.onchange;
    return function(){
        if(existingEvent) {
            existingEvent.call(this);
        }
        var zipcode = getFieldValueTF(zipField);
        if(zipcode) {
            getState(zipcode);
        }
    }
}

function getState(zipcode) {
    var trimmedStr = zipcode.replace(/^\s+|\s+$/g, '') ;
    if (trimmedStr.length > 0){
        jsonHelper.timeout = zipcodeDataTimeout;
        jsonHelper.sendData(zipcodeDataUrl + "?zipcode=" + escape(trimmedStr), null, getStateCallBack, getStateCallBackError);
    }
}

function getStateCallBack(obj){
    var form = window.document.form1;
    var value = obj[zipcodeDataFields[1][0]];
    if (isNotBlank(value) && nonLicensedState(value)) {
        alert( "Sorry, we can't help you for properties in this state." );
        setFieldValueTF(window.document.form1.PROP_ZIP_01,'');
    }
}

function getStateCallBackError(){
}

function makePrefillCityStateCallback(zipField) {
    var existingEvent = zipField.onchange;
    return function(){
        if(existingEvent) {
            existingEvent.call(this);
        }
        var zipcode = getFieldValueTF(zipField);
        if(zipcode) {
            prefillCityState(zipcode);
        }
    }
}

function prefillCityState(zipcode) {
    var trimmedStr = zipcode.replace(/^\s+|\s+$/g, '') ;
    if (trimmedStr.length > 0){
        jsonHelper.timeout = zipcodeDataTimeout;
        jsonHelper.sendData(zipcodeDataUrl + "?zipcode=" + escape(trimmedStr), null, prefillCityStateCallBack, prefillCityStateCallBackError);
    }
}

function prefillCityStateCallBack(obj){
    var form = window.document.form1;
    for(var i = 0; i < zipcodeDataFields.length; i++) {
        var value = obj[zipcodeDataFields[i][0]];
        var field = form[zipcodeDataFields[i][1]];
        if (isNotBlank(value) && field) {
            setFieldValueTF(field, value);
            if (typeof field.onchange !== 'undefined' && field.onchange != null) {
                field.onchange();
            }
        }
    }
}

function prefillCityStateCallBackError(){
}

function getAncestor(field) {
    if (field.parentNode === undefined && field.length > 0) {
        return field[0].parentNode;
    } else {
        return field.parentNode;
    }
}

function isArray (obj) {
    if (null === obj || typeof(obj) === "undefined") {
        return false;
    }
    return obj.constructor == Array; 
}

function isSetFocusOnFirstNonPrefilled() {
    if(window.setFocusOnFirstNonPrefilled && window.setFocusOnFirstNonPrefilled == true) {
        return true;
    }
    return false;
}

function focusFirstNonPrefilledField(form) {
    var fields = $(":input:visible:enabled", form);
    for (var i=0; i<fields.length; i++) {
       var field = fields[i];
       if(isFieldBlank(field)) {
           setFocusOnField(field);
           break;
       }
    }
}

function isSetFocusOnZip(){
    if(window.setFocusOnZip && window.setFocusOnZip == true) {
        return true;
    }
    return false;
}

function setFocusOnField(field) {
    $(":input[name=" + field.name + "]:visible:enabled").focus();
}

function initFormFocus(form) {
    if(isSetFocusOnFirstNonPrefilled()) {
        focusFirstNonPrefilledField(form);
    } else if (isSetFocusOnZip()) {
        setFocusOnField(form.ZIP_01);
    } 
}

function isVocationalSelected(checkbox) {
    if (checkbox.value == 'vocational or trade' && checkbox.checked) {
        return true;
    }
    return false;
}

function preselectAos(aosToPreselect){
    var aosCheckboxes = document.getElementsByName("DDI_AOS_01");
    for (i=0; i<aosCheckboxes.length; i++) {
        if (aosCheckboxes[i].value == aosToPreselect){
            aosCheckboxes[i].checked = true;
            break;
        }
    }
}



