
var smMenueTrennzeichen = "/";


var smMenueAufgeklappt  = "<IMG SRC=space.gif BORDER=0 WIDTH=10 HEIGHT=1 ALIGN=top><img border=0 src=auf.gif>"
var smMenueZugeklappt  = "<IMG SRC=space.gif BORDER=0 WIDTH=10 HEIGHT=1 ALIGN=top><img border=0 src=zu.gif>"
var smMenueEinschub  = "<IMG SRC=space.gif BORDER=0 WIDTH=10 HEIGHT=1 ALIGN=top><img border=0 src=11x11.gif>"
var smMenueEinschub2  = "<img border=0 src=11x11.gif>"
var smMenueSpace = "<img src=space.gif BORDER=0 WIDTH=5 HEIGHT=1 ALIGN=top>"

var smMenueHTMLKOPF = "<HTML><HEAD><TITLE>CONNECT</TITLE></HEAD><BODY bgcolor=white><H1>CONNECT</H1>"
var smMenueHTMLFUSS = "</BODY></HTML>"

/* ---------------------------------------------------------
// Alles weitere sind Interna
// --------------------------------------------------------- */

// Globales Menue-Objekt
smMenue = new Array();

/* ---------------------------------------------------------
// function smMenueEintrag(pfad,url)
// Erzeugt einen Menüeintrag mit 
//     pfad == "level1/level2/level3/.../levelN"
// und url ist ein URL der Seite, die beim Anklicken
// von 'levelN' geladen wird.
// ACHTUNG: level1 bis levelN-1 müssen bereits existieren!
// --------------------------------------------------------- */
function smMenueEintrag(pfad,url)
{
  // lokale Variablen
  var bezeichnung,status,vorgaenger = "";
  
  // evtl führende und abschließende Slashes von pfad entfernen:
  if (pfad.charAt(0) == smMenueTrennzeichen)
    pfad = pfad.substring(1,pfad.length);
  if (pfad.charAt(pfad.length-1) == smMenueTrennzeichen)
    pfad = pfad.substring(0,pfad.length-1);

  var letztesTrennzeichen = pfad.lastIndexOf(smMenueTrennzeichen);
  if (letztesTrennzeichen <= 0) // top-level menueeintrag 
  {
    bezeichnung = pfad;
    versteckt   = true;
    vorgaenger  = "";  // kein vorgaenger, da top-level
  }
  else
  {
    bezeichnung = pfad.substring(letztesTrennzeichen+1,pfad.length);
    versteckt   = true;
    vorgaenger  = pfad.substring(0,letztesTrennzeichen);
  }

  
  InternErzeugeMenueEintrag(smMenue,pfad,pfad,url,bezeichnung,versteckt,vorgaenger);

}


/* ---------------------------------------------------------
// function InternErzeugeMenueEintrag(menueObjekt,rest,pfad,url,bezeichnung,versteckt,vorgaenger)
// Interne Fkt. für einen Menü-Eintrag.
// Parameter:
// - menueObjekt: der Objektbezeichner der Menüebene; falls
//  ein Top-Level eintragt gemacht wird, ist 
//  menueObjekt == smMenue (globale Variable),
//  sonst menueObjekt == smMenue[l1].sub[l2]...sub
// - rest: ist der Rest des ursprünglichen Pfades; falls rest
//  keine Trennzeichen mehr enthält, ist rest == bezeichnung
// - pfad: der volle Pfad des Menüeintrages
// - url: s.o.
// - bezeichnung: Der letzte Teil des Pfades, also der 
//  eigentliche Eintrag im Menü
// - versteckt: Boolescher Wert
// - vorgaenger: pfad ohne bezeichnung
// --------------------------------------------------------- */
function InternErzeugeMenueEintrag(menueObjekt,rest,pfad,url,bezeichnung,versteckt,vorgaenger)
{
  if (rest.indexOf(smMenueTrennzeichen) == -1)
    menueObjekt[rest] = new InternMenueEintrag(pfad,url,bezeichnung,versteckt,vorgaenger);
  else
  {
          var menueLevel = rest.substring(0,rest.indexOf(smMenueTrennzeichen));
    var neuerRest  = rest.substring(rest.indexOf(smMenueTrennzeichen)+1,rest.length);  
    InternErzeugeMenueEintrag(menueObjekt[menueLevel].sub,neuerRest,pfad,url,bezeichnung,versteckt,vorgaenger);
  }
}

/* ---------------------------------------------------------
// function InternMenueEintrag(pfad,url,bezeichnung,versteckt,vorgaenger)
// Interner Objekt-Konstruktor
// --------------------------------------------------------- */
function InternMenueEintrag(pfad,url,bezeichnung,versteckt,vorgaenger)
{
  this.pfad   = pfad;
  this.url  = url;
  this.bez  = bezeichnung;
  this.hidden  = versteckt;
  this.parent  = vorgaenger;
  this.sub  = new Array();
}

/* ---------------------------------------------------------
// function InternNaechstenLevelAusgeben(M,indent)
// Interne Ausgabefunktion für einen Menülevel.
// Parameter:
// - M: Menüobjekt
// - indent: Integer, der die Einrücktiefe angibt
// --------------------------------------------------------- */
function InternNaechstenLevelAusgeben(M,indent)
{
  var indentString = "";
  for (i in M) // for (i=0; i < M.length; i++)
  {
    indentString = "";
    for (j = indent; j > 0; j--)
         indentString += smMenueEinschub2+" ";
    //self.baum.document.writeln(indentString,M[i].pfad,M[i].url,M[i].bez,M[i].hidden,M[i].parent);

    var statuswechsel=smMenueEinschub+" ";

    var laenge=0;
    for (j in M[i].sub)
      ++laenge;   // sollte eigentlich gleich M[i].sub.length sein, ist es aber nicht!?
    if (laenge > 0)   // => es gibt submenue-eintrage
      if (! M[i].hidden)  // nicht versteckt
      {
      statuswechsel =  "<a href=\"javascript:parent.submenueVerstecken('"+M[i].pfad+"');";
      statuswechsel += "parent.smMenueAusgeben();\" onClick=parent.frames[2].location.href='"+M[i].url+"';>"+smMenueAufgeklappt+smMenueSpace+ M[i].bez+"</a> ";         // ÄNDERUNG
      }
      else
      {
           if (M[i].pfad == "Web Stories")
           {
                statuswechsel =  "<a href=\"javascript:parent.submenueZeigen('"+M[i].pfad+"');parent.submenueVerstecken('Contact');";
                statuswechsel += "parent.smMenueAusgeben();\" onClick=parent.frames[2].location.href='"+M[i].url+"';>"+smMenueZugeklappt+smMenueSpace+ M[i].bez+"</a> ";          // ÄNDERUNG
           }
           else
           {
                statuswechsel =  "<a href=\"javascript:parent.submenueZeigen('"+M[i].pfad+"');parent.submenueVerstecken('Web Stories');";
                statuswechsel += "parent.smMenueAusgeben();\" onClick=parent.frames[2].location.href='"+M[i].url+"';>"+smMenueZugeklappt+smMenueSpace+ M[i].bez+"</a> ";          // ÄNDERUNG
           }
      }

    if (M[i].url != "")
    {
           var anchorStart = "<a target=baumausgabe href='"+M[i].url+"'>";                
    }
    else
      var anchorStart = "";
    var anchorEnd = "</a>";

    if (laenge == 0)
    {
    self.baum.document.writeln(indentString,statuswechsel,anchorStart,M[i].bez,anchorEnd,"<BR>");
    }
    else
    {
    self.baum.document.writeln(indentString,statuswechsel,anchorStart,anchorEnd,"<BR>");
    }

    if (laenge > 0 && (! M[i].hidden)) // zu 'laenge' s.o.
      InternNaechstenLevelAusgeben(M[i].sub,indent+1);

  }
}

/* ---------------------------------------------------------
// function smMenueAusgeben()
// Ausgabefunktion für das gesamte Menü.
// Arbeitet mit globalem Objekt smMenue
// --------------------------------------------------------- */
function smMenueAusgeben()
{
  self.baum.document.open();
  self.baum.document.writeln(smMenueHTMLKOPF); 
  InternNaechstenLevelAusgeben(smMenue,0);
  self.baum.document.writeln(smMenueHTMLFUSS);
  self.baum.document.close();
}

/* ---------------------------------------------------------
// function InternVerstecken(menueObjekt,restpfad,zustand)
// Interne Funktion zum Setzten der hidden-Eigenschaft.
// --------------------------------------------------------- */
function InternVerstecken(menueObjekt,restpfad,zustand)
{
  if (restpfad.indexOf(smMenueTrennzeichen) == -1)
    menueObjekt[restpfad].hidden = zustand;
  else
  {
          var menueLevel = restpfad.substring(0,restpfad.indexOf(smMenueTrennzeichen));
    var neuerRest  = restpfad.substring(restpfad.indexOf(smMenueTrennzeichen)+1,restpfad.length);  
    InternVerstecken(menueObjekt[menueLevel].sub,neuerRest,zustand);
  }
}


/* ---------------------------------------------------------
// submenueVerstecken(pfad)
// Versteckt ein Submenü, das über den vollen Pfad
// spezifiziert wird.
// Analog: function submenueZeigen(pfad)
// --------------------------------------------------------- */
function submenueVerstecken(pfad)
{
  InternVerstecken(smMenue,pfad,true);
  //smMenueAusgeben();
}
function submenueZeigen(pfad)
{
  InternVerstecken(smMenue,pfad,false);
  //smMenueAusgeben();
}

function link_change()
{
}
