var tagname = null; // Name des aktuellen Tags
var menuueberschrift = "H3";
var menupos = 0; // Position bei der Überschrift
var menuactive = 0; // Menu bleibt offen
var name = null; // Name der Überschrift
var aryMenu = new Array();
var pos = 0; // Laufnummer für das Array
var url = document.URL;
function parser(knoten, typ, menu){
	if(knoten==-1)
		knoten = document.getElementById("nav");
	switch (knoten.nodeType) {
        case 3 :
            var knotenwert = knoten.nodeValue;
            if(knotenwert.search(/\n|\r/) == -1){ // Liefert -1 falls der Ausdruck nicht passt
				if(tagname == "A"){	
					switch (typ){
						case "read":			
							// erstes Einlesen
							if(menupos == 1){
								name = escape(knotenwert);
								if(name == escape(menu)) // aktuelles Menu bleiben lassen
									menuactive = 1;
								else
									menuactive = 0;
								pos = 0;
								menupos = 0;
							}else{
								if(pos == 0) // nur bei einer neuen Überschrift ein neues Array erstellen
									aryMenu[name] = new Array();
								aryMenu[name][pos] = knotenwert;
								if(menuactive == 0) // aktuelles Menü?
									knoten.data = ""; // Untermenu nicht anzeigen
								pos++;
							}
						break;
						case "show":
							// Anzeigen
							if(menupos == 0){
								if(menuactive == 0){
									knoten.data = aryMenu[name][pos];
								}
								pos++;
							}else{
								name = escape(knotenwert);
								if(name == escape(menu)){ // aktuelles Menu bleiben lassen
									menuactive = 1;
								}
								else
									menuactive = 0;
								pos = 0;
								menupos = 0;
							}
						break;
						case "hide":
							// Verstecken
							if(menupos == 0){
								if(menuactive == 0)
									knoten.data = ""; // Untermenu nicht anzeigen
								pos++;
							}else{
								name = escape(knotenwert);
								if(name == escape(menu)) // aktuelles Menu bleiben lassen
									menuactive = 1;
								else
									menuactive = 0;
								pos = 0;
								menupos = 0;
							}
						break;
					}
				}
			}
            break;
    }
	if(knoten.hasChildNodes()){
        for (var i = 0; i < knoten.childNodes.length; i++) {
			knotenNeu = knoten.childNodes[i];
			tagname = knoten.nodeName;
			if(tagname == menuueberschrift){
				menupos = 1;
			}
			parser(knotenNeu, typ, menu);
		}
	}
}
