var activeIndex = -1;
function menuAt(index) {
    return $('.submenu').eq(index);
}

function hideActive() {
    if (activeIndex == -1) {
        return;
    }
    
    $("#topmenu li").eq(activeIndex).removeClass("current");
    
    $("#submenucloser").hide();
    menuAt(activeIndex).hide();
    menuAt(activeIndex).removeClass("current");
    activeIndex = -1;
}

function toggleElementAt(index, li) {
    var originallyActive = activeIndex;
    
    hideActive();
    
    if (originallyActive == index) {
        // We've clicked on the previously active menu, just
        // de-activate it and we're done
        return;
    }
    
    activeIndex = index;
    menuAt(index).slideDown();
    menuAt(index).addClass("current");
    li.addClass("current");
    $('#submenucloser').show();
}

$(document).ready(function() {
    $('#topmenu li').each(function(index) {
        var relevant_submenu = menuAt(index);
        
        
        if (relevant_submenu.hasClass("hiddenroot") || relevant_submenu.children("a.navlink").length > 1) {
            $(this).click(function(event) {
                toggleElementAt(index, $(this));
            event.preventDefault();
            });
        }
    });
    $('#submenucloser').click(function() { hideActive() });
});
