var Menu = function() {
	var $ = function(id) { return document.getElementById(id); };
	var os = $('menu'), self = this, elemek = [], aktualis = false;

	this.megjelenit = function(obj) {
		if (aktualis !== false && aktualis != obj) {
			this.eltuntet();
		}
		var _os = obj.parentNode;
		_os.getElementsByTagName('ul')[0].style.visibility = 'visible';
		aktualis = obj;
		aktualis.over = aktualis.onmouseover;
		aktualis.onmouseover = null;
	};

	this.eltuntet = function() {
		var _os = aktualis.parentNode;
		_os.getElementsByTagName('ul')[0].style.visibility = 'hidden';
		if (aktualis.timer !== false) {
			clearTimeout(aktualis.timer);
			aktualis.timer = false;
		}
		aktualis.onmouseover = aktualis.over;
		aktualis = false;
	};

	this.over = function(obj) {
		if (obj.timer !== false) {
			clearTimeout(obj.timer);
			obj.timer = false;
		}
		if (aktualis != obj) {
			this.megjelenit(obj);
		}
	};

	this.out = function(obj) {
		if (!obj.timer) {
			obj.timer = setTimeout(obj.obj.eltuntet, 500);
		}
	};

	var konstruktor = function konstruktor() {
		var elem, ak, a, ul, i;

		for (i = 0; i < os.childNodes.length; i++) {
			elem = os.childNodes[i];
			if (elem.nodeName.toLowerCase() == 'li') {
				ak = elem.getElementsByTagName('a');
				a = ak[0];
				ul = elem.getElementsByTagName('ul');
				if (ul.length === 0) {
					continue;
				}
				elemek[elemek.length] = a;
				ul[0].obj = a;
				a.obj = self;
				a.timer = false;
				a.onmouseover	= function() { this.obj.over(this); };
				a.onmouseout	= function() { this.obj.out(this); };
				ul[0].onmouseover	= function() { this.obj.obj.over(this.obj); };
				ul[0].onmouseout	= function() { this.obj.obj.out(this.obj); };
			}
		}
	}();
};