﻿var currentActiveMain = '';
var currentActiveSub = '';
var timerId = null;
var timerEnabled = false;

//display the sub menu
function displaySubMenu(mainMenu, subMenu) {
    resetCurrentActiveTimer();
    hideCurrentActive(true);

    currentActiveSub = '#' + subMenu;
    currentActiveMain = '#' + mainMenu;

    displayCurrentActive();

    $(currentActiveMain).one('mouseout', function () {
        hideCurrentActive(false);

        enableSubMenuNav();
    });
}

//hide the current active menu. If set to quick hide, then it will hide it immediately otherwise a
//timer event will be used to hide the menu.
function hideCurrentActive(quickHide) {
    if (quickHide) {
        resetCurrentActiveTimer();

        if (currentActiveSub != '') {
            $(currentActiveSub).toggle(false);
        }

        var divMenuNavSep = $(currentActiveMain).find(".divMenuNavSep");

        if (currentActiveMain != '' && $(divMenuNavSep).hasClass("active") == false) {
            $(divMenuNavSep).toggleClass("divMenuNavHover", false);
        }

        $(".divMenuSubNav .active").parent().toggle(true);
    }
    else {
        if (currentActiveMain != '' && currentActiveSub != '') {
            timerEnabled = true;
            timerId = setInterval("fadeCurrentActive()", 1500);
        }
    }
}

//fade the current active timer. This methods is used by the timer event.
function fadeCurrentActive() {
    if (timerEnabled) {
        hideCurrentActive(true);
        timerEnabled = false;
    }
}

//display the current active menu.
function displayCurrentActive() {
    if (currentActiveMain != '' && currentActiveSub != '') {
        $(".divMenuSubNav .active").parent().toggle(false);
        $(currentActiveSub).toggle(true);

        var divMenuNavSep = $(currentActiveMain).find(".divMenuNavSep");

        if ($(divMenuNavSep).hasClass("active") == false) {
            $(divMenuNavSep).toggleClass("divMenuNavHover", true);
        }
    }
}

//reset the current active timer.
function resetCurrentActiveTimer() {
    if (timerId != null) {
        clearInterval(timerId);
        timerId = null;
    }
    timerEnabled = false;
}

//enable the sub nav menu.
function enableSubMenuNav() {
    var currentActiveSubLi = currentActiveSub + ' li';

    $(currentActiveSubLi).unbind();

    $(currentActiveSubLi).mouseover(function () {
        resetCurrentActiveTimer();
    });

    $(currentActiveSubLi).mouseout(function () {
        hideCurrentActive(false);
    });
}
