function OnProgramChange(schoolCode) {
    $("[id$=txtDegreeProgram]").val("");

    if ($("[id$=selDegreeProgram]").attr("selectedIndex") != 0) {
        $("[id$=txtDegreeProgram]").val($("[id$=selDegreeProgram]").val());
    }
}

function OnProgramChangeStandard(schoolCode) {
    if (typeof DoOnProgramChange == 'function') {
        DoOnProgramChange(schoolCode);
    }

    $("[id$=txtDegreeProgram]").val("");
    $("[id$=txtDegreeProgram]").val($("[id$=selDegreeProgram]").val());

    if ($("[id$=selDegreeProgram]").attr("selectedIndex") != 0) {

        if (document.getElementById('topContent')) {
            var contentArea = document.getElementById('topContent');
        } else {
            var contentArea = document.getElementById('fetchedcontent');
        }

        $("[id*='menuli']").removeClass('active');
        $("[id='menuli2']").addClass('active');

        ShowTopContentLoadingImage(contentArea);

        FormDynamicFieldsUpdater.GetShortDescriptionByDegreeValue(schoolCode, $("[id$=selDegreeProgram]").val(), OnGetShortDescriptionByDegreeReturnStandard);
        FormDynamicFieldsUpdater.GetPageTitleByDegreeValue(schoolCode, $("[id$=selDegreeProgram]").val(), OnGetTitleByDegreeReturn);
        document.title = convertLinkToTitle($("[id$=selDegreeProgram]").text());
        HideProgram($("[id$=selDegreeProgram]").val());

        try {
            pageTracker._trackPageview(window.location + "?LongDescriptionClicked=" + $("[id$=selDegreeProgram]").val());
        } catch (e) { }
    }
}

function UpdateSlideShow(imageAry) {
    mygallery.setting.imagearray = imageAry
}

function SetHeaderImage(imagePath) {
    imgStr = 'url(../' + imagePath + ')'
    $('#mainWrapSub').css("background-image", imgStr)

    if (document.getElementById('sliderWrapper')) {
        document.getElementById('sliderWrapper').style.display = 'none';
    }
}

function OnGetShortDescriptionByDegreeReturnStandard(result) {

    if (document.getElementById('topContent')) {
        var strContentArea = 'topContent';
    } else {
        var strContentArea = 'fetchedcontent';
    }

    HideTopContentLoadingImage(document.getElementById(strContentArea));

    document.getElementById(strContentArea).innerHTML = result;

    $("[id=" + strContentArea + "]").fadeIn(250, function() {
        if ($.browser.msie)
            this.style.removeAttribute('filter');
    });
}

function ShowLoadingImage() {
    if (document.getElementById('fetchedcontent')) {
        document.getElementById('fetchedcontent').style.display = 'none';
    }

    if (document.getElementById('divLoading')) {
        document.getElementById('divLoading').style.display = 'block';
    }
}

function HideLoadingImage() {
    if (document.getElementById('divLoading')) {
        document.getElementById('divLoading').style.display = 'none';
    }
}

function ShowTopContentLoadingImage(contentArea) {
    contentArea.style.display = 'none';

    if (document.getElementById('divLoading')) {
        document.getElementById('divLoading').style.display = 'block';
    }
}

function HideTopContentLoadingImage(contentArea) {
    if (document.getElementById('divLoading')) {
        document.getElementById('divLoading').style.display = 'none';
    }

    contentArea.style.display = 'block';
}

var lastHiddenCts = null;

function HideProgram(degreeValue) {
    if (lastHiddenCts != null && document.getElementById(lastHiddenCts)) {
        if ($("[id$=' + degreeValue + ']").parent().children().size() < 3) {
            $("[id$=' + degreeValue + ']").parent().prev().show();
            $("[id$=' + degreeValue + ']").parent().show();
        } else {
            $("[id$=' + degreeValue + ']").show();
        }
        
    }

    if (document.getElementById(degreeValue)) {
        lastHiddenCts = degreeValue;

        if ($("[id$=' + degreeValue + ']").parent().children().size() < 3) {
            $("[id$=' + degreeValue + ']").parent().prev().hide();
            $("[id$=' + degreeValue + ']").parent().hide();
        } else {
            $("[id$=' + degreeValue + ']").hide();
        }
    }

}

function OnGetTitleByDegreeReturn(result) {
    document.title = result;
}

function OnGetCityStateByZipReturn(result) {
    $("[id$=txtCity]").val(result[0]);
    $("[id$=lblCity]").attr("style", "display:block");
    $("[id$=ddlState]").val(result[1]);
    $("[id$=lblState]").attr("style", "display:block");
}

function OnGetZipWithTimezoneCallback(result) {
    $("[id$=txtCity]").val(result[0]);
    $("[id$=lblCity]").attr("style", "display:block");

    $("[id$=ddlState]").val(result[1]);
    $("[id$=lblState]").attr("style", "display:block");

    var selectionVal = TranslateTimeZoneToSelection(result[2], result[1]);
    $("[id$=ddlTimeZone]").val(selectionVal);
}

function TranslateTimeZoneToSelection(timeZone, state) {
    var ts = $.trim(timeZone.toUpperCase());
    if (ts == "AKST") {
        return "2";
    }
    else if (ts == "MST") {
        if (state == "AZ") {
            return "3";
        }
        else {
            return "8";
        }
    }
    else if (ts == "CST") {
        return "4";
    }
    else if (ts == "EST") {
        if (state == "IN") {
            return "7";
        }
        else {
            return "5";
        }
    }
    else if (ts == "HST") {
        return "6";
    }
    else if (ts == "PST") {
        return "9";
    }
    else {
        return "";
    }
}

function initCollapsiblePanel() {
    $(".msg_body").hide();
    $(".accordionTitle").click(function() {
        $(this).next(".msg_body").slideToggle();
        if ($(this).attr("class").indexOf('accordionTitleOpen') != -1) {
            $(this).removeClass("accordionTitleOpen")
            $(this).addClass("accordionTitle")
        }
        else {
            $(this).removeClass("accordionTitle")
            $(this).addClass("accordionTitleOpen")
        }
    });

    $("div[class$='accordionTitleOpen'").click(function() {

        $(this).next(".msg_body").slideToggle();
        $(this).removeClass("accordionTitleOpen")
        $(this).addClass("accordionTitle")

    });

    $("a[class='collapsibleLinks']").unbind('click').click(function(e) {
        e.preventDefault();
    });
}

function ValidateFinalForm() {
    var errorMsg = '';

    if ($("[id$=txtFirstName]").val() == '') {
        errorMsg = errorMsg + 'Please provide a First Name\n';
    }
    if ($("[id$=txtLastName]").val() == '') {
        errorMsg = errorMsg + 'Please provide a Last Name\n';
    }
    if ($("[id$=txtEmail]").val() == '') {
        errorMsg = errorMsg + 'Please provide an Email Address\n';
    }

    else if (validateEmail(1, 1) == false) {
        errorMsg = errorMsg + 'Please provide a valid US Email Address\n';
    }

    if ($("[id$=txtZip]").val() == '') {
        errorMsg = errorMsg + 'Please provide a Zip Code\n';
    }

    else if (validateZip(1, 1) == false) {
        errorMsg = errorMsg + 'Zip Code may only contain digits\n';
    }

    if ($("[id$=txtAddress1]").val() == '') {
        errorMsg = errorMsg + 'Please provide a Street Address\n';
    }
    if ($("[id$=txtCity]").val() == '') {
        errorMsg = errorMsg + 'Please provide a City\n';
    }

    if ($("[id$=ddlState]").attr("selectedIndex") == 0) {
        errorMsg = errorMsg + 'Please select a State\n';
    }

    if ($("[id$=txtPhoneHome1]").val() == '' && $("[id$=txtPhoneHome2]").val() == '' && $("[id$=txtPhoneHome3]").val() == '') {
        errorMsg = errorMsg + 'Please provide a Primary Phone\n';
    }
    else {
        if ($("[id$=txtPhoneHome1]").val() == '') {
            errorMsg = errorMsg + 'Please provide a Primary Phone (the area code)\n';
        }

        if ($("[id$=txtPhoneHome2]").val() == '') {
            errorMsg = errorMsg + 'Please provide a Primary Phone (the next 3 digits)\n';
        }

        if ($("[id$=txtPhoneHome3]").val() == '') {
            errorMsg = errorMsg + 'Please provide a Primary Phone (the last 4 digits)\n';
        }
    }

    if (errorMsg != '') {
        alert(errorMsg);
        return false;
    }
    ToggleVisible('divFormLoadingStep2', 'divFormButtonStep2');
    $("[id$=txtSubmitted]").val("True");
    return true;
}

function validateEmail(source, argument) {
    var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
    var address = $("[id$=txtEmail]").val();
    if (reg.test(address) == false) {
        //alert('Invalid Email Address');
        argument.IsValid = false;
        return false;
    }
    return true;
}

function validateZip(source, argument) {
    var reg = /^\d{5}$/;
    var zip = $("[id$=txtZip]").val();
    if (reg.test(zip) == false) {
        //argument.IsValid = false;
        //alert('Invalid zip code');
        return false;
    }
    return true;
}

function validatePhone(value, errorMsg) {

    var reg = /^\d{10}$/;
    if (reg.test(value) == false) {
        //alert(errorMsg);
        return false;
    }
    return true;
}

function OnPhoneKeyPress(obj, e) {
    var key;
    var isCtrl = false;
    var keychar;
    var reg;
    var allowNegative = false;
    var allowDecimal = false;

    if (window.event) {
        key = e.keyCode;
        isCtrl = window.event.ctrlKey
    }
    else if (e.which) {
        key = e.which;
        isCtrl = e.ctrlKey;
    }

    if (isNaN(key)) return true;

    keychar = String.fromCharCode(key);

    // check for backspace or delete, or if Ctrl was pressed
    if (key == 8 || isCtrl) {
        return true;
    }

    if (keychar < '0' || keychar > '9') {
        //alert(keychar);
        return false;
    }


    reg = /\d/;
    var isFirstN = allowNegative ? keychar == '-' && obj.value.indexOf('-') == -1 : false;
    var isFirstD = allowDecimal ? keychar == '.' && obj.value.indexOf('.') == -1 : false;

    var zip;
    if (String(String(obj.value)).length >= 3) {
        if (String(obj.id).indexOf('PhoneHome1') != -1)
            $("[id$=txtPhoneHome2]").focus();
        else if (String(obj.id).indexOf('PhoneHome2') != -1)
            $("[id$=txtPhoneHome3]").focus();
        else if (String(obj.id).indexOf('PhoneWork1') != -1)
            $("[id$=txtPhoneWork2]").focus();
        else if (String(obj.id).indexOf('PhoneWork2') != -1)
            $("[id$=txtPhoneWork3]").focus();

    }

    if (String(String(obj.value)).length == 4) {
        if (String(obj.id).indexOf('PhoneHome3') != -1)
            $("[id$=txtPhoneWork1]").focus();

    }

    return '';
}

function ValidateKey(obj, e) {
    var key;
    var isCtrl = false;
    var keychar;
    var reg;
    var allowNegative = false;
    var allowDecimal = false;

    if (window.event) {
        key = e.keyCode;
        isCtrl = window.event.ctrlKey
    }
    else if (e.which) {
        key = e.which;
        isCtrl = e.ctrlKey;
    }

    if (isNaN(key)) return true;

    keychar = String.fromCharCode(key);

    // check for backspace or delete, or if Ctrl was pressed
    if (key == 8 || isCtrl) {
        return true;
    }

    if (keychar < '0' || keychar > '9') {
        //alert(keychar);
        return false;
    }
    return true;
}

function OnZipChange(obj, e) {
    var key;
    var isCtrl = false;
    var keychar;
    var reg;
    var allowNegative = false;
    var allowDecimal = false;

    if (window.event) {
        key = e.keyCode;
        isCtrl = window.event.ctrlKey
    }
    else if (e.which) {
        key = e.which;
        isCtrl = e.ctrlKey;
    }

    if (isNaN(key)) return true;

    keychar = String.fromCharCode(key);

    // check for backspace or delete, or if Ctrl was pressed
    if (key == 8 || isCtrl) {
        return true;
    }

    reg = /\d/;
    var isFirstN = allowNegative ? keychar == '-' && obj.value.indexOf('-') == -1 : false;
    var isFirstD = allowDecimal ? keychar == '.' && obj.value.indexOf('.') == -1 : false;

    var zip;
    if (String(String(obj.value) + keychar).length == 5) {
        zip = String(String(obj.value) + keychar);
        FormDynamicFieldsUpdater.GetCityStateByZip(zip, OnGetCityStateByZipReturn);
    }

    return isFirstN || isFirstD || reg.test(keychar);
}

function OnZipChangeWithTimezone(obj, e) {
    var key;
    var isCtrl = false;
    var keychar;
    var reg;
    var allowNegative = false;
    var allowDecimal = false;

    if (window.event) {
        key = e.keyCode;
        isCtrl = window.event.ctrlKey
    }
    else if (e.which) {
        key = e.which;
        isCtrl = e.ctrlKey;
    }

    if (isNaN(key)) return true;

    keychar = String.fromCharCode(key);

    // check for backspace or delete, or if Ctrl was pressed
    if (key == 8 || isCtrl) {
        return true;
    }

    reg = /\d/;
    var isFirstN = allowNegative ? keychar == '-' && obj.value.indexOf('-') == -1 : false;
    var isFirstD = allowDecimal ? keychar == '.' && obj.value.indexOf('.') == -1 : false;

    var zip;
    if (String(String(obj.value) + keychar).length == 5) {
        zip = String(String(obj.value) + keychar);

        FormDynamicFieldsUpdater.GetCityStateTimeZoneByZip(zip, OnGetZipWithTimezoneCallback);
    }

    return isFirstN || isFirstD || reg.test(keychar);
}

function convertLinkToTitle(linkStr) {
    var title = new String();
    title = String(linkStr);
    title = title.substr(title.indexOf('#', 0) + 1);
    title = title.replace(/_/g, ' ');
    return title;
}

function createSeoLinks(links) {
    links.unbind('click').remote('#main-content', function() {
        document.title = convertLinkToTitle(window.location);
        UpdateActiveMenu(document.title);
        window.createSeoLinks($("#main-content a.seolink"));
        initCollapsiblePanel();
        //pageTracker._trackPageview(window.location + "?link=" + document.title); 
    });
}

function updateLinks() {
    createSeoLinks($("#navigation a").add("a.seolink"));
}

function changeActiveLink(obj) {
    ShowLoadingImage();
    $("[id*='menuli']").removeClass('active');
    $(obj).addClass('active');
    //HideLoadingImage();
}

function ToggleVisible(objVisible, objHidden) {
    if (document.getElementById(objVisible)) {
        document.getElementById(objVisible).style.display = 'block';
    }

    if (document.getElementById(objHidden)) {
        document.getElementById(objHidden).style.display = 'none';
    }
}

function ShowDegreeDescription(schoolCode) {
    if ($("[id$=selDegreeProgram]").attr("selectedIndex") != 0) {
        $("[id*='menuli']").removeClass('active');
        $("[id='menuli2']").addClass('active');
        ShowLoadingImage();
        $("[id$=txtDegreeProgram]").val($("[id$=selDegreeProgram]").val());
        FormDynamicFieldsUpdater.GetLongDescriptionByDegreeValue(schoolCode, $("[id$=selDegreeProgram]").val(), OnGetLongDescriptionByDegreeReturn);
        FormDynamicFieldsUpdater.GetPageTitleByDegreeValue(schoolCode, $("[id$=selDegreeProgram]").val(), OnGetTitleByDegreeReturn);
        document.title = convertLinkToTitle($("[id$=selDegreeProgram]").text());
    }
}

function OnGetLongDescriptionByDegreeReturn(result) {
    HideLoadingImage();

    if (document.getElementById('fetchedcontent')) {
        document.getElementById('fetchedcontent').innerHTML = result;
    }

    $("#fetchedcontent").fadeIn(250, function() {
        if ($.browser.msie)
            this.style.removeAttribute('filter');
    });
}

function checkLastFormZipCode(oldZip) {
    if ($("[id$=txtZip]").val() != oldZip) {
        if (String($("[id$=txtZip]").val()).length == 5) {
            zip = $("[id$=txtZip]").val();
            FormDynamicFieldsUpdater.GetCityStateByZip(zip, OnGetCityStateByZipReturn);
        }
    }
    setTimeout("checkLastFormZipCode('" + $("[id$=txtZip]").val() + "')", 1000);
}

function Contains(array, toFind) {
    for (var cnt = 0; cnt < array.length; cnt++) {
        if (array[cnt] == toFind)
            return true;
    }
    return false;
}
