// === Variablen (global) ===

var        eintraege                = new Array()
var        bildname                = "Bild"

// === Parameter (Vorbelegung) ===

var        body_bgcolor                = "000000"
var        body_background                = ""
var        body_text                = "FFCC00"
var        body_link                = "FFCC00"
var        body_alink                = "CC3300"
var        body_vlink                = "FFCC00"
var        body_hover                = "FFFFCC"
var        menue_pre                = "<B>"
var        menue_post                = "</B>"
var        rand                        = 10
var        cookie_name                = "OpenNodes"
var        bild_leer                = "./Grafik/black.gif"
var        bild_eintrag                = "./Grafik/gruen2.gif"
var        bild_menue_offen        = "./Grafik/normal2.gif"
var        bild_menue_geschlossen        = "./Grafik/normal2.gif"
var        bild_breite                = 19
var        bild_hoehe                = 12
var        frame_name                = "links"
var        rebuild                   = true
var        extra                        = true
var        extra_text_expand        = "Alle &ouml;ffnen"
var        extra_text_collapse        = "Alle schlie&szlig;en"
var        extra_pre                = "<small>"
var        extra_post                = "</small>"
var        exclusive                = false
var        menue_titel                 = ""

// === Menueintraege ===

// Parameterbeschreibung:
// 1. Einrueckung des Eintrags
// 2. Bezeichnung im Menue
// 3. URL (optional)
// 4. Zielrahmen oder -fenster (optional)
// 5. Titel (optional)
// 6. Bild (optional) (Untermenue: geschlossen)
// 7. Bild (optional) (nur Untermenue(!): offen)

// Eintraege, auf die ein Eintrag tieferen Levels
// folgt, werden als Untermenuetitel gewertet
// Ausgelassene Argumente werden mit null gekennzeichnet,
// leere Argumente (ausser Level) mit "".

 eintrag(1, "Startseite", "body.html", "rechts", null, "./Grafik/rot2.gif")
 eintrag(1, "&Uuml;ber Uns", "wehr.html", "rechts")
 eintrag(2, "Warum FF", "warum.html", "rechts")
 eintrag(2, "Geschichte", "geschichte.html", "rechts")
 eintrag(2, "Kommando", "kdo.html", "rechts")
 eintrag(2, "Dienstposten", "dpplan.html", "rechts")
 eintrag(2, "Geb&auml;ude", "gebaeude.html", "rechts")
 eintrag(2, "Mannschaft", "mfotos.html", "rechts")
 eintrag(2, "Mitglieder", "foto01.html", "rechts")
 eintrag(2, "Einsatzbereich", "einsatzbereich.html", "rechts")
 eintrag(1, "Aktuelles", "aktuell09.html", "rechts")
 eintrag(2, "Eins&auml;tze", "einsatz10.html", "rechts")
 eintrag(2, "&Uuml;bungen", "uebungen10.html", "rechts")
 eintrag(2, "Abzeichen", "abzeichen.html", "rechts")
 eintrag(2, "Feste", "feste10.html", "rechts")
 eintrag(2, "Kurse", "kurse10.html", "rechts")
 eintrag(2, "Termine", "kalender10.html", "rechts")
 eintrag(2, "Sonstiges", "sonst10.html", "rechts")
 eintrag(1, "Unser Ort", "ortschaft.html", "rechts", null, "./Grafik/rot2.gif")
 eintrag(2, "Rundgang", "rundgang01.html", "rechts")
 eintrag(2, "Notruf", "notruf.html", "rechts")
 eintrag(2, "Zeiten", "offen.html", "rechts")
 eintrag(2, "M&uuml;ll", "muell10.html", "rechts")
 eintrag(1, "Dorferneuerung", "LeitbildNiederfellabrunn.pdf", "_blank", null, "./Grafik/rot2.gif")
 eintrag(1, "G&auml;stebuch", "./ff/guestcgi.html", "rechts", null, "./Grafik/rot2.gif")
 eintrag(1, "Links", "./ff/linkscgi.html", "rechts", null, "./Grafik/rot2.gif")
 eintrag(1, "Suchen", "./ff/searchcgi.html", "rechts", null, "./Grafik/rot2.gif")

// === Hilfsfunktionen ===

// Cookie lesen
function read_cookie(cookiename)
{
        var cookie_string        = document.cookie
        var cookie_array        = cookie_string.split(";")
        var array_size                = cookie_array.length
        var cookie_teile

        var i        = 0

        for(i = 0; i < array_size; i++)
        {
                cookie_teile        = cookie_array[i].split("=")
                if(cookie_teile[0].substring(0, 1) == " ")
                        cookie_teile[0] = cookie_teile[0].substring(1, cookie_teile[0].length)
                if(cookie_teile[0] == cookiename)
                        return unescape(cookie_teile[1])
        }

        return ""
}


// Cookie schreiben
function write_cookie(cookiename, cookie_wert, gueltigkeitszeitraum)
{
        if(gueltigkeitszeitraum)
        {
                var ablauf_datum        = new Date()

                ablauf_datum.setTime(ablauf_datum.getTime() + gueltigkeitszeitraum)
                document.cookie = cookiename + "=" + escape(cookie_wert) + "; " +
                                        "expires=" + ablauf_datum.toGMTString()
        }
        else
                document.cookie = cookiename + "=" + escape(cookie_wert)
}

// Knoten ermitteln
function set_nodes()
{
        var        i

        for(i = 0; i < (eintraege.length - 1); i++)
                if(eintraege[i + 1].level > eintraege[i].level)
                {
                        eintraege[i].node        =  true
                        eintraege[i].open        =  false
                }
}

// Aufnahme eines neuen Menueeintrags
function neuer_eintrag(level, name, url, target, desc, image, image_open)
{
        this.level                = level
        this.name                = name
        this.url                = url
        this.target                = target
        this.node                = false
        this.open                = false
        this.description        = desc
        this.image                = image
        this.image_open                = image_open
}

// Eintrag vornehmen und Verzweigungsermittlung
function eintrag(level, name, url, target, desc, image, image_open)
{
        var        pos        = eintraege.length

        if(level < 1)
        {
                alert("Level-Werte bitte ab 1 anlegen!")
                return
        }

        if(arguments.length < 2)
        {
                alert("Es muessen mindestens die ersten beiden Argumente angegeben werden.")
                return
        }

        eintraege[pos]        = new neuer_eintrag(level,
                                                name,
                                                (arguments.length > 2) ? url : null,
                                                (arguments.length > 3) ? target : null,
                                                (arguments.length > 4) ? desc : null,
                                                (arguments.length > 5) ? image : null,
                                                (arguments.length > 6) ? image_open : null)
}

// Untermenue oeffnen oder schliessen
function submenue(nr)
{
        // Alle Untermenues schliessen (ausser nr)
        function close_submenues(nr)
        {
                var        i
                for(i = 0; i < eintraege.length; i++)
                        if((i != nr) && eintraege[i].node)
                                eintraege[i].open        = false
        }

        // Untermenue nr exklusiv oeffnen
        function open_submenues(nr)
        {
                function open_super_level(nr, lvl)
                {
                        if((nr == 1) || (lvl < 1))
                                return

                        var        i
                        for(i = nr - 1; i >= 0; i--)
                        {
                                if((eintraege[i].level == lvl) && eintraege[i].node)
                                {
                                        eintraege[i].open        = true
                                        open_super_level(i, lvl - 1)
                                        return
                                }
                        }
                        return
                }

                open_super_level(nr, eintraege[nr].level - 1)
        }

        eintraege[nr].open        = !eintraege[nr].open
        if((eintraege[nr].target != null) && (eintraege[nr].url != null))
                frames[eintraege[nr].target].location.href        = eintraege[nr].url
        if(eintraege[nr].open && exclusive)
        {
                close_submenues(nr)
                open_submenues(nr)
        }
        write_menue()
}

// Alle Untermenues oeffnen
function expand()
{
        var        i

        for(i = 0; i < eintraege.length; i++)
                if(eintraege[i].node)
                        eintraege[i].open        = true
        write_menue()
}

// Alle Untermenues schliessen
function collapse()
{
        var        i

        for(i = 0; i < eintraege.length; i++)
                if(eintraege[i].node)
                        eintraege[i].open        = false
        write_menue()
}

// Kommentar in der Statuszeile anzeigen
function show(comment)
{
        status        = comment
}

// Kommentar aus der Statuszeile entfernen
function hide()
{
        status        = ""
}

// Ausgabe eines Menueeintrags
function ausgabe(nr)
{
        with(self["links"].document)
        {
                var        i
                var        tag_a_anfang        = ""
                var        tag_a_ende        = ""
                var        tags_pre        = ""
                var        tags_post        = ""
                var        tag_img                = ""
                var        titel                = ""
                var        bild                = ""

                write("<tr><td>")

                // Platzhalter
                if(eintraege[nr].level > 1)
                        write("<img src=\"" + bild_leer + "\" width=\"" + String(bild_breite * (eintraege[nr].level - 1)) + "\" height=\"" + String(bild_hoehe) + "\" border=\"0\" alt=\"\">")

//                tag_a_ende        = "</a>"

                // Untermenues / normaler Eintrag
				                if(eintraege[nr].node)
                {
                        titel        = eintraege[nr].description ? eintraege[nr].description : eintraege[nr].name
                        bild        = eintraege[nr].open ?
                                        (eintraege[nr].image_open ? eintraege[nr].image_open : bild_menue_offen) :
                                        (eintraege[nr].image ? eintraege[nr].image : bild_menue_geschlossen)

                        tags_pre        = menue_pre
                        tags_post        = menue_post
                        tag_a_anfang        = "<a " +
                                                "href=\"javascript:parent.submenue(" + String(nr) + ")\" " +
                                                "onMouseOver=\"parent.show('" + titel + "'); return true\" " +
                                                "onMouseOut=\"parent.hide()\" " + ">"

                }
                else
                {
                        titel        = eintraege[nr].description ? eintraege[nr].description : eintraege[nr].name
                        bild        = eintraege[nr].image ? eintraege[nr].image : bild_eintrag

                        tag_a_anfang        = "<a " +
                                                "href=\"" + eintraege[nr].url + "\" " +
                                                "onMouseOver=\"parent.show('" + titel + "'); return true\" " +
                                                "onMouseOut=\"parent.hide()\" " +
                                                (eintraege[nr].target ? (" target=\"" + eintraege[nr].target + "\"") : "") +
                                                ">"
                }

                tag_img        = "<img " +
                                "src=\"" + bild + "\" " +
                                "width=\"" + String(bild_breite) + "\" " +
                                "height=\"" + String(bild_hoehe) + "\" " +
                                "border=\"0\" " +
                                "name=\"" + bildname + String(nr) + "\" " +
                                "alt=\"" + titel + "\"" +
                                ">"

                write(tag_img + tag_a_anfang)
                write(eintraege[nr].name + tag_a_ende)

                writeln("</a></td>\n</tr>")

        }
}

// Ausgabe aller Eintraege eines Levels und eines Untermenues
function ausgabe_eintraege(lvl, start)
{
        var        i

        with(self["links"].document)
        {
                for(i = start; i < eintraege.length; i++)
                {
                        if(eintraege[i].level < lvl)
                                return
                        if(eintraege[i].level == lvl)
                        {
                                ausgabe(i)
                                if(eintraege[i].node)
                                        if(eintraege[i].open)
                                                ausgabe_eintraege(lvl + 1, i + 1)
                        }
                }
        }
}

// Menuedokument schreiben (dynamisches Dokument erzeugen)
function write_menue()
{
        with(self["links"].document)
        {
                open("text/html", "replace")

                // Kopf
                writeln("<html>\n<head>\n<title>Men&uuml;</title>")
                writeln("<meta http-equiv=\"content-type\" content=\"text/html; charset=iso-8859-1\">")
                writeln("<style type=\"text/css\">\n<!--")
                writeln("body { margin-left:10px; background-color:#000000; }")
                writeln("A { font-size:12pt; font-family:arial,sans-serif; text-decoration:none; }")
                writeln("A:hover {color: #" + body_hover + ";}")
                writeln(".x {font-size:11pt; color:#CC3300; }")
                writeln("//-->\n</style>")
                writeln("</head>")

                // Koerper
                writeln("<body bgcolor=\"#" + body_bgcolor + "\" text=\"#" + body_text +
                                "\" link=\"#" + body_link + "\" alink=\"#" + body_alink +
                               "\" vlink=\"#" + body_vlink + "\"  >")
                write("<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\">\n")

                if(menue_titel != "")
                        writeln(menue_titel)
                write("<br><p>")
                ausgabe_eintraege(1, 0)
                writeln("</p>")
                writeln("</table>")
                if(extra)
                {
                        write("<p align=\"center\">")
                        if(!exclusive)
                                write("<a href=\"javascript:parent.expand()\" title=\"" + extra_text_expand + "\">" + " <font color=\"#CC3300\" class=\"x\"> [" + extra_text_expand + "] </font></a><br>")
                        write("<a href=\"javascript:parent.collapse()\" title=\"" + extra_text_collapse + "\">" + " <font color=\"#CC3300\" class=\"x\"> ["  + extra_text_collapse + "] </font></a></p>")
                                       }
               writeln("</body>")
                writeln("</html>")

                close()
        }

        // Menues in Cookie merken
        if(rebuild)
        {
                var        s        = ""
                var        i

                for(i = 0; i < eintraege.length; i++)
                        if(eintraege[i].node)
                                if(eintraege[i].open)
                                        s        += ((s == "") ? "" : ",") + String(i)
                write_cookie(cookie_name, s, 1000 * 60 * 60 * 24 * 92)
        }
}

// === Menuefunktionen ==

// Ausgabe des kompletten Menues
function menue()
{
        set_nodes()

        // Menues/Cookie auswerten
        if(rebuild)
        {
                var        s        = read_cookie(cookie_name)
                var        sarr        = s.split(",")
                var        i
                var        nr

                for(i = 0; i < sarr.length; i++)
                {
                        nr        = parseInt(sarr[i])
                        if(!isNaN(nr))
                                if(nr < eintraege.length)
                                        if(eintraege[nr].node)
                                                eintraege[nr].open        = true
                }
        }

        write_menue()
}

// Menue mit IDs oeffnen
function oeffne_menue_pfad(ids)
{
        set_nodes()

        var        sarr        = ids.split(",")
        var        i
        var        nr

        for(i = 0; i < sarr.length; i++)
        {
                nr        = parseInt(sarr[i])
                if(!isNaN(nr))
                        if(eintraege[nr].node)
                                eintraege[nr].open        = true
        }

        write_menue()
}

// === EOF ===

