        function menuItem_MouseOver(e) {
            this.showMenu();
        }

        function menuItem_MouseOut(e) {
            setMenuItemTimeout(this);
        }
        
        function setMenuItemTimeout(menuItem) {
            if(menuItem) {
                menuItem.timeout = window.setTimeout(function() {menuItem.hideMenu();}, 250);
            }
        }

        function clearMenuItemTimeout(menuItem) {
            if(menuItem && menuItem.timeout) {
                window.clearTimeout(menuItem.timeout);
                menuItem.timeout = null;
            }
        }

        function showMenuForItem() {
            clearMenuItemTimeout(this);
            if(this.parentMenu.parentMenuItem) {
                this.parentMenu.parentMenuItem.showMenu();
            }
            if(this.parentMenu.activeItem && (this.parentMenu.activeItem != this)) {
                this.parentMenu.activeItem.hideMenu();
            }

            this.className = this.originalClassName + " showingMenu";
                
            if(this.parentMenu.activeItem != this) {
                if(this.menu) {
                    showItemMenu(this.menu);
                }
            }
            this.parentMenu.activeItem = this;
        }
        
        function hideMenuForItem() {
            clearMenuItemTimeout(this);
            this.className = this.originalClassName;

            if(this.menu) {
                hideItemMenu(this.menu);
                this.parentMenu.activeItem = null;
            }
        }
        
        
        function showItemMenu(menu) {
            var iframe = null;
            if(menu) {
                menu.style.display="block";
                menu.style.zIndex = 1000;
                
                iframe = menu.parentMenuItem.ieFixIFrame;
                            
                if(iframe) {
                    //alert(iframe.style.display);
                    iframe.style.display="block";
                    iframe.style.top = menu.offsetTop + "px";
                    iframe.style.left = menu.offsetLeft + "px";
                    iframe.width = menu.offsetWidth;
                    iframe.height = menu.offsetHeight;
                    iframe.style.zIndex = 999;
                    //alert(iframe.style.display);
                }
            }
        }
        
        function hideItemMenu(menu) {
            var iframe = null;
            if(menu) {
                if(menu.activeItem) {
                    menu.activeItem.hideMenu();
                }
                menu.style.display="none";

                if(menu.parentMenuItem) {
                    iframe = menu.parentMenuItem.ieFixIFrame;
                }
                if(iframe) {
                    iframe.style.display="none";
                }
            }
        }
        
        function initializeMenuById(menuId) {
            initializeMenu(document.getElementById(menuId));
        }
        
        function initializeMenu(menu) {
            initializeMenu(menu, null);
        }
        
        function initializeMenu(menu, parentMenuItem, addIFrame) {
            var childNode = null;
            var iframe = null;
            if(menu) {
                menu.timeout = null;
                menu.parentMenuItem = parentMenuItem;
                menu.activeItem = null;
                
                if(parentMenuItem && (navigator.appName == "Microsoft Internet Explorer")) {
                    iframe = document.createElement("iframe");
                    iframe.style.display = "none";
                    iframe.style.position = "absolute";
                    iframe.style.border = "none";
                    iframe.frameBorder = 0;
                    parentMenuItem.appendChild(iframe);
                    parentMenuItem.ieFixIFrame = iframe;
                }
                for(var i = 0; i < menu.childNodes.length; i++) {
                    childNode = menu.childNodes[i];
                    if(childNode.nodeName == 'LI') {
                        initializeMenuItem(childNode, menu);
                    }
                }
            }
        }
        
        function initializeMenuItem(menuItem, parentMenu) {
            var subMenu = null;
            var childNode = null;
            
            menuItem.parentMenu = parentMenu;
            menuItem.onmouseover = menuItem_MouseOver;
            menuItem.onmouseout = menuItem_MouseOut;
            menuItem.originalClassName = menuItem.className;
            menuItem.showMenu = showMenuForItem;
            menuItem.hideMenu = hideMenuForItem;
            
            menuItem.timeout = null;
            for(var i=0; i < menuItem.childNodes.length; i++) {
                childNode = menuItem.childNodes[i];
                if(childNode.nodeName == "UL") {
                    subMenu = childNode;
                    initializeMenu(subMenu, menuItem);
                }
            }
            menuItem.menu = subMenu;
        }
