// Copyright by christian Richter
// mail@chris-richter.de

var mmi = new Object();
var toh = new Object();
var rising = new Object();
var active = new Array();
var parent = new Array();
var idc = 0;

var speed = 10;
var delay = 500;
var wait = 500;
var padding = 3;

var browser_ie = navigator.appName == "Microsoft Internet Explorer";
if(!browser_ie) padding = -5;

function menu_show(mm) {
	var pid = mm.getAttribute("id", "false");
	if(!pid) {
		idc = idc + 1;
		mm.setAttribute("id", idc, "false");
		pid = idc;
	}
	window.clearTimeout(toh[pid]);
	if(browser_ie == true) {
		mm.setAttribute("OnMouseOut",
			new Function ("menu_hide()"),
			"false");
	} else {
		mm.setAttribute("OnMouseOut",
			"menu_hide()",
			"false");
	}
	var tp = pid;
	while(tp) {
		this_pchild = document.getElementById(tp).firstChild;
		var tpcid;
		while(this_pchild != null) {
			if(this_pchild.nodeType == 1 && this_pchild.style.visibility == "visible" && this_pchild.nodeName == "DIV" && this_pchild.getAttribute("class", "false") !== "mm") {
				tpcid = this_pchild.getAttribute("id", "false");
				window.clearTimeout(toh[tpcid]);
				toh[tpcid] = false;
			}
			this_pchild = this_pchild.nextSibling;
		}
		tp = parent[tp];
	}
	var origin = (parent[pid] ? 0 : mm.offsetHeight);
	var y = origin - 1;
	var x = (parent[pid] ? mm.offsetWidth + padding: padding);
	var t = (mmi.length - 1) * delay;
	var this_child = mm.firstChild;
	while(this_child != null) {
		if(this_child.nodeType == 1 && this_child.style.visibility != "visible" && this_child.nodeName == "DIV" && this_child.getAttribute("class", "false") != "mm") {
			var id = this_child.getAttribute("id", "false");
			var sm = this_child.getElementsByTagName("DIV");
			var submenu = (sm.length > 0 ? true : false);
			if(submenu) {
				if(!id) this_child.innerHTML += "&nbsp;<img class=\"mia\" src=\"./Gfx/Main/pfeil.gif\">";
				if(browser_ie == true) {
					this_child.setAttribute("OnMouseOver",
						new Function ("menu_show(this)"),
						"false");
				} else {
					this_child.setAttribute("OnMouseOver",
						"menu_show(this)",
						"false");
				}
			}
			if(!id) {
				idc = idc + 1;
				this_child.setAttribute("id", idc, "false");
				id = idc;
			}
			t = t - delay;
			clearTimeout(toh[id]);
			parent[id] = pid;
			active.push(id);
			this_child.style.left = x;
			if(!rising[id]) rising[id] = setTimeout("menu_rise("+ id +", "+ origin +", "+ y +");", t)
			y = y + this_child.offsetHeight + padding;
		}
		this_child = this_child.nextSibling;
	}
}

function menu_hide(id) {
	if(!id) {
		var tid;
		for(var i = 0; i < active.length; i++) {
			var tid = active[i];
			toh[tid] = setTimeout("menu_hide("+ tid +");", wait);
		}
	} else {
		if(toh[id]) {
			document.getElementById(id).style.visibility = "hidden";
			clearTimeout(rising[id]);
			rising[id] = false;
			ta = active;
			active = new Array();
			for(var i = 0; i < ta.length; i++) if(ta[i] != id) active.push(ta[i]);
		}
	}
}

function menu_rise(id, pos, y, i) {
	pos = (pos + speed >= y ? y : pos + speed);
	this_item = document.getElementById(id);
	this_item.style.top = pos;
	if(!i) {
		var i = 1;
		this_item.style.visibility = "visible";
		//if(browser_ie == true) { this_item.style.setAttribute("Filter", "Alpha(Opacity=90, finishopacity=90, style=0)", "false"); } else if(this_item.style.KHTMLOpacity) { this_item.style.KHTMLOpacity = 90/100; } else if(this_item.style.MozOpacity) { this_item.style.MozOpacity = 90/100; } else { this_item.style.opacity = 90/100; }
	}
	i = i + speed; // (100 - i) / ((y - pos) / speed);
	if(i < 100 || pos < y) {
		opacity = (i == 100 ? 99 : i);
		//if(browser_ie == true) { this_item.style.setAttribute("Filter", "Alpha(Opacity="+ opacity +", finishopacity="+ opacity +", style=0)", "false"); } else if(this_item.style.KHTMLOpacity) { this_item.style.KHTMLOpacity = opacity/100; } else if(this_item.style.MozOpacity) { this_item.style.MozOpacity = opacity/100; } else { this_item.style.opacity = opacity/100; }
  		rising[id] = setTimeout("menu_rise('"+ id +"', "+ pos +", "+ y +", "+ i +")", 15);
	} else {
		//if(browser_ie == true) { this_item.style.setAttribute("Filter", "", "false"); } else if(this_item.style.KHTMLOpacity) { this_item.style.KHTMLOpacity = false; } else if(this_item.style.MozOpacity) { this_item.style.MozOpacity = false; } else { this_item.style.opacity = false; }
		rising[id] = false;
	}
}