                var fwStart;
                var fwDHFlag = false;
                var fwHideMenuTimer;

                // from http://www.dynamic-tools.net/toolbox/isMouseLeaveOrEnter/
                // this function determines whether the event is the equivalent of the microsoft
                // mouseleave or mouseenter events.
                function isMouseLeaveOrEnter(e, handler) {
                    
                    if (e.type != 'mouseout' && e.type != 'mouseover') return false;
                    var reltg = e.relatedTarget ? e.relatedTarget :
                    e.type == 'mouseout' ? e.toElement : e.fromElement;
                    while (reltg && reltg != handler) reltg = reltg.parentNode;
                    return (reltg != handler);
                }

                // Shows a child menu based on the parent(id)
                function showsubmenu(id) {

                    // Clear existing hide timer and set do hide flag to false
                    fwHideMenuTimer = clearTimeout(fwHideMenuTimer);
                    fwDHFlag = false;

                    // Check if same as current
                    if (currentmenu != id) {

                        // Hide all child menus
                            
                             if (id != 99) 
                               {
                               if (id != 98) 
                                 { 
                                    hideAll();
                                  }
                               }
                                

                        // Show the new child menu we want to show
                        document.getElementById('smenu' + id).style.display = "block";

                        // Set current active menu
                        currentmenu = id;
                    }
                }

                function hidesubmenu(id) {
                    FW_startTimeout();
                }

                // Set a timeout to hide the menu
                function FW_startTimeout() {
                    fwStart = new Date();
                    fwDHFlag = true;
                    fwHideMenuTimer = setTimeout("fwDoHide()", 2500);
                }

                // Called when timeout ends to hide the menu
                function fwDoHide() {
                    if (!fwDHFlag) return;

                    var elapsed = new Date() - fwStart;
                    if (elapsed < 2500) {
                        fwHideMenuTimer = setTimeout("fwDoHide()", 2600 - elapsed);
                        return;
                    }
                    // Clear the do hide flag and hide all opened menu's
                    fwDHFlag = false;
                   
              
                        hideAll();
        
           
                    currentmenu = '';

                    // If we have a default menut, then show it as we have nothing better to do!
              
                    if (defaultmenu != '') {
                        document.getElementById('smenu' + defaultmenu).style.display = "block";
                      
                    }
                }

                