/* =================================================================*/
// Automatische Site-Navigation mit dynamisch erzeugtem Javascript
// erste Version ab 01.04.2000
/* =================================================================*/

// HTML-Dateiendung: wird bei der automatischen link.erzeugung verwendet
var htm_ext = ".htm";

// Verzeichnis mit benötigten Bildern (wenn welche benutzt werden)
var image_dir = "images/"

// !!!! Ende Variablenanpassung !!!! //

var MenuEntries=new Object();

/* ------------------------------------------------------------------*/
// ade()
//  == add entry
// fügt einen eintrag zur Sammlung der Menüeinträge hinzu
// dabei werden default-einstellungen eingetragen, die man 
// manuell ändern kann
/* ------------------------------------------------------------------*/

function ade(name, link, show){
	MenuEntries[name] = new Object();

	MenuEntries[name].name = name;

	// wenn kein Link übergeben wurde aus dem Namen einen generieren
	if(!link){
		MenuEntries[name].link = name + htm_ext;
	} else {
		MenuEntries[name].link = link;
	}

	// wenn keine Anzeigetext übergeben wurde den Namen benutzen
	if(!show){
		MenuEntries[name].show = name;
	} else {
		MenuEntries[name].show = show;
	}		

}


/* ------------------------------------------------------------------*/
// adse()
//  == add sub entry
// fügt einen Untereintrag zu einem Menüpunkt hinzu
// Untereinträge werden automatisch angezeigt, wenn der Obereintrag
// ausgewählt ist
/* ------------------------------------------------------------------*/

function adse(name, mother, link, show){
	// wenn zur übergebenen Mutter noch keine Submenus existieren
   // wird ein neues Feld anlegen
	if(MenuEntries[mother].child_counter == null){
		MenuEntries[mother].child_counter=0;
		MenuEntries[mother].children = new Array();
	}

	var child_count = MenuEntries[mother].child_counter;
	
	MenuEntries[mother].children[child_count]=name;
	MenuEntries[mother].child_counter++;

	// normalen Eintrag für Kind erzeugen
	ade(name,link,show);
	MenuEntries[name].mother = mother;
}

/* ------------------------------------------------------------------*/
// build_nav()
//
// aufbau der navigationsleiste
/* ------------------------------------------------------------------*/

function build_nav(page_menu, highlight){

	var mother="";
	// check for mother node
	if(highlight != null){
		if(MenuEntries[highlight].mother != null){
			mother = MenuEntries[highlight].mother;
		}
	}

	document.write ('<div class="rmenu"> <p>');
   // TOP Image
	document.write ('<img src="' + image_dir + 'menlogo.gif"><br>');
	
	for(i=0; i< page_menu.length; i++){
		var current_entry = page_menu[i];
		
		// link und image tags schreiben (mit document.write
		write_html(current_entry, highlight);

		// die beiden folgenden Blöcke schliessen sich gegenseitig aus
		if(current_entry == mother){
			for(var j=0; j<MenuEntries[current_entry].children.length; j++){
				write_html(MenuEntries[current_entry].children[j], highlight);						
			}
		}

		if(MenuEntries[current_entry].name == highlight &&
			MenuEntries[current_entry].child_counter != null){
			// Untermenü vorhanden
			for(var j=0; j<MenuEntries[current_entry].children.length; j++){
				write_html(MenuEntries[current_entry].children[j], highlight);						

			}
		}
	}

	// BOTTOM Image
	// document.write ('<img src="' + image_dir + 'bottom.gif"><br>');
   // und Menu Abschluss
	document.write ('</div>');

}

/* ------------------------------------------------------------------*/
// write_html()
//
// ausgabe des html-codes für die navigationsleiste
// - nehmen Sie hier Änderungen vor, wenn Sie z.B. die Ausgabe der
//   Navigationsleiste als Tabelle oder div-Container möchten
//
/* ------------------------------------------------------------------*/

function	write_html(current_entry, highlight){

	var showentry = MenuEntries[current_entry].show;

	// abprüfen, ob eintrag als ausgewählt angezeigt wird
			
	// Einschub oder sonstige Besonderheiten für untergeordnete Menupunkte
	if(MenuEntries[current_entry].mother != null){
		indent = '<small>&nbsp;&nbsp;'
		exdent = '</small>'
   } else {
		indent = ''
		exdent = ''
	}
	// und die Strings für die Menupunkte
	output="";
	// html Ausgabe erzeugen
	if(MenuEntries[current_entry].name != highlight){
		// nur wenn auch Link angegeben
		if(MenuEntries[current_entry].link == "nolinkbold") {
			// dann war es ein fetter Eintrag ohne Link
			output += indent + '<b>' + showentry + '</b>' + exdent + '<br>';
		} else {
			if(MenuEntries[current_entry].link == "nolink") {
				// normaler Eintrag aber ohne Links
				output += indent + showentry + exdent + '<br>';
			} else {
				// der ganze Rest wird mit Link hinterlegt <a> Tag aufbauen: href
				output = '<a href="' + MenuEntries[current_entry].link + '">';
				output += indent + showentry;
				output += '</a>' + exdent + '<br>';
			}	
		}
	} else {
		// gerade ausgewähltes Menu
		output += indent + '<b>' + showentry + '</b>' + exdent;
		output += '<br>';
	}
	document.write(output);
}

