function enableMenuHiding(b) {
	regMenuHideHandler(b);
	showMenu(!b);
}

var oldmovehandler;
function regMenuHideHandler(b) {
	if (b) {
		if (document.addEventListener) { // DOM Level 2 Event Model
			document.addEventListener("mousemove", handleMove, true);
		} else if (document.attachEvent) { // IE 5+ Event Model
			document.attachEvent("onmousemove", handleMove);
		} else { // IE 4 Event Model
			oldmovehandler = document.onmousemove; // for restoring
			document.onmousemove = handleMove;
		}
	} else {
		if (document.removeEventListener) { // DOM Level 2 Event Model
			document.removeEventListener("mousemove", handleMove, true);
		} else if (document.detachEvent) { // IE 5+ Event Model
			document.detachEvent("onmousemove", handleMove);
		} else { // IE 4 Event Model
			document.onmousemove = oldmovehandler;
		}
	}
}

function handleMove(ev) {
	ev = ev || window.event;
	var menu = getElement("id", "menu");
	var menuLabel = getElement("id", "menuLabel");
	if (menu.visibility == "show" || menu.style.visibility == "visible") {
		var mouseX = ev.pageX || ev.clientX;
		var mouseY = ev.pageY || ev.clientY;
		if (mouseX < menu.offsetLeft
				|| mouseY < menuLabel.offsetTop
				|| mouseX > menu.offsetLeft + menu.offsetWidth
				|| mouseY > menu.offsetTop+menu.offsetHeight) {
			showMenu(false);
		}
	}
}

function showMenu(b) {
	var menu = getElement("id", "menu");
	var menuLabel = getElement("id", "menuLabel");
	if (NS4) {
		menu.visibility = (b ? "show" : "hide");
		menuLabel.style.visibility = (b ? "hide" : "show");
	} else {
		menu.style.visibility = (b ? "visible" : "hidden");
		menuLabel.style.visibility = (b ? "hidden" : "visible");
	}
}


