// JavaScript Document
function locator(obj) //sets an object locx and locy
{
	obj.locx=obj.offsetLeft;
	obj.locy=obj.offsetTop;
	a=obj;
	while (a=a.offsetParent) {
		obj.locx+=a.offsetLeft;
		obj.locy+=a.offsetTop;
	}
}

function moverel(obj,id,x,y,parentid) {
	var obj2=menuAdd(id,parentid);
	locator(obj);
	obj2.style.left=(obj.locx+x)+"px";
	obj2.style.top=(obj.locy+y)+"px";
}

document.Menus=Array();
document.HoldMenu;
var dom = document.getElementById ? 1 : 0

function menuAdd(id, parentid)
{
	if (obj=document.Menus[id]) {return obj;}
	var obj= dom ? document.getElementById(id) : document.all[id];
	obj.parentid = parentid;
	document.Menus[id]=obj;
	if (document.layers) obj.captureEvents(Event.MOUSEOVER);
	obj.onmouseover=new Function("menuShow('"+id+"')");
	obj.onmouseout=new Function("menuHide('"+id+"')");
	return obj;
}

function menuShow(id)
{
	var mnu=document.Menus[id];
	document.HoldMenu = mnu.parentid;
	if (mnu.hiding) {window.clearTimeout(mnu.hiding);}
	if (mnu.parentid && document.Menus[mnu.parentid].hiding) {window.clearTimeout(document.Menus[mnu.parentid].hiding);}
	
	// the following is code for the possibility of mousetout occuring before mouseover
	//if (mnu.showing) {window.clearTimeout(document.Menus[id].showing);}
	//mnu.showing=window.setTimeout("document.Menus['"+id+"'].showing=false",1000);
	//if (mnu.showing) {document.title="Success";}
	
	// This is messing up muli-tiered nav fly-outs
	//for (var mnus in document.Menus) {if (mnus != id || mnus != document.HoldMenu) {menuDisplay(mnus,"hidden");}}
	
	menuDisplay(id,"visible");
}

function menuHide(id)
{
	if (document.HoldMenu == id) return mnu;
	var mnu=document.Menus[id];
	mnu.hiding=window.setTimeout("menuDisplay('"+id+"','hidden')",100);
	if (document.HoldMenu && document.HoldMenu == mnu.parentid) {
		document.Menus[mnu.parentid].hiding = window.setTimeout("menuDisplay('"+mnu.parentid+"','hidden')",100);
	}
}

function menuDisplay(id,showhide)
{
	var mnu=document.Menus[id];
	mnu.style.visibility=showhide;
}