var mouseX=0;
var mouseY=0;
var e;
var navXOffset = 0;
var navYOffset = 45;
var ieYOffset = 45;
var navMenuWidth = 0;   //190
var navButtonWidth = 125;
var isNav4 = false;
var isIE4 = false;
var range = "";
var styleObj = "";
var curDropMenu = null;
var dropMenuTimer;
var dropMenuDelay=250;
var overCurMenu = false;

init();

function init() {
	determineBrowser();

		if (isNav4) {
		document.captureEvents(Event.MOUSEMOVE);
		document.captureEvents(Event.MOUSEOUT);
		document.captureEvents(Event.MOUSEOVER);
		document.captureEvents(Event.CLICK);	
	}
	
	document.onmousemove = mouseMove;
	document.onmouseout = myOnMouseOut;
	document.onmouseover = myOnMouseOver;
	document.onclick = myOnClick;
}

function determineBrowser() {
	if (navigator.appVersion.charAt(0) == "4") {
		if (navigator.appName == "Netscape") {
			isNav4 = true;
			insideWindowWidth = window.innerWidth;
		} else {
			isIE4 = true;
			range = "all.";
			styleObj = ".style";
		}
	}
}

function getObject(obj) {
	var theObj;
	if (typeof obj == "string") {
		theObj = eval('document.' + range + obj + styleObj);
	} else {
		theObj = obj;
	}
	return theObj;
}

// Event handlers
function mouseMove(evt) {
	if (isIE4) {
		mouseX = event.clientX + document.body.scrollLeft;
		mouseY = event.clientY + document.body.scrollTop;
	} else {
		mouseX = evt.pageX;
		mouseY = evt.pageY;
		routeEvent(evt);
	}
}

function myOnMouseOut(evt) {
	if (isNav4) {
		if (curDropMenu!=null && evt.target.id == curDropMenu) {
			overCurMenu = false;
			hideDropMenu (evt.target.id);
		}
		routeEvent(evt);
	}

	return true;
}

function myOnClick(evt) {
	if (isNav4) {
		e = evt;
		routeEvent(evt);
	}
}

function myOnMouseOver(evt) {
	if (isIE4) {/*
		srcElement = window.event.srcElement;
	
		overCurMenu = (curDropMenu == srcElement.id)

		if (overCurMenu) {
			return false;
		}
		
		if (srcElement.className == "dropMenuColor1" || srcElement.className == "dropMenuColor2") {
			//showDropMenu(srcElement.id);		} else if (srcElement.className == "dropButton" || srcElement.className == "dropNavButton" || srcElement.className == "menuImage") {
			alert(srcElement);			//showDropMenu(srcElement.id+"Menu");
			//overCurMenu = true;		} else if (!isMenu(srcElement) && 
							 !isMenu(srcElement.parentElement)) {
			//delayHideDropMenu(dropMenuDelay);		}*/
	} else {
 		e = evt;
		if (curDropMenu!=null && evt.target.id == curDropMenu) {
			overCurMenu = true;
		}
		routeEvent(evt);
	}
}

function isMenu(elem) {
	return elem.id.search(".+Menu$") != -1 || elem.className == "dropMenuItem" || elem.className == "menuImage";
}

function showDropMenu(menu) {
	hideDropMenu(curDropMenu);
	curDropMenu = menu;
	clearDropMenuTimer();

	if (isNav4) {
	/*
		out = "e.target.x=" + e.target.x + "\n"
			+ "e.pageX=" + e.pageX + "\n"
			+ "e.target.width=" + e.target.width + "\n"
			+ "e.target.height=" + e.target.height + "\n"
			+ "e.layerX=" + e.layerX + "\n"
			+ "e.target.y=" + e.target.y + "\n"
			+ "e.pageY=" + e.pageY + "\n"
			+ "e.layerY=" + e.layerY + "\n"
			+ "window.pageYOffset=" + window.pageYOffset + "\n"
			+ "window.innerHeight=" + window.innerHeight + "\n"
	    + "line=" + ((e.target.y + 11) / 19) + "\n";
		alert (out);
		*/
/*
		if (window.innerWidth < (e.target.x - navXOffset + navMenuWidth)) {
			getObject(menu).left = e.target.x - navXOffset - navButtonWidth;
		} else {
			getObject(menu).left = e.target.x - navXOffset;
		}

		getObject(menu).top = e.target.y + navYOffset;				*/
	} else {
		// Check to make sure the entire menu will be on the display area
		e = event;	
		var xPos = 0, yPos = 0;
		
		if (e) {/*
			for (var item = e.srcElement; item != null; item = item.offsetParent) {
			    xPos += item.offsetLeft;
			    yPos += item.offsetTop;
			}*/
			/*out = "e.srcElement.offsetHeight=" + e.srcElement.offsetHeight + "\n"
			    + "e.srcElement.offsetWidth=" + e.srcElement.offsetWidth + "\n"
			    + "e.srcElement.offsetLeft=" + xPos + "\n"
			    + "e.srcElement.offsetTop=" + yPos + "\n"
			    + "e.clientX=" + e.clientX + "\n"
			    + "e.clientY=" + e.clientY + "\n"
			    + "window.document.body.scrollLeft=" + window.document.body.scrollLeft + "\n"
			    + "window.document.body.scrollTop=" + window.document.body.scrollTop + "\n"
			    + "window.document.body.clientWidth=" + window.document.body.clientWidth + "\n";
			alert (out);*/
	/*
			if ((parseInt(getObject(menu).width) + parseInt(xPos)) > window.document.body.clientWidth) {
				//getObject(menu).left = xPos - ((parseInt(getObject(menu).width) + parseInt(xPos)) - window.document.body.clientWidth);
				getObject(menu).left = xPos - (parseInt(getObject(menu).width) - e.srcElement.offsetWidth);
			}

			getObject(menu).top = yPos + ieYOffset;
*/		}		
	}
	
	//getObject(menu).zIndex = 1000;
	getObject(menu).visibility = "visible";
	//return void(null);
}

function hideCurDropMenu() {
	if (curDropMenu != null && !overCurMenu) {
		getObject(curDropMenu).visibility = "hidden";
	}
}

function hideDropMenu(menu) {
	if(menu > "")
		getObject(menu).visibility = "hidden";
}

function clearDropMenuTimer() {
	clearTimeout (dropMenuTimer);
}

function delayHideDropMenu (delay) {
	dropMenuTimer = setTimeout ('hideCurDropMenu()', delay);
}

