	var req = null;

	function z_ajax_aufruf(url) {
	  if (window.XMLHttpRequest) { // Non-IE browsers
	    req = new XMLHttpRequest();
	    req.onreadystatechange = z_ajax_displayState;
	    try {
	      req.open("GET", url, true);
	    } catch (e) {
	      alert(e);
	    }
	    req.send(null);
	  } else if (window.ActiveXObject) { // IE
	    req = new ActiveXObject("Microsoft.XMLHTTP");
	    if (req) {
	      req.onreadystatechange = z_ajax_displayState;
	      req.open("GET", url, true);
	      req.send();
	    }
	  }
	}
	
	function z_ajax_displayState() {
		if (req.readyState == 4 && req.status == 200) {
			z_ajax_init_smenu(req.responseText);
			req = null;
		}
	}
	
	function z_ajax_init_smenu(text) {
		var t = text.split("\n");
		var anz = t[0];
		var off_th = 1 + anz*2;
		var anz_th = t[off_th];
		menu_def_level1 = new Array(anz);
		menu_def_level1_sort = new Array(anz);
		
		for (var i = 0; i < anz; i++) {
			menu_def_level1[i] = t[1 + (i*2) + 1];
			menu_def_level1_sort[i] = t[1 + (i*2) + 0];
		}
		
		menu_def_level2 = new Array(anz_th);
		for (var i = 0; i < anz_th; i++) {
			var them_id = t[off_th + 1 + (i*3) + 0];
			var them_bereich = t[off_th + 1 + (i*3) + 1];
			var them_name = t[off_th + 1 + (i*3) + 2];
			menu_def_level2[i] = new Array(them_id, them_bereich, them_name);
		}
		
		var x = document.getElementById("smenu_suche_meldung");
		if (x) x.style.display='none';
		var y = document.getElementById("smenu_level1");
		if (y) document.getElementById("smenu_level1").innerHTML = smenu_filllevel1();

	}
	
	var menu_maxlevel = 4;
	var menu_def_level1, menu_def_level1_sort;
	var menu_def_level2 = null;
	var menu_cache_level2 = new Array(27);
	
	function smenu_filllevel1(newmenu) {
		var text = "";
		for (var i = 0; i < menu_def_level1.length; i++) {
			var item_id = "sitem1_" + i;
			var classn = "smenui";
			if (i == menu_def_level1.length-1) classn = "smenui_last";
			text += "<div id='" + item_id + "' class='" + classn + "' onMouseOver='smenu_setcol(this, 0); open_smenu(2, \"" + item_id + "\", " + i + ");' onMouseOut='smenu_setcol(this, 1);'>" + menu_def_level1[i] + "</div>\n";
		}
		return text;
	}
	
	function smenu_setcol(nod, i) {
		var col = "#C3C3FF";
		if (i == 1) col = "#E0E0FF";
		nod.style.backgroundColor = col;
	}
	
	function open_smenu(level, parentMenu, this_id) {
		if (level > menu_maxlevel) return;
		for (var i = level; i <= menu_maxlevel; i++) if (document.getElementById("smenu_level" + i)) close_smenu(i);
		
		var par_menu = $j("#" + parentMenu).parent();
		if (!par_menu) return;
		var par_pos = par_menu.position();
		var newmenu = document.createElement("div");
		newmenu.style.position = "absolute";
		newmenu.id = "smenu_level" + level;
		if (level == 2 && this_id == 0) newmenu.className="smenuaz";
		else if (level == 3) newmenu.className="smenuf3";
		else newmenu.className="smenuf";
		var text = "";
		if (level == 1) {
			if (menu_def_level1 && menu_def_level1.length > 1) {
				text = smenu_filllevel1(newmenu);
			} else {
				text += "<div id='smenu_suche_meldung'><i> - wird geladen - </i></div>";
				z_ajax_aufruf("/serien/ajax_themen.php");
			}
		}
		if (level == 2 && this_id == 0) {
			text += "<div id='" + item_id + "' class='smenuiaz' onMouseOver='smenu_setcol(this, 0); open_smenu(" + (level + 1) + ", \"" + item_id + "\", 0);' onMouseOut='smenu_setcol(this, 1);'>0-9</div>\n";
			for (var i = 1; i <= 26; i++) {
				var item_id = "sitem" + level + "_" + i;
				var classn = "smenuiaz";
				if (i == 26) classn = "smenuiaz_last";
				text += "<div id='" + item_id + "' class='" + classn + "' onMouseOver='smenu_setcol(this, 0); open_smenu(" + (level + 1) + ", \"" + item_id + "\", " + i + ");' onMouseOut='smenu_setcol(this, 1);'>" + String.fromCharCode(64+i) + "</div>\n";
			}
		}
		if (level == 2 && this_id > 0) {
			var searchp = menu_def_level1_sort[this_id];
			for (var i = 0; i < menu_def_level2.length; i++) if (menu_def_level2[i][1] == searchp) {
				var item_id = "sitem" + level + "_" + i;
				text += "<div id='" + item_id + "'><a href='/serien/start.phtml?id=" + menu_def_level2[i][0] + "'>" + menu_def_level2[i][2] + "</a></div>\n";
			}
		}
		if (level == 3) {
			if (menu_cache_level2[this_id]) text = menu_cache_level2[this_id]; else {
			if (this_id == 0) {
				for (var i = 0; i < menu_def_level2.length; i++) if (menu_def_level2[i][1] == "anime") {
					var fir = menu_def_level2[i][2].charCodeAt(0);
					if (fir < 65 || (fir > 90 && fir < 97) || fir > 122) {
						var item_id = "sitem" + level + "_" + i;
						text += "<div id='" + item_id + "'><a href='/serien/start.phtml?id=" + menu_def_level2[i][0] + "'>" + menu_def_level2[i][2] + "</a></div>\n";
					}
				}
			} else {
				var searchp1 = String.fromCharCode(64+this_id);
				var searchp2 = String.fromCharCode(96+this_id);
				for (var i = 0; i < menu_def_level2.length; i++) if (menu_def_level2[i][1] == "anime" && (menu_def_level2[i][2].charAt(0) == searchp1 || menu_def_level2[i][2].charAt(0) == searchp2)) {
					var item_id = "sitem" + level + "_" + i;
					text += "<div id='" + item_id + "'><a href='/serien/start.phtml?id=" + menu_def_level2[i][0] + "'>" + menu_def_level2[i][2] + "</a></div>\n";
				}
			}
			menu_cache_level2[this_id] = text;
			}
		}
		newmenu.innerHTML = text;
		var appended = false;
		if (level == 3) {
			if (this_id == 26 || this_id == 24 || this_id == 17) {
				document.getElementById("smenu_endnode").appendChild(newmenu);
				bhei = $j(newmenu).height();
			} else bhei = 300;
			var l2b = $j("#smenu_level2");
			var l2pos = l2b.position();
			var ypos = par_pos.top;
			if ((bhei+par_pos.top) > (l2pos.top+l2b.height())) ypos = l2pos.top+l2b.height()-bhei;
			$j(newmenu).css({"top": (ypos+"px"), "left": (par_pos.left+$j(par_menu).width()+1)+"px" });
		} else $j(newmenu).css({"top": (ypos+"px"), "left": (par_pos.left+$j(par_menu).width()+1)+"px" });
		if (!appended) document.getElementById("smenu_endnode").appendChild(newmenu);
	}
	
	function close_smenu(level) {
		var node = document.getElementById("smenu_level" + level);
		if (!node) return;
		var parn = node.parentNode;
		parn.removeChild(node);
	}
	
	function toggle_smenu() {
		if (document.getElementById("smenu_level1")) {
			for (var i = 1; i <= menu_maxlevel; i++) if (document.getElementById("smenu_level" + i)) close_smenu(i);
		} else open_smenu(1, 'smenu_level0', 1);
	}
