﻿// Set active menu item
$(document).ready(function() {


    // Stripe effect for tables
    $('.zebra tbody tr:odd').addClass('alt');

    // Alternate row colors for media stories
    $('div.item:odd').addClass('even');

    // main-nav functionality
    $("#main-nav .subMenu").hide().css({ left: "0px" });
    $("#main-nav li:has(.subMenu)").mouseenter(function() {
        $(this).children(".subMenu").css({ left: "0px" }).slideDown("fast");
        // $(this).children(".subMenu").delay(500).css({ left: "0px" }).slideDown("fast");
        $(this).children('a').addClass('hover');
    });
    $("#main-nav li:has(.subMenu)").mouseleave(function() {
        $(this).children(".subMenu").hide().css({ left: "-9999px" });
        $(this).children('a').removeClass('hover');
    });

    // Right column expand related content nav
    $('#related li a').click(function() {
        $(this).parent('li').toggleClass('open');
        return false;
    });

    // Remove background image from search when user clicks into it
    $('#search #search-box').focus(function() {
        $(this).addClass('noBkgd');
    });
    // Put back image if user has not entered in anything into the search box if it loses focus
    $('#search #search-box').blur(function() {
        if ($(this).val() == '') {
            $(this).removeClass('noBkgd');
        }
    });

    // Generic panel switcher
    $('div.section:not(:first)').hide();
    $('div.section:first').show(); // For IE which ignores :not(:first)
    $('.togglePanels li:first').addClass('current');

    $('.togglePanels li a').click(function() {
        var panel = $(this).attr('class');

        $('.togglePanels li.current').removeClass('current');
        $(this).parent('li').addClass('current');

        // Since dnn adds a bunch of crap to the id, need to filter on regex.
        $('div').filter(function() {
            return this.id.match(/section\d+$/);
        }).hide();

        $('div').filter(function() {
            return this.id.match(panel + '$');
        }).show();

        return false;
    });

    // home page panel switcher
    $('.toggleHomePanels li a').click(function() {
        var panel = $(this).attr('class');
        $('.toggleHomePanels li.current').removeClass('current');
        $(this).parent('li').addClass('current');

        var panel_hide = 'dnn_EventsPane';
        if (panel == 'dnn_EventsPane')
            panel_hide = 'dnn_NewsPane';
        $('div#' + panel_hide).hide();
        $('div#' + panel).show();
        return false;
    });

    // Image carousel
    $('.carousel-item:not(:first)').hide();
    $('.carousel-item:first').show();
    $('#carousel-nav li:first').addClass('current');

    $('#carousel-nav a').click(function() {
        var panel = $(this).attr('class');
        $('#carousel-nav li.current').removeClass('current');
        $(this).parent('li').addClass('current');
        $('.carousel-item:visible').hide();
        $('div#' + panel + '.carousel-item').show();
        return false;
    });

    // Blog entry page right column navigation expand/collapse
    if ($("body.blog-entry").length) { //saves on performance
        $("#blog-archive").children("li:not(.open)").css({ height: "17px" });
        $("#blog-archive").children("li").children("a").click(function() {
            var parentLi = $(this).closest("li");
            if (parentLi.hasClass("open")) {
                parentLi.removeClass("open").css({ height: "17px" });
            }
            else {
                parentLi.addClass("open").css({ height: "auto" });
            }
            return false;
        });
        $("#blog-archive").children("li").children("ul").children("li:not(.open)").css({ height: "16px" });
        $("#blog-archive").children("li").children("ul").children("li").children("a").click(function() {
            var parentLi = $(this).closest("li");
            if (parentLi.hasClass("open")) {
                parentLi.removeClass("open").css({ height: "16px" });
            }
            else {
                parentLi.addClass("open").css({ height: "auto" });
            }
            return false;
        });
    }

    // Calendar link detail expansion
    if ($("body.calendar").length) { //saves on performance
        $(".calendar .event-detail").hide();
        $(".calendar .event h3 a").click(function() {
            $(this).closest(".event").children(".event-detail").fadeIn();
            return false;
        });
        $(".calendar .event-detail p.close").click(function() {
            $(this).closest(".event-detail").fadeOut();
            return false;
        });
    }

    $("#main-nav > ul > li").each(function() {
        if (this.id != "") {
            hrefs = $(this).find("a")
            section = hrefs[0].toString().replace(".aspx", "");
            if (document.location.href.indexOf(section) == 0) {
                $(hrefs[0]).addClass("on");
                // $(this).find("div").remove();
            }
        }
    });

    // On Admissions page, Set active panel based on referer
    if (document.location.toString().match(/\/Academic-Programs\/Full-Time-MBA\/Admissions\.aspx$/)) {

        $('div').filter(function() {
            return this.id.match(/section\d+$/);
        }).hide();
        $('.togglePanels li.current').removeClass('current');

        // Checklist functionality has been removed.  But I'm loath to remove code, in case they want it back someday.
        var twoYear = '/pdf/AdmissionsCheckListTwoYearMBA.pdf';
        var accelerated = '/pdf/AdmissionsCheckListAcceleratedMBA.pdf';
        var dual = '/pdf/AdmissionsCheckListDualDegreePrograms.pdf';

        if (document.referrer.match(/Accelerated-MBA/)) {
            $('#dnn_section2').show();
            $($('.togglePanels li').get(1)).addClass('current');
            $('a.printChecklist').attr('href', accelerated);
        }
        else if (document.referrer.match(/Dual-Degree-Programs/)) {
            $('#dnn_section3').show();
            $($('.togglePanels li').get(2)).addClass('current');
            $('a.printChecklist').attr('href', dual);
        } else {
            $('#dnn_section1').show(); // For IE which ignores :not(:first)
            $('.togglePanels li:first').addClass('current');
            $('a.printChecklist').attr('href', twoYear);
        }

        $('.togglePanels li a').click(function() {
            var panel = $(this).attr('class');

            // Set the checklist
            var checklist;
            switch (panel) {
                case 'section1':
                    checklist = twoYear;
                    break;
                case 'section2':
                    checklist = accelerated;
                    break;
                default:
                    checklist = dual;
                    break;
            }
            $('a.printChecklist').attr('href', checklist);
            return false;
        });
    }

    // Add day/week/month & today/tomorrow links
    if (document.location.toString().match(/\/About\/Events/)) {

        // try to get tabId from calendar links
        var tabid = '';
        if ($('.evtDayLink').length > 0) {
            var m = $('.evtDayLink').first().attr('href').match(/\/About\/Events\/Calendar\/tabid\/(\d+)/);
            if (m != null)
                tabid = m[1];
        }

        // no tabid?
        tabid = (tabid == '') ? '' : '/tabid/' + tabid;

        // I can haz div?
        if ($('#day_week_month').length != 0) {

            var current = '';
            var m = document.location.toString().match(/\/About\/Events\/Calendar\/tabid\/\d+\/vw\/(\d)/);
            if (m != null)
                current = m[1];

            var dwm = { 'Day': '2', 'Week': '5', 'Month': '1' };

            for (var v in dwm) {
                if (current == dwm[v]) {
                    $('#day_week_month').append(document.createTextNode(v));
                } else {
                    var a = document.createElement('a');
                    a.innerHTML = v;
                    a.setAttribute('href', '/About/Events/Calendar' + tabid + '/vw/' + dwm[v] + '/Default.aspx');
                    $('#day_week_month').append(a);
                }

                if (v != 'Month')
                    $('#day_week_month').append(document.createTextNode(' | '));
            }
        }

        // I can haz div?
        if ($('#today_tomorrow').length != 0) {

            var current = '';
            var m = document.location.toString().match(/\/About\/Events\/Calendar\/tabid\/\d+\/vw\/\d+\/d\/(\d+)/);
            if (m != null)
                current = m[1];

            var tt = { 'Today': 0, 'Tomorrow': 1 };
            var d = new Date();

            for (var day in tt) {

                d.setDate(d.getDate() + tt[day]);
                var y = d.getFullYear();
                var m = (d.getMonth() + 1).toString();
                if (m.length == 1)
                    m = '0' + m;
                var a = d.getDate().toString();
                if (a.length == 1)
                    a = '0' + a;

                var dString = y + m + a;

                if (dString == current) {
                    $('#today_tomorrow').append(document.createTextNode(day));
                } else {
                    var today = document.createElement('a');
                    today.innerHTML = day;
                    today.setAttribute('href', '/About/Events/Calendar' + tabid + '/vw/2/d/' + y + m + a + '/Default.aspx');
                    $('#today_tomorrow').append(today);
                }

                if (day != 'Tomorrow')
                    $('#today_tomorrow').append(document.createTextNode(' | '));
            }
        }
    }

    // Attach Factoid lightbox:
    var lightbox = $('a.lightbox').lightBox();

    // remove iFinity license notice for dev sites
    if (!document.location.toString().match(/http:\/\/.*?cornell\.edu/)) {
        var warning = $('div').get()[0];
        if (warning.innerHTML.match(/iFinity Url Master is unlicensed/)) {
            document.body.removeChild(warning);
        }
    }
});

// Set RadEditor html background color
function setEditorBackground(editor) {
    $(editor.get_contentAreaElement()).contents().find('html').attr('style', 'background-color: #fff');
    $(editor.get_contentAreaElement()).contents().find('body').attr('style', 'background-color: #fff');
}

// Google search
function setsitesearch() {
    var search = document.getElementById('search');
    search.sitesearch.value = '';
    var radioLength = search.sitesearchval.length;
    for (var i = 0; i < radioLength; i++) {
        if (search.sitesearchval[i].checked) {
            search.sitesearch.value = search.sitesearchval[i].value;

            //if (search.sitesearchval[i].value.indexOf("sustainable") > 0) {
            //    search.action = "/Center-for-Sustainable-Global-Enterprise/Search-Results.aspx"
            //}
        }
        var sectionsearch = document.getElementById('sectionsearchradio');
        if (sectionsearch != null) {
            search.action = "/Center-for-Sustainable-Global-Enterprise/Search-Results.aspx"
        }
    }
    return searchcornell();
    //alert(search.sitesearch.value);
}

function querySt(attr) {
    qs = window.location.search.substring(1);
    qsa = qs.split("&");
    for (i = 0; i < qsa.length; i++) {
        attra = qsa[i].split("=");
        if (attra[0] == attr) {
            return attra[1];
        }
    }
}


function searchcornell() {
    var search = document.getElementById('search');
    if (search.sitesearch.value == '') {
        window.open("http://www.cornell.edu/search?q=" + search.q.value, "cornellsearch", "");
        //search.submit();
        return false;
    }
    else {//search.action = "/search/";
        
    }
}
// Depending on what text is entered in the form, click the correct button
// when the user hits enter.
function chooseSearchMode(e, prefix) {
    var evt = e ? e : window.event;
    if (evt.keyCode == 13) {
        // If there's text in the faculty & staff name/netid box, click on the faculty & staff button
        if ($('#' + prefix + '_nameFaculty').val() != '' || $('#' + prefix + '_netidFaculty').val() != '') {
            $('#' + prefix + '_searchFacultyStaff').click();
        } else {
            $('#' + prefix + '_searchStudents').click();
        }

        return false;
    }
}

