function umschalten(id,grafik,flag,klappe,ngraf,link,bereich,regname,zustand) {
  var grafik_id="";
  var link_id="";
  var oElement,oSrc;

  if (id != "") {
    grafik_id=grafik + id;
    link_id=link + id;
    if (klappe==1) { /* zuklappen */
      if (ngraf==1) {
        document.getElementById(id).style.display = "none";
      }
      if (flag==1) {
        if (document.getElementById && (oElement = document.getElementById(grafik_id)) && (oSrc = oElement.src)) {
          document.getElementById(grafik_id).src='/images/layout/plus_o_blau.gif';
        }
        if (document.getElementById && (oElement = document.getElementById(link_id)) && (oSrc = oElement.href)) {
          wert = document.getElementById(link_id).href;
          nwert = wert.replace(/0'\)/g, "1')");
          document.getElementById(link_id).href = nwert;
        }
      }
    } else if (klappe==2) { /* aufklappen */
      document.getElementById(id).style.display = "";
      if (flag==1) {
        if (document.getElementById && (oElement = document.getElementById(grafik_id)) && (oSrc = oElement.src)) {
          document.getElementById(grafik_id).src='/images/layout/minus_o_blau.gif';
        }
        if (document.getElementById && (oElement = document.getElementById(link_id)) && (oSrc = oElement.href)) {
          wert = document.getElementById(link_id).href;
          nwert = wert.replace(/1'\)/g, "0')");
          document.getElementById(link_id).href = nwert;
        }
      }
    } else {
      if (zustand == 0) {
        if (flag==1) {
          if (document.getElementById && (oElement = document.getElementById(grafik)) && (oSrc = oElement.src)) {
            document.getElementById(grafik).src = '/images/layout/plus_o_blau.gif';
          }
          if (document.getElementById && (oElement = document.getElementById(link)) && (oSrc = oElement.href)) {
            wert = document.getElementById(link).href;
            nwert = wert.replace(/0'\)/g, "1')");
            document.getElementById(link).href = nwert;
          }
        }
        document.getElementById(id).style.display = "none";
      } else {
        if (flag==1) {
          if (document.getElementById && (oElement = document.getElementById(grafik)) && (oSrc = oElement.src)) {
            document.getElementById(grafik).src = '/images/layout/minus_o_blau.gif';
          }
          if (document.getElementById && (oElement = document.getElementById(link)) && (oSrc = oElement.href)) {
            wert = document.getElementById(link).href;
            nwert = wert.replace(/1'\)/g, "0')"); 
            document.getElementById(link).href = nwert;
          }
        }
        document.getElementById(id).style.display = "";
      }
    }
  }
}

function aufklappen(bereich,grafik,flag,klappe,link) {
  var regname = ".*";
  var ipvwerte = document.getElementById(bereich);
  var tr = ipvwerte.getElementsByTagName("tr");
  var anzahl = tr.length;
  var suche = new RegExp(regname,"");
  while(anzahl-->0) {
    if (tr[anzahl].id != "") {
      erg = suche.test(tr[anzahl].id);
      if (erg) {
        umschalten(tr[anzahl].id,grafik,flag,klappe,1,link,bereich,"_",1);
      }
    }
  }
}

function zuklappen(bereich,grafik,flag,klappe,link) {
  var regname = ".*";
  var ipvwerte = document.getElementById(bereich);
  var tr = ipvwerte.getElementsByTagName("tr");
  var anzahl = tr.length;
  var suche = new RegExp(regname,"");
  while(anzahl-->0) {
    if (tr[anzahl].id != "") {
      erg = suche.test(tr[anzahl].id);
      if (erg) {
        if (tr[anzahl].id.match(/_/gi)) {
          umschalten(tr[anzahl].id,grafik,flag,klappe,1,link,bereich,"_",0);        
        } else {
          umschalten(tr[anzahl].id,grafik,flag,klappe,2,link,bereich,"_",0);
        }
      }
    }
  }
}

function anzeigen(bereich,regname,grafik,flag,klappe,link,weiter,letzter,w_id,zustand) {
  var laenge = 0;
  var i = 0;
  var j = 0;
  var k = 0;
  var count = 0;
  var regneu = "";
  var linkneu = "";
  var grafikneu = "";

  var ipvwerte = document.getElementById(bereich);
  var tr = ipvwerte.getElementsByTagName("tr");
  var anzahl = tr.length;
  if (zustand == "0") {
    laenge = regname.length;
    for (i=0;i<laenge;i++) {
      if (regname.charAt(i) == "_") {
        j = i;
        break;
      }
    }
    regname_neu = regname.slice(j, laenge);
    regneu = '.*'.concat(regname_neu);
    laenge = grafik.length;
    for (i=0;i<laenge;i++) {
      if (grafik.charAt(i) == "_") {
        j = i;
        break;
      }
    }
    grafikneu = grafik.slice(0, j);
    laenge = link.length;
    for (i=0;i<laenge;i++) {
      if (link.charAt(i) == "_") {
        j = i;
        break;
      }
    }
    linkneu = link.slice(0, j);
  } else {
    regneu = regname;
  }
  k = 0;
  var suche = new RegExp(regneu,"");
    while(++k < anzahl) {
    if (tr[k].id != "") {
      erg = suche.test(tr[k].id);
      if (erg) {
        if (zustand == 0) {
          laenge = tr[k].id.length;
          for (i=0;i<laenge;i++) {
            if (tr[k].id.charAt(i) == "_") {
              j = i;
              break;
            }
          }
          id = tr[k].id.slice(j, laenge);
          grafik = grafikneu + id;
          link = linkneu + id;
        }
        ok = 1;
        if ((letzter>0) && (zustand != 0)) {
          if (count > weiter) {
            ok = 0;
          }
          count++;
        }
        if (ok) {
          umschalten(tr[k].id,grafik,flag,klappe,1,link,bereich,regname,zustand);
        }
      }
    }
  }
  if ((w_id != undefined) && (w_id != "")) {
    var s_id = w_id.split(",");
    for (i=0;i<s_id.length;i++) {
      umschalten(s_id[i],grafik,flag,klappe,1,link,bereich,regname,0);
    }
  }
}

