Enrico: Denkblockade beim Einbinden weiterer Untermenüs

Beitrag lesen

Hallo,

ich bin kurz vorm Verzweifeln, weil ich gerade eine gewaltige Denkblockade habe.

Ich möchte anhand von Arrays unser Menü aufbauen. Die Anzeige des aktuell ausgewählten Menüpunktes und Zuklappen aller anderen Untermenüs, sofern vorhanden, spielt für mich jetzt erst mal keine Rolle.

Ich möchte nur die komplette Struktur angezeigt bekommen:

  
function MenueAufbauen()  
{  
   var Hauptmenue = ["Startseite", "Wir über uns", "Rüstzeug", "Waffen", "Gewandung", "Schmuck", "Lagerleben", "Bastelbedarf", "Sonstiges", "Sonderangebote", "Anfrage", "Newsletter", "Administration", "AGB / Impressum"];  
  
   var Untermenue = {};  
       Untermenue["WirUeberUns"] = ["Wir über uns", "Termine", "Fotos"];  
       Untermenue["Ruestzeug"]   = ["Aus Stoff", "Aus Leder", "Aus Metall"];  
/*  
       Untermenue["Ruestzeug"]["AusStoff"] = ["Für den Kopf", "Für den Oberkörper", "Für die Arme", "Für die Beine", "Sonstiges"];  
       Untermenue["Ruestzeug"]["AusLeder"] = ["Für den Kopf", "Für den Oberkörper", "Für die Arme", "Für die Beine", "Sonstiges"];  
       Untermenue["Ruestzeug"]["AusMetall"] = ["Für den Kopf", "Für den Oberkörper", "Für die Arme", "Für die Beine", "Sonstiges"];  
*/  
       Untermenue["Waffen"]       = ["Speere", "Hämmer", "Äxte", "Schwerter", "Messer", "Saxe", "Schilde", "Sonstiges"];  
       Untermenue["Gewandung"]    = ["Mützen", "Tuniken", "Hosen", "Mäntel", "Umhänge", "Sonstiges"];  
       Untermenue["Schmuck"]      = ["Mjöllnir", "Aus Bernstein", "Fibeln", "Sonstiges"];  
       Untermenue["Lagerleben"]   = ["Licht / Feuer", "Mobiliar", "Sonstiges"];  
       Untermenue["Bastelbedarf"] = ["Leder", "Stoffe", "Schließen", "Knebel", "Vorgefertigtes", "Sonstiges"];  
  
   var Menue = "";  
   var l = Hauptmenue.length;  
  
   for (var i in Hauptmenue)  
   {  
      Menue += '<div class="Button">' + Hauptmenue[i] + '</div>';  
  
      if (i < l - 1)  
         Menue += '<div class="ButtonTeiler"></div>';  
  
      var Menuepunkt = TextBereinigen(Hauptmenue[i]);  
  
      if (typeof Untermenue[Menuepunkt] !== "undefined")  
      {  
         var l2 = Untermenue[Menuepunkt].length;  
  
         for (var j in Untermenue[Menuepunkt])  
         {  
            Menue += '<div class="Button">' + Untermenue[Menuepunkt][j] + "</div>";  
  
            if (j < l2 - 1)  
               Menue += '<div class="ButtonTeilerUntermenue"></div>';  
            else  
               Menue += '<div class="ButtonTeiler"></div>';  
         }  
      }  
   }  
  
   return Menue;  
}  
  
function TextBereinigen(Text)  
{  
   if (Text.indexOf(" ") !== -1)  
   {  
      var Worter = Text.split(" ");  
  
      var Text = "";  
  
      for (var i in Worter)  
      {  
         Worter[i] = Worter[i].substr(0, 1).toUpperCase() + Worter[i].substr(1);  
  
         Text = Text.concat(Worter[i]);  
      }  
   }  
  
   Text = Text.str_replace(["Ä", "ä", "Ö", "ö", "Ü", "ü", "ß", "/"], ["Ae", "ae", "Oe", "oe", "Ue", "ue", "ss", ""]);  
  
   return Text;  
}  
  
String.prototype.str_replace = function(SuchenNach, ErsetzenMit)  
{  
   var Text = this;  
   var SuchenNach  = (typeof SuchenNach  == "string") ? [SuchenNach]  : SuchenNach;  
   var ErsetzenMit = (typeof ErsetzenMit == "string") ? [ErsetzenMit] : ErsetzenMit;  
  
   for (var i in SuchenNach)  
      Text = Text.replace (new RegExp (SuchenNach[i]), (typeof ErsetzenMit[i]!== "undefined") ? ErsetzenMit[i] : "");  
  
   return Text;  
}  
  
function isArray(o)  
{  
   if ((o.length !== undefined && o[0] !== undefined) || (o.length === 0 && o[0] === undefined))  
      return true;  
   else  
      return false;  
}  

Es funktioniert auch alles einwandfrei, nur hänge ich gerade, wie ich die auskommentierten Arrays zum Menüpunkt "Ruestzeug" einbaue und je mehr Sekunden, Minuten ins Land verstreichen, desto weniger Plan habe ich.

Ich möchte vom Ablauf her folgendes umsetzen:

  
Rüstzeug  
	Aus Stoff  
	---------  
		Für den Kopf  
		---  
		Für den Oberkörper  
		---  
		Für die Arme  
		---  
		Für die Beine  
		---  
		Sonstiges  
		---------  
	Aus Leder  
	---------  
		Für den Kopf  
		---  
		Für den Oberkörper  
		---  
		Für die Arme  
		---  
		Für die Beine  
		---  
		Sonstiges  
		---------  
	Aus Metall  
	---------  
		Für den Kopf  
		---  
		Für den Oberkörper  
		---  
		Für die Arme  
		---  
		Für die Beine  
		---  
		Sonstiges  
		---------  

Ich raffe einfach nicht, wie ich dies umsetzen muss.

Könnt ihr mir helfen?

Danke und Gruß,
Enrico