var timerId = new Array();
var timerOn = new Array();

var delay = 50;

function showMenu(laagId, invoker) 
{
	stopTimer(laagId);

	var menu = document.getElementById(laagId);
	menu.style.left = findPosX(invoker);

	/*
	var winW;
	if (parseInt(navigator.appVersion)>3) {
	 if (navigator.appName=="Netscape") {
	  winW = window.innerWidth;
	 }
	 if (navigator.appName.indexOf("Microsoft")!=-1) {
	  winW = document.body.offsetWidth;
	 }
	}

	if((menu.style.left + menu.style.width) > winW) {
		menu.style.left = winW - (menu.style.left + menu.style.width);
	}
	*/
	
	menu.style.top = findPosY(invoker) + 23;
	menu.style.visibility = "visible";
}

function hideMenu(laagId) 
{
	startTimer(laagId)
}

function directHideMenu(laagId) 
{
	var menu = document.getElementById(laagId);
	menu.style.visibility = "hidden";
}

function stopTimer(laagId) {
  if (timerOn[laagId]) {
    clearTimeout(timerId[laagId]);
    timerId[laagId] = null;
    timerOn[laagId] = false;
  }
}

function startTimer(laagId) {
  if (timerOn[laagId] == false || timerOn[laagId] == null) {
    timerId[laagId] = setTimeout( "directHideMenu('"+laagId+"')" , delay);
    timerOn[laagId] = true;
  }
}


function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}
