/** MeierHug Menu Manipulation JavaScript.
 *
 * @author: hug.jason@gmail.com
 */
// global variables
/** Speed at which the menus will be rendered (can be 'slow' (500), 'fast' (500) or a numerical value ie. 300)*/
var speed = 300;
/** Total number of menues present */
var nMenus = 5
/** Nr of menus closed */
var closedMenus = 0;

/** Executes functions after page has finished it's loading routine */
$(document).ready(function(){

    // init menus to hide
    for (var i = 0; i <= nMenus; i++) {
        expandingMenu(i);
    };
    });

/** Menu Manipulation function */
function expandingMenu(menuId){

    var item_title = $("#menu ul").eq(menuId).children(":first");
    var items = $("#menu ul").eq(menuId).children().filter(function(index){
        return index > 0;
    });
	
	/* add click functions + pointer to title */
    item_title.css({
        cursor: "pointer"
    }).toggle(function(){
        // first close all other menus that are open
        hideAllMenus(menuId);
        
        // change menu title's css class and show sub entries
        $(this).removeClass("menu-title");
        $(this).addClass("menu-title-active");
        items.slideDown(speed);
    }, function(){
        // change menu title's css class and hide sub entries
        $(this).removeClass("menu-title-active");
        $(this).addClass("menu-title");
        items.slideUp(speed);
    })
    
    /* hide items if not active */
    if ((item_title.is(".menu-title-active") == false) && (items.is(".menu-entry-active") == false) && (items.is(".menu-entry-first-active") == false) && (items.is(".menu-title-active") == false) && (items.is(".menu-entry-last-active") == false)) {
        items.hide();
    }
    else {
        // if one is active also change the menu title's css class
		item_title.click();
    }
}

/** Call this method to close other menu's that do not belong to the callers menu 'menuId' */
function updateMenuClick(menuId, url){
    // iterate through all available menus and hide them if needed
    hideAllMenus(menuId);
    
    // now open the link
    if (url == "") {
        do_click();
    }
    else {
        window.open(url, '_self');
    }
}

/** Hides all open menus except for menuId */
function hideAllMenus(menuId){
    // hide all menus if open (the click function calls toggle())
    for (var i = 0; i <= nMenus; i++) {
        // do not toggle the menu with menuId
        if (i != menuId) {
            var item_title = $("#menu ul").eq(i).children(":first");
            if (item_title.hasClass("menu-title-active")) {
                item_title.click();
            }
        }
    };
}
