/*		erstellt (zwei)stufiges Menü links vom Inhalt	*/
/*		Version 15.3                    20-02-2002 TD	*/

	var FRAMES = new Array(0,1);	// falls mehrere Frames: Nummern eintragen; Links durch | trennen

	var NS4 = (navigator.appName == "Netscape" && GetVersion()<5); // netscape bis Version 4.*

 ///////////// Daten auswerten
 
	var wdth = widthMenu-5;

	document.writeln(' <style type="text/css">');
	document.writeln(' <!--');
	document.writeln('	div.mt17		{width:'+wdth+'px; margin-top:17px;}');
	document.writeln('	#pb1			{padding-top:1px; padding-bottom:1px;}');
	document.writeln(' //-->');
	document.writeln(' </style>');

 ///////////// Browserversion
	
	function GetVersion() {
	 var version = navigator.appVersion;
	 // Ausgabe für IE anpassen: etwa "5.01" statt "4.0 (compatible; MSIE 5.01; Windows NT; DigExt)"
	 if (navigator.appName.indexOf('Microsoft')>-1) {
	  var muster = /MSIE (\d\.\d+);/;
	  rs = muster.exec(version);
	  return RegExp.$1; }

	 return parseFloat(version);
	}

 ///////////// erzeugt Abstand, erste graue Linie und gesamtes Menü

  var navi = menu;
	function showTree(node,r,p) {
    var node ="navi";
    if (!p) { // kein Eintrag für p
      level = eval(node);
      var s = 0, found = false;
      while (s<(level.length-1)/4 && !found)
        if (level[4*s+2]==r) {
          r = s;
          p = 0;
          found = true;
          }
          else {
            if (level[4*s+3]) {
              sublevel = level[4*s+3];
              for (var q=1; q<=(sublevel.length-1)/4; q++)
                if (sublevel[4*q-2]==r) { 
                  r = s;
                  p = q;
                  found = true;
                  break; // Jaaaa!
                  }
              }
            s++;
          }
      if (p==null) r = null;
      }

	 root = node;
	 LEN = node.length;
//alert("Ausgabe:\n\n"+showLevel(node,r,p));
	 return "<div id='DynMenu' class='mt17'><table width='" + wdth + "' border='0' cellspacing='0' cellpadding='0'>\n<tr><td colspan='2'><img src='/gifs/grauLinie.gif' width='" + wdth + "' height='1'></td></tr>\n"
	  + showLevel(node,r,p) + "</table>\n</div>";
	}

 ///////////// erzeugt Menüpunkte einer Ebene

	function showLevel(node,r,p) {
	 var level = eval(node);
	 if (document.all) level.Expand = true;
	 var lev = node.length-LEN; // Ebene 0,1,...
	 var tree = "", row;

	 for (var i=0; i<(level.length-1)/4; i++) {
	  if (level[4*i+3]) {
	   sublevel = level[4*i+3];
	   eval(node+i+" = sublevel"); }

	  flag = false; // false: Link erzeugen
	  switch (lev) { // je nach Ebene
     // Ebene 0
	   case 0: TR = "<tr" + ((i==r && p==0) ? " bgcolor='" + bgcolor + "'" : "") + "><td width='26' valign='top'>";

				  // Bild erzeugen
				  GIF = "<img src='/gifs/";
				  if (i==r && p==0) { CLASS = "we11"; GIF += "we3eck"; flag = true; }
				   else { CLASS = color +"11"; GIF += color + "3eck"; }
				  if (level[4*i+3] && (i==r || sublevel.Expand)) GIF += "U";
				   else GIF += "R";	
	           GIF += ".gif' width='26' height='17'>";

				  TR += GIF + "</td><td width='" + (wdth-26) + "' id='pb1'>";

				  LINK = level[4*i+1];
				  // falls Untermenü vorhanden
				  if (LINK=="" && level[4*i+3])
				    // falls angewählt: kein Link
					 if (i==r) flag = true;
					  else
				      // falls IE: popUp oder popDown
					   if (document.all)
					     LINK = "javascript:popUpMenu(\""+root+"\","+r+","+p+",\""+node+i+"\");";
					     // sonst ersten Untermenüpunkt aufrufen
					    else LINK = sublevel[1];
				  break;

     // Ebene 1
	   case 1: TR = "<tr" + ((node.indexOf(r)>-1 && i==p-1) ? " bgcolor='" + bgcolor + "'" : "") + "><td width='26' height='17'>&nbsp;</td><td width='" + (wdth-26) + "' id='pb1'>";

				  if (node.indexOf(r)>-1 && i==p-1) {CLASS = "we11"; flag = true;}
				   else CLASS = color + "11";
	           LINK = level[4*i+1];
				  break;
		case 2: }

	  if (weightSMenu=="bold" || lev==0) TEXT = "<b>" + level[4*i] + "</b>";
	   else TEXT = level[4*i];

	  row = TR + makeLink(i,flag,LINK,CLASS,TEXT) + "</td></tr><tr><td colspan='2'><img src='/gifs/grauLinie.gif' width='" + wdth + "' height='1'></td></tr>\n";
	  if (level[4*i+3] &&  (i==r || sublevel.Expand)) row += showLevel(node+i,r,p);
//if (level[4*i+3]) row += showLevel(node+i,r,p);

	  tree += row; }
	  
	  return tree;
	 } 

 ///////////// öffnet Fenster für pdf-Dateien

	function openPDF (url) {
	 breite = screen.width * 0.90;
	 hoehe = screen.height * 0.75;
	 links = (screen.width - (screen.width * 0.90)) / 2;
	 oben = (((screen.height-50) - (screen.height * 0.75)) / 2) * 0.5;

	 win = window.open(url, "PDFS", "left="+links+",top="+oben+",width="+breite+",height="+hoehe+",menubar=no,toolbar=no,location=no,status=no,scrollbars=no,resizable=yes,dependent=yes,hotkeys=yes,directories=no");
	 if (win.focus) win.focus();
	}

 ///////////// Links für mehrere Frames

	function manyFrames(URL) {
	 for (var k=0; k<URL.length; k++) parent.frames[FRAMES[k]].location.href = URL[k];
	}

 ///////////// erzeugt den Link

	function makeLink(i,flag,LINK,CLASS,TEXT) {
	 var ahref = TEXT;

	 // falls pdf-Dokument: neues Fenster
	 if (LINK.indexOf('pdf')>-1) LINK = "javascript:openPDF(\42" + LINK + "\42);";
	 
	 // falls LINK mehrere Frames anspricht
	 if (LINK.indexOf('|')>-1) {
	  URL = LINK.split('|');
	  LINK = "javascript:manyFrames(" + URL + ");";
	  }

	 if (!flag) ahref = "<a href='" + LINK + "' class='" + CLASS + "'>" + ahref + "</a>";
	  else ahref = "<span class='" + CLASS + "'>" + ahref + "</span>";
	 return ahref;
	}

 ///////////// Untermenü ein/ausklappen

	function popUpMenu(rt,r,p,node) {
	 level = eval(node);
	 level.Expand = !level.Expand;
	 document.all.DynMenu.outerHTML = showTree(rt,r,p);
	}

 ///////////// ganzzahlige Division

	function div(a,d) {
	 return (a-a%d)/d;
	}

 ///////////// bewirkt Reload beim Verändern der Fenstergröße bei NS

	function reloadWindow() {
	 window.location.reload();
	}

 ///////////// Reload nach 0.5s

	function onResize() {
	 if (NS4) setTimeout("window.onresize=reloadWindow", 500);
	}

	onResize();

 /////////////////////////////////////////////////////////////////////