/* created by christoph rammensee - novocron technologies - neu-ulm - germany
copyright 2003 by novocron technologies - theo widmann - neu-ulm - germany */

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

var menue_pre    = "<span class=\"menuordner\">"
var menue_pre_active    = "<span class=\"menuordnerAktiv\">"
var menue_post   = "</span>"
var eintrag_pre  = "<span class=\"menueintraege\">"
var eintrag_pre_active  = "<span class=\"menueintraegeAktiv\">"
var eintrag_post = "</span>"

var prevClicked = "0"

function set_nodes()
{
        var        i
        for(i = 0; i < (eintraege.length - 1); i++)
        {
//                if(i==0)eintraege[i].active=true;
                if(eintraege[i + 1].level > eintraege[i].level)
                {
                    eintraege[i].node        =  true
                    if (eintraege[i].level < startopenlevel)
                    {
                        eintraege[i].open=true;
                    }
                    else
                    {
                        eintraege[i].open=false;
                    }
                }
        }

}

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.active           = false
        this.description      = desc
        this.image            = image
        this.image_open       = image_open
}

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)
}

function submenue(nr)
{
        function close_submenues(nr)
        {
                var        i
                for(i = 0; i < eintraege.length; i++)
                        if((i != nr) && eintraege[i].node)
                                eintraege[i].open        = false
        }

        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].open && exclusive)
        {
                close_submenues(nr)
                open_submenues(nr)
        }
        write_menue()
}

function changetarget(nr)
{
        if((eintraege[nr].target != null) && (eintraege[nr].url != null))
        {
            if (prevClicked != "")
            {
             eintraege[prevClicked].active=false
            }
            prevClicked = String(nr)
            eintraege[nr].active=true
            frames[eintraege[nr].target].location.href = eintraege[nr].url;
            write_menue()
        }

}

function expand()
{
        var        i

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

function collapse()
{
        var        i

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

function show(comment)
{
        status        = comment
}

function hide()
{
        status        = ""
}

function ausgabe(nr)
{
 var        i
 var        tag_a_img       = ""
 var        tag_a_text      = ""
 var        tag_a_anfang    = ""
 var        tag_a_ende      = ""
 var        tags_pre        = ""
 var        tags_post       = ""
 var        tag_img         = ""
 var        titel           = ""
 var        bild            = ""

                outstring += "<TABLE CELLSPACING=\"0\" CELLPADDING=\"0\" BORDER=\"0\">\n<TR ALIGN=\"LEFT\" VALIGN=\"TOP\">\n<TD>"

                if(eintraege[nr].level > 1)
                {
                    outstring += "<IMG SRC=\"" + bild_leer + "\" WIDTH=\"" + String(bild_breite * (eintraege[nr].level - 1)) + "\" HEIGHT=\"" + String(bild_hoehe) + "\" BORDER=\"0\" ALT=\"\">"
                }


                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)

                        if(eintraege[nr].active == false)
                        {
                           tags_pre        = menue_pre
                           tags_post        = menue_post
                        }
                        else
                        {
                           tags_pre        = menue_pre_active
                           tags_post        = menue_post
                        }
                        tag_a_img        = "<A " +
                                                "HREF=\"javascript:submenue(" + String(nr) + ")\" " +
                                                "onMouseOver=\"javascript:show('" + titel + "'); return true\" " +
                                                "onMouseOut=\"javascript:hide()\" " +
                                                ">"
                         if ((eintraege[nr].url != "") && (eintraege[nr].active == false) )
                         {
                          tag_a_text        = "<A " +
                                                "HREF=\"javascript:changetarget(" + String(nr) + ")\" " +
                                                "onMouseOver=\"javascript:show('" + titel + "'); return true\" " +
                                                "onMouseOut=\"javascript:hide()\" " +
                                                ">"
                          tag_a_ende        = "</A>"
                         }

                }
                else
                {
                        titel        = eintraege[nr].description ? eintraege[nr].description : eintraege[nr].name
                        bild        = eintraege[nr].image ? eintraege[nr].image : bild_eintrag
                        if(eintraege[nr].active == false)
                        {
                           tags_pre        = eintrag_pre
                           tags_post        = eintrag_post
                        }
                        else
                        {
                           tags_pre        = eintrag_pre_active
                           tags_post        = eintrag_post
                        }
                        if ((eintraege[nr].url != "") && (eintraege[nr].active == false) )
                        {
                         tag_a_anfang        = "<A " +
                                                "HREF=\"javascript:changetarget(" + String(nr) + ")\" " +
                                                "onMouseOver=\"javascript:show('" + titel + "'); return true\" " +
                                                "onMouseOut=\"javascript:hide()\" " +
                                                ">"
                         tag_a_ende        = "</A>"
                        }
                }

                tag_img        = "<IMG " +
                                "SRC=\"" + bild + "\" " +
                                "WIDTH=\"" + String(bild_breite) + "\" " +
                                "HEIGHT=\"" + String(bild_hoehe) + "\" " +
                                "BORDER=\"0\" " +
                                "NAME=\"" + bildname + String(nr) + "\" " +
                                ">"

                outstring += tag_a_anfang + tag_a_img + tag_img + tag_a_ende
                outstring += "</TD>\n<TD>"
                outstring += tag_a_anfang + tag_a_text + tags_pre + eintraege[nr].name + tags_post + tag_a_ende

                outstring += "</TD>\n</TR>\n</TABLE>"
}

function ausgabe_eintraege(lvl, start)
{
        var        i

                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)
                        }
                }
}

function write_menue()
{
         outstring="";
         ausgabe_eintraege(1, 0)
         document.getElementById(frame_name).innerHTML=outstring;
}


function menue()
{
        set_nodes()
        write_menue()
}


