function getTarget(e){
  if(e.target){ // DOM kompatibel
    var event = e.target;
  }else{
    if(e.srcElement){ // IE > 6.0
      var event = e.srcElement;
    }else{
      var event = false;
      alert("unbekannter Browser navigation.js changebutton()");
    }
  }
  return event;
}

function evalScript(scripts){
  try{
    if(scripts != ''){
      var script = "";
      /*
      * <script[^>]*> sucht alle <script ...> Tags
      * ([\s\S]*?) liefert alles was zwichen den Tags steht zurück
      * <\/script> sucht alle </script> Tags
      */
      scripts = scripts.replace(/<script[^>]*>([\s\S]*?)<\/script>/gi, function(){
        //Dies ist wie eine Art Schleife je nachdem wie oft Script Tags mit Code vorkommen daher wird es in der Variable "script" abgelegt
        if (scripts !== null)
          script += arguments[1] + '\n'; //Packt den Code an der Variable 
        return '';
      });
      //Hier wird der String der nur noch Code enthalten sollte ausgeführt
      if(script) (window.execScript) ? window.execScript(script) : window.setTimeout(script, 0);
    }
    return false;
  }
  catch(e){	
    alert(e)
  }
}

function request(url, data, callback_fkt, target){
  var baseURI = "http://" + document.domain + "/";
  try{
    var req = new XMLHttpRequest();
  }catch(e){
    try{
      var req = new ActiveXObject("MSXML2.XMLHTTP");
    }catch(e){
      try{
        var req = new ActiveXObject("Microsoft.XMLHTTP");
      }catch(e){
        alert("Request kann nicht gestartet werden!");
      }
    }
  }
  req.open("POST", baseURI + url, true);
  req.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=utf-8");
  req.setRequestHeader("Accept-Charset", "utf-8");
  if(data){
    req.setRequestHeader("Content-length", data.length);
  }
  req.send(data);
  req.onreadystatechange = function(){callback(req, callback_fkt, target);}
}

function callback(req, fkt, target){
  if(req.readyState == 4){  
    if(200 != req.status ){
      target.innerHTML = "&Uuml;bertragungsfehler " + req.status + ": " + req.statusText;
    }else{
      if(fkt){
        target.innerHTML = req.responseText;
        evalScript(req.responseText);
        if(fkt != true){
          fkt();
        }
      }
    }
  }
}

function size(){
  // Groesse fuer die zentralen Divs an Fensterinhalt anpassen
  if(document.documentElement && (document.documentElement.clientWidth || document.documentElement.scrollHeight)){ //DOM kompatibeln + IE > 6.0
    cont.style.height = "0px";
    mbar.style.height = "0px";
    if(document.documentElement.scrollHeight > document.documentElement.clientHeight){
      var height = document.documentElement.scrollHeight;
    }else{
      var height = document.documentElement.clientHeight;
    }
    if(document.documentElement.scrollWidth > document.documentElement.clientWidth){
      var width = document.documentElement.scrollWidth;
    }else{
      var width = document.documentElement.clientWidth;
    }
    cont.style.height = height + "px";
    cont.style.width = width - logo.offsetWidth + "px";
    mbar.style.height = height - logo.offsetHeight + "px";
    mbar.style.width = logo.offsetWidth + "px";
  }else{
    alert("nicht kompatibler Browser");
  }
}

function addEventHandler(element, event, callback, capture){
  // Browserabhaengige Eventhandler
  var _onevent, _tmp;
  if(element.addEventListener){ // DOM-konform
    element.addEventListener(event, callback, capture);
  }else{
    _onevent = 'on' + event; 
    if(element.attachEvent){ // IE
      element.attachEvent(_onevent, callback);
    }else{ // aeltere Browser
      alert("nicht kompatibler Browser");
/*      _tmp = element[_onevent];
      element[_onevent] = typeof _tmp == 'function' ? (function(){} ) : callback; */
    }
  }
}

function init(){
  // aus Frameset befreien fuer Opera  if(top!=self){
    if (window.opera) window.onload=opera_befreien;
    else top.location=self.location;
  }

  // Variablen fuer zentrale Divs festlegen
  logo = document.getElementById("rsvlogo");
  mbar = document.getElementById("menubar");
  cont = document.getElementById("content");
  
  // Zentrale Divs formatieren
  size();
  addEventHandler(window, "resize", size, false);
  
  // Navigation initialisieren
  navigation_init(); // Funktion befindet sich in navigation.php
  
}

// aus Frameset befreien fuer Opera
function opera_befreien(){
  document.links['befreie'].click();
}

