/*
    * (c) 1999-2006 Goldfish Software GmbH, http://www.goldfish-software.ch
    */
  
    var _lastMenu = new Array();
    var _lastTimeoutId = new Array();
    
    var msg = "";
    
    function log(txt) {
      msg += txt + '\n';
    }
    
    function getLastMenu(level) {
      return _lastMenu[level];
    }
    
    function setLastMenu(level, id) {
      _lastMenu[level] = id;
      // reset all submenus
      if (!id) {
        for (var i=level; i<_lastMenu.length;++i) {
          _lastMenu[level] = null;
        }
      }
    }
    
    function getLastTimeoutId(id) {
      return _lastTimeoutId[id];
    }
    
    function setLastTimeoutId(id, timerid) {
      _lastTimeoutId[id] = timerid;
    }
  
    function getItemAccessor() {
      return document.getElementById ?
          function (id) { return document.getElementById(id); }
          :
          ( document.all ?
            function (id) { return document.all[id]; }
            : null );
    }
   
    function popup(id, display) {
      var item = getItemAccessor();        
      if (!item) return;
      if (!item(id)) return;
      if (!item(id).style) return;

      var css = item(id).style;
      css.display = display;
    }
    
    function showMenu(level,parentid,id) {
      cancelHide(parentid);
      cancelHide(id);          
      popup(id,'block');
      setLastMenu(level, id);
    }
    
    function hideMenu(level,id) { popup(id,'none'); setLastMenu(level,null); }
    function hideLast(level, curid) {
      for (var i=level; i<_lastMenu.length;++i) {
        if (curid != _lastMenu[i]) {
          popup(_lastMenu[i],'none');
          _lastMenu[i] = null;
        }
      }
    }
    
    function cancelHide(id) {
      //log("cancel: " + id);
      window.clearTimeout(getLastTimeoutId(id));
      setLastTimeoutId(id, null);
    }
    
    function delayHideMenu(level, id) {
      //log("delayHide: " + level + "/" + id);
      setLastTimeoutId(id, window.setTimeout('hideMenu('+level+',"'+id+'")',200));
    }
    
    function showMsg() {
      alert(msg);
    }
    