/* =================================================================*/
//
// Automatische Site-Navigation mit dynamisch erzeugtem Javascript
//
// (c) Nov 1999 Marco Zierl
// Kontakt: mzierl@gmx.net
//
// Funktionsweise:
// - zwei include-Dateien, die in jede Einzelseite eingef�gt werden
// - die Navigationsleiste wird automatisch aufgebaut
/* =================================================================*/

/* =================================================*/
// !!!! folgende Variablen unbedingt anpassen !!!! //

// Physikalisches Startverzeichnis, in dem die html-Dateien liegen
// leerer String = Root-Verzeichnis
// - zu testzwecken beim Entwickeln ohne Webserver
// - vor dem Publizieren unbedingt �ndern!!!!
//var root_directory = "/home/ralf/Web/cnm";
//var root_directory = "file:///c|/dat-w/cnm";
var root_directory = "http://www.janaszek.de";

// Unterverzeichnis mit den Navigationsgrafiken
var image_dir = "/nav_images/";

// voreingestellte H�he und Breite der Navigationsbilder
// diese Werte werden verwendet, wenn keine Eintr�ge f�r height und width
// existieren
var default_height = 23;
var default_width = 172;

// Dateiendung der Mouseover-Grafiken - wird an den normalen
// Grafikdateinamen angeh�ngt
var mouseover_extension = "+";

// standard-men�:
// bestimmt die Reihenfolge der Men�eintr�ge in der Navigationsleiste
var default_menu = new Array('index', 'typo', 'pub', 'cg', 'bildbearbeitung', 'pi', 'persp', 'ar', 'ga', 'gs', 'bilderatlas', 'recherche', 'rom_bib', 'fi_analyse', 'comp', 'brunnen', 'download', 'suche', 'kontakt' );

// HTML-Dateiendung: wird bei der automatischen link.erzeugung verwendet
var html_extension = ".html";

// Mouseover-toggle: ja oder nein
var mouseover_effects = true; // true oder false;

// Grafikdateityp: �ndern, wenn die Navigation aus jpg-Grafiken besteht
var file_type = ".gif";

// !!!! Ende Variablenanpassung !!!! //
/* =================================================*/


var MenuEntries=new Object();
var current_entry =0;

/* ------------------------------------------------------------------*/
// 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, 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
        if(! link){
                add_entry(name);
        } else {
                add_entry(name, link);
        }
        MenuEntries[name].mother = mother;
}

/* ------------------------------------------------------------------*/
// add_entry()
//
// f�gt einen eintrag zur Sammlung der Men�eintr�ge hinzu
// dabei werden default-einstellungen eingetragen, die man
// manuell �ndern kann
/* ------------------------------------------------------------------*/

function add_entry(name, link){ //, image, link, alt, image_h){
        MenuEntries[name] = new Object();
        MenuEntries[name].name = name;
        MenuEntries[name].image = name;
        if(mouseover_effects == true){
                MenuEntries[name].image_h = name + mouseover_extension;
        }
        MenuEntries[name].alt = name;
        if(!link){
                MenuEntries[name].link = root_directory + "/" + name + html_extension;
        } else {
                MenuEntries[name].link = root_directory + "/" + link;
        }

        if(mouseover_effects == true){
                // image objekte zum mouseover-austausch anlegen
                eval(name + '= new Image()');
                eval(name + '.src="' + root_directory + image_dir + MenuEntries[name].image + file_type + '"');
                eval(name + '_h= new Image()');
                eval(name + '_h.src="' + root_directory + image_dir + MenuEntries[name].image_h + file_type + '"');
        }
        current_entry++;
}

/* ------------------------------------------------------------------*/
// 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;
                }
        }

        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);
                        }
                }

                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;
                // abpr�fen, ob eintrag als ausgew�hlt angezeigt wird
                if(curr_name == highlight){
                        extension = mouseover_extension; // highlight grafik
                }

                // h�he und breite der grafik setzen
                if(!MenuEntries[current_entry].height ){
                        height = default_height;
                } else {
                        height = MenuEntries[current_entry].height;
                }

                if(!MenuEntries[current_entry].width ){
                        width = default_width;
                } else {
                        width = MenuEntries[current_entry].width;
                }

                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 + MenuEntries[current_entry].image;
                output += extension + '.gif" height=' + height;
                output += ' width="' + width + '" border=0 alt="';
                output += MenuEntries[current_entry].alt + '" name="' + curr_name;
                output += '"></a><br>';

                document.write(output);
}

/* ------------------------------------------------------------------*/
// ch()
//
// Funktion zum Austauschen der Grafiken beim mousover / mouseout
/* ------------------------------------------------------------------*/

function ch(im,sr) {
        eval('document.'+im+'.src='+sr+'.src');
}