    var currentMenu = null;
    var mytimer = null;
    var timerOn = false;
    var opera = window.opera ? true : false;

    if (!document.getElementById)
        document.getElementById = function() { return null; }
    
    function initialiseMenu(menu, starter, root) {
//      var menuId = menu.attributes(0).value;
        var leftstarter = false;
    
        if (menu == null || starter == null) return;
            currentMenu = menu;
        starter.onmouseover = function() {
            if (currentMenu) {
                if (this.parentNode.parentNode!=currentMenu) {
                    currentMenu.style.visibility = "hidden";
                }
                if (this.parentNode.parentNode==root) {
                    var tempCurrentMenu = currentMenu
                    while (tempCurrentMenu.parentNode.parentNode!=root) {
                        tempCurrentMenu.parentNode.parentNode.style.visibility = "hidden";
                        tempCurrentMenu = tempCurrentMenu.parentNode.parentNode;
                    }
                }
                currentMenu = null;
                this.showMenu();
                }
        }
        menu.onmouseover = function() {
            if (currentMenu) {
                currentMenu = null;
                this.showMenu();
                }
        }   
    
        starter.showMenu = function() {
            if (!opera) {
                if (this.parentNode.parentNode==root) {
                    menu.style.left = this.offsetLeft + "px";
                    menu.style.top = this.offsetTop + this.offsetHeight + "px";
                }
                else {
                    menu.style.left = this.offsetLeft + this.offsetWidth + "px";
                    menu.style.top = this.offsetTop + "px";
                }
            }
            else {
                if (this.parentNode.parentNode==root) {
                    menu.style.left = this.offsetLeft + "px";
                    menu.style.top = this.offsetHeight + "px";
                }
                else {
                    menu.style.left = this.offsetWidth + "px";
                    menu.style.top = this.offsetTop + "px";
                }
            }
            menu.style.visibility = "visible";
            currentMenu = menu;
        }

        starter.onfocus  = function() {
            starter.onmouseover();
        }
        menu.onfocus     = function() {
        }
        menu.showMenu = function() {
            menu.style.visibility = "visible";
            currentMenu = menu;
            stopTime();
        }
        menu.hideMenu = function()  {
            if (!timerOn) {
                mytimer = setInterval("killMenu('" + this.id + "', '" + root.id + "');", 650); // 700 ####
                timerOn = true;
                for (var x=0;x<menu.childNodes.length;x++) {
                    if (menu.childNodes[x].nodeName=="LI") {
                        if (menu.childNodes[x].getElementsByTagName("UL").length>0) {
                            var menuItem = menu.childNodes[x].getElementsByTagName("UL").item(0);
                            menuItem.style.visibility = "hidden";
                        }
                    }
                }
            }
        }
        menu.onmouseout = function(event) {
            this.hideMenu();
        }
        starter.onmouseout = function() {
            for (var x=0;x<menu.childNodes.length;x++) {
                if (menu.childNodes[x].nodeName=="LI") {
                    if (menu.childNodes[x].getElementsByTagName("UL").length>0) {
                        var menuItem = menu.childNodes[x].getElementsByTagName("UL").item(0);
                        menuItem.style.visibility = "hidden";
                    }
                }
            }
            menu.style.visibility = "hidden";
        }
}
    function killMenu(menu, root) {
        menu = document.getElementById(menu);
        root = document.getElementById(root);
        menu.style.visibility = "hidden";
        for (var x=0;x<menu.childNodes.length;x++) {
            if (menu.childNodes[x].nodeName=="LI") {
                if (menu.childNodes[x].getElementsByTagName("UL").length>0) {
                    var menuItem = menu.childNodes[x].getElementsByTagName("UL").item(0);
                    menuItem.style.visibility = "hidden";
                }
            }
        }
        while (menu.parentNode.parentNode!=root) {
            menu.parentNode.parentNode.style.visibility = "hidden";
            menu = menu.parentNode.parentNode;
        }
        stopTime();
    }
    function stopTime() {
        if (mytimer) {
             clearInterval(mytimer);
             mytimer = null;
             timerOn = false;
        }
    } 

    window.onload = function() {
        var root = document.getElementById("menuList");
        getMenus(root, root);
    }

function getMenus(elementItem, root) {
    var selectedItem;
    var menuStarter;
    var menuItem;
    for (var x=0;x<elementItem.childNodes.length;x++) {
        if (elementItem.childNodes[x].nodeName=="LI") {
            if (elementItem.childNodes[x].getElementsByTagName("UL").length>0) {
                menuStarter = elementItem.childNodes[x].getElementsByTagName("A").item(0);
                menuItem = elementItem.childNodes[x].getElementsByTagName("UL").item(0);
                getMenus(menuItem, root);
                initialiseMenu(menuItem, menuStarter, root);
            }
        }
    }
}