function initializeMenu(container, subMenuContainer) {
    var subMenuContainer = $(subMenuContainer);
    var subMenuTab = subMenuContainer.find(".subMenuTab");
    var subMenuLabel = subMenuContainer.find(".subMenuLabel");
    var subMenu = subMenuContainer.find(".subMenu");
    var timer = null;
    var a = null;
    function activateMenu() {
        clearTimer();
        if (a && a.get(0) == this)
            return;
        deactivateMenu(true);
        a = $(this);
        a.addClass("menuActive");
        var p1 = a.parent().position();
        var p2 = a.parent().parent().position();
        subMenuContainer.css({left: p1.left + 25, top: p2.top + 12});
        subMenuLabel.html(a.html());
        subMenu.html(a.siblings("ul").html());
        subMenuContainer.css("display", "block");
    }
    function deactivateMenu(direct) {
        if (a) {
            a.removeClass("menuActive");
            a = null;
        }
        subMenuContainer.position({left: 0, top: 0});
        subMenuContainer.css("display", "none");
    }
    function delayedDeactivateMenu() {
        if (!timer)
            timer = setTimeout(deactivateMenu, 1000);
    }
    function clearTimer() {
        if (timer) {
            clearTimeout(timer);
            timer = null;
        }
    }
    subMenuTab.hover(clearTimer, delayedDeactivateMenu);
    subMenu.hover(clearTimer, delayedDeactivateMenu);
    // equi-distant variable-size boxes
    var container = $(container);
    container.find(".lineBreaker").remove(); // only needed for static layout
    var children = container.children("li");
    var childrenWidth = 0;
    children.each(function() {
        var x = $(this);
        x.css("width", x.width());
        childrenWidth += x.outerWidth();
    });
    var gap = (container.width() - childrenWidth)/(children.length - 1);
    var position = 0;
    children.each(function() {
        var x = $(this);
        x.css({
            position: "absolute",
            left: position,
            height: x.height()
        });
        position += x.outerWidth() + gap;
        var a = x.find("a");
        if (a.length) {
            a.removeClass("initial");
            a.hoverIntent(activateMenu, function() {});
        }
    });
}
