 var MSIE=0;
 var mstate=new Array();
 if(navigator.appName=="Microsoft Internet Explorer")MSIE=1;

 var showspeed=20;

 var ai;

 function showMenu(menuid){
  var menu=document.getElementById(menuid);
  if(!menu)return;
  if(mstate[menuid]==undefined)mstate[menuid]="";
  switch(mstate[menuid])
  {
   case "showing":
   break;
   case "sshowing":
   break;
   case "shown":
   break;
   case "sshown":
   break;
   case "hidding":
    mstate[menuid]="showing";
   break;
   case "shidding":
    mstate[menuid]="sshowing";
   break;
   default:
    if(menu.id.substring(0,6)=="subsub")
    {
     mstate[menuid]="sshowing";
     menu.style.left=-subsubmenuwidth;
    }
    else
    {
     mstate[menuid]="showing";
     menu.style.top="-"+menu.parentNode.clientHeight+"px";
    }
    menu.parentNode.style.visibility="visible";
   break;
  }
  if(ai==undefined)ai=setInterval("checkMenu();",25);
 }

 function hideMenu(menuid){
  var menu=document.getElementById(menuid);
  if(!menu)return;
  if(mstate[menuid]==undefined)mstate[menuid]="";
  switch(mstate[menuid])
  {
   case "showing":
    mstate[menuid]="hidding";
   break;
   case "sshowing":
    mstate[menuid]="shidding";
   break;
   case "sshown":
    mstate[menuid]="shidding";
   break;
   case "shown":
    mstate[menuid]="hidding";
   break;
   case "hidding":
   break;
   case "shidding":
   break;
   default:
    mstate[menuid]="hidding";
   break;
  }
  menu.parentNode.style.visibility="visible";
  if(ai==undefined)ai=setInterval("checkMenu();",25);
 }

 function checkMenu()
 {
  var action=0;
  for(var mid in mstate)
  {
   var st=mstate[mid];
   var menu=document.getElementById(mid);
   switch(st)
   {
    case "showing":
     var newtop=parseInt(menu.style.top)+showspeed;
     if(newtop+" "=="NaN ")newtop=-menu.clientHeight;
     if(newtop>=0)
     {
      mstate[mid]="shown";
      newtop=0;
     }
     menu.style.top=newtop+"px";
     action=1;
    break;
/*    case "sshowing":
     var newleft=parseInt(menu.style.left)+subshowspeed;
     if(newleft>=0)
     {
      mstate[mid]="sshown";
      newleft=0;
     }
     menu.style.left=newleft;
     action=1;
    break;*/
    case "hidding":
     var newtop=parseInt(menu.style.top)-showspeed;
     if(newtop<=-menu.clientHeight)
     {
      mstate[mid]="hidden";
      newtop=-menu.parentNode.clientHeight;
      menu.parentNode.style.visibility="hidden";
     }
     menu.style.top=newtop+"px";
     action=1;
    break;
/*    case "shidding":
     var newleft=parseInt(menu.style.left)-subshowspeed*1.2;
     if(newleft<=-subsubmenuwidth)
     {
      mstate[mid]="shidden";
      menu.style.visibility="hidden";
      newleft=-subsubmenuwidth;
     }
     menu.style.left=newleft;
     action=1;
    break;*/
   }
  }
  if(action==0)
  {
   clearInterval(ai);
   ai=undefined;
  }
 }
