/************************************************
 * Java Funktionen                              *
 ************************************************
 * (c)bkreuzer 20.02.2005 21:00                 *
 ************************************************
 */

/* Menuelinks */
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr;
  for( i=0; a && i<a.length && (x=a[i]) && x.oSrc; i++ )
  {
    x.src=x.oSrc;
  }
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v3.0
  var p,i,x;
  if(!d)
  {
    d=document;
  }
  if((p=n.indexOf("?"))>0 && parent.frames.length)
  {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);
  }
  if(!(x=d[n]) && d.all)
  {
    x=d.all[n];
  }
  for (i=0;!x && i<d.forms.length;i++)
  {
    x=d.forms[i][n];
  }
  for(i=0;!x && d.layers && i<d.layers.length;i++)
  {
    x=MM_findObj(n,d.layers[i].document);
  }
  return x;
}

/*
function MM_findObj(n, d) { //v3.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
*/

function MM_swapImage() { //v3.0
  var i,j=0,x,y,a=MM_swapImage.arguments;
  document.MM_sr=new Array;
  for( i=0; i<(a.length-2); i+=3 )
  {
   if ( (x=MM_findObj(a[i])) != null )
   {
     document.MM_sr[j++]=x;
     if (!x.oSrc)
     {
       x.oSrc=x.src;
     }
     x.src=a[i+2];
     if ( a[i+3] != "1" && a[i+3] != "" )
     {
       x.alt=a[i+3];
       x.title=a[i+3];
     }
     if ( a[i+1] != "" )
     {
       if (document.all) { document.all.ut.innerText=a[i+3]; }
       else              { document.getElementsByName("ut")[0].firstChild.data=a[i+3]; }
     }
   }
  }
}


  /* Function to fix IE's Bug showing active links and remove rectangle around links */
  var debug = true;

  // Bilderextensionen über Regulären Ausdruck suchen (Global)
  var Bildersuche = /(.+)\.(jpe*g|gif|png|bmp)(\ *)/i;

  // Dokumentenextensionen über Regulären Ausdruck suchen (Global)
  var Dokusuche = /(.+)\.(txt|pdf|doc|xls|ppt)(\ *)/i;

  /**************************************************************************************************
   * Hauptfunktion die beim initialisieren der Seite geladen wird
   * Folgende Prüfungen finden statt
   * - externe Seiten in neuem Fenster öffnen (Hinweis beim verlassen der Domäne deaktiviert)
   * - Bilder in neuem Fenster öffnen und größe automatisch anpassen
   */
  function init(id, src, text, introtxt) {
      if (document.getElementsByTagName) {
          var anchors = document.getElementsByTagName("a");
          for (var i = 0; i < anchors.length; i++) {
              var myAnchor = anchors[i];
              if (!myAnchor.onclick) {
                  myAnchor.onclick = function () {
                      if (document.all) { // only for IE
                          this.blur();
                      }
                      // Überprüfung ob auf einen Bildlink gedrückt wurde
                      if ( Bildersuche.test(this) == true )
                      {
                          makeNewWindow(this);
                          return false;
                      }
                      // Überprüfung ob auf einen Dokumentenlink gedrückt wurde
                      if ( Dokusuche.test(this) == true )
                      {
                          makeNewWindow(this);
                          return false;
                      }
                      // Überprüfung ob man die Domäne verläßt
                      else if (window.location.hostname != this.hostname) { // assume that this is an external link
                          makeNewWindow(this);
                          return false;
                      }
/*
                      // Überprüfung ob man die Domäne verläßt
                      else if (window.location.hostname != this.hostname) { // assume that this is an external link
                          makeNewWindow(this);
                          return false;
                      }
                      else if (debug && this.href.indexOf("404.html") != -1) {// Temp...
                          return false;
                      }
*/
                      return true;
                  }
              }
          }
      }
      // Auf Druckfunktionalität überprüfen
      renderPrintLink(id, src, text, introtxt);
  }

  /**************************************************************************************************
   * nach dem laden der Seite init() ausführen
   */
  window.onload = init;
  
  /**************************************************************************************************
   * Button Druck auf Funktion überprüfen
   */
  function printPage() {
  
      var isIE = (navigator.appName == "Microsoft Internet Explorer") ? true: false;
      var platform = navigator.platform;
      var isMac = (platform.match(/mac/i)) ? true : false;
      var isMacIE = isIE && isMac;
      var isSafari = navigator.userAgent.indexOf("Safari") != -1;
      
      if (window.print && !isMacIE && !isSafari) {
          window.print();
      } else if (document.getElementsByTagName) {
          var a;
          for(var i = 0; (a = document.getElementsByTagName("link")[i]); i++) {
              if (a.getAttribute("rel").indexOf("style") != -1) {
                  a.disabled = true;
                  if (a.getAttribute("rel").indexOf("alt") != -1 && a.getAttribute("title") == "Druckansicht") {
                      a.disabled = false;
                  }
              }
          }
      } else {
          alert("Diese Funktion wird von Ihrem Browser nicht unterstützt.\nBitte benutzen Sie die Druckfunktion Ihres Browsers.");
      }
  
  }

  if (!document.getElementById) {
      document.getElementById = function() { return null; }
  }

  /**************************************************************************************************
   * Link zum Ausdruck
   */
  function renderPrintLink(id, src, text, introtxt) {
    
    var node = document.getElementById(id);
    
    if (node != null) {
        if (introtxt != null && introtxt != "") {
            introtxt += " ";
            node.appendChild(document.createTextNode(introtxt));
        }
    
        var img = document.createElement("img");
        img.setAttribute("src", src);
        img.setAttribute("alt", text);
        node.appendChild(img);
         
        var a = document.createElement("a");
        a.href = "javascript:printPage();";
        a.style.color =  "#2b477f"; // Stupid IE
        a.appendChild(document.createTextNode(text));
        node.appendChild(a);
        
        var span = document.createElement("span");
        span.className = "white";
        span.appendChild(document.createTextNode(" |"));
        node.appendChild(span);
        
    }
   }

  /**************************************************************************************************
   * neues externes Fenster öffnen (extern, bild, intranet)
   * Parameter 1: URL
   */

  // Global variable for subwindow reference
  var newWindow;
  // Generate and fill the new window
  function makeNewWindow(obj) {
      if (obj.hostname != this.hostname && Bildersuche.test(obj) != true || Dokusuche.test(obj) == true )
      { //externes Fenster sobald man die Domäne verlässt
        newWindow = window.open(obj, "", "");
        return false;
      }
      else
      {
        newWindow = window.open("", "sub", "status,resizable,height=200,width=400,scrollbars");
        // handle Navigator 2, which doesn't have an opener property
        if (!newWindow.opener) {
            newWindow.opener = window;
        }
        // delay writing until window exists in IE/Windows
        if ( Bildersuche.test(obj) == true )
        {
             newWindow.resizeTo(250, 150);
             setTimeout("writeToIWindow('" + obj + "')", 500);
        }
        else
        { // intranet verlassen Hinweis
             setTimeout("writeToWindow('" + obj + "')", 500);
        }
      }
      newWindow.focus();
      return 0;
  }

  /**************************************************************************************************
   * Fenster mit Hinweis dass man das Intranet verlässt
   */
  function writeToWindow(obj) {
      // assemble content for new window
      var newContent = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" ";
      newContent += "\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n\n";
      newContent += "<html>\n<head>\n";
      newContent += "<title>Online-Styleguide : Hinweis</title>\n";
      for(var i = 0; (a = document.getElementsByTagName("link")[i]); i++) {
          if (a.getAttribute("rel") == "stylesheet") {
              newContent += "<link rel=\"stylesheet\" title=\"Standard\" media=\"screen, projection\" href=\"" + a.getAttribute('href') + "\" type=\"text/css\" />\n";
          }
      }
      newContent += "</head>\n";
      newContent += "<body id=\"hinweis\"><div><p>Die Adresse <a href=\"" + obj + "\" target=\"_blank\" title=\"&Ouml;ffnet neues Fenster\">" + (obj.indexOf('http://www') != -1 ? obj.substring(7) : obj) + "</a> ist nur &uuml;ber einen Internetzugang erreichbar.</p></div>";
      newContent += "</body>\n</html>";
      // write HTML to new window document
      newWindow.document.write(newContent);
      newWindow.document.close(); // close layout stream
  }

  /**************************************************************************************************
   * Fenster mit Bild unt autosize funktion
   * Parameter 1: URL
   *
   * Version 1.1
   * 01.09.2004 bkreuzer
   */
  function writeToIWindow(obj) {

      // ALT Tag des Bildes feststellen
      var bilder   = document.images;
      var ALT_Text = "";
      var testart = 1;
      // bild ist entweder "0_0_x."
      var Vergleich1  = /.*\/([0-9]*)_([0-9]*)_(.*\..*)(\ .*)*$/i;
      // oder "x_kl."
      var Vergleich2 = /.*\/(.*)_(.*\..*)(\ .*)*$/i;
      var ziel1="";
      var ziel2="";
      if ( Vergleich1.test(obj)==true )
      {
        Vergleich1.exec(obj);
        ziel1 = RegExp.$1;
        ziel2 = RegExp.$3;
        testart = 1;
      }
      else if ( Vergleich2.test(obj)==true )
      {
        Vergleich2.exec(obj);
        ziel1 = RegExp.$1;
        testart = 2;
      }
      for (var i = 0; i < bilder.length; i++)
      {
          var myBild = bilder[i];
          var ziele="";

          if ( testart==1 && Vergleich1.test(myBild.src) )      { ziele=Vergleich1.exec(myBild.src); }
          else if ( testart==2 && Vergleich2.test(myBild.src) ) { ziele=Vergleich2.exec(myBild.src); }

          if ( ziele != "" )
          {
           if ( testart==1 && RegExp.$1 == ziel1 && RegExp.$3 == ziel2 && myBild.alt != "" ) { ALT_Text=myBild.alt; }
           if ( testart==2 && RegExp.$1 == ziel1 && myBild.alt != "" )                       { ALT_Text=myBild.alt; }
          }
      }
      // Resize() script (komprimierter und ohne Kommentare)
      var script_resize ="  function resizer(obj,text)\n  {\n";
      script_resize+="    var objekt = self.document.grossbild;\n";
      script_resize+="    var maxhoehe  = screen.availHeight;\n";
      script_resize+="    var maxbreite = screen.availWidth;\n";
      script_resize+="    //if ( objekt.complete == true)\n";
      script_resize+="    {\n       var breite = objekt.width;\n";
      script_resize+="       var hoehe  = objekt.height;\n";
      script_resize+="       if ( hoehe > maxhoehe )   { hoehe  = maxhoehe-120; }\n";
      script_resize+="       if ( breite > maxbreite ) { breite = maxbreite-40; }\n";
      script_resize+="       var b_extra=18;\n       var h_extra=70;\n";
      script_resize+="       if ( text == 1 ){h_extra=h_extra+40;}\n";
      script_resize+="       else if ( text == 2 ){h_extra=h_extra+100;}\n";
      script_resize+="       breite += b_extra;\n       hoehe  += h_extra;\n";
      script_resize+="       self.resizeTo(breite, hoehe);\n       var korrektur = 0;\n";
      script_resize+="       korrektur     = breite - document.body.offsetWidth;\n";
      script_resize+="       if ( korrektur < 100 ) { self.resizeBy(korrektur-5,0); }\n";
      script_resize+="       if ( obj != 'vorhang' )\n       {\n";
      script_resize+="         if (navigator.appName==\"Netscape\" && parseInt(navigator.appVersion.charAt(0))<5)\n";
      script_resize+="         { self.document.ladebild.visibility=\"hidden\";}\n";
      script_resize+="         else\n";
      script_resize+="         { self.document.getElementById(\"ladebild\").style.visibility=\"hidden\";}\n";
      script_resize+="       }\n    }\n  }\n";

      // Content im neuen Fenster
      var newContent  = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" ";
      newContent += "\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n";
      newContent += "<html>\n <head>\n";
      newContent += "  <title>Bild : Vergr&ouml;sserung</title>\n";
      for( i=0; (a = document.getElementsByTagName("link")[i]); i++) {
          if (a.getAttribute("rel") == "stylesheet") {
              newContent += "  <link rel=\"stylesheet\" title=\"Standard\" media=\"screen, projection\" href=\"" + a.getAttribute('href') + "\" type=\"text/css\" />\n";
          }
      }
      newContent += "  <meta name=\"robots\" content=\"noindex\" />\n";
      newContent += "  <meta http-equiv=\"content-language\" content=\"de\" />\n";
      newContent += "  <script type=\"text/javascript\" >\n  <!--\n"+script_resize+"  //-->\n  </script>\n";
      newContent += "   <style type=\"text/css\">\n  <!--\n";
      newContent += "    #grossbild { position:absolute; left: 5px; top:  5px; align: center; z-index:1; }\n";
      newContent += "    img        { border:0; }\n";
      newContent += "    #ladebild  { position:absolute; left: 0px; top:  0px; width: 210px; height: 100px; background-color: white; text-align: center; z-index:2 ;}\n";
      newContent += "    #bildtext  { text-align: center; }\n";
      newContent += "   //-->\n   </style>\n";
      newContent += " </head>\n";
      newContent += " <body onload=\"resizer('bild',1)\">\n";
      newContent += "  <div id=\"grossbild\" >\n";
      newContent += "   <img src=\"" + obj + "\" alt=\""+ALT_Text+"\" name=\"grossbild\" />\n";
      newContent += "   <div id=\"bildtext\">\n\t"+ALT_Text+"<br /><br />\n\t<a href=\"javascript:self.close()\" >(zum Schlie&szlig;en hier klicken)</a>\n";
      newContent += "   </div>\n  </div>\n";
      newContent += "  <div id=\"ladebild\" onload=\"resizer('vorhang',0)\">\n\t<a href=\"javascript:self.close()\" alt=\"zum Schliessen hier klicken\" >\n";
      newContent += "\t <p><br /><br /><strong> Bild wird geladen ... </strong></p>\n";
      newContent += "\t</a>\n  </div>\n";
      newContent += " </body>\n</html>";

      // Content ins Fenster schreiben
      newWindow.document.write(newContent);
      newWindow.document.close(); // close layout stream
  }

  /**************************************************************************************************
   * Fenstergröße an Bildgröße anpassen
   * Parameter 1: welches Bild (vorhang oder bild)
   *           2: wieviel soll für Text freigelassen werden (0=nichts, 1=unten, 2=oben und unten)
   *
   * Version 1.1
   * 01.09.2004 bkreuzer
   */
  function resizer(obj,text)
  {
    // Parameter 1 feststellen
    var objekt;
    if ( obj == 'vorhang' ) { objekt = self.document.vorhang; }
    else                    { objekt = self.document.grossbild; }
    // Browserfenster innenmaße auslesen
    var maxhoehe  = screen.availHeight;
    var maxbreite = screen.availWidth;

    // Wenn das Bild geladen wurde
    //if ( objekt.complete == true)
    {
       // Bildmaße auslesen
       var breite = objekt.width+15;
       var hoehe  = objekt.height;

       // Falls "bild" größer Monitor maße korrigieren
       if ( hoehe > maxhoehe )   { hoehe  = maxhoehe-120; }
       if ( breite > maxbreite ) { breite = maxbreite-40; }

       // Noch Text/Menue dabei?
       // 0 = nichts
       // 1 = Text
       // 2 = Menue oben und Text unten
       var b_extra=18;
       var h_extra=70;
       if      ( text == 1 ) { h_extra += 40; }
       else if ( text == 2 ) { h_extra += 90; }
       breite += b_extra;
       hoehe  += h_extra;

       // Fenster anpassen
       self.resizeTo(breite, hoehe);

       // Fenstergröße korrigieren (Scrollbars beim IE)
       var korrektur = 0;
       korrektur     = breite - document.body.offsetWidth;
       if ( korrektur < 100 ) { self.resizeBy(korrektur,0); }
       // Wenn das Originalbild geladen wurde dann Vorhang ausblenden
       if ( obj != 'vorhang' )
       {
         // Ladebild ausblenden
         if (navigator.appName=="Netscape" && parseInt(navigator.appVersion.charAt(0))<5)
         {
    	    self.document.ladebild.visibility="hidden";
         }
         else
         {
            self.document.getElementById("ladebild").style.visibility="hidden";
         }
       }// if vorhang

    }// if complete
  }


