/*
 * (c) Micha Rohde
 * All rights reserved
*/


function changeClass (id, class1, class2, reload) {
  if (document.getElementById(id).className == class2 || class2 == "") {
    document.getElementById(id).className=class1;
    if (reload == "faq")
      openid("mainEnd", "changefaq.php?faq="+id+"&do=hide");
    if (reload == "sidebar")
      openid("mainEnd", "sidebar.php?sidebar=ON");
  } else {
    document.getElementById(id).className=class2;
    if (reload == "faq")
      openid("mainEnd", "changefaq.php?faq="+id+"&do=visible");
    if (reload == "sidebar")
      openid("mainEnd", "sidebar.php?sidebar=OFF");
  }
  return false;
}

function changeClass2 (id1, id2, class1, class2, reload) {
  changeClass(id1, class1, class2, reload);
  changeClass(id2, class1, class2, reload);
  return false;
}

function openid(id, datei) {
  var http = null;
  if (window.XMLHttpRequest) {
    http = new XMLHttpRequest();
  } else if (window.ActiveXObject) {
    http = new ActiveXObject("Microsoft.XMLHTTP");
  }
  if (http != null) {
    http.open("GET", datei, true);
    http.onreadystatechange = ausgeben;
    http.send(null);
  }
  function ausgeben() {
    if (http.readyState == 4) {
      document.getElementById(id).innerHTML = http.responseText;
    }
  }
  return false;
}

function onloadContent(id, file) {
  document.getElementById(id).style.height = document.getElementById(id).offsetHeight + "px";
//  alert(" ");
  openid (id, file);
//  alert(" ");
  document.getElementById(id).style.height = "auto";
  return false;
}

function bodyonload() {
  onloadJScss('../css/main2JS.css');
  
  return false;
}

function onloadJScss(cssLocation) {
  // CSS fuer IEs nachladen
  if(document.createStyleSheet) document.createStyleSheet(cssLocation);
    // CSS fuer Mozilla, Netscape, Opera nachladen
  else {
    var objStyle = document.createElement("style");
    var objText = document.createTextNode("@import url("+cssLocation+") screen;");
    objStyle.appendChild(objText);
    document.getElementsByTagName("head")[0].appendChild(objStyle);
  }
}

function switchImg (id) {
  var capObj = document.getElementById(id);
  if (capObj) {
    capObj.src = capObj.src +
      (capObj.src.indexOf('?') > -1 ? '&' : '?') + Math.random();
  }
  return false;
}


function clear_field(field, ValueText, css) {
  if (css == undefined) {css = false;}
  if (field.value==ValueText) {
    field.value=""; 
    if (css != false) 
      field.className=css;
  }
}
function paste_field(field, ValueText, css) {
  if (css == undefined) {css = false;}
  if (field.value=="") {
    field.value=ValueText; 
    if (css != false) 
      field.className=css;
  }
}



    openSlide = 0;
    stepp = 0;
    function slideOpen (slide, box, open) {
      stepp = 0;
      if (open)
        openSlide = 1;
      if (!open)
        openSlide = 2;
      slideOpenAction(slide, box);
      return false;
    }



    function slideOpenAction (slide, box) {
      //alert("x" + openSlide);
      
      Stepps = new Array(1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 8, 8, 8, 8, 8, 16, 16, 16, 16, 16, 32, 32, 32, 32, 32);
      
      if (openSlide == 1) {
        if(document.getElementById(slide).offsetHeight < document.getElementById(box).offsetHeight) {
          newheight = document.getElementById(slide).offsetHeight + Stepps[stepp];
          if (stepp < 29)
            stepp++;
          if (newheight > document.getElementById(box).offsetHeight) 
            newheight = document.getElementById(box).offsetHeight;
          document.getElementById(slide).style.height = newheight + "px";
          window.setTimeout("slideOpenAction('"+slide+"','"+box+"')", 5);
        }
      } else 
      if (openSlide == 2) {
        if(document.getElementById(slide).offsetHeight > 0) {
          newheight = document.getElementById(slide).offsetHeight - Stepps[stepp];
          if (stepp < 29)
            stepp++;
          if (newheight < 0)
            newheight = 0;
          document.getElementById(slide).style.height = newheight + "px";
          window.setTimeout("slideOpenAction('"+slide+"','"+box+"')", 1);
        }
      }
    }


          function changeClassInteligent (id, from, to) {
            /*
             * tauscht die Klassen vom Element id von from zu to
             *   - from und to können mehrere klassen enthalten und mit , getrennt werden
             *   - ist to nicht gesetzt so werden id alle Klassen aus from zugewiesen
             *   - ist to gesetzt, so wird from[x] durch to[x] ersetzt
             *   - ist in to nur eine Klasse angegeben so werden alle from[x] durch die to[0] ersetzt
             *   - entspricht to[x] der Variable del so wird die Klasse from[x] einfach entfernt
             *   - entspricht from[x] der Variable ins so wird die Klasse to[x] ans Ende angehängt
             *   - alle to[x] die keinen from[x] enthalten werden ans Ende angehängt (nach ins)
             */
            
            var del = "[del]";
            var ins = "[ins]";
            
            function clearClasses (classes) {
              var tmp = new Array();
              var tmp2 = new Array();
              for( var k=0; k<classes.length; k++ ) {
                if (typeof(classes[k]) != "undefined") {
                  classes[ k ] = classes[ k ].split(" ");
                  for (var j=0; j<classes[k].length; j++)
                    if (classes[k][j] != "")
                      tmp2[tmp2.length] = classes[k][j];
                  classes[ k ] = tmp2.join(" ");
                  tmp2 = new Array();
                  if (classes[ k ] != "")
                    tmp[tmp.length] = classes[ k ];
                }
              }
              return tmp;
            }
            
            function makeClass (classes) {
              var newClass = "";
              for( var k=0; k<classes.length; k++ ) {
                if (k != 0)
                  newClass = newClass + " ";
                newClass = newClass + classes[k];
              }
              return newClass;
            }
            
            
            
            var done = "";
            var fromClasses = from.split(",");

            // wenn to nicht gesetzt, dann from setzen
            if (typeof(to) == "undefined") {
              document.getElementById(id).className = makeClass(clearClasses(fromClasses));;
              return false;
            }

            var to = to.split(",");
            var classes = document.getElementById(id).className.split(" ");
            var tmp = new Array();
            var tmp2 = new Array();
            var notReplaced = new Array();
            
            
            classes = clearClasses(classes);
            fromClasses = clearClasses(fromClasses);
            to = clearClasses(to);

            
            for( var k=0; k<classes.length; k++ ) 
              notReplaced[k] = true;

            done = done + "classes: \t\t" + classes + "\nfromClasses: \t" + fromClasses + "\nto: \t\t\t" + to + "\n\n";

            
            // classen austauschen mit TO
            for( var k=0; k<classes.length; k++ ) {
              done += "for classes[" + k + "] (" + classes[k] + ") { \n";
              for( var j=0; j<fromClasses.length; j++ ) {
                done += "  if is fromClasses[" + j + "] (" + fromClasses[j] + ")\n";
                if (classes[k] == fromClasses[j] && notReplaced[k]) {
                  done += "    true: ";
                  if (to.length == 1) {
                    if (to[0] != del) { 
                      classes[k] = to[0];
                      done += "replace from[" + k + "] with to\n";
                    } else {
                      classes[k] = undefined;
                      done = done + "delete from[" + k + "] with to\n";
                    }
                  } else {
                    if (to[j] != del) { 
                      classes[k] = to[j];
                      done += "    replace from[" + k + "] with to[" + k + "]\n";
                    } else {
                      classes[k] = undefined;
                      done = done + "    delete from[" + k + "] with to[" + k + "]\n";
                    }
                  }
                  notReplaced[k] = false;
                } 
              }
              done +=  "}\n";
            }
            
            for( var j=0; j<fromClasses.length; j++ ) {
              if (fromClasses[j] == ins)
                done += "Insert To: " + to[k] + "\n";
                classes[classes.length] = to[j];
            }
            
            if (to.length > fromClasses.length) {
              for (var k = (to.length - (to.length - fromClasses.length)); k<to.length; k++ ) {
                classes[classes.length] = to[k];
                done += "Extra To: " + to[k] + "\n";
              }
            }
            
            // leere Klassen entfernen (falls sie entfernt wurden)
            classes = clearClasses(classes);
            
            // classe setzen
            document.getElementById(id).className = makeClass(classes);
            //alert (done + "classes: " + classes);
            return false;
          }



  var auto_resize_timer = window.setInterval("autoresize_frames()", 400);
  function autoresize_frames() {
    var framefenster = document.getElementsByClassName("autoheight");
    for (var i = 0; i < framefenster.length; ++i) {
        if(framefenster[i].contentWindow.document.body){
          var framefenster_size = framefenster[i].contentWindow.document.body.offsetHeight;
          if(document.all && !window.opera) {
            framefenster_size = framefenster[i].contentWindow.document.body.scrollHeight;
          }
          framefenster[i].style.height = framefenster_size + 1 + 'px';
        }
    }
  }
  
  function linksToParent(classe) {
    links = document.getElementsByClassName(classe);
    for (var i = 0; i<links.length; ++i) {
      links[i].parentNode.onclick = function() {
        href = this.getElementsByTagName("a")[0].href;
        window.location.href = href;
      }; 
    }
  }
