//  Winfried Weiler: wweiler@naturparkhaus.de
// auf der Grundlage eines Scripts von Marco Zierl, Kontakt: mzierl@gmx.net

var root_directory = "";

// Unterverzeichnis mit den Navigationsgrafiken
var image_dir = "/images/";

// Dateiendung der Mouseover-Grafiken 
var mouseover_extension = "_f2";

// standard-menü: 
// bestimmt die Reihenfolge der Menüeinträge in der Navigationsleiste
var default_menu = new Array('ubp_schueler' , 'ubp_lehrer', 'ubp_weiter', 'ubp_kontakt','ubp_nph' );

// HTML-Dateiendung: wird bei der automatischen link.erzeugung verwendet
var html_extension = ".html";

// Mouseover-toggle: ja oder nein  
var mouseover_effects = true; // oder false;

// Grafikdateityp: Ändern, wenn die Navigation aus jpg-Grafiken besteht
var file_type = ".gif"; 

// !!!! Ende Variablenanpassung !!!! //
/* =================================================*/

var MenuEntries=new Object();
var currententry =0;

/* ------------------------------------------------------------------*/
// add_subbentry()
//
// fügt einen Untereintrag zu einem Untermenüpunkt hinzu
// Untereinträge werden automatisch angezeigt, wenn der Obereintrag
// ausgewählt ist
/* ------------------------------------------------------------------*/

function add_subbentry(name, childs, mother, width, link){
	var se = "_s";
       if(MenuEntries[childs].grchild_counter == null){
		MenuEntries[childs].grchild_counter=0;
		MenuEntries[childs].grchildren = new Array();
	}
	var grchild_count = MenuEntries[childs].grchild_counter;
	MenuEntries[childs].grchildren[grchild_count]=name;
	MenuEntries[childs].grchild_counter++;
       // mormalen Eintrag für Enkel erzeugen
	MenuEntries[name] = new Object();
	MenuEntries[name].name = name;
	if(childs == "ubp_programme")
	   MenuEntries[name].image = name + se;
	if(! link){
		write_entry(name, width);
	} else {
		write_entry(name, width, link);
	}	
       MenuEntries[name].childs = childs;
	MenuEntries[name].mother = mother;
       
}

/* ------------------------------------------------------------------*/
// add_subentry()
//
// fügt einen Untereintrag zu einem Menüpunkt hinzu
// Untereinträge werden automatisch angezeigt, wenn der Obereintrag
// ausgewählt ist
/* ------------------------------------------------------------------*/

function add_subentry(name, mother, width, link){
	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++;
	// mormalen Eintrag für Kind erzeugen
	MenuEntries[name] = new Object();
	MenuEntries[name].name = name;
	if(! link){
		write_entry(name, width);
	} else {
		write_entry(name, width, link);
	}	
	MenuEntries[name].mother = mother;
}

/* ------------------------------------------------------------------*/
// add_entry()
//
// fügt einen eintrag zur sammlung der menüeinträge hinzu
/* ------------------------------------------------------------------*/

function add_entry(name, width, link){ //, image, link, alt, image_h){

	MenuEntries[name] = new Object();
	MenuEntries[name].name = name;
	if(! link){
	  write_entry(name, width)
	  } else {
	  write_entry(name, width, link);
	}
}

function write_entry(name, width, link){
	if(MenuEntries[name].image == null)
	   MenuEntries[name].image = name;
	var cu_im = MenuEntries[name].image;
	
	MenuEntries[name].alt = name;
	
	//breite und höhe eines eintrags festlegen
       switch(width)
	{
	case "w80":
	      MenuEntries[name].width=80;
	      MenuEntries[name].height=22;
	      break;
	case "w90":
	      MenuEntries[name].width=90;
	      MenuEntries[name].height=25;
	      break;
	case "w150":
	      MenuEntries[name].width=150;
	      if (! MenuEntries[name].height)
	       MenuEntries[name].height=40;
	      break;
	case "w110":
	      MenuEntries[name].width=110;
	      if (! MenuEntries[name].height)
	       MenuEntries[name].height=25;
	      break;	       
	}

	if(!link){
		MenuEntries[name].link = root_directory + "/" + name + html_extension;
	} else {
		MenuEntries[name].link = root_directory + "/" + link;
	}		

		MenuEntries[name].image_h = cu_im + mouseover_extension;
		// image objekte zum mouseover-austausch anlegen
		eval(name + '= new Image()');
		eval(name + '.src="' + root_directory + image_dir + cu_im + file_type + '"'); 
		eval(name + '_h= new Image()');
		eval(name + '_h.src="' + root_directory + image_dir + MenuEntries[name].image_h + file_type + '"'); 

	currententry++;
}

/* ------------------------------------------------------------------*/
// build_nav()
//
// aufbau der navigationsleiste
/* ------------------------------------------------------------------*/

function build_nav(page_menu, highlight){

	var mother="";
	var childs="";

	// check for childs node
	if(highlight != null){
		if(MenuEntries[highlight].childs != null){
			childs = MenuEntries[highlight].childs;
			mother = MenuEntries[highlight].mother;
		}
	}

	// check for mother node
	if(highlight != null){
		if(MenuEntries[highlight].mother != null){
			mother = MenuEntries[highlight].mother;
		}
	}
	
	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);

		if(current_entry == mother){
			for(var j=0; j<MenuEntries[current_entry].children.length; j++){
			       write_html(MenuEntries[current_entry].children[j], highlight);
				var current_child = MenuEntries[current_entry].children[j];
				if(current_child == childs){
			           for(var q=0; q<MenuEntries[current_child].grchildren.length; q++){
			               write_html(MenuEntries[current_child].grchildren[q], highlight);
			            }
		               }
				if(MenuEntries[current_child].name == highlight &&
			            MenuEntries[current_child].grchild_counter != null){
			            // Untermenü vorhanden
			            for(var q=0; q<MenuEntries[current_child].grchildren.length; q++){
			                write_html(MenuEntries[current_child].grchildren[q], 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);
			}
		}
	}
}

/* ------------------------------------------------------------------*/
// 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
//
// - zur Zeit werden für jeden eintrag die folgenden tags ausgegeben:
//   <a href=.... onmouseover...> <img src=...> </a> <br>
/* ------------------------------------------------------------------*/

function	write_html(current_entry, highlight){
		var extension = "";
		var curr_name = MenuEntries[current_entry].name;
              var curr_im = MenuEntries[current_entry].image;
		// abprüfen, ob eintrag als ausgewählt angezeigt wird
		if(curr_name == highlight){
			extension = mouseover_extension; // highlight grafik 
		}

		output="";

		// html Ausgabe erzeugen
		if(MenuEntries[current_entry].name != highlight){
			// <a> Tag aufbauen: href
			output += '<a href="' + MenuEntries[current_entry].link + '"';
			if(mouseover_effects == true ){
				// mouse events einfügen
				output+= ' onMouseOver="ch(\'' + curr_name + '\',\'' + curr_name;
				output+= '_h\'); return true"';
				output+= ' onMouseOut="ch(\'' + curr_name + '\',\'' + curr_name;
				output+= '\'); return true"';
			}
			output += '>';
		}

		// image tag aufbauen- src, height, width  und alt
		output += '<img src="' + root_directory + image_dir + curr_im;
		output += extension + '.gif" height=' + MenuEntries[current_entry].height;
		output += ' width="' + MenuEntries[current_entry].width + '" border=0 alt="';
		output += MenuEntries[current_entry].alt + '" name="' + curr_name;
		output += '"></a>';

		document.write(output);
}

/* ------------------------------------------------------------------*/
// ch()
//
// Funktion zum Austauschen der Grafiken beim mousover / mouseout 
/* ------------------------------------------------------------------*/

function ch(im,sr) {
	eval('document.'+im+'.src='+sr+'.src');
}

