var menuON=0
var aktline=new Array()

function getXY(a) {
	var y, x, z
	while (1) {
		if(a.tagName=="DIV") {
			z=a.offsetLeft
			y=a.offsetTop
			x=z+a.offsetWidth
			break;
		}
		a=a.parentNode
	}
	return new Array(y,x,z);
}

function showsub(id, onoff) {
	var newsub=getObj("s"+id.id)
	if(newsub) {
		if(onoff) {
			if(id.id) {
				if(id.id.length==1) {
					y=id.offsetHeight
					x=id.offsetLeft
				}
				else {
					var txy=getXY(id)
					y=txy[0]+id.offsetTop+ypad
					x=txy[1]+xpad
				}
				if(x+newsub.offsetWidth>=mnumaxwidth) {
					if(id.id.length==1) x-=newsub.offsetWidth-id.offsetWidth
					else x=txy[2]-newsub.offsetWidth-xpad
				}
				newsub.style.top=y+"px"
				newsub.style.left=x+"px"
			}
		}
		newsub.style.visibility=onoff?"visible":"hidden"
	}
}

function clearLevel(lvl) {
	for(c=aktline.length; c>=lvl; c--) {
		if(aktline[c]) {
			aktline[c].className=""
			if(aktline[c].id) 
				showsub(aktline[c], 0)
		}
		aktline[c]=''
	}
}

function highlight(id) {
	if(aktline[id.name]!=id.name) {
		if(aktline[id.name]) 
			clearLevel(parseInt(aktline[id.name].name))
		id.className="ON"
		if(id.id)
			showsub(id,1)
		aktline[id.name]=id
	}
	else if(aktline.length>parseInt(id.name))
		clearLevel(parseInt(aktline[id.name].name)+1)
}

function slowhide() {
	if(shide) {
		clearLevel(0)
		menuON=0
	}
}

function testIfMnu(e) {
	if(menuON) {
		if(shide) clearTimeout(shide)
		var tmpev=(ie5)?event.srcElement:e.target;
		 if(!partOf(getObj("mainmenu"),tmpev)) shide=setTimeout("slowhide()", 500);
	}
}
function partOf(a, b) {
	while (b.parentNode) {
		if ((b = b.parentNode) == a)
			return true;
	}
	return false;
}

function initmenu() {
	if(shadow) {
		var tt=getObj("mainmenu").getElementsByTagName("DIV")
		for(var tl=0; tl<tt.length; tl++) {
			if(tt[tl].id.substring(0,3)=="hsu") {
				tt[tl].style.width=tt[tl].parentNode.childNodes[tt[tl].parentNode.childNodes.length-1].offsetWidth+"px"
				tt[tl].style.height=tt[tl].parentNode.childNodes[tt[tl].parentNode.childNodes.length-1].offsetHeight+"px"
			}
		}
	}
}

document.onmouseover=testIfMnu
