var menuTimer = -1;
var m1,m2,m3,m4;
var oldm1, oldm2, oldm3, oldm4;

function markPath() {
    return;
    
    /* Bar einfaerben */
    if((el = document.getElementById("menubackgr"))) el.style.display = 'block';

    for(i=0; i<menuLevel1.length; i++) {
	if(i == m1) menuLevel1[i].style.color = '#a58c46';
	else menuLevel1[i].style.color = '#909090';
    }

    for(i=0; i<menuLevel2.length; i++) {
	for(j=0; j<menuLevel2[i].length; j++) {
	    if(j == m2) menuLevel2[i][j].style.color = '#a58c46';
	    else menuLevel2[i][j].style.color = '#a0a0a0';
	}
    }

    for(i=0; i<menuLevel3.length; i++) {
	for(j=0; j<menuLevel3[i].length; j++) {
	    for(k=0; k<menuLevel3[i][j].length; k++) {
		if(k == m3) menuLevel3[i][j][k].style.color = '#a58c46';
		else menuLevel3[i][j][k].style.color = '#a0a0a0';
	    }
	}
    }

    for(i=0; i<menuLevel4.length; i++) {
	for(j=0; j<menuLevel4[i].length; j++) {
	    for(k=0; k<menuLevel4[i][j].length; k++) {
	        for(l=0; l<menuLevel4[i][j][k].length; l++) {
		    if(l == m4) menuLevel4[i][j][k][l].style.color = '#a58c46';
		    else menuLevel4[i][j][k][l].style.color = '#a0a0a0';
		}
	    }
	}
    }
}

function markMenuPath2(level1, level2, level3, level4)
{
    if(level1 == -1) return;
    
    /* Submenu ausblenden */
    displayBar = 'none';
    for(i=0; i<menuLevel1.length; i++) {
	subMenuName = 'menu' + i + '0';
	objSubMenu = document.getElementById(subMenuName);
	if(objSubMenu != null)
	{
	    if(level1 != i) {
		if(level1 != -1) {
		    objSubMenu.style.marginTop = '-999em';
		    //if((el = document.getElementById("menubackgr"))) el.style.display = 'none';
		}
	    }
	    else
	    {
		objSubMenu.style.marginTop = '4px';
		//if((el = document.getElementById("menubackgr"))) el.style.display = 'block';
		displayBar = 'block';
	    }
	}
    }
    
    /* Bar einfaerben */
    if((el = document.getElementById("menubackgr"))) el.style.display = displayBar;
    

    /* Markierungen setzen */    
    for(i=0; i<menuLevel1.length; i++) {
	if(i == level1) {
	    menuLevel1[i].style.color = '#a58c46';
	    m1 = i;
	}
	else {
	    menuLevel1[i].style.color = '#909090';
	}
    }
    //if(level1 == -1) menuLevel1[currSubMenu].style.color = '#a58c46';

    for(i=0; i<menuLevel2.length; i++) {
	for(j=0; j<menuLevel2[i].length; j++) {
	    if(j == level2) {
		menuLevel2[i][j].style.color = '#a58c46';
		m2 = j;
	    }
	    else {
		menuLevel2[i][j].style.color = '#a0a0a0';
	    }
	}
    }

    for(i=0; i<menuLevel3.length; i++) {
	for(j=0; j<menuLevel3[i].length; j++) {
	    for(k=0; k<menuLevel3[i][j].length; k++) {
		if(k == level3) {
		    menuLevel3[i][j][k].style.color = '#a58c46';
		    m3 = k;
		    
		    // TODO: hole UL-Node des untersten Menus und passe y an
		    var subEl = menuLevel3[i][j][k].nextSibling;
		    var ypos = 0;
		    var myEl = menuLevel3[i][j][k].nextSibling;	// s2menu000
		    var myChildEls = null;
		    if(myEl != null) {
			//myChildEls = myEl.getElementsByTagName("li");
			myChildEls = myEl.childNodes;
		    }
		    
		    if(myChildEls != null) {
			for(var z=0; z<myChildEls.length; z++) {
		    	    var help = parseInt(myChildEls[z].offsetHeight);
		    	    if(!isNaN(help)) ypos += help;
			}
		    }

		    // FireFox, Safari, IE8
		    //var real_y = menuLevel3[i][j][k].offsetTop;
		    //real_y -= 19;
		    real_y = 4;

		    /*if(navigator.appName.indexOf("Internet Explorer") >= 0) {
			if((navigator.appVersion.indexOf("MSIE 6.0") >= 0) || (navigator.appVersion.indexOf("MSIE 7.0") >= 0)) {
			    real_y = menuLevel3[i][j][k].offsetParent.offsetTop; // nicht von a, sondern von li
			    real_y -= (menuLevel3[i][j][k].offsetParent.offsetHeight + 2);	//+border
			}
		    }*/
/*
		    if(real_y+ypos > 300) {
			var elHeight = myChildEls[0].offsetHeight;
			elHeight = 19;
			
			// k-tes Element im ParentMenu
			for(z=k; z>0; z--) {
			    if(real_y <= 0) break;
			    real_y -= elHeight;
			}
		    }
*/
		    //subEl.style.marginTop = real_y + "px";
		    //real_y -= 36;
		    //subEl.style.marginTop = real_y + "px";
		}
		else {
		    menuLevel3[i][j][k].style.color = '#a0a0a0';
		}
	    }
	}
    }
    
    
    for(i=0; i<menuLevel4.length; i++) {
	for(j=0; j<menuLevel4[i].length; j++) {
	    for(k=0; k<menuLevel4[i][j].length; k++) {
	    	for(l=0; l<menuLevel4[i][j][k].length; l++) {
		    if(l == level4) {
			menuLevel4[i][j][k][l].style.color = '#a58c46';
			m4 = l;
		    }
		    else {
			menuLevel4[i][j][k][l].style.color = '#a0a0a0';
		    }
		}
	    }
	}
    }
    if(level4 != -1) showMenuItemBox(level1,level2,level3,level4);
}



function showMenuItemBox(level1, level2, level3, level4) {

    if((el = document.getElementById("menubox" + oldm1 + oldm2 + oldm3 + oldm4))) {
	el.style.visibility = 'hidden';
    }

    el = document.getElementById("menubox" + level1 + level2 + level3 + level4);
    var el2 = document.getElementById("s3menuli" + level1 + level2 + level3 + level4);
    var coord = getCoordinates(el2.parentNode);

    //var coord = getLeftPos("s3menuli" + level1 + level2 + level3 + level4);
    
    //coord["x"]+=4;	// border
    //el.style.left = (coord["x"] + coord["w"]) + "px";
    //el.style.top = coord["y"] + "px";

    // IE6 Bug:
    if(coord["h"] == 0) coord["h"]=403;

    el.style.height = coord["h"] + "px";

    if(el2.offsetWidth != 0) el.style.marginLeft = (el2.offsetWidth - 4) + "px";

    //el.style.marginTop = (el2.offsetTop-el2.offsetHeight+16) + "px";
    el.style.visibility = "hidden";

    // jetzt sichtbare Box merken (fürs Ausblenden)
    oldm1 = level1;
    oldm2 = level2;
    oldm3 = level3;
    oldm4 = level4;
    
	
    // per AJAX die Daten holen lassen...
    var helper = el2.firstChild.name;
    clearTimeout(menuTimer);
    var h = "menubox" + level1 + level2 + level3 + level4;
    menuTimer = setTimeout("loadMenuItemInfo("+helper+",'"+ h +"')", 400);
}

function getLeftPos(id) {
    var pos = 0;
    var el = document.getElementById(id);
    var arr = new Array();
    
    arr["x"]=0; arr["y"]=0;
    arr["w"] = el.offsetWidth;
    arr["h"] = el.offsetHeight;

    do {
	arr["y"] += el.offsetTop;
	arr["x"] += el.offsetLeft;
	el = el.offsetParent;
    }
    while(el != null);

    return arr;
}
function getCoordinates(el) {
    var pos = 0;
    var arr = new Array();
    
    arr["x"]=0; arr["y"]=0;
    arr["w"] = el.offsetWidth;
    arr["h"] = el.offsetHeight;

    do {
	arr["y"] += el.offsetTop;
	arr["x"] += el.offsetLeft;
	el = el.offsetParent;
    }
    while(el != null);

    return arr;
}
