var cm=null, timerID;
document.onclick = new Function("show(null)")
function getPos(el,sProp) {
	var iPos = 0
	while (el!=null) {
		iPos+=el["offset" + sProp]
		el = el.offsetParent
	}
	return iPos

}

function show(el,m,xpos,numlines)
{
	showElement("SELECT");
	if (m) {
		var ypos;
		m.style.display='block';
		m.style.pixelLeft = xpos;
		ypos = getPos(el,"Top") + el.offsetHeight + 6;
		m.style.pixelTop = ypos;
		hideElement("SELECT",xpos,ypos,numlines);
	}
	
	if ((m!=cm) && (cm))
	{
		cm.style.display='none';
		if (timerID != null)
		{
			clearTimeout(timerID);
		}
	}
	cm=m
}

function hide(m,numlines)
{
	//m.style.display='none';
	//alert("out");
	if (timerID != null)
	{
		clearTimeout(timerID);
	}
	// close menu after 3 seconds
    timerID = setTimeout("hidemenu("+m+","+numlines+")", 3000);
    	
}

function hidemenu(m,numlines)
{
	m.style.display='none';
	showElement("SELECT");
}

function hideElement(elmID,xpos,ypos,numlines)
{
	var y=ypos,	x=xpos;
	var menuwidth = 150;
	// try and calculate the bottom of the menu
	var bottom = ypos + (numlines * 14);
	
	for (i = 0; i < document.all.tags(elmID).length; i++)
	{
		obj = document.all.tags(elmID)[i];
		if (! obj || ! obj.offsetParent)
			continue;

		// Find the element's offsetTop and offsetLeft relative to the BODY tag.
		objLeft   = obj.offsetLeft;
		objTop    = obj.offsetTop;
		objParent = obj.offsetParent;
		while (objParent.tagName.toUpperCase() != "BODY")
		{
			objLeft  += objParent.offsetLeft;
			objTop   += objParent.offsetTop;
			objParent = objParent.offsetParent;
		}
		// Adjust the element's offsetTop relative to the dropdown menu
		//objTop = objTop - y;
		

		if (x > (objLeft + obj.offsetWidth) || objLeft > (x + menuwidth))
			;
		else if (objTop > (bottom))
			;
		else
		{
			obj.style.visibility = "hidden";
			
		}
	}
}

function showElement(elmID)
{
	for (i = 0; i < document.all.tags(elmID).length; i++)
	{
		obj = document.all.tags(elmID)[i];
		if (! obj || ! obj.offsetParent)
			continue;
		obj.style.visibility = "";
	}
}