var matStart = 4;   // ??????????
var matEnde = 140;

// helper function; expands node and all parent nodes
function exp(node) {
   var t = top.LinkesFenster.tree0;
   // node = node.getParent();
   while (node) {
      // treeView: Reference to the tree object this node belongs to.
      if (node.hasChildren() && !node.expanded) t.expandNode(node.index, false, false);
      node = node.getParent();
   }
}

function blaettern(mode) {
   if (!top.LinkesFenster) return;

   // var t = top.LinkesFenster.tree0;
   var t = top.LinkesFenster.CTrees.tree0;
   // z.Zt. ausgewählter Knoten:
   nodeNr = (t.getSelectedNode()) ? eval(t.getSelectedNode().index) : eval(top.nodeNr);

   switch (mode) {
   case 0:  // Anfang (zur ersten Material-Seite)
      nodeNr = 2;
      // wenn kein Endknoten:              (t.Nodes[nodeNr].text.substring(0, 4) != "</A>")
      if (t.Nodes[nodeNr].hasChildren()) t.expandNode(nodeNr, false, true);
      while ((nodeNr < t.Nodes.length) && t.Nodes[nodeNr].hasChildren()) {
         nodeNr += 1;
         t.expandNode(nodeNr, false, true);
      }
      matStart = nodeNr;
      break;

   case 1:  // zurück
      if (nodeNr > 0) nodeNr -= 1;
      // wenn kein Endknoten:              (t.Nodes[nodeNr].text.substring(0, 4) != "</A>")
      while ((nodeNr > 0) && t.Nodes[nodeNr] && t.Nodes[nodeNr].hasChildren()) {
         nodeNr -= 1;
      }
      // exp(t.Nodes[nodeNr]);
      t.ensureVisible(nodeNr);
      break;

   case 2:  // vor
      if (nodeNr < t.Nodes.length) nodeNr += 1;
      // wenn kein Endknoten:              (t.Nodes[nodeNr].text.substring(0, 4) != "</A>")
      if (t.Nodes[nodeNr].hasChildren()) t.expandNode(nodeNr, false, true);
      while ((nodeNr < t.Nodes.length) && t.Nodes[nodeNr].hasChildren()) {
         nodeNr += 1;
         t.expandNode(nodeNr, false, true);
      }
      break;

   case 3:  // Ende (zur letzten Material-Seite)
      nodeNr = t.Nodes.length - 2;
      matEnde = nodeNr;
      /*
      nodeNr = t.Nodes.length - 1;
      alert(t.Nodes[nodeNr].level());
      while ((nodeNr > 0) && t.Nodes[nodeNr] && t.Nodes[nodeNr].level() < 1) {
         nodeNr -= 1;
      }
      */
      // exp(t.Nodes[nodeNr]);
      t.ensureVisible(nodeNr);
      break;
   }

   t.selectNode(nodeNr);
   if (t.Nodes[nodeNr].text.substring(0, 4) != "</A>") {
      top.HauptFenster.document.location.href = t.Nodes[nodeNr].url;  // getUrl()  getCaption()
   }
   top.nodeNr = nodeNr;

   switch (top.nodeNr) {
   case 0: // auf der ersten Seite:
      t.collapseAll(true);
      document.getElementById("anfang").setAttribute("alt", "zur ersten Material-Seite [ Alt ] + [ a ] ");
      document.getElementById("zurueck").setAttribute("alt", "(erste Seite)");
      document.getElementById("vor").setAttribute("alt", "vorwärts blättern [ Alt ] + [ + ] ");
      document.getElementById("ende").setAttribute("alt", "zur letzten Material-Seite [ Alt ] + [ o ] ");
      document.getElementById("anfang").setAttribute("title", "zur ersten Material-Seite [ Alt ] + [ a ] ");
      document.getElementById("zurueck").setAttribute("title", "(erste Seite)");
      document.getElementById("vor").setAttribute("title", "vorwärts blättern [ Alt ] + [ + ] ");
      document.getElementById("ende").setAttribute("title", "zur letzten Material-Seite [ Alt ] + [ o ] ");
      break;
   case matStart: // auf der ersten Material-Seite:
      document.getElementById("anfang").setAttribute("alt", "(erste Material-Seite)");
      document.getElementById("zurueck").setAttribute("alt", "rückwärts blättern [ Alt ] + [ - ] ");
      document.getElementById("vor").setAttribute("alt", "vorwärts blättern [ Alt ] + [ + ] ");
      document.getElementById("ende").setAttribute("alt", "zur letzten Material-Seite [ Alt ] + [ o ] ");
      document.getElementById("anfang").setAttribute("title", "(erste Material-Seite)");
      document.getElementById("zurueck").setAttribute("title", "rückwärts blättern [ Alt ] + [ - ] ");
      document.getElementById("vor").setAttribute("title", "vorwärts blättern [ Alt ] + [ + ] ");
      document.getElementById("ende").setAttribute("title", "zur letzten Material-Seite [ Alt ] + [ o ] ");
      break;
   case matEnde: // auf der letzten Material-Seite:
      document.getElementById("anfang").setAttribute("alt", "zur ersten Material-Seite [ Alt ] + [ a ] ");
      document.getElementById("zurueck").setAttribute("alt", "rückwärts blättern [ Alt ] + [ - ] ");
      document.getElementById("vor").setAttribute("alt", "vorwärts blättern [ Alt ] + [ + ] ");
      document.getElementById("ende").setAttribute("alt", "(letzte Material-Seite)");
      document.getElementById("anfang").setAttribute("title", "zur ersten Material-Seite [ Alt ] + [ a ] ");
      document.getElementById("zurueck").setAttribute("title", "rückwärts blättern [ Alt ] + [ - ] ");
      document.getElementById("vor").setAttribute("title", "vorwärts blättern [ Alt ] + [ + ] ");
      document.getElementById("ende").setAttribute("title", "(letzte Material-Seite)");
      break;

   // case > matEnde:
      // t.collapseAll(true);

   case (t.Nodes.length - 1): // auf der letzten Seite:
      t.collapseAll(true);
      document.getElementById("anfang").setAttribute("alt", "zur ersten Material-Seite [ Alt ] + [ a ] ");
      document.getElementById("zurueck").setAttribute("alt", "rückwärts blättern [ Alt ] + [ - ] ");
      document.getElementById("vor").setAttribute("alt", "(letzte Seite)");
      document.getElementById("ende").setAttribute("alt", "zur letzten Material-Seite [ Alt ] + [ o ] ");
      document.getElementById("anfang").setAttribute("title", "zur ersten Material-Seite [ Alt ] + [ a ] ");
      document.getElementById("zurueck").setAttribute("title", "rückwärts blättern [ Alt ] + [ - ] ");
      document.getElementById("vor").setAttribute("title", "(letzte Seite)");
      document.getElementById("ende").setAttribute("title", "zur letzten Material-Seite [ Alt ] + [ o ] ");
      break;

   case (t.Nodes.length - 2):
      t.collapseAll(true);
      break;

   default: // auf bel. anderer Seite:
      document.getElementById("anfang").setAttribute("alt", "zur ersten Material-Seite [ Alt ] + [ a ] ");
      document.getElementById("zurueck").setAttribute("alt", "rückwärts blättern [ Alt ] + [ - ] ");
      document.getElementById("vor").setAttribute("alt", "vorwärts blättern [ Alt ] + [ + ] ");
      document.getElementById("ende").setAttribute("alt", "zur letzten Material-Seite [ Alt ] + [ o ] ");
      document.getElementById("anfang").setAttribute("title", "zur ersten Material-Seite [ Alt ] + [ a ] ");
      document.getElementById("zurueck").setAttribute("title", "rückwärts blättern [ Alt ] + [ - ] ");
      document.getElementById("vor").setAttribute("title", "vorwärts blättern [ Alt ] + [ + ] ");
      document.getElementById("ende").setAttribute("title", "zur letzten Material-Seite [ Alt ] + [ o ] ");
   }
}

function ImpressPopup() {
   // if(ImpressWin.closed == true) alert("Fenster wurde geschlossen");
   ImpressWin = window.open("../Material/Einleitung/impressum.html", "ImpressFenster", "resizable=yes, scrollbars=yes,  dependent='yes', width=400, height=500");
   if (ImpressWin.opener == null) ImpressWin.opener = self;
   Impress = true;
   ImpressWin.focus();
}

function InfoPopup() {
   // if(InfoWin.closed == true) alert("Fenster wurde geschlossen");
   InfoWin = window.open("../Material/Einleitung/information.html", "InfoFenster", "resizable=yes, scrollbars=yes,  dependent='yes', width=540, height=600");
   if (InfoWin.opener == null) InfoWin.opener = self;
   Info = true; // fenster-globale Variable
   InfoWin.focus();
}

function DisclaimPopup() {
   // if(InfoWin.closed == true) alert("Fenster wurde geschlossen");
   DisclaimWin = window.open("../Material/Einleitung/disclaimer.html", "DisclaimFenster", "resizable=yes, scrollbars=yes,  dependent='yes', width=540, height=615");
   if (DisclaimWin.opener == null) InfoWin.opener = self;
   Disclaim = true; // fenster-globale Variable
   DisclaimWin.focus();
}
