function llx3_Menu() {
    var MainMenu = new MenuItem();
    var MenuManager = this;
    var allMenuItems = new Array();
    this.staticDepth = 1;

    this.add = function (element, parentMenuItem) {
        if (parentMenuItem == undefined) parentMenuItem = MainMenu;
        for (var i = 0; i < element.children.length; i++) {
            if (element.children[i].tagName == "UL") {
                var mc = new MenuContainer();
                mc.element = element.children[i];
                mc.parentItem = parentMenuItem;
                if (parentMenuItem.depth >= MenuManager.staticDepth) {
                    mc.element.style.position = "absolute";
                    mc.element.style.display = "none";
                }
                for (var j = 0; j < element.children[i].children.length; j++) {
                    var mi = new MenuItem();
                    mi.element = element.children[i].children[j];
                    mi.depth = parentMenuItem.depth + 1;
                    mi.parentContainer = mc;
                    if (mi.depth >= MenuManager.staticDepth) { mi.element.onmouseover = mi.showMenu; mi.element.onmouseout = mi.hideMenu }
                    mc.items.push(mi);
                    allMenuItems.push(mi);
                    MenuManager.add(mi.element, mi);
                }
                parentMenuItem.submenus.push(mc);
            }

        }


    }

//    function OnMouseOver() {
//        mi = getMenuItem(this);
//        for (var i = 0; i < mi.submenus.length; i++) {
//            mi.submenus[i].show();
//        }

//    }
//    function OnMouseOut() {
//        mi = getMenuItem(this);
//        for (var i = 0; i < mi.submenus.length; i++) {
//            mi.submenus[i].hide();
//        }

//    }

//    function getMenuItem(element) {
//        for (var i = 0; i < allMenuItems.length; i++) { if (allMenuItems[i].element == element) return allMenuItems[i]; }
//    }

    function MenuContainer() {
        var This = this;
        this.element;
        this.items = new Array();
        this.parentItem = null;
        var hideTout = 0;

        this.show = function () {
            clearTimeout(hideTout);
            This.element.style.visibility = "hidden";
            This.element.style.display = "block";
            if (This.parentItem.depth <= MenuManager.staticDepth) {
                This.element.style.top = This.parentItem.element.offsetHeight + This.parentItem.element.offsetTop + "px";
                This.element.style.left = (This.parentItem.element.offsetWidth) / 2 - (This.element.offsetWidth) / 2 + "px";

            } else {
                This.element.style.top = "0px";
                This.element.style.left = This.parentItem.element.offsetWidth + This.parentItem.element.offsetLeft + "px";

            }
            This.element.style.visibility = "visible";
        }
        this.hide = function (tOut) {
            if (tOut == undefined) tOut = 300;
            hideTout = setTimeout(function () { This.element.style.display = "none" }, tOut);
        }

    }
    function MenuItem() {
        var This = this;
        this.element;
        this.submenus = new Array();
        this.parentContainer = null;
        this.depth = 0;

        this.showMenu = function () {
            hideOthers();
            for (var i = 0; i < This.submenus.length; i++) {
                This.submenus[i].show();
            }
        }
        this.hideMenu = function (tOut) {
            for (var i = 0; i < This.submenus.length; i++) {
                This.submenus[i].hide(tOut);
            }
        }
        function hideOthers() {
            if (This.depth <= MenuManager.staticDepth) return;
            for (var i = 0; i < This.parentContainer.items.length; i++) {
                if (This.parentContainer.items[i]!=This)This.parentContainer.items[i].hideMenu(0);
            }
        }

    }

 }
