var visibledd;
function initDD(){
  document.observe('mouseover', document_onmouseover)
  $('menu').select('.root').each(function(item){ 
    if(getMenu(item)){
      var menu = getMenu(item);
      menu.myOrigHeight = menu.getHeight();
      item.observe('mouseover', menu_onmouseover);
      getMenu(item).observe('mouseover', function(event){ Event.stop(event);});
    }else{
      item.addClassName("hovermenu");
      item.observe('mouseover', button_onmouseover);
      item.observe('mouseout', button_onmouseout);
    }
  });
}

var collapseDisabled = false;  
function document_onmouseover(event){
  if(!collapseDisabled)
    collapseOpendd();
}

function collapseOpendd(){
  if(visibledd){
    Effect.BlindUp(visibledd, {duration:0.2, queue:'end'});
    $$('.hovermenu').each(function(div){div.removeClassName('hovermenu');});
    visibledd = null;
  }
}

function getMenu(item){
  return $('menu-' + item.identify());
}

function showMenu(menu, pn, obj){
  var pos = $(pn).cumulativeOffset();
  menu.style.left = pos.left+14 +"px";
  menu.style.top = pos.top+22+"px";    
  menu.style.height = menu.myOrigHeight + "px";
  obj.addClassName("hovermenu");
  Effect.BlindDown(menu, {duration:0.2, queue:'end'});
  collapseDisabled = true;
  setTimeout("collapseDisabled = false;", 200);
}

var doingExpand = false;
function menu_onmouseover(event){
  Event.stop(event);
  var menu = getMenu(event.element().parentNode);
  if(visibledd != menu){
    collapseOpendd();
    visibledd = menu;
    showMenu(menu, event.element().parentNode, event.element());
  }
}

function button_onmouseover(event){
  event.element().addClassName("hovermenu");
}

function button_onmouseout(event){
  event.element().removeClassName("hovermenu");
}