   function Ajax(url, callback)
   {
      var req = Init();
      req.onreadystatechange = Request;
      var body = "";

      function Init()
      {
         if (window.XMLHttpRequest) return new XMLHttpRequest();
         else if (window.ActiveXObject)
         return new ActiveXObject("Microsoft.XMLHTTP");
      }
      function Request ()
      {
         if (req.readyState == 4 && req.status == 200 && callback)
         callback(req.responseText);
      }
      this.Get = function()
      {
         req.open("GET", url, true);
         req.send(null);
      }
      this.AddPost = function (key, item)
      {
         if (body) body += "&"+key+"="+encodeURIComponent(item);
         else body = key+"="+encodeURIComponent(item);
      }
      this.Serialize = function (form)
      {
         var i;
         if (form)
         for (i=0; i < form.elements.length; i++)
         if (form.elements[i].type == "checkbox" && !form.elements[i].checked) continue;
         else this.AddPost(form.elements[i].name, form.elements[i].value);
      }
      this.Post = function(b)
      {
         if (b)
         {
            if (body) b += "&"+body;
         }
         else b = body;
         req.open("POST", url, true);
         req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");
         req.setRequestHeader("CHARSET", "utf8");
         req.send(b);
      }
   }
   function ZeigePanel(id)
   {
      if (document.getElementById(id))
      document.getElementById(id).style.display = "";
   }
   function ZeigePanelMittig(id)
   {
      if (document.getElementById(id))
      {
         a = parseInt(document.getElementById(id).style.width);
         b = parseInt(document.getElementById(id).style.height);

         if (document.body.scrollLeft) c = document.body.scrollLeft;
         else if (window.pageXOffset) c = window.pageXOffset;
         else c = 0;
         if (document.body.scrollTop) d = document.body.scrollTop;
         else if (window.pageYOffset) d = window.pageYOffset;
         else d = 0;
         if (document.body.clientWidth) e = document.body.clientWidth;
         else if (window.innerWidth) e = window.innerWidth;
         else e = 0;
         if (document.body.clientHeight) f = document.body.clientHeight;
         else if (window.innerHeight) f = window.innerHeight;
         else f = 0;

         document.getElementById(id).style.left = (e-a)/2 + c + "px";
         document.getElementById(id).style.top = Math.max(0, (f-b)/2 + d) + "px";
         document.getElementById(id).style.display = "";
      }
   }
   function ZeigePanelRelativ(id, event, x, y)
   {
      if (document.getElementById(id))
      {
         var mouseY = (ereignis.clientY) ? ereignis.clientY : ereignis.pageY;
         var mouseX = (ereignis.clientX) ? ereignis.clientX : ereignis.pageX;
         var yoffset = parseInt(document.body.scrollTop);
         var xoffset = parseInt(document.body.scrollLeft) - Math.floor(mouseX / (screen.width/2)) * 440;
         document.getElementById(id).style.top  = mouseY + x + yoffset + "px";
         document.getElementById(id).style.left = mouseX + y + xoffset + "px";
         document.getElementById(id).style.display = "";
      }
   }
   function VersteckePanel(id)
   {
      if (document.getElementById(id))
      document.getElementById(id).style.display = "none";
   }
   function VertauscheAnsicht(id)
   {
      if (document.getElementById(id).style.display == "none")
      document.getElementById(id).style.display = "";
      else document.getElementById(id).style.display = "none";
   }
   function VertauscheAnsichten(a, b)
   {
      VertauscheAnsicht(a);
      VertauscheAnsicht(b);
   }
   function Vor(seite)
   {
      document.forms[0].elements[seite].value++;
      document.forms[0].submit();
   }
   function GanzVor(seite)
   {
      document.forms[0].elements[seite].value = 0;
      document.forms[0].submit();
   }
   function Zurueck(seite)
   {
      document.forms[0].elements[seite].value--;
      document.forms[0].submit();
   }
   function GanzZurueck(seite)
   {
      document.forms[0].elements[seite].value = 1;
      document.forms[0].submit();
   }
   function Logout()
   {
      location.reload("../php/login.php5?Aktion=Logout");
   }
   function NewsletterAnzeigen()
   {
      ZeigePanelMittig("Loading");

      var a = new Ajax("../php/newsletter_abo.php5", function(a)
      {
         document.getElementById("Cache").innerHTML = a;
         ZeigePanelMittig("Newsletter");
         VersteckePanel("Loading");
      });
      a.AddPost("Aktion", "NewsletterAnzeigen");
      a.Post("");
   }
   function NewsletterAbonnieren()
   {
      ZeigePanelMittig("Loading");

      var a = new Ajax("../php/newsletter_abo.php5", function(a)
      {
         document.getElementById("Newsletter").innerHTML = a; VersteckePanel("Loading");
      });
      a.AddPost("Aktion", "NewsletterAbonnieren");
      a.AddPost("Email", document.NewsletterFormular.NewsletterEmail.value);
      a.Post("");
   }
