var menuLay,menuDOM,intMacTop,distanceLeft,distanceTop,distanceBottom,distanceRight;
var xpos,ypos;

//Menu Positions for IE 4.5 on the Mac
//Change array items 1-5 to change menu positions ignore 0
var arrMacMenu = new Array();
arrMacMenu[0] = 0;
arrMacMenu[1] = 180;
arrMacMenu[2] = 282;
arrMacMenu[3] = 384;

//Top position for IE 4.5 on the Mac
intMacTop = 137;

//Distance from edge of menu for cursor to move before menu disappears
//Change to make menu disappear when cursor is closer or further away
distanceLeft = 20;
distanceTop = 65;
distanceBottom = distanceTop + 20;
//do not change
distanceRight = 2 * distanceLeft;

var layMoveDown,domMoveDown,elseMoveDowm

//Menu position is moved down by this number of pixels to align with bottom of table
//netscape v4
layMoveDown = 0;
//internet explorer and netscape 6
domMoveDown = 0;
//others
elseMoveDown = 0;

//netscape v4
layMoveLeft = 2;
//internet explorer and netscape 6
domMoveLeft = 2;
//others
elseMoveLeft = 2;

if(document.layers) {
	menuLay = true;
	menuDOM = false;
} else if(document.getElementById) {
	menuLay = false;
	menuDOM = true;
} else {
	menuLay = false;
	menuDOM = false;
}

if (menuLay) {
	document.captureEvents(Event.MOUSEMOVE);
	}

if (navigator.userAgent.indexOf("MSIE")<0) {
	document.captureEvents(Event.MOUSEMOVE);
	}
	
function ShowMenu(MenuId,ImgId) {
	if (menuLoaded) {
		hideLayers();
		if (menuLay) {
			newLeft=document.images[ImgId].x - layMoveLeft;
			newTop=document.images[ImgId].y + document.images[ImgId].height + layMoveDown;
			document.layers[MenuId].left=newLeft;
			document.layers[MenuId].top=newTop;
			document.layers[MenuId].visibility="visible";
		} else if  (menuDOM) {
			newLeft=getImgLeft(document.getElementById(ImgId)) - domMoveLeft;
			newTop=getImgTop(document.getElementById(ImgId)) + document.getElementById(ImgId).height + domMoveDown;
			document.getElementById(MenuId).style.left=newLeft;
			document.getElementById(MenuId).style.top=newTop;
			document.getElementById(MenuId).style.visibility="visible";
		} else if (navigator.userAgent.indexOf("MSIE")>-1 && navigator.userAgent.indexOf("4.5")>-1 && navigator.userAgent.indexOf("Mac")>-1) {
			macMenu = parseInt(MenuId.charAt(4));
			newLeft=arrMacMenu[macMenu];
			newTop=intMacTop;
			document.all[MenuId].style.left=newLeft;
			document.all[MenuId].style.top=newTop;
			document.all[MenuId].style.visibility="visible";
		} else {
			newLeft=getImgLeft(document.images[ImgId]) - elseMoveLeft;
			newTop=getImgTop(document.images[ImgId]) + document.images(ImgId).height + elseMoveDown;
			document.all[MenuId].style.left=newLeft;
			document.all[MenuId].style.top=newTop;
			document.all[MenuId].style.visibility="visible";
		}
	}
}

function HideMenu(MenuId) {
	if (menuLay) {
		document.layers[MenuId].visibility="hidden";
	} else if (menuDOM) {
		document.getElementById(MenuId).style.visibility="hidden";
	} else {
		document.all[MenuId].style.visibility="hidden";
	} 
}

function getMousePos(e){
	if (menuLay) {
		//alert("1");
		xpos=e.pageX;
		ypos=e.pageY;
		//alert(xpos + "," + ypos);
	} else if (navigator.userAgent.indexOf("MSIE")>-1 || navigator.userAgent.toLowerCase().indexOf("opera")>-1) {
		//alert("2");
		xpos=document.body.scrollLeft + event.clientX;
		ypos=document.body.scrollTop + event.clientY;
		// window.status="x: " + xpos + ", y: " + ypos;
	} else {
		//alert("3");
		xpos=e.pageX;
		ypos=e.pageY;
		//alert(xpos + "," + ypos);
	} 
}

document.onmousemove=getMousePos;

function hideLayers() {
	for (i=1;i<5;i++){
		MenuId="Menu" + i;
		if (menuLay) {
			document.layers[MenuId].visibility="hidden";
		} else if (menuDOM) {
			document.getElementById(MenuId).style.visibility="hidden";
		} else {
			document.all[MenuId].style.visibility="hidden";
		}
	} 
}

function checkMousePos(MenuId) {
	//if (menuLay) {alert("MenuLay") }
	//else if (menuDOM) {alert("MenuDOM") }
	//else {alert("neither")}
	if (menuLoaded) {
		if (menuLay) {
			xminpos=eval(document.layers[MenuId].left) - distanceLeft;
			xmaxpos=xminpos + eval(document.layers[MenuId].document.width) + distanceRight;
			yminpos=eval(document.layers[MenuId].top)-distanceTop;
			ymaxpos=yminpos + distanceBottom + eval(document.layers[MenuId].clip.height);
		} else if (menuDOM) {
			if (navigator.userAgent.indexOf("MSIE")<0 || navigator.userAgent.toLowerCase().indexOf("opera")>-1) {
			var s;
			s = document.getElementById(MenuId).style.left;
			xminpos= parseInt(s.substr(0,s.length-2)) - distanceLeft;
			s = document.getElementById(MenuId).style.width;
			xmaxpos=xminpos + parseInt(s.substr(0,s.length-2)) + distanceRight;
			s = document.getElementById(MenuId).style.top;
			yminpos = parseInt(s.substr(0,s.length-2)) - distanceTop;
			s = document.getElementById(MenuId).style.height;
			ymaxpos=yminpos + distanceBottom + parseInt(s.substr(0,s.length-2));
		} else {
			xminpos=document.all[MenuId].style.pixelLeft - distanceLeft;
			xmaxpos=xminpos + eval(document.all[MenuId].style.pixelWidth) + distanceRight;
			yminpos=eval(document.all[MenuId].style.pixelTop)-distanceTop;
			ymaxpos=yminpos + distanceBottom + eval(document.all[MenuId].style.pixelHeight);
		} 
	} else {
		xminpos=document.all[MenuId].style.pixelLeft - distanceLeft;
		xmaxpos=xminpos + document.all[MenuId].style.pixelWidth + distanceLeft;
		yminpos=document.all[MenuId].style.pixelTop-distanceTop;
		ymaxpos=yminpos + distanceBottom + document.all[MenuId].style.pixelHeight;
	}
	//alert("xmin: " + xminpos + " \n xmax: " + xmaxpos + " \n ymin: " + yminpos + " \n ymax: " + ymaxpos);
	if ((xpos<xminpos) || (xpos>xmaxpos) || (ypos<yminpos) || (ypos>ymaxpos)) {
		HideMenu(MenuId) 
	} else {
		thetext = "checkMousePos('" + MenuId + "'," + xminpos + "," + xmaxpos + "," + yminpos + "," + ymaxpos + ")";
		setTimeout(thetext,100);
	} 
}
}
function getImgLeft(imgElem) {
	xPos = imgElem.offsetLeft;
	tempEl = imgElem.offsetParent;
  	while (tempEl != null) {
  		xPos += tempEl.offsetLeft;
  		tempEl = tempEl.offsetParent;
  	}
	return xPos;
}

function getImgTop(imgElem) {
	yPos = imgElem.offsetTop;
	tempEl = imgElem.offsetParent;
	while (tempEl != null) {
  		yPos += tempEl.offsetTop;
  		tempEl = tempEl.offsetParent;
  	}
	return yPos;
}