/* menuScript v2.0 2010-03-23
 * Written by Stephen Pettett
 * With contributions by Joshua Pettett
 * Copyright (c) 2009-2010, all rights reserved.
 * Used by permission.
 */

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) {
	var obj2=menuAdd(id);
	locator(obj);
	obj2.style.left=(obj.locx+x)+"px";
	obj2.style.top=(obj.locy+y)+"px";
}
document.Menus=Array();

function menuAdd(id, mnuParent)
{
	if (obj=document.Menus[id]) {return obj;}
	var obj= document.getElementById ? document.getElementById(id) : document.all[id];
	document.Menus[id]=obj;
	
	var overf, outf;
	if (mnuParent) {
		overf=new Function("menuShow('"+mnuParent+"');menuShow('"+id+"');");
		outf=new Function("menuHide('"+mnuParent+"');menuHide('"+id+"');");
		obj.parentMnu=mnuParent;
	} else {
		overf=new Function("menuShow('"+id+"');");
		outf=new Function("menuHide('"+id+"');");
	}
	
	if (obj.addEventListener) {
		obj.addEventListener('mouseover',overf,false);
		obj.addEventListener('mouseout',outf,false);
	} else {
		obj.attachEvent('onmouseover', overf);
		obj.attachEvent('onmouseout', outf);
	}
	
	return obj;
}

function menuShow(id, mnuParent)
{
	var mnu=menuAdd(id, mnuParent);
	if (mnu.hiding) {window.clearTimeout(mnu.hiding);}
	if (mnu.parentMnu) {menuShow(mnu.parentMnu);}
	//for (var mnus in document.Menus) {if (mnus != id) {menuDisplay(mnus,"hidden");}}

	menuDisplay(id,"visible");
}

function menuHide(id)
{
	var mnu=document.Menus[id];
	if (mnu.hiding) {window.clearTimeout(mnu.hiding);}
	if (mnu.parentMnu) {menuHide(mnu.parentMnu);}
	if (!mnu.showing) {
		mnu.hiding=window.setTimeout("menuDisplay('"+id+"','hidden')",100);
	}
}

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

