var menuids=["treemenu1", "treemenu2", "treemenu3"];

function buildsubmenus(){
  for (var i=0; i<menuids.length; i++){
    var ultags=document.getElementById(menuids[i]).getElementsByTagName("ul");
    for (var t=0; t<ultags.length; t++){
      ultags[t].parentNode.onmouseover=function(e){
        this.getElementsByTagName("ul")[0].isMouseOver=true;
        this.getElementsByTagName("ul")[0].style.visibility="visible"
        hideAllOther(this);

      if(this.toref)
            window.clearTimeout(this.toref);
      }
      
      ultags[t].parentNode.onmouseout=function(){
        var saveref=this.getElementsByTagName("ul")[0];
        saveref.isMouseOver=false;
        if(this.toref)
            window.clearTimeout(this.toref);
        
        this.toref=window.setTimeout(function(e){
          if(!saveref.isMouseOver){
              saveref.style.visibility="hidden";
          }
        },500);
      }
    }
  }
}

function showmenu(){
        ultags=document.getElementById(menuids[0]).getElementsByTagName("ul"); 
        //ultags[0].parentNode[0].getElementsByTagName("ul")[0].isMouseOver=true;
        this.ultags[0].parentNode.style.visibility="visible";
        return false;
        //hideAllOther(this);

      //if(this.toref)
      //      window.clearTimeout(this.toref);
      }

function hideAllOther(liobj){
  var p=liobj.parentNode.childNodes;
  var i;
try{
  for (i=0; i<p.length; i++){
    if (liobj != p[i] && "LI"==p[i].tagName && p[i].getElementsByTagName("ul").length)
      p[i].getElementsByTagName("ul")[0].style.visibility="hidden";
  }
  }catch(e){
    alert(p[i].innerHTML)
  }
}

if (window.addEventListener)
    window.addEventListener("load", buildsubmenus, false)
else if (window.attachEvent)
    window.attachEvent("onload", buildsubmenus)