var lastMenu;

function showMenu(identifier, element) {
  menu = document.getElementById(identifier);
  menu.style.left = getPositionX(element);
  menu.style.top = getPositionY(element) + element.offsetHeight;
  menu.style.visibility='visible';
  if(lastMenu != menu) {
    closeLastMenu();
  }
  lastMenu = menu;
}

function closeLastMenu() {
  if(lastMenu != null) {
    lastMenu.style.visibility='hidden';
  }
}

function getPositionX(element) {
  var x = 0;
  while(element) {
    x += element.offsetLeft;
    element = element.offsetParent
  }
  return x;
}

function getPositionY(element) {
  var y = 0;
  while(element) {
    y += element.offsetTop;
    element = element.offsetParent
  }
  return y;
}

function getCurrentTop() {
  var currTop;
  if (self.pageYOffset) // all except Explorer
  {
    currTop = self.pageYOffset;
  }
  else if (document.documentElement && document.documentElement.scrollTop)
    // Explorer 6 Strict
  {
    currTop = document.documentElement.scrollTop;
  }
  else if (document.body) // all other Explorers
  {
    currTop = document.body.scrollTop;
  }
  return currTop;
}

function getCurrentHeight() {
  var currHeight;
  if (self.innerHeight) // all except Explorer
  {
    currHeight = self.innerHeight;
  }
  else if (document.documentElement && document.documentElement.clientHeight)
    // Explorer 6 Strict Mode
  {
    currHeight = document.documentElement.clientHeight;
  }
  else if (document.body) // other Explorers
  {
    currHeight = document.body.clientHeight;
  }
  return currHeight;
}