
function menuMouseEnter() {
    var age = document.getElementById("age");
    document.onclick = function() {
        $(".popup_menu", age).removeClass("display");
        $(".item", age).removeClass("open");
        hidePopup();
        return true;
    }
    $("*", age).removeClass("enter");
    $(this).addClass("enter");
    $(".item:has(.enter) > a", age).addClass("enter");
    $(".item:has(.enter)", age).addClass("enter");
    loadSubMenu(this);
    $timer(400,
        function(element) {
            if($(element).hasClass("enter") && !$(element).hasClass("open")) {
                $(".popup_menu", element.parentNode.parentNode).removeClass("display");
                $(".item", age).removeClass("open");
                $(".popup_menu:first", element).addClass("display");
                $(element).addClass("open");
                $(".item:has(.open)", age).addClass("open");
            }
        },
        this
    );
    return true;
}

function menuMouseLeave() {
    $("#age .item").removeClass("enter");
}


function loadSubMenu(element) {
    function loadFn(data) {
        function item(x) {
            with($dom) {
                return $(
                    tag("div",
                        tag("a",
                            text($(x).text()),
                            attr("href", x.getAttribute("link"))
                        ),
                        attr("class", "item"),
                        attr("id", "$" + x.getAttribute("id"))
                    )
                ).bind("mouseenter", menuMouseEnter).bind("mouseleave", menuMouseLeave).get();
            }
        }
        $(element).addClass("loaded");
        if($("menuitem", data).length!=0) {
            with($dom) {
                $(element).append(
                    tag("div",
                        attr("class", "popup_menu"),
                        tag("div",
                            attr("class", "content"),
                            $each($("menuitem", data).get(), item)
                        )
                    )
                );
            }
        }
        $(".open > .popup_menu").addClass("display");
    }
    if(!$(element).hasClass("loading")) {
        $(element).addClass("loading");
        $.get("submenu.do", {language: lang, object: element.id.toString().substring(1, 1000) }, loadFn);
    }
}




















