var MenuButtonActive = null;
var MenuOverSwitch = false;
var MenuTimeout = null;
var MenuCurE = null;
var MenuCurM = null;

function MenuShow (m, x, y) {
	var e = document.getElementById(m);
	var l, w, dw;
	if (! e) return;
	e.className = 'MenuActive';
	e.style.left = x + "px";
	e.style.top = y + "px";
	l = e.getElementsByTagName("A");
	if (! l || ! l.length) return;
	w = l[0].offsetWidth;
	l[0].style.width = w + "px";
	dw = l[0].offsetWidth - w;
	w -= dw;
	l[0].style.width = w + "px";
}

function MenuHide (m) {
	var e = document.getElementById(m);
	if (! e) return;
	e.className = 'Menu';
}

function MenuOver () {
	MenuOverSwitch = true;
}

function MenuOut () {
	MenuOverSwitch = false;
}

function MenuGetX (e) {
	var x = e.offsetLeft;
	if (e.offsetParent) x += MenuGetX(e.offsetParent);
	return(x);
}

function MenuGetY (e) {
	var y = e.offsetTop;
	if (e.offsetParent) y += MenuGetY(e.offsetParent);
	return(y);
}

function MenuButtonDelayed () {
	var e = MenuCurE;
	var m = MenuCurM;

	if (! e.menu) {
		e.menu = m;
	}
	MenuButtonActive = e;
	e.className = 'MenuButtonActive';
	MenuShow(m, MenuGetX(e), MenuGetY(e) + e.offsetHeight);
}

function MenuButtonOver (e, m) {
	if (MenuButtonActive) {
		if (e == MenuButtonActive) return;
		if (! e.menu) {
			e.menu = m;
		}
		MenuButtonActive.className = 'MenuButton';
		MenuHide(MenuButtonActive.menu);
		e.className = 'MenuButtonActive';
		MenuShow(e.menu, MenuGetX(e), MenuGetY(e) + e.offsetHeight);
		MenuButtonActive = e;
	} else {
		MenuCurE = e;
		MenuCurM = m;
		MenuTimeout = window.setTimeout(MenuButtonDelayed, 500);
	}
}

function MenuButtonOut (e, m) {
	if (MenuButtonActive) {
	} else {
		e.className = 'MenuButton';
		if (MenuTimeout) {
			window.clearTimeout(MenuTimeout);
			MenuTimeout = null;
		}
	}
}

function MenuButtonClick (e, m) {
	if (! e.menu) {
		e.menu = m;
	}

	if (MenuButtonActive) {
		MenuHide(MenuButtonActive.menu);
		MenuButtonActive = null;
		e.className = 'MenuButtonOver';
	} else {
		if (MenuTimeout) {
			window.clearTimeout(MenuTimeout);
			MenuTimeout = null;
		}
		MenuButtonActive = e;
		e.className = 'MenuButtonActive';
		MenuShow(m, MenuGetX(e), MenuGetY(e) + e.offsetHeight);
	}
}

function DocumentMouseDown (event) {
	var e;

	if (! MenuButtonActive) return;
	if (MenuOverSwitch) return;
	e = window.event.srcElement;
	if (e == MenuButtonActive) return;
	MenuButtonActive.className = 'MenuButton';
	MenuHide(MenuButtonActive.menu);
	MenuButtonActive = null;
}

document.onmousedown = DocumentMouseDown;

