var IM = document.images;
var NS = (navigator.appName == "Netscape");
var IE4 = document.all;
var NS4 = document.layers;
var DOM = document.getElementById;
mac = (navigator.appVersion.indexOf("Mac") >= 0) ? 1 : 0;
DOM = document.getElementById;
NS6 = (DOM && NS) ? true : false;
dhtml = DOM ? 1 : 0;

var menuHeight = 24;
var mnuOn = -1;
var flashPresent = 0;
var gatewayLock = -1;
var num = 0;
var holderRef = refCnstr("Holder");
var iNumMenuItems = 7;

var minPos_x = new Array();
var maxPos_x = new Array();
var minPos_y = new Array();
var maxPos_y = new Array();

function refCnstr(mnuId) {
	return 'document.getElementById(\'menu' + mnuId + '\')';
}

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;
}

function mnuInit() {
	for (var i = 0; i < iNumMenuItems; i++) {
		var lyrRef =  refCnstr(i);
		minPos_y[i] = findPosY(eval(lyrRef));
		maxPos_y[i] = minPos_y[i] + eval(lyrRef + ".offsetHeight + menuHeight");
		//minPos_x[i] = findPosX(eval(lyrRef)) - 75;
		minPos_x[i] = findPosX(eval(lyrRef));
		maxPos_x[i] = minPos_x[i] + eval(lyrRef + ".offsetWidth");

	}
	if (flashPresent == 1) {
		(IE4) ? eval("document.all.flashLayer.style.visibility = 'visible'") : eval("document.flashLayer.visibility = 'visible'");
	}
}

function reportEvent(e) {
	var posx = 0;
	var posy = 0;
	var lyrRef =  refCnstr(mnuOn);

	if (!e) var e = window.event;
	if (e.pageX || e.pageY) {
		mousePos_x = e.pageX;
		mousePos_y = e.pageY + menuHeight;
	}
	else if ((e.clientX || e.clientY) && !mac) {
		mousePos_x = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
		mousePos_y = e.clientY + document.body.scrollTop + document.documentElement.scrollTop + menuHeight;
	}
	else if ((e.clientX || e.clientY) && mac) {
		mousePos_x = e.clientX + document.body.scrollLeft;
		mousePos_y = e.clientY + document.body.scrollTop + menuHeight;
	}

	//document.getElementById("Debug").innerHTML += "mousePos_x = " + mousePos_x + " mousePos_y = " + mousePos_y + "<br />\n";
	//document.getElementById("Debug").innerHTML += "<table border=\"1\" cellpadding=\"5\"><tr><td></td><td><b>Min</b></td><td><b>Max</b></td></tr><tr><td>mousePos_x:</td><td>" + minPos_x[mnuOn] + "</td><td>" + maxPos_x[mnuOn] + "</td></tr><tr><td>mousePos_y:</td><td>" + minPos_y[mnuOn] + "</td><td>" + maxPos_y[mnuOn] + "</td></tr></table>\n";

	if ((mousePos_y > maxPos_y[mnuOn]) || (mousePos_x < minPos_x[mnuOn]) || (mousePos_x > maxPos_x[mnuOn]) ||(mousePos_y < minPos_y[mnuOn])) {
		eval(lyrRef + ".style.visibility = 'hidden'");
		v = mnuOn;
		if (mnuOn != gatewayLock) {
			hdrOut(v);
		}

		mnuOn = -1;

		if (flashPresent == 1) {
			eval("document.flashLayer.visibility = 'visible'");
		}
		document.onmousemove = null;
	}
}

function move() {
	if (dhtml == 1) {
		if (IE4) {
			document.onmouseover = null;
		}
		else {
			document.releaseEvents(Event.MOUSEOVER);
		}

		if (flashPresent == 1) toggleFlash("hidden");
		eval(refCnstr(mnuOn) + ".style.visibility = 'visible'");
	}
}

function nOvr(m) {
	if (m != mnuOn) {
		v = m;
		hdrOvr(v);

		var lyrRef =  refCnstr(mnuOn);

		if (mnuOn != m && mnuOn != -1) {
			v2 = mnuOn;
			if (mnuOn + 1 != (gatewayLock)) hdrOut(v2);
			eval(lyrRef + ".style.visibility = 'hidden'");
		}
		mnuOn = m;
		move();

		if(document.layers) {
			document.captureEvents(Event.MOUSEMOVE)
		}
		document.onmousemove = reportEvent;
	}
}

function nOut(n) {
	if (dhtml == 0) hdrOut(n);
}

function hdrOvr(n) {
	if (IM && (n != gatewayLock)) return true;
}

function hdrOut(n) {
	if (IM && (n != gatewayLock)) return true;
}

gatewayLock = null;
window.onload = mnuInit;
window.onresize = mnuInit;