geleseneEinklappen_start = function(pElement) { try {
   while (pElement != null) {
      if (pElement.nodeName.toLowerCase() == "ul") {
         var element = pElement.firstChild;
         while (element != null) {
            if (element.nodeName.toLowerCase() == "li") if (geleseneEinklappen_li(element)) einklappen(element);
            element = element.nextSibling;
         }
      }
      pElement = pElement.nextSibling;
   }
} catch (e) {alert("Ihr Browser kann die gelesenen Verweise nicht zusammenklappen, da er wichtige Standards nicht unterstützt. Falls Ihnen diese Funktion wichtig ist, nutzen Sie bitte einen besseren Browser z.B. Firefox oder Opera.")}  }

geleseneEinklappen_li = function(element_li) {
   var cElement = element_li.firstChild;
   while (cElement != null) {
      if (cElement.nodeName.toLowerCase() == "ul") {
         if (!geleseneEinklappen_ul(cElement)) return false;
      }
      cElement = cElement.nextSibling
   }
   //--> es gibt keine Nachfolger oder alle sind besucht!
   if (besuchterLink(element_li)) return true;
   else einklappen(element_li);
   return false;
}

function besuchterLink(element_li) {
   var element_a = element_li.firstChild;
   while (element_a.nodeName.toLowerCase() != "a") element_a = element_a.nextSibling;
   return (window.getComputedStyle(document.getElementById("farbVergleich"),"").color != window.getComputedStyle(element_a,"").color);
}

geleseneEinklappen_ul = function(element_ul) {//Nachfolger sind alle besucht, wenn Rückgabewert true;
   var cElement = element_ul.firstChild;
   var li_array = [];
   var all_visited = true;
   while (cElement != null) {
      if (cElement.nodeName.toLowerCase() == "li") {
         if (geleseneEinklappen_li(cElement)) li_array.unshift(cElement);
         else all_visited = false;
      }
      cElement = cElement.nextSibling
   }
   if (all_visited) return true;
   else for (i=0;i<li_array.length;i++) einklappen(li_array[i])
   return false;
}

allesEinklappen = function(id) { try {
   var pElement = document.getElementById(id);
   while (pElement.nodeName.toLowerCase() != "ul") {
      pElement = pElement.nextSibling;
      if (pElement == null) return;
   }
   var element = pElement.firstChild;
   while (element != null) {
      if (element.nodeName.toLowerCase() == "li") einklappen(element);
      element = element.nextSibling;
   }
} catch (e) {alert("Ihr Browser kann die Verweisstruktur nicht zusammenklappen, da er wichtige Standards nicht unterstützt. Falls Ihnen diese Funktion wichtig ist, nutzen Sie bitte einen besseren Browser z.B. Firefox oder Opera.")}  }

einklappen = function(element) {
   if (arguments[1] != null) stopPro(arguments[1]);
   var cElement = element.firstChild;
   var ulTrue = false;
   while (cElement != null) {
      if (cElement.nodeName.toLowerCase() == "ul") {
         ulTrue = true;
         cElement.setAttribute("class","unsichtbar");
         if (window.getComputedStyle(cElement,"").display != "none") throw("CSS-Error: Class Attribute with no effekt.");
      }
      cElement = cElement.nextSibling;
   }
   if (ulTrue) {
      element.setAttribute("onclick","ausklappen(this,event)");
      element.setAttribute("class","plus");
   } else element.setAttribute("class","blatt");
}

ausklappen = function(element) {
   if (arguments[1] != null) stopPro(arguments[1]);
   element.setAttribute("onclick","einklappen(this,event)");
   element.setAttribute("class","minus");
   var cElement = element.firstChild;
   while (cElement != null) {
      if (cElement.nodeName.toLowerCase() == "ul") cElement.removeAttribute("class");
      cElement = cElement.nextSibling;
   }
}

stopPro = function(evt) { 
   evt.stopPropagation();
}