var Menu = function() {
	var $ = function(id) { return document.getElementById(id); };
	var os = $('menu'), self = this, elemek = [], aktualis = false, keret;

	this.megjelenit = function(obj) {
		if (aktualis !== false && aktualis != obj) {
			this.eltuntet();
		}
		var _os = obj.parentNode;
		_os.getElementsByTagName('div')[0].style.visibility = 'visible';
		aktualis = obj;
		aktualis.over = aktualis.onmouseover;
		aktualis.onmouseover = null;
	};

	this.eltuntet = function() {
		var _os = aktualis.parentNode;
		_os.getElementsByTagName('div')[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);
		}
	};

	function ujdiv(className) {
		var div = document.createElement('div');
		div.className = className;
		return div;
	}

	function keretgyart() {
		var keret = document.createElement('div');
		keret.className = 'almenu_tarto';
		var div = ujdiv('almenu_link');
		var a = document.createElement('a');
		a.href = '#';
		div.appendChild(a);
		keret.appendChild(div);
		keret.appendChild(ujdiv('almenu_link_bal'));
		keret.appendChild(ujdiv('almenu_link_fent'));
		keret.appendChild(ujdiv('almenu_link_jobb'));
		keret.appendChild(ujdiv('almenu_link_alatt'));
		keret.appendChild(ujdiv('almenu_bal'));
		keret.appendChild(ujdiv('almenu_bal_lent'));
		keret.appendChild(ujdiv('almenu_lent'));
		keret.appendChild(ujdiv('almenu_jobb_lent'));
		keret.appendChild(ujdiv('almenu_jobb'));
		keret.appendChild(ujdiv('almenu_jobb_fent'));
		keret.appendChild(ujdiv('almenu_jobb_fent_v'));
		return keret;
	}

	function konstruktor() {
		var elem, ak, a, a2, ul, ujul, ujkeret, uja, divek, aszelesseg, szelesseg, magassag, i;

		keret = keretgyart();
		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;
				}
				ujkeret = keret.cloneNode(true);
				uja = ujkeret.getElementsByTagName('a')[0];
				uja.href = a.href;
				uja.appendChild(document.createTextNode(a.childNodes[0].nodeValue));
				ujul = elem.removeChild(ul[0]);
				ujkeret.appendChild(ujul);
				elem.appendChild(ujkeret);
				magassag = ujul.offsetHeight - 3;
				szelesseg = ujul.offsetWidth;
				aszelesseg = uja.offsetWidth;
				divek = ujkeret.getElementsByTagName('div');
				divek[2].style.width = (aszelesseg - 20) + 'px'; //almenu_link_fent
				divek[3].style.left = (aszelesseg - 10) + 'px'; //almenu_link_jobb
				divek[4].style.width = aszelesseg + 'px'; //almenu_link_alatt
				divek[5].style.height = (magassag - 5) + 'px'; //almenu_bal
				divek[6].style.top = (magassag - 5) + 'px'; //almenu_bal_lent
				divek[7].style.top = (magassag + 3) + 'px'; //almenu_lent
				divek[7].style.width = szelesseg + 'px';
				divek[8].style.left = (szelesseg + 10) + 'px'; //almenu_jobb_lent
				divek[8].style.top = (magassag - 5) + 'px';
				divek[9].style.left = (szelesseg + 10) + 'px'; //almenu_jobb
				divek[9].style.height = (magassag - 5) + 'px';
				divek[10].style.left = (szelesseg + 16) + 'px'; //almenu_jobb_fent
				divek[11].style.left = (aszelesseg + 1) + 'px'; //almenu_jobb_fent_v
				divek[11].style.width = (szelesseg - aszelesseg + 15) + 'px';
				uja.obj = a;
				ujul.obj = a;
				a.obj = self;
				a.timer = false;
				a.onmouseover	= function() { this.obj.over(this); };
				uja.onmouseover	= ujul.onmouseover	= function() { this.obj.obj.over(this.obj); };
				uja.onmouseout	= ujul.onmouseout		= function() { this.obj.obj.out(this.obj); };
			}
		}
	}

	konstruktor();
};
