function h_findpage(pagename)
{
	var n;
	var k;
	var test = '';
	var pageobjnr = '';
	var matcharr = new Array();
	
	
	for(n = 0; n < klappmenu.length; n ++)
	{
		if(klappmenu[n][3].indexOf(pagename) > -1)
		{
			test = klappmenu[n][3];
			for(k = test.length - 1; k >= 0; k --)
			{
				if(test.charCodeAt(k) == 92 || test.charCodeAt(k) == 47)	// Slash + Backslash - damit es auch
				{															// lokal funktioniert
					test = test.substring(k + 1, test.length);
					break;
				}
			}
			if(test == pagename)
			{
				pagetree = new Array();
				pageobjnr = klappmenu[n][1];
				while(true)
				{
					pageobjnr = yyy(pageobjnr, 'h');
					if(pageobjnr == '')
					{
						break;
					}
				}
				for(k = 0; k < pagetree.length; k ++)
				{
					if(pagetree[k] == parent.srcpageh)
					{
						return(klappmenu[n][1]);
					}
				}
				if(k == pagetree.length)
				{
					matcharr[matcharr.length] = klappmenu[n][1];
				}
			}
		}
	}
	if(matcharr.length)
	{
		return(matcharr[0]);
	}
	else
	{
		return('');
	}
}


function v_findpage(pagename)
{
	var n;
	var k;
	var test = '';
	var pageobjnr = '';
	var matcharr = new Array();
	
	
	for(n = 0; n < leftmenu.length; n ++)
	{
		if(leftmenu[n][3].indexOf(pagename) > -1)
		{
			test = leftmenu[n][3];
			for(k = test.length - 1; k >= 0; k --)
			{
				if(test.charCodeAt(k) == 92 || test.charCodeAt(k) == 47)	// Slash + Backslash - damit es auch
				{															// lokal funktioniert
					test = test.substring(k + 1, test.length);
					break;
				}
			}
			if(test == pagename)
			{
				pagetree = new Array();
				pageobjnr = leftmenu[n][1];
				while(true)
				{
					pageobjnr = yyy(pageobjnr, 'v');
					if(pageobjnr == '0')
					{
						break;
					}
				}
				for(k = 0; k < pagetree.length; k ++)
				{
					if(pagetree[k] == parent.srcpageh)
					{
						return(leftmenu[n][1]);
					}
				}
				if(k == pagetree.length)
				{
					matcharr[matcharr.length] = leftmenu[n][1];
				}
			}
		}
	}
	if(matcharr.length)
	{
		return(matcharr[0]);
	}
	else
	{
		return('');
	}
}


function init()
{
	var n, k;
	var test = '';
	var pageobjnr = '';
	var pfadstring = '';
	var temp;
	
	
	layerDim	=	new Array();
	laystartx	=	new Array();
	layvisible	=	false;
	hmenudoc	=	content.document;
	if(content.haupt)
	{
		if(content.haupt.frames.length)
		{
			hmenudoc = content.haupt.oben.document;
		}
	}

	if(kopf)
	{
		kopf.resetcolors();
	}
	
	for(n = 0; n < hmenuitems; n ++)
	{
		laystartx[n] = kopf.document.getElementById('m' + String(n)).offsetLeft - 156;
	}
	
	// Identifikation der aktuellen Content-Seite über die URL
	test = content.document.URL;
	for(n = test.length - 1; n >= 0; n --)
	{
		if(test.charCodeAt(n) == 92 || test.charCodeAt(n) == 47)	// Slash + Backslash - damit es auch
		{															// lokal funktioniert
			test = test.substring(n + 1, test.length);
			break;
		}
	}

	// Zuerst wird die Struktur der horizontalen Navigation durchsucht
	treeinfo = '';
	pageobjnr = h_findpage(test);
	if(pageobjnr)
	{
		currentleft = '';
		navtype = 'h';
		createmenu('0');
		pagetree = pagetree.reverse();
		pagetree = pagetree.join(',');
		treeinfo = pagetree.split(',');
		kopf.document.getElementById('mt' + String(treeinfo[0])).style.color = '#FFFFFF';
		brotkrumen = new Array();
		for(n = 0; n < treeinfo.length; n ++)
		{
			for(k = 0; k < klappmenu.length; k ++)
			{
				if(klappmenu[k][1] == treeinfo[n])
				{
					if(klappmenu[k][4] > -1)
					{
						temp = new Array(klappmenu[k][2], klappmenu[k][3]);
						brotkrumen[brotkrumen.length] = temp;
					}
					break;
				}
			}
		}
		brotkrumen = brotkrumen.reverse();
	}
	else
	{
		// Wenn die horizontale Struktur kein Ergebnis liefert,
		// wird die vertikale Navigation durchsucht
		brotkrumen = new Array();
		pageobjnr = v_findpage(test);
		if(pageobjnr)
		{
			treeinfo = '';
			navtype = 'v';
			pagetree = pagetree.reverse();
			pagetree = pagetree.join(',');
			currentleft = pagetree.split(',');
			createmenu('0');


			brotkrumen = new Array();
			for(n = 0; n < currentleft.length; n ++)
			{
				for(k = 0; k < leftmenu.length; k ++)
				{
					if(leftmenu[k][1] == currentleft[n])
					{
						temp = new Array(leftmenu[k][2], leftmenu[k][3]);
						brotkrumen[brotkrumen.length] = temp;
						break;
					}
				}
			}
			brotkrumen = brotkrumen.reverse();

		}
	}
	
	if(brotkrumen.length)
	{
		for(n = brotkrumen.length - 1; n > 0; n --)
		{
			brotkrumen[n][1] = (brotkrumen[n][1]) ? brotkrumen[n][1] : '#';
			brotkrumen[n][1] = matauroot + brotkrumen[n][1];
			pfadstring +=	'<a href="javascript:self.location.replace(' + "'" + brotkrumen[n][1] + "'" + ');"><span style="font-weight:bold;color:#0099CC;">' + 
							brotkrumen[n][0] +
							'</span></a>' +
							'<img src="' + myroot + 'images/pfad.gif" border="0">';
		}
		pfadstring += brotkrumen[0][0];
		lastpfad = pfadstring;
	}
	else
	{
		pfadstring = lastpfad;
	}
	test = hmenudoc.getElementById('krumen');
	if(test)
	{
		test.innerHTML = pfadstring;
	}
	
	contentready = true;
}


function yyy(cparentnr, menutype)
{
	var n;
	var temp;
	
	
	switch(menutype)
	{
		case 'h':
			for(n = 0; n < klappmenu.length; n ++)
			{
				if(klappmenu[n][1] == cparentnr)
				{
					pagetree[pagetree.length] = klappmenu[n][1];
					return(klappmenu[n][0]);
				}
			}
			break;
		case 'v':
			for(n = 0; n < leftmenu.length; n ++)
			{
				if(leftmenu[n][1] == cparentnr)
				{
					pagetree[pagetree.length] = leftmenu[n][1];
					return(leftmenu[n][0]);
				}
			}
			break;
	}
}


function xxx(cparentnr)
{
	var n;
	
	
	for(n = 0; n < klappmenu.length; n ++)
	{
		if(klappmenu[n][1] == cparentnr)
		{
			currenttop[currenttop.length] = klappmenu[n][1];
			return(klappmenu[n][0]);
		}
	}
}


function getmenulevel(cparentnr)
{
	var temp;
	var retval = cparentnr;
	
	
	currenttop = new Array();
	menulevel = 1;

	while(true)
	{
		retval = xxx(retval);
		if(retval == '')
		{
			break;
		}
		++ menulevel;
	}
	currenttop = currenttop.reverse();
}


function createlayer(cparentnr)
{
	var n, k;
	var htmltext = '';
	var mycolor = '';
	

	for(n = 0; n < klappmenu.length; n ++)
	{
		mycolor = '#000000';
		for(k = 0; k < treeinfo.length; k ++)
		{
			if(treeinfo[k] == klappmenu[n][1])
			{
				mycolor = '#0099CC';
				break;
			}
		}

		/* hier werden Untermenüs ausgeblendet, wenn dem aktuellen Menüpunkt  */
		/* in klappmenu[][4] "0" zugewiesen wird. Bei "1" wird das zugehörige */
		/* Untermenü angezeigt                                                */
		/* Falls klappmenu[][4] den Wert "-1" enthält, wirkt sich das auf die */
		/* Brotkrumen-Navgation aus (siehe Funktion "init()". Dies ist dann   */
		/* von Bedeutung, wenn auf Seiten verlinkt wird, die nicht im Pfad    */
		/* aktuellen Seite vorkommen */
		if(klappmenu[n][0] == cparentnr && klappmenu[n][4] > 0)
		{
			htmltext += '<tr><td style="height:5px;"></td></tr>';
			htmltext += '<tr>';
			htmltext += 	'<td id="' + klappmenu[n][1] + '" class="navbutton2" onmouseover="top.showlayer(this.id,1);" onmouseout="top.showlayer(this.id,0);">';
			htmltext += 		'<a href="javascript:;">';
			htmltext += 			'<span id="z_' + klappmenu[n][1] + '" style="color:' + mycolor + ';">';
			htmltext += 				klappmenu[n][2];
			htmltext += 			'</span>';
			htmltext += 		'</a>';
			htmltext += 	'</td>';
			htmltext += '</tr>';
		}
	}

	if(htmltext)
	{
		htmltext  = '<table border="0" cellpadding="0" cellspacing="0">' +
					 	'<tbody>' +
							htmltext +
					 	'</tbody>' +
					'</table>';
	
		hmenudoc.getElementById('hm' + String(menulevel)).innerHTML = htmltext;
		return(0);
	}
	else
	{
		return(-1);
	}
	
}


function showlayer(cparentnr, aktion, menupos)
{
	// cparentnr = Parent für den Layrinhalt
	// aktion: 1 = anzeigen, 2 = löschen
	// menupos: dynamische Position des horizontalen Menüpunktes (0 bis n)
	
	var layerRef;
	var lWidth, lHeight;
	var lay_x, lay_y;
	var n;
	var temp;
	var vdist = 0;
	var oldparent = '';
	var mydivobj;
	

	if(aktion)
	{
		temp = hmenudoc.getElementsByTagName('select');
		for(n = 0; n < temp.length; n ++)
		{
			temp[n].style.visibility = 'hidden';
		}

		activobject = cparentnr;
	
		temp = hmenudoc.getElementById(cparentnr);
		if(temp)
		{
			temp.style.backgroundColor = '#0099CC';
			temp = hmenudoc.getElementById('z_' + cparentnr);
			temp.style.color = '#FFFFFF';
		}
		
		getmenulevel(cparentnr);	// setzt die globale variable menulevel
		layerid = 'hm' + String(menulevel);
		
		if(createlayer(cparentnr) == -1)
		{
			for(n = menulevel; n < layerDim.length; n ++)
			{
				mydivobj = hmenudoc.getElementById('hm' + String(n));
				if(mydivobj)
				{
					mydivobj.style.visibility = 'hidden';
				}
			}
			return;
		}
		else
		{
			for(n = menulevel + 1; n < layerDim.length; n ++)
			{
				mydivobj = hmenudoc.getElementById('hm' + String(n));
				if(mydivobj)
				{
					mydivobj.style.visibility = 'hidden';
				}
			}
		}
		
		layerRef = hmenudoc.getElementById(layerid);
		layerRef.style.visibility = 'visible';
		layvisible = true;
		for(n = 0; n < klappmenu.length; n ++)
		{
			if(klappmenu[n][1] == cparentnr)
			{
				oldparent = klappmenu[n][0];
				break;
			}
		}
		temp = new Array();
		for(n = 0; n < klappmenu.length; n ++)
		{
			if(klappmenu[n][0] == oldparent)
			{
				temp[temp.length] = klappmenu[n][1];
			}
		}
		for(n = 0; n < temp.length; n ++)
		{
			if(temp[n] == cparentnr)
			{
				break;
			}
			++ vdist;
		}

		if(menulevel == 1)
		{
			if(document.all)
			{
				layerRef.style.top = String(hmenudoc.body.scrollTop) + 'px';
				layerRef.style.left = String(laystartx[menupos]) + 'px';
			}
			else
			{
				layerRef.style.top = String(content.pageYOffset) + 'px';
				layerRef.style.left = String(laystartx[menupos]) + 'px';
			}
		}
		else
		{
			layerRef.style.top  = String(layerDim[menulevel - 1][1] + vdist * 22) + 'px';
			layerRef.style.left = String(layerDim[menulevel - 1][2] + 2) + 'px';
		}

		lay_x = parseInt(layerRef.style.left, 10);
		lay_y = parseInt(layerRef.style.top, 10);

		if(document.all)
		{
			layerDim[menulevel] = new Array(lay_x, lay_y, lay_x + layerRef.clientWidth, lay_y + layerRef.clientHeight);
		}
		else
		{
			lWidth = parseInt(hmenudoc.defaultView.getComputedStyle(layerRef, "").getPropertyValue("width"));
			lHeight = parseInt(hmenudoc.defaultView.getComputedStyle(layerRef, "").getPropertyValue("height"));
			layerDim[menulevel] = new Array(lay_x, lay_y, lay_x + lWidth, lay_y + lHeight);
		}
	}
	else
	{
		activobject = '';
		
		temp = hmenudoc.getElementById(cparentnr);
		if(temp)
		{
			temp.style.backgroundColor = '#BBC7D6';
			temp = hmenudoc.getElementById('z_' + cparentnr);
			mycolor = '#000000';
			for(n = 0; n < treeinfo.length; n ++)
			{
				if(treeinfo[n] == cparentnr)
				{
					mycolor = '#0099CC';
					break;
				}
			}
			temp.style.color = mycolor;
		}
	}
}


function evHandl(e)
{
	var n;
	var mydivobj;
	var temp;
	

	if(!layvisible)
	{
		return;
	}

	for(n = 0; n < layerDim.length; n ++)
	{
		mydivobj = hmenudoc.getElementById('hm' + String(n));
		if(mydivobj)
		{
			mydivobj.style.visibility = 'hidden';
		}
	}
	layvisible = false;

	temp = hmenudoc.getElementsByTagName('select');
	for(n = 0; n < temp.length; n ++)
	{
		temp[n].style.visibility = 'visible';
	}

	if(currenttop)
	{
		if(activobject)
		{
			for(n = 0; n < klappmenu.length; n ++)
			{
				if(klappmenu[n][1] == activobject)
				{
					ziel = klappmenu[n][3];
					break;
				}
			}
			if(ziel)
			{
				ziel = matauroot + ziel;
				parent.srcpageh = activobject;
				content.location.replace(ziel);
			}
			else
			{
				content.location.replace('dummy.htm');
			}
		}
	}
	
	return(true);
}

_menu_ = true;

