var currentMenu = null;

function openMenu(source, menuId) {
  var thisMenu = $(menuId);

  if(!source.menuItem) {
    source.menuItem = thisMenu;
    thisMenu.source = source;
  }

  if(currentMenu && currentMenu != thisMenu) {
    currentMenu.hide();
  }

  Position.clone(source, thisMenu, {setWidth: false, setHeight: false, offsetTop:  source.offsetHeight});
  thisMenu.show();
  currentMenu = thisMenu;

  //IE Acts funny when divs are in absoluty positioned divs.
  //Event handlers do not cover the whole div just the section with the text.
  if(!currentMenu.widthSet && document.all) {
    var menuItems = document.getElementsByClassName("menuItem", currentMenu);
    menuItems.each(function(item) {
      item.style.width = (currentMenu.clientWidth) + "px";
    });
    currentMenu.widthSet = true;
  }
}

function closeMenu(menuId) {
  self.setTimeout('_closeMenu("' + menuId + '")', 600);
}

function _closeMenu(menuId) {
  var thisMenu = $(menuId);
  if(!thisMenu.source.isActive) {
    $(menuId).isOpen = false;
    $(menuId).hide();
  }
}

function loadLocation(uri, fromMenu) {
  document.location = uri;
}