var isNS = (navigator.appName == "Netscape");
var is_major = parseInt(navigator.appVersion);
var is_minor = parseFloat(navigator.appVersion);
var is_nav405 = (isNS && (is_major == 4) && (is_minor < 4.06) );
var isMacIE = ((navigator.userAgent.indexOf("IE 4") > -1) && (navigator.userAgent.indexOf("Mac") > -1));
var isDynamic = ((document.layers || document.all || document.getElementById) && !isMacIE && !is_nav405);
var activeMenu = 0;

function activateMenu(menuLayerRef) {
   if (isDynamic && activeMenu != menuLayerRef) {
      if (activeMenu) hideMenu("menu" + activeMenu);
      menuID = "menu" + menuLayerRef;
      activeMenu = menuLayerRef;
      showMenu(menuID)
   }
   if (isDynamic && !isNS) window.event.cancelBubble = true;
}

function showMenu(layerID) {
      if (isNS) { 
         if (document.layers) {
            eval('document' + '["' + layerID + '"]' + '.visibility = "visible"');
         } else if (document.getElementById) {
         eval('document.getElementById' + '("' + layerID + '")' + '.style' + '.visibility = "visible"');
         }
      } else {
      eval('document.all' + '["' + layerID + '"]' + '.style' + '.visibility = "visible"');
      }
}

function hideMenu(layerID) {
      if (isNS) { 
         if (document.layers) {
            eval('document' + '["' + layerID + '"]' + '.visibility = "hidden"');
         } else if (document.getElementById) {
         eval('document.getElementById' + '("' + layerID + '")' + '.style' + '.visibility = "hidden"');
         }
      } else {
      eval('document.all' + '["' + layerID + '"]' + '.style' + '.visibility = "hidden"');
      }
}

function killMenu(e) {
   if (activeMenu) {
      menuID = "menu" + activeMenu;
      if (isNS) {
         if (document.layers) {
            menuX1 = document[menuID].left;
            menuX2 = menuX1 + document[menuID].clip.right;
            menuY1 = document[menuID].top;
            menuY2 = menuY1 + document[menuID].clip.bottom;
            if (e.pageX < menuX1 || e.pageX > menuX2 || e.pageY > menuY2) {
               hideMenu(menuID);
               activeMenu = 0;
            }
         } else if (document.getElementById) {
            hideMenu(menuID);
            activeMenu = 0;
         }
      } else {
         hideMenu(menuID);
         activeMenu = 0;
      }
   }
}

function init() {
   if (isDynamic) {
      if (isNS) {
         if (document.layers) {
            document.captureEvents(Event.MOUSEMOVE);
            document.onmousemove = killMenu;
         } else if (document.getElementById) {
            document.addEventListener('mouseover',killMenu,true);
         }
      } else {
         document.onmouseover = killMenu;
      }
   }
}
