function TopMenu(id) {
	this._init = false;
	this.node = document.getElementById(id);
	var m = this;
	NG.addEventListener(this.node, 'mouseover', function (e) { m.open(e); });
}

TopMenu.prototype.open = function (event) {
	if (!this._init) {
		var m = this;
		NG.addEventListener(document, 'mouseover', function () { m.close(); });
		this._init = true;
	}
	var li = (event.target ? event.target : event.srcElement);
	while (li && li.nodeName != 'LI') li = li.parentNode;
	if (!li) { throw('Couldn\'t find <li>'); return; }
	this.close(li.parentNode);
	li.className += ' sel';
	NG.stopPropagation(event);
}

TopMenu.prototype.close = function (node) {
	if (!node) node = this.node;
	var l = node.getElementsByTagName('li');
	for (var i = 0; i < l.length; i++) {
		l[i].className = l[i].className.replace(/(^| )sel( |$)/, '');
	}
}

function SelectLocation(select, num_head_options, errmsg) {
	if (arguments.length <= 1) num_head_options = 0;
	if (select.selectedIndex >= num_head_options) {
		window.location = select.options[select.selectedIndex].value;
	} else {
		alert(errmsg);
	}
}

