function SDMenu(id) {
	if (!document.getElementById || !document.getElementsByTagName)
		return false;
	this.menu = document.getElementById(id); 
	this.submenuk = this.menu.getElementsByTagName("div"); // megszámolja a főmenüket
	this.vezerlok = this.menu.getElementsByTagName("img"); // megszámolja a vezérlőket
	for (var i = 0; i < this.submenuk.length; i++) {
	    this.submenuk[i].subsub = this.submenuk[i].getElementsByTagName("div");
	}
	this.emlekez = true; // cookie-ban tárolja az aktuális menüállapotot
	this.leptek = 5; // nyitási sebesség
	this.aktualis = false; //megjelöli az aktuális hivatkozást
	this.csak_egy_menu = false; // egyszerre csak egy menü lehet nyitva
	this.sebesseg = 5;
	return true;
}
SDMenu.prototype.init = function() {
	var temp = this;
	for (var i = 0; i < this.submenuk.length; i++) {
		this.submenuk[i].getElementsByTagName("span")[0].onclick = function() {
			temp.menuValtas(this.parentNode);
		};
		this.submenuk[i].className = "collapsed";
		this.submenuk[i].style.height = "";
		//////// Utólag beillesztett. Az 'innerHTML'-t teszi be a kategória paraméterébe.//////
/*		var hivatkozasok = this.submenuk[i].getElementsByTagName("a");
		for (var s = 0; s < hivatkozasok.length; s++) {
			hivatkozasok[s].href = "index.php?menu=termekek&kategoria=" + hivatkozasok[s].alt;
		}*/
		//////////////////////////////////////////////////////////////////////////////////////
		if (this.submenuk[i].subsub) {
			for (var z = 0; z < this.submenuk[i].subsub.length; z++) {
				this.submenuk[i].subsub[z].className = "collapsed";
				this.submenuk[i].subsub[z].style.height = "";
			}
		}
	}
	if (this.vezerlok[0]) {
	    this.vezerlok[0].onclick = function() {
	        temp.osszesZaras();
	    }
	    this.vezerlok[0].alt = "Összes zárása";
	}
	if (this.vezerlok[1]) {
	    this.vezerlok[1].onclick = function() {
	        temp.osszesNyitas();
	    }
	    this.vezerlok[1].alt = "Összes nyitása";
	}
	if (this.aktualis) {
		var hivatkozasok = this.menu.getElementsByTagName("a");
		for (var i = 0; i < hivatkozasok.length; i++)
			if (hivatkozasok[i].href == document.location.href) {
				hivatkozasok[i].className = "current";
				break;
			}
	}
	if (this.emlekez) {
		var regex = new RegExp("menu_" + encodeURIComponent(this.menu.id) + "=([01]+)");
		var match = regex.exec(document.cookie);
		if (match) {
			var allapotok = match[1].split("");
			for (var i = 0; i < allapotok.length; i++)
				this.submenuk[i].className = (allapotok[i] == 0 ? "collapsed" : "");
		}
	}
};
SDMenu.prototype.menuValtas = function(submenu) {
	if (submenu.className == "collapsed") 
		this.menuNyitas(submenu); 
	else
		this.menuZaras(submenu);
};
SDMenu.prototype.menuNyitas = function(submenu) {
	var teljesMagassag = submenu.getElementsByTagName("span")[0].offsetHeight;
	var szamlalo = 1;
	if (submenu.subsub) {
		for (var i = 0; i < submenu.subsub.length; i++) {
			teljesMagassag += submenu.subsub[i].getElementsByTagName("span")[0].offsetHeight;
			szamlalo++;
			if (submenu.subsub[i].className != "collapsed") {
				var hivatkozasok = submenu.subsub[i].getElementsByTagName("a");
				for (var z = 0; z < hivatkozasok.length; z++) {
					teljesMagassag += hivatkozasok[z].offsetHeight;
					szamlalo++;
				}
			}
		}
	}
	var hivatkozasok = submenu.getElementsByTagName("a");
	for (var i = 0; i < hivatkozasok.length; i++) {
		if (hivatkozasok[i].parentNode == submenu) {
			teljesMagassag += hivatkozasok[i].offsetHeight;
			szamlalo++;
		}
	}
	/////////////////////////////////////////////////////////// a mozgás...
	var mozgatas = Math.round(this.leptek * szamlalo);
	var temp = this;
	var intervalId = setInterval(function() {
		var aktMagassag = submenu.offsetHeight;
		var ujMagassag = aktMagassag + mozgatas;
		if (ujMagassag < teljesMagassag)
			submenu.style.height = ujMagassag + "px";
		else {
			clearInterval(intervalId);
			submenu.style.height = "";
			submenu.className = "";
			temp.rogzites();
		}
	}, this.sebesseg);
	this.mas_menuZaras(submenu);
};
SDMenu.prototype.menuZaras = function(submenu) {
	var minimumMagassag = submenu.getElementsByTagName("span")[0].offsetHeight;
	var szamlalo = 1;
	if (submenu.subsub) {
		for (var i = 0; i < submenu.subsub.length; i++) {
			szamlalo++;
			if (submenu.subsub[i].className != "collapsed") {
				var hivatkozasok = submenu.subsub[i].getElementsByTagName("a");
				for (var z = 0; z < hivatkozasok.length; z++) {
					szamlalo++;
				}
			}
		}
	}
	var hivatkozasok = submenu.getElementsByTagName("a");
	for (var i = 0; i < hivatkozasok.length; i++) {
		if (hivatkozasok[i].parentNode == submenu) {
			szamlalo++;
		}
	}
	/////////////////////////////////////////////////////////// a mozgás...
	var mozgatas = Math.round(this.leptek * szamlalo);
	var temp = this;
	var intervalId = setInterval(function() {
		var aktMagassag = submenu.offsetHeight;
		var ujMagassag = aktMagassag - mozgatas;
		if (ujMagassag > minimumMagassag)
			submenu.style.height = ujMagassag + "px";
		else {
			clearInterval(intervalId);
			submenu.style.height = "";
			submenu.className = "collapsed";
			temp.rogzites();
		}
	}, this.sebesseg);
};
SDMenu.prototype.mas_menuZaras = function(submenu) {
	if (this.csak_egy_menu) {
		for (var i = 0; i < this.submenuk.length; i++)
			if (this.submenuk[i] != submenu && this.submenuk[i].className != "collapsed")
				this.menuZaras(this.submenuk[i]);
	}
};
SDMenu.prototype.osszesNyitas = function() {
	var oldCsak_egy_menu = this.csak_egy_menu;
	this.csak_egy_menu = false;
	for (var i = 0; i < this.submenuk.length; i++)
		if (this.submenuk[i].className == "collapsed")
			this.menuNyitas(this.submenuk[i]);
	this.csak_egy_menu = oldCsak_egy_menu;
};
SDMenu.prototype.osszesZaras = function() {
	for (var i = 0; i < this.submenuk.length; i++)
		if (this.submenuk[i].className != "collapsed")
			this.menuZaras(this.submenuk[i]);
};
SDMenu.prototype.rogzites = function() {
	if (this.emlekez) {
		var allapotok = new Array();
		for (var i = 0; i < this.submenuk.length; i++)
			allapotok.push(this.submenuk[i].className == "collapsed" ? 0 : 1);
		var d = new Date();
		d.setTime(d.getTime() + (30 * 24 * 60 * 60 * 1000));
		document.cookie = "menu_" + encodeURIComponent(this.menu.id) + "=" + allapotok.join("") + "; expires=" + d.toGMTString() + "; path=/";
	}
};
