imgHi = new Image(); imgHi.src = "/images/high.gif";
imgLo = new Image(); imgLo.src = "/images/low.gif";
imgHiS = new Image(); imgHiS.src = "/images/highp.gif";
imgLoS = new Image(); imgLoS.src = "/images/lowp.gif";

transGifSrc = "/images/trans.gif";
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

function startt(){
  var zeit = new Date();
  start = zeit.getMilliseconds();
}

function stopt(){
  var zeit = new Date();
  stop = zeit.getMilliseconds();
  //alert(start/1000+", "+stop/1000);
  //alert((stop-start)/1000);
}

//+++ Menu erzeugen ++++++++++++
menuInitOK=false; //globale vari, ob das menu vollst&auml;ndig ist

function erzeugeMenu(ebene1,ebene2,xPos,yPos){
  var menuID = (ebene2==0)?String(ebene1):ebene1+"_"+ebene2;

  var imgRefEbene2 = new Array();  //hier werden die img-Namen reinkopiert, um die globale JS Referenz auf die img zu erm&ouml;glichen
  var imgRefEbene1 = new Array();  //hier werden die img-Namen reinkopiert, um die globale JS Referenz auf die img zu erm&ouml;glichen
  
  var ausgabepuffer1 = '<div id="bm'+menuID+'" class="menu">\n';
  ausgabepuffer1 += '<table border="0" cellpadding="0" cellspacing="0" width="'+feldbreite+'">\n'
  var ausgabepuffer2 = '<div id="tm'+menuID+'" class="menu">\n';
  ausgabepuffer2 += '<table border="0" cellpadding="0" cellspacing="0" width="'+feldbreite+'">\n';
  var ausgabepuffer3 = '<div id="lm'+menuID+'" class="menu">\n';
  ausgabepuffer3 += '<table border="0" cellpadding="0" cellspacing="0" width="'+feldbreite+'">\n';
  if(ebene2==0){ //ebene 1 menu erzeugen
    for(var i=1;eval("i<Menu"+ebene1+".length");i++) {
      if (eval("Menu"+ebene1+"[i].length>2")) { //wenn es ebenen-2 menus enthalten soll
        ausgabepuffer1 += '<tr><td width='+feldbreite+' height='+feldhoehe+'><img name="img'+ebene1+'_'+i+'_0" src="/images/lowp.gif" border="0" width='+feldbreite+' height='+feldhoehe+'></td></tr>\n';
        ausgabepuffer2 += '<tr><td width='+feldbreite+' height='+feldhoehe+' class="dhtml-men" nowrap><img src="images/trans.gif" width="9" height="1" border="0">'+eval("Menu"+ebene1+"[i][0]")+'</td></tr>\n';
        ausgabepuffer3 += '<tr><td width='+feldbreite+' height='+feldhoehe+'><a href="'+eval("Menu"+ebene1+"[i][1]")+'" onMouseOut="switchImgLoS(jsimg'+ebene1+'_'+i+'_0);verstecke()" onMouseOver="switchImgHiS(jsimg'+ebene1+'_'+i+'_0);zeige('+ebene1+','+i+',0,true)"><img src="'+transGifSrc+'" border="0" width='+feldbreite+' height='+feldhoehe+'></a></td></tr>\n'; }
      else { //wenn es keine ebenen-2 menus enthalten soll
        ausgabepuffer1 += '<tr><td width='+feldbreite+' height='+feldhoehe+'><img name="img'+ebene1+'_'+i+'_0" src="/images/low.gif" border="0" width='+feldbreite+' height='+feldhoehe+'></td></tr>\n';
        ausgabepuffer2 += '<tr><td width='+feldbreite+' height='+feldhoehe+' class="dhtml-men" nowrap><img src="images/trans.gif" width="9" height="1" border="0">'+eval("Menu"+ebene1+"[i][0]")+'</td></tr>\n';
        ausgabepuffer3 += '<tr><td width='+feldbreite+' height='+feldhoehe+'><a href="'+eval("Menu"+ebene1+"[i][1]")+'" onMouseOut="switchImgLo(jsimg'+ebene1+'_'+i+'_0);verstecke()" onMouseOver="switchImgHi(jsimg'+ebene1+'_'+i+'_0);zeige('+ebene1+','+i+',0)"><img src="'+transGifSrc+'" border="0" width='+feldbreite+' height='+feldhoehe+'></a></td></tr>\n'; }
      imgRefEbene1[i-1] = "img"+ebene1+"_"+i+"_0"; //name des bildes speichern f&uuml;r sp&auml;tere referenz
    }
  }
  else { //ebene 2 menu erzeugen
    eval("var mutter = Menu"+ebene1+"[ebene2];");
    for(var i=2;i<mutter.length;i+=2) {
      ausgabepuffer1 += '<tr><td width='+feldbreite+' height='+feldhoehe+'><img name="img'+ebene1+'_'+ebene2+'_'+i/2+'" src="/images/low.gif" border="0" width='+feldbreite+' height='+feldhoehe+'></td></tr>\n';
      ausgabepuffer2 += '<tr><td width='+feldbreite+' height='+feldhoehe+' class="dhtml-men" nowrap><img src="images/trans.gif" width="9" height="1" border="0">'+mutter[i]+'</td></tr>\n';
      ausgabepuffer3 += '<tr><td width='+feldbreite+' height='+feldhoehe+'><a href="'+mutter[i+1]+'" onMouseOut="switchImgLo(jsimg'+ebene1+'_'+ebene2+'_'+i/2+');verstecke()" onMouseOver="switchImgHi(jsimg'+ebene1+'_'+ebene2+'_'+i/2+');zeige('+ebene1+','+ebene2+','+i/2+')"><img src="'+transGifSrc+'" border="0" width='+feldbreite+' height='+feldhoehe+'></a></td></tr>\n';
      imgRefEbene2[(i/2)-1] = "img"+ebene1+"_"+ebene2+"_"+i/2; } //name des bildes speichern f&uuml;r sp&auml;tere referenz 
  }
  ausgabepuffer1 += '</table>\n</div>\n';
  ausgabepuffer2 += '</table>\n</div>\n';
  ausgabepuffer3 += '</table>\n</div>\n';

  //schreiben
  document.write(ausgabepuffer1);
  document.write(ausgabepuffer2);
  document.write(ausgabepuffer3);
  //globale Referenz auf die divs setzen
  //JS Objektname = "js"+divName, z.B. jsbm1_1
  eval("jsbm"+menuID+"=getLO('bm'+menuID);");
  eval("jstm"+menuID+"=getLO('tm'+menuID);");
  eval("jslm"+menuID+"=getLO('lm'+menuID);");
  //positionieren
  setXY(eval("jsbm"+menuID),xPos,yPos);
  setXY(eval("jstm"+menuID),xPos,yPos);
  setXY(eval("jslm"+menuID),xPos,yPos);
  //unsichtbar machen
  versteckeLO(eval("jsbm"+menuID));
  versteckeLO(eval("jstm"+menuID));
  versteckeLO(eval("jslm"+menuID));
  //globale Referenz auf images setzen f&uuml;r performance+
  //JS Image Name = "js"+imgName, z.B. jsimg1_2_0
  for(var i=0;i<imgRefEbene1.length;i++) eval("js"+imgRefEbene1[i]+"=getImg(imgRefEbene1[i]);");
  for(var i=0;i<imgRefEbene2.length;i++) eval("js"+imgRefEbene2[i]+"=getImg(imgRefEbene2[i]);");
}

var menMode = "rechts"; //nach wo soll das rechte menu aufklappen?
var menMode2 = "rechts"; //nach wo soll das 2. menu von rechts aufklappen?

function init(){ //ALLE menus erzeugen
  var kante1 = abstaende[abstaende.length-1]+(2*feldbreite); //rechter rand (xPos) des submenus des menus ganz rechts
  var kante2 = abstaende[abstaende.length-2]+(2*feldbreite); //rechter rand (xPos) des submenus des 2. menus von rechts
  var winBreite = getWidthWindowInner();
  for(var i=1;i<=anzahlMains;i++){
    erzeugeMenu(i,0,abstaende[i],yOff); //erzeugt ebene1 menus
    for(var j=1;j<eval("Menu"+i+".length");j++){
      if(eval("Menu"+i+"[j].length>2")) {
        if (winBreite<=kante1 && i==anzahlMains) {
          erzeugeMenu(i,j,abstaende[i]-feldbreite,yOff+((j-1)*feldhoehe));//erzeugt ebene2 menus beim rechtesten punkt auf der LINKEN seite (=browser zu schmal)
          menMode = "links"; }
        else if (winBreite<=kante2 && i==anzahlMains-1) {
          erzeugeMenu(i,j,abstaende[i]-feldbreite,yOff+((j-1)*feldhoehe));//erzeugt ebene2 menus beim 2. punkt von rechts auf der LINKEN seite (=browser zu schmal)
          menMode2 = "links"; }
      	else erzeugeMenu(i,j,abstaende[i]+feldbreite,yOff+((j-1)*feldhoehe));//erzeugt ebene2 menus
      }
    }
  }
  menuInitOK = true;
}

//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//+++ Highlight und Zeige Funktionen +++
openDiv1=0; //gibt an, welches ebene-1-div offen ist
openDiv2=0; //gibt an, welches ebene-2-div offen ist

function zeige(pfad1,pfad2,pfad3,boolSub){ //zeigt ein div an, setzt evtl. highlights/low
  //pfad1 = Nummer des Hauptmenupunkts; pfad2 = Nummer des ebene1 punkts; pfad3 = Nummer des ebene2 punkts
  if(typeof to!="undefined") window.clearTimeout(to); //fals close-mechanismus ausgel&ouml;st war: reset (=stop)
  
  //von leer auf hauptbutton
  if(openDiv1==0 && pfad2==0 && pfad3==0) {
    zeige3Div(pfad1);openDiv1=pfad1;
  }
  //von ebene1 auf ebene1 oder von ebene2 auf anderen ebene1-punkt
  else if(openDiv1==pfad1 && pfad2!=0 && pfad3==0 && openDiv2!=pfad1+"_"+pfad2) {
    switchImgHiTop(pfad1); //hauptbutton highlight
    if(openDiv2!=0) switchImgLoS(eval("jsimg"+openDiv2+"_0")); //ebene1 button lo; f&uuml;r den fall eines wechsels von ebene2 zu ebene1(anderer punkt)
    if(openDiv2!=0){ hide3Div(openDiv2);openDiv2=0;}
    if(boolSub) {zeige3Div(pfad1+"_"+pfad2);openDiv2=pfad1+"_"+pfad2;}
  }
  //von ebene1 zum gleichen hauptbutton
  else if(openDiv1==pfad1 && pfad2==0) {
    if(openDiv2!=0) {hide3Div(openDiv2);openDiv2=0;}
  }
  //von ebene1 zu anderem hauptbutton
  else if(openDiv1!=0 && openDiv1!=pfad1 && pfad2==0) {
    switchImgLoTop(openDiv1); //hauptbutton lo
    versteckeLO(eval("jsbm"+openDiv1));versteckeLO(eval("jstm"+openDiv1));versteckeLO(eval("jslm"+openDiv1));
    if(openDiv2!=0) { hide3Div(openDiv2);openDiv2=0;}
    zeige3Div(pfad1);openDiv1=pfad1;
  }
  //von ebene1 zu ebene2
  else if(openDiv2!=0 && openDiv2==pfad1+"_"+pfad2 && pfad3!=0) {
    switchImgHiS(eval("jsimg"+pfad1+"_"+pfad2+"_0")); //ebene1 button highlight
  }
  //von ebene2 zu gleichem ebene1-button
  else if(openDiv2!=0 && openDiv2!=pfad1+"_"+pfad2 && pfad3==0) {
    switchImgLoS(eval("jsimg"+openDiv2+"_0")); //ebene1 button lo
    hide3Div(openDiv2);openDiv2=0;
    if(boolSub) {zeige3Div(pfad1+"_"+pfad2);openDiv2=pfad1+"_"+pfad2;}
  }    	
}
//unterfunktionen von zeige() ---------
function zeige3Div(namePart){
  zeigeLO(eval("jsbm"+namePart));
  zeigeLO(eval("jstm"+namePart));
  zeigeLO(eval("jslm"+namePart));
}

function hide3Div(namePart){
  versteckeLO(eval("jsbm"+namePart));
  versteckeLO(eval("jstm"+namePart));
  versteckeLO(eval("jslm"+namePart));
}
//-------------------------------------

function verstecke(){ //leitet ein: verstecke div, setze evtl highlight/low
  to = window.setTimeout("verstecke2()",500);
}

function verstecke2(){ //wenn es offenes div auf ebene 2 gibt -> schliessen
  if(openDiv1!=0) { //wenn es offenes div auf ebene 1 gibt -> schliessen
    if(openDiv2!=0) { //wenn es offenes div auf ebene 2 gibt -> schliessen
      hide3Div(openDiv2);    
      switchImgLoS("jsimg"+openDiv2+"_0");
      openDiv2=0;}
    hide3Div(openDiv1);
    switchImgLoTop(openDiv1);
    openDiv1=0; }
	OpenLayer();
}

//--- Img Funktionen -------------------------------------------------
function switchImgHi(imgName) {imgName.src = imgHi.src;}
function switchImgLo(imgName) {imgName.src = imgLo.src;}
function switchImgHiS(imgName) {imgName.src = imgHiS.src;} //f&uuml;r die mit submenu
function switchImgLoS(imgName) {imgName.src = imgLoS.src;} //f&uuml;r die mit submenu

//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++ Funktionen f&uuml;r die Hauptmenupunkte


function CloseLayer(nr){
	if(document.layers){
		str_obj=".visibility='hide'";
	} else {
		str_obj=".style.visibility='hidden'";
	}
	x=1;
	layer_obj=MM_findObj("dhtml"+x);
	while(layer_obj){
		eval("layer_obj"+str_obj);
		layer_obj=MM_findObj("dhtml"+x++)
	}
	
	if(!document.layers){
		j=1;
		while(document.forms[j]){
			if(document.forms[j].name!="vis"){
				for(var i=0;i<document.forms[j].length;++i) document.forms[j].elements[i].style.visibility='hidden';
			}
			j++
		}	
	}
	//layer_obj.visibility='hide';
}
function OpenLayer(nr){
	if(document.layers){
		str_obj=".visibility='show'";
	} else {
		str_obj=".style.visibility='visible'";
	}
	x=1;
	layer_obj=MM_findObj("dhtml"+x);
	while(layer_obj){
		eval("layer_obj"+str_obj);
		layer_obj=MM_findObj("dhtml"+x++)
	}
	
	if(!document.layers){
		j=1;
		while(document.forms[j]){
			for(var i=0;i<document.forms[j].length;++i)
				document.forms[j].elements[i].style.visibility='visible'; 
			j++
		}		
	}
}

function switchImgLoTop(imgNr) {
	if(GlobalMenuNo!=imgNr){
	  var bild = getImg("img"+imgNr+"_0_0");
	  bild.src = eval("topMenuLo"+imgNr+".src;");
	}
}

function switchImgHiTop(imgNr) {
  var bild = getImg("img"+imgNr+"_0_0");
  bild.src = eval("topMenuHi"+imgNr+".src;");
}

//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++++ Rechtes Submenu wird nach links ausgeklappt, wen der browser zu schmal ist
function getWidthWindowInner(){ 
  if (_All) return (document.body.clientWidth);
  else if (_NS6 || _NS4) return(window.innerWidth);
}

/*
function korrigiereRechtestesMenu(){
  var winBreite = getWidthWindowInner();
  var x;
  var newMenMode = menMode;
  if (menuInitOK) {
    for(var j=1;j<eval("Menu"+anzahlMains+".length");j++) {
      if(eval("Menu"+anzahlMains+"[j].length>2")) {
      	if(winBreite<=minBrowsWidth && menMode=="rechts"){
          x = abstaende[abstaende.length-1]-feldbreite;
          setX(eval("jsbm"+anzahlMains+"_"+j),x);
          setX(eval("jstm"+anzahlMains+"_"+j),x);
          setX(eval("jslm"+anzahlMains+"_"+j),x);
          newMenMode="links";
        }
        else if (winBreite>minBrowsWidth && menMode=="links"){
          x = abstaende[abstaende.length-1]+feldbreite;
          setX(eval("jsbm"+anzahlMains+"_"+j),x);
          setX(eval("jstm"+anzahlMains+"_"+j),x);
          setX(eval("jslm"+anzahlMains+"_"+j),x);
          newMenMode="rechts";          
        }
      }    
    }
  }
  menMode = newMenMode;
}
*/


function korrigiereRechtestesMenu(){
  var winBreite = getWidthWindowInner();
  var x;
  var newMenMode = menMode;
  var newMenMode2 = menMode2;  
  var az = anzahlMains-1;
  var kante1 = abstaende[abstaende.length-1]+(2*feldbreite); //rechter rand (xPos) des submenus des menus ganz rechts
  var kante2 = abstaende[abstaende.length-2]+(2*feldbreite); //rechter rand (xPos) des submenus des 2. menus von rechts
  if (menuInitOK) {
    for(var j=1;j<eval("Menu"+anzahlMains+".length");j++) {
      if(eval("Menu"+anzahlMains+"[j].length>2")) {
      	if(winBreite<=kante1 && menMode=="rechts"){
          x = abstaende[abstaende.length-1]-feldbreite;
          setX(eval("jsbm"+anzahlMains+"_"+j),x);
          setX(eval("jstm"+anzahlMains+"_"+j),x);
          setX(eval("jslm"+anzahlMains+"_"+j),x);
          newMenMode="links";
        }
        else if (winBreite>kante1 && menMode=="links"){
          x = abstaende[abstaende.length-1]+feldbreite;
          setX(eval("jsbm"+anzahlMains+"_"+j),x);
          setX(eval("jstm"+anzahlMains+"_"+j),x);
          setX(eval("jslm"+anzahlMains+"_"+j),x);
          newMenMode="rechts";          
        }
      }    
    }
    for(var j=1;j<eval("Menu"+az+".length");j++) {
      if(eval("Menu"+az+"[j].length>2")) {
      	if(winBreite<=kante2 && menMode2=="rechts"){
          x = abstaende[abstaende.length-2]-feldbreite;
          setX(eval("jsbm"+az+"_"+j),x);
          setX(eval("jstm"+az+"_"+j),x);
          setX(eval("jslm"+az+"_"+j),x);
          newMenMode2="links";
        }
        else if (winBreite>kante2 && menMode2=="links"){
          x = abstaende[abstaende.length-2]+feldbreite;
          setX(eval("jsbm"+az+"_"+j),x);
          setX(eval("jstm"+az+"_"+j),x);
          setX(eval("jslm"+az+"_"+j),x);
          newMenMode2="rechts";          
        }
      }    
    }
  }
  menMode = newMenMode;
  menMode2 = newMenMode2;
}
onresize=korrigiereRechtestesMenu;

//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++