    SlideMenu.menus = [];
    SlideMenu.aniLen = 125;
    SlideMenu.hideDelay = 300;
    
    function SlideMenu() {}

    function startSlide(node, open) {
		if (!open) {
			showOverlappingSelects(node.menu);
		}
		node.open = open
    	node.menu.style.visibility = "visible";
      node.menu.parentNode.style.visibility = "visible";
    	node.startTime = (new Date()).getTime();
    	node.aniTimer = window.setInterval("slide("+node.menuId+")", 10)
    }
    
    function slide(i) {
      var node = SlideMenu.menus[i];
    	var elapsed = (new Date()).getTime() - node.startTime;
    	if (elapsed > SlideMenu.aniLen) 
        endSlide(node);
    	else {
        var d = Math.round(Math.pow(SlideMenu.aniLen - elapsed, 2) * node.accelConst)
        if (node.open)
      		node.menu.style.top = d + "px";
    		else 
      		node.menu.style.top = -node.menu.offsetHeight - d + "px";
    	}
    }
    
    function endSlide(node) {
    	node.aniTimer = window.clearTimeout(node.aniTimer)
		if (!node.open) {
            node.style.backgroundColor = "#CCCCCC";
			node.menu.style.visibility = "hidden";
            node.menu.parentNode.style.visibility = "hidden";
	    } else {
			hideOverlappingSelects(node.menu);
		}
	}
   
    
    function showmenu(node) {
      node.style.backgroundColor = "#E8D28E";
      for(var i=0; i<SlideMenu.menus.length; i++)
        if(SlideMenu.menus[i] != node) 
          hide(i);
     	if (node.hideTimer) window.clearTimeout(node.hideTimer)
	    node.hideTimer = 0
      if (!node.open) startSlide(node, true);
    }
    
    function hidemenu(node) {
      if (node.hideTimer) window.clearTimeout(node.hideTimer)
    	node.hideTimer = window.setTimeout("hide('" + node.menuId + "')", SlideMenu.hideDelay);
    }
    
    function hide(i) {
      var node = SlideMenu.menus[i];
      if (node.open && !node.aniTimer) startSlide(node, false);
    }
    

    function inititem(i, li, ul) {
      SlideMenu.menus[i] = li;
      li.menu   = ul;
      li.menuId = i;
      li.onmouseover = function() { showmenu(this) };
      li.onmouseout  = function() { hidemenu(this) };
  
      li.accelConst	= (0 - ul.offsetHeight) / SlideMenu.aniLen / SlideMenu.aniLen
      ul.style.top = -ul.offsetHeight + "px";
      
      var div = document.createElement('div');
      div.className = "container";
      div.style.height = ul.offsetHeight+20+"px";
      div.style.width  = ul.offsetWidth+89+"px";
//      div.style.width = "130px";
//      div.style.height = "200px";
//      alert("" + ul.offsetWidth + "," + ul.offsetHeight)
      li.replaceChild(div, ul);
      div.appendChild(li.menu);
    }

    // zoek binnen de div "menu" elementen li met daarin ul
    function initmenu() {
      var menuId = 0;
      var menu = document.getElementById("menu");
      for(var i=0; i < menu.childNodes.length; i++) {
        var ulm = menu.childNodes[i];
        if(ulm.nodeType == 1 && ulm.tagName == 'UL') {
          for(var j=0; j < ulm.childNodes.length; j++) {
            var li = ulm.childNodes[j];
            if(li.nodeType == 1 && li.tagName == 'LI') {
              for(var k=0; k < li.childNodes.length; k++) {
                var ul = li.childNodes[k];
                if(ul.nodeType == 1 && ul.tagName == 'UL') {
                  inititem(menuId++, li, ul);
                }
              }
            }
          }
        }
      }
    }
    onload = initmenu;
    
