var activeDiv = null;
var currDiv = null;
var currLink = null;
var timerID = 0;

function setCurrent(name)
{
	activeDiv = name;
}

function openMenu( link, idDiv, right )
{
  if( currDiv != null && timerID != 0 )
  {
    clearTimer();
    if( idDiv != currDiv ) closeMenu();
    else return;
  }

  var divElem = document.getElementById( idDiv );

  
  var tc = calcpos( link );
  h = link.offsetHeight;

  if( right )
  {
    divElem.style.left = (tc[0] + link.offsetWidth - divElem.offsetWidth) + "px";
  }
  else {
    divElem.style.left = tc[0]  + "px";
  }
	
  divElem.style.top = tc[1] + h + "px";
  divElem.style.display = 'block';
	
  currDiv = idDiv;
  currLink = link;
  currLink.id = "current";
}

function closeMenu()
{
  var elem = document.getElementById( currDiv );
  elem.style.display = 'none';
  
  currDiv = null;
  currLink.id = null;
}
  
function startTimer()
{
  timerID = setTimeout("closeMenu()", 100);
}
  
function clearTimer()
{
  clearTimeout( timerID );
  timerID = 0;
}
  
function calcpos( obj )
{
  x=0;
  y=0;
  
  w = obj.offsetWidth;
//  h = obj.offsetHeight;

  var aTag = obj;
  do
  {
    x += aTag.offsetLeft;
    y += aTag.offsetTop;
    aTag = aTag.offsetParent;
  } while(aTag.tagName!="BODY");

  return new Array( x, y );
}
