var HNAVX = 80; // x position of level 1 layers

if (is.ns5) {
	var HNAVY = 8;
}
else {
	var HNAVY=15;
}
// var HNAVY = 15; // y position of level 1 layers
var HNAVH = 27;  // height of layers
var AUTOHIDEMSEC = 1000; // hide layers after x msec
var AUTOSHOWMSEC = 100; // show layers after x msec

var iHNavE1 = 0; // which menu is the mouse over?
var iInitialHNavE1 = 0; // which menu is selected?
var iInitialHNavE2 = 0; // which menu is selected?
var iInitialHNavE3 = 0; // which menu is selected?
var iInitialHNavE4 = 0; // which menu is selected?
var hNavTimerID; // timer for hiding the menus on mouseout

var w2 = new Array(0,0,0,0,0,0,0,0,0,0,0,0,0);
function translate (str) {
// takes characters representing foreign characters and
// replaces them with the appropriate HTML code.
	var out = "", flag = 0;
	for (i = 0; i < str.length; i++) {
		if (str.charAt(i) == "e") {
			out+="+++++++";
		}
		else {
			out += str.charAt(i);
   		}
	}
	return str;
}
function writeHNavCSS() {
	/*
		writes CSS for menu item layers; must be called in head section of hnav frame
	*/
	var sCSS = '';
	
	for (var i=1; i <= numberOfMenuItems; i++) {
		sCSS += css('HNAV' + i, 1, 1, null, null, null, 'hidden', 100);
		sCSS += css('HNAV' + i + 'M', 1, 1, null, null, null, 'hidden', 200);
		sCSS += css('HNAV' + i + 'S', 1, 1, null, null, null, 'hidden', 300);
	}
	//alert ("sCSS="+sCSS);
	writeCSS(sCSS);
}



function writeHNavDiv() {
//		writes DIVs for menu item layers; must be called at the end of the body section of the hnav frame
	
	var sHTML = '';
	
	for (var i=1; i <= numberOfMenuItems; i++) {
		
		//
		// construct normal state layer
		//
		sHTML += '<div id="HNAV' + i + '" onclick="window.location.href=\'' + aH[i].link +'\'" ><table border="0" cellpadding="1" cellspacing="0" height="' + HNAVH + '"><tr><td class="tNavL1" align="center" nowrap><a href="' + aH[i].link + '" class="tNavL1"><div>&nbsp;' + translate(aH[i].text) + '&nbsp;</div></a></td></tr></table></div>';
		//
		// construct highlighted state layer
		//
		sHTML += '<div id="HNAV' + i + 'M" onclick="window.location.href=\'' + aH[i].link +'\'"><table border="0" cellpadding="3" cellspacing="0" height="' + HNAVH + '"><tr><td class="hnav1m" align="center" nowrap onmouseover="clearTimeout(hNavTimerID)"><a href="' + aH[i].link + '" class="tNavL1sel"><div>&nbsp;' + aH[i].text + '&nbsp;</div></a></td></tr></table></div>';
		//
		// construct level 2 layer
		//
		sHTML += '<div id="HNAV' + i + 'S"><table border="0" cellpadding="0" cellspacing="0"><tr><td class="hnav1" colspan="3"><img src="/images/blank.gif" width="1" height="1" alt=""></td></tr><tr><td class="hnav1" width="1"><img src="/images/blank.gif" width="1" height="1" alt=""></td><td><table border="0" cellpadding="3" cellspacing="0" height="' + HNAVH + '">';
		//if (aH[i].numberOfSubMenus > 0) {
		//	sHTML += '<td class="hnav1m" width="5">&nbsp</td>';
		//}
		//alert ("I="+i);
		//alert ("I.n="+aH[i].numberOfSubMenus);
		for (var j=1; j <= aH[i].numberOfSubMenus; j++) {
			if (E2==j && E1==i) {
				var hglClass = 'tNavL2sel';
			}
			else {
				var hglClass = 'tNavL2';
			}

			var fullLengthOfText=(aH[i].subMenu[j].text).length + 0;
			var lengthOfText=fullLengthOfText;
			var splCharAdj=new String(aH[i].subMenu[j].text);
			
			for(var m=0;m < fullLengthOfText;++m)
			{
				var y=splCharAdj.indexOf('&',m);
				if( y > -1)
				{
					m=y;
					var z=splCharAdj.indexOf(';',m);
					if( z > -1)
					{
						if( (z-y) > 8) alert("Error in umlauts");
						lengthOfText-=(z-y);
						m=z;
					}
				}
			}
// Text length has to be mapped to pixel length
			var pixMap=8.5;
			var newLength=lengthOfText * pixMap;
			if(newLength > (15*pixMap))
			{
				newLength-=pixMap*(15-pixMap)/8.1;
			}
			else if(newLength > (20*pixMap))
			{
				newLength-= 5 + newLength/8;
			}
				
			newLength=Math.ceil(newLength);
			w2[i] = w2[i]+newLength;
			//alert ("L2="+aH[i].subMenu[j].text);
			// Change to use spacers instead of calculated width
			sHTML += '<tr><td onmouseover="clearTimeout(hNavTimerID)" class="'+hglClass+'" align="left" nowrap><DIV><a href="' + aH[i].subMenu[j].link + '" class="'+hglClass+'" onmouseover="clearTimeout(hNavTimerID)">' + translate(aH[i].subMenu[j].text) + '</a></DIV></td></tr>';
			
		}
		sHTML += '</tr></table></td><td class="hnav1" width="1"><img src="/images/blank.gif" width="1" height="1" alt=""></td></tr><tr><td class="hnav1" colspan="3"><img src="/images/blank.gif" width="1" height="1" alt=""></td></tr></table></div>';
	}
	//alert ("sHTML=\n"+sHTML);
	document.writeln(sHTML);
}


function initHNav() {

	//
	// init main navigation; must be called onload from hnav frame (see init.js)
	//
	var x = HNAVX; 	// x position for current level 1 layer
	var d = 0; 	// x position for current level 2 layer
	var w1 = 0; 	// width of current level 1 layer
	//var w2 = 0; 	// width of current level 2 layer
	
	for (var i=1; i <= numberOfMenuItems; i++) {
		//
		// wrap in DynLayer object, move in position, set mouse event handlers and show
		//
		aH[i].DL = new DynLayer('HNAV' + i);
		w1 = aH[i].DL.getContentWidth(aH,i);
		aH[i].DL.clipInit(0, w1, HNAVH, 0);
		aH[i].DL.moveTo(x, HNAVY);
   		aH[i].DL.elm.onmouseover = new Function('showHNavE1(' + i + ')');
		aH[i].DL.show();

		//
		// wrap in DynLayer
		//
		aH[i].sDL = new DynLayer('HNAV' + i + 'S');
		
		//
		// place Dynlayer centered under level 1 layer; check borders
		//
		w2[i] = aH[i].sDL.getContentWidth(aH,i);
		d = x - (w2[i] / 2) + (w1 / 2); 
		if (d <= HNAVX) {
			d = HNAVX-1;
		}
		else {
			if ((d + w2[i]) >= 680) {
				//alert ("d="+d+"w2="+w2[i]);
				d = 680 - w2[i];
			}
		}
		
		//
		// move in position; set mouse event handlers and show
		//
		aH[i].sDL.moveTo(d, HNAVY + HNAVH + 5)
   		aH[i].sDL.elm.onmouseover = new Function('clearTimeout(hNavTimerID)');
   		aH[i].sDL.elm.onmouseout = outHNavE1;

		//
		// wrap in DynLayer object, move in position, set mouse event handlers and show
		//
		aH[i].mDL = new DynLayer('HNAV' + i + 'M');
		aH[i].mDL.elm.onmouseover = new Function('showHNavE1(' + i + ')');
   		aH[i].mDL.elm.onmouseout = outHNavE1;
		
		w1 = aH[i].DL.getContentWidth(aH,i);
		
		aH[i].mDL.clipInit(0, w1, HNAVH, 0);
		aH[i].mDL.moveTo(x, HNAVY)
		x += w1;
	}
	if (E1 > 0) {
		setInitialHNav(E1, E2, E3, E4);
	}
}	


function showHNavE1(i) {
	//
	// event handler for mouse over level 1 layer
	//
	//alert ("showHNavE1("+i+")");
	if (dynLayerFinished) {
		clearTimeout(hNavTimerID);
		//if (i != iHNavE1) {
			hideHNavE1();
			//if ((i != iInitialHNavE1) && (iInitialHNavE1 != 0)) {
			//	aH[iInitialHNavE1].DL.show();
			//	aH[iInitialHNavE1].mDL.hide();
			//	if (aH[iInitialHNavE1].numberOfSubMenus > 0) {
			//		aH[iInitialHNavE1].sDL.hide();
			//	}
			//}
			iHNavE1 = i;
			aH[i].mDL.show();	
			aH[i].DL.hide();
			if (aH[i].numberOfSubMenus > 0) {
				aH[i].sDL.show();
			}
		//}
	}
}

function outHNavE1() {
	//
	// event handler for mouse out level 1 layer
	//
	//alert ("outHNavE1");
	clearTimeout(hNavTimerID);
	
	hNavTimerID = setTimeout('hideHNavE1()',AUTOHIDEMSEC);
}

function hideHNavE1() {
	//
	// hide last shown level 1 layer
	//
	//alert ("hideHNavE1 "+iHNavE1);
	if (dynLayerFinished) {
		if (iHNavE1 > 0) {
			//if (iHNavE1 != iInitialHNavE1) {
				//if (aH[iHNavE1].numberOfSubMenus > 0) {
					aH[iHNavE1].sDL.hide();
				//}
				aH[iHNavE1].DL.show();
				aH[iHNavE1].mDL.hide();
				if (iInitialHNavE1 != 0) {
					aH[iInitialHNavE1].mDL.show();
					aH[iInitialHNavE1].DL.show();
					if (aH[iInitialHNavE1].numberOfSubMenus > 0) {
						//aH[iInitialHNavE1].sDL.show();
					}
				}
		//	}
			iHNavE1 = 0;
		}
	}
}

function setInitialHNav(i, j, k, l) {

	//
	// set initially open/selected level 1 item to i
	//
	if (i <= numberOfMenuItems) {
		if (iInitialHNavE1 != 0) {
			aH[iInitialHNavE1].DL.show();
			aH[iInitialHNavE1].mDL.hide();
			if (aH[iInitialHNavE1].numberOfSubMenus > 0) {
				aH[iInitialHNavE1].sDL.hide();
			}
		}		
		iInitialHNavE1 = i;
		iInitialHNavE2 = j;
		iInitialHNavE3 = k;
		iInitialHNavE4 = l;
	
		aH[i].mDL.show();
		aH[i].DL.hide();
		if (aH[i].numberOfSubMenus > 0) {
			//aH[i].sDL.show();
		}
	}
}


