//
//         Copyright (c) 2005-2012 Heinrich Pohlmann, Alle Rechte vorbehalten.
//

    var backcol='#FFFFFF';
    var fdocument_hash='0';
    var fdocument_title='';         // hps 5.2009
    var bmin=774;                   // Mindesbreite der Hauptdivision

    // check 5.2009

    function isOk()
    {
     return 1;
    }

    function isMenOk()
    {                               // Zugriff auf id erzeugt Fehler falls tag noch nicht vorhanden
     var b=document.getElementById('menu').style.display;
     return 1;
    }


    // Seite laden, search auswerten  ...

    function startp()
    {
     onunload= leftp;
     backc();

     var s= document.location.search.substr(1);      // bei Realod wird Menü ID über Search übergeben

     if(s)
     {
      var m = s.substring(0,s.indexOf("."))
      var p = s.substring(0,s.indexOf("_"))
      var h=  document.location.hash;

      if (h && document.getElementById(h.substr(1))) // direkter Aufruf einer Seite : Seite in Search ?, Menü ID in hash #
       document.getElementsByName('mainwin')[0].src= s+h;

      else if(document.getElementById('hps_'+m))     // Seite wurde mit Nutzer-Eingabe für search (?) aufgerufen
       document.getElementsByName('mainwin')[0].src= m+'.html';
      else if(document.getElementById('hps_'+p))     // Unterseite wurde direkt aufgerufen : Menü ID wird mit Search übergeben
       document.getElementsByName('mainwin')[0].src= p+'.html';
      else if(document.getElementById('hps_'+s))     // Hauptseite wurde direkt aufgerufen : Menü ID wird mit Search übergeben
       document.getElementsByName('mainwin')[0].src= s+'.html';
     }
    }

    // Fenstergröße anpassen

    function fwin()
    {
     if(!opener && screen.width >=800)
     {
      if(document.all) window.resizeTo(1024,730); else window.resizeTo(1024,730);
      initWindow();
     }
    }

    // Seite verlassen

    function leftp() {stopani(); if(farbset && !farbset.closed)farbset.close()}

    // Popup Farbauswahlmenü

    var farbset=0;

    function fdemo()
    {
     if (navigator.userAgent.toUpperCase().indexOf("OPERA") != -1)   // Opera ...
     {
      if (confirm('Mit dem Opera-Browser kann es Probleme geben, soll die Seite trotzdem aufgerufen werden ?')) showFarbwaehler();
     }
     else showFarbwaehler();
    }

    function showFarbwaehler()
    {
     if(!farbset || farbset.closed)
      farbset=window.open("farbset/fsettings.html","_blank","width=293,height=340,left=10,top=10");
     else
      if(farbset)farbset.focus();
    }

    // Vollbildmodus ...

    function wopen()
    {
     self.focus(); self.close();
     var s= "whome.html?"+ linkn.substr(4);
     voll= window.open(s,"_blank","width=780,height=550,left=10,top=10,toolbar=yes");
     voll.focus();
    }

    // Menü, Linkfarbe ...

    var linkn=0;                       // Titel der aktuellen Seite

    function hpmenu(s)                 // Hauptmenü aktualisieren
    {
     if(document.getElementById(s)) {linkf("co1"); linkn= s; setTimeout("linkf('co2')",200)}
    }

    function linkf(n)                  // Hauptmenü Linkfarbe setzen
    {
     if(linkn){document.getElementById(linkn).className=n; document.getElementById(linkn).blur()}
    }

    function backMenu(m)               // 'zurück' Menü zeigen
    {
     var s; if(m) s='inline'; else s='none';
     document.getElementById('menu').style.display= s;
     document.getElementById('pageback').style.display= s;
    }

    function naviTitel(s)              // Navigationszeile anzeigen
    {
     document.getElementById('titel').firstChild.nodeValue = s;
    }

    //  vertikale Menüleiste mit animiertem horizontalem Farbverlauf ...

    var left= 0;               // Abstand der Leiste von links
    var top= 0;                // Abstand der Leiste von oben

    var höhe= 554;             // Höhe der Leiste
    var breite = 94;           // Breite der Leiste
    var zbreite = 60;          // linker Abstand der hellsten spalte

    var lfstep = 3;            // Farbänderung pro Spalte im linken Bereich
    var rfstep = 3;            // Farbänderung pro Spalte im rechten Bereich
    var hfarbe= 0;             // niedrigster Farbwert Farbverlauf

    var rot = 255;             // Farben der hellsten spalte;
    var grün = 255;
    var blau = 255;

    var zstep= 2;              // Anzahl Spalten mit gleicher Farbe
    var time = 70;             // Intervall Zeit
    var rand= 6;               // kleinster Abstand vom Rand der hellsten Linie

    var r=rot, g=grün, b=blau;
    var fstep;                 // Schrittweite Farbänderung
    var spalte = zstep;
    var i,k,f;
    var anz, zanz;             // Anzahl der Linien, Index der 'hellsten' Linie
    var linien = new Array();  // linien global declarieren

    var otime= time;           // Orginalwerte merken
    var ozstep= zstep;
    var olfstep= lfstep;
    var orfstep= rfstep;
    var orot= rot;
    var ogrün= grün;
    var oblau= blau;


    // Werte resetten ...

    function mwerteini()
    {
     time= otime;
     zstep= ozstep;
     lfstep= olfstep;
     rfstep= orfstep;
    }

    function mfarbeini()
    {
     rot= orot;
     grün= ogrün;
     blau= oblau;
    }


    // zbreite in Cookie speichern, laden ...
    //alert(document.cookie);

    if(!document.cookie) setcook(zbreite); else getcook();
    if(!zbreite || isNaN(zbreite) || zbreite<rand || zbreite>breite-rand) zbreite=20;//1*rand;

    function setcook(n)
    {
     var ablauf = new Date();
     var tage=365;
     ablauf.setTime(ablauf.getTime() + (tage * 24 * 60 * 60 * 1000));
     document.cookie = "Menu="+n+"; expires="+ablauf.toGMTString();
    }

    function getcook()
    {
     var s=document.cookie;
     zbreite=parseInt(s.slice(s.indexOf("Menu=")+5));
    }


    // div Tags mit ID schreiben und das ganze ins Array ...

    function menini()
    {
     i=0;
     for(k=0; k<=breite; k+=spalte)
     {
      document.writeln('<div id="P'+i+'" style="position:absolute; top:'+top+'px; left:'+(left+k)+'px;');
      document.writeln('font-size:0px; width:'+spalte+'px; height:'+höhe+'px;">&nbsp;<\/div>');
      i++;
     }
     anz = i-1; for(i=0; i<= anz; i++) {linien[i]= document.getElementById("P"+i).style}
     mendraw();
    }

    // Farbverlauf ...

    function mendraw()
    {
     zanz = Math.ceil(anz*zbreite/breite);

     fstep=lfstep; r=rot, g=grün, b=blau;
     for(i=zanz; i>= 0; i--) farben();           // Farbverlauf nach oben abnehmende Helligkeit

     fstep=rfstep; r=rot, g=grün, b=blau;
     for(i=zanz; i<= anz; i++) farben();         // Farbverlauf nach unten abnehmende Helligkeit

     if(tmen==-1 && ef3 && ef4) mshad();         // Menüschattenfarbe anpassen
    }

    // Farben ändern ...

    function farben()
    {
     dezhex(r,g,b);
     linien[i].backgroundColor= f;

     r-=fstep; if(r<hfarbe) r=hfarbe;
     g-=fstep; if(g<hfarbe) g=hfarbe;
     b-=fstep; if(b<hfarbe) b=hfarbe;
    }

    // Timer start/stopp

    var tmen =-1;

    function stopani() {clearTimeout(tmen); tmen=-1; if(document.cookie) setcook(zbreite)}
    function startani() {if(tmen==-1) tmen= setTimeout("menani()",time)}

    // Timer ...

    function menani()
    {
     zbreite+= zstep;
     if(zbreite>=breite-rand) {zstep*=-1; zbreite+= zstep}
     if(zbreite<=rand) {zstep*=-1; zbreite+= zstep}
     mendraw(); tmen= setTimeout("menani()",time);
    }

    // Anmation Counter

    var tc= 0;
    var tcs = 10;
    var fin= 35;
    var finstep= 4;

    function hincani()
    {
     fin+= finstep; if(fin>=100) {fin= 100; tc=-2;} else tc= setTimeout("hincani()",tcs);
     document.getElementById('count').style.filter= 'Alpha(opacity=100, finishopacity='+fin+', style=3)'
    }

    function wegcani()
    {
     fin+= finstep; if(fin<=40) {fin= 40; tc=-1;} else tc= setTimeout("wegcani()",tcs);
     document.getElementById('count').style.filter= 'Alpha(opacity=100, finishopacity='+fin+', style=3)'
    }

    function startcani() {if(tc!=-2){window.clearTimeout(tc); finstep= 2; tc=-2; hincani()}}
    function stopcani() {if(tc!=-1){window.clearTimeout(tc); finstep=-2; tc=-1; wegcani()}}

    function dezhex(r,g,b)                           // RGB nach Hex
    {
     f=(65536*r+256*g+b).toString(16); while(f.length<6){f='0'+f} return f;
    }

    function hexrgb(f)                               // Hex nach RGB
    {
     r= parseInt(f.substr(1,2),16);
     g= parseInt(f.substr(3,2),16);
     b= parseInt(f.substr(5,2),16);
    }

    // MS Effekte

    var ef1=false;
    var ef2=false;
    var ef3=false;
    var ef4=false;
    var ef5=false;
    var ef6=false;
    var ef7=true;

    function mshad()                                 //  Menü-Links Schatten ...
    {
     var d=15;
     if(rot<d || grün<d || blau<d) d=hfarbe;
     var s= dezhex(rot-d,grün-d,blau-d);
     document.getElementById('men').style.filter='DropShadow(color=#'+s+',offx=2,offy=-2)';
    }

    function cmshad()
    {
     document.getElementById('men').style.filter=0;
    }

    // Hintergrund

    function backc(f)
    {
     if(f) f='#'+f; else f=backcol;
     hexrgb(f);

     var d=180;
     r-=d; if(r<hfarbe) r=hfarbe;
     g-=d; if(g<hfarbe) g=hfarbe;
     b-=d; if(b<hfarbe) b=hfarbe;

     var fa= dezhex(r,g,b);      // 6.2010 ...
     document.body.style.backgroundColor= fa;

     // 6.2010: Randbereiche der Tabelle für die class= back12a und back12b gesetzt ist ...

     var tds= document.getElementsByTagName("td");
     for (var i=0; i<tds.length; i++)
      {
       if (tds[i].className=='back12a' || tds[i].className=='back12b') tds[i].style.backgroundColor= fa;
      }
    }

    // Hauptdivision positionieren und Größe abhängig von Fenstergröße setzen ...

    function initWindow()
    {
     var w=WindowWidth();
     var h=WindowHeight();
     var p;                    // Breite Hauptdivision zu Fenster in Prozent/100
     var r=28/100;             // Breite Rand zu Fenster in Prozent/100
     var ws=screen.width-16;
     var rmax=1000;            // 5.2009: Rahmenbreite und damit Abstand Menü zum iframe begrenzen

     // sicherheitshalber hier nochmal position:absolute ...

     document.getElementById('lay1').style.position= 'absolute';

     // Breite und linker Rand ...

     if (w>=bmin && ws>=bmin)
     {
      p= 1-2*r*(ws-bmin)/ws;
      if (p*ws>rmax){p=rmax/ws};

      document.getElementById('lay1').style.width= Math.round(100*p)+'%';
      document.getElementById('lay1').style.left= Math.round(100*r)+'%';
      document.getElementById('lay1').style.marginLeft= Math.round(-bmin*r)+'px';
     }
     else
     {
      document.getElementById('lay1').style.width= bmin+'px';
      document.getElementById('lay1').style.left= '2px';
      document.getElementById('lay1').style.marginLeft= '0px';
     }

     // vertikal zentrieren ...

     if ((h/2)-278>0)
     {
      document.getElementById('lay1').style.top= '50%';
      document.getElementById('lay1').style.marginTop= '-278px';
     }
     else                       // falls Fenster zu klein fester oberer Rand
     {
      document.getElementById('lay1').style.top= '4px';
      document.getElementById('lay1').style.marginTop= '0px';
     }
    }

    // innere Fensterbreite ermitteln ...

    function WindowWidth()
    {
     if (window.innerWidth)
     {
      return window.innerWidth;
     }
     else if (document.body && document.body.offsetWidth)
     {
      return document.body.offsetWidth;
     }
     else return 0;
    }

    // innere Fensterhöhe ermitteln ...

    function WindowHeight()
    {
     if (window.innerHeight)
     {
      return window.innerHeight;
     }
     else if (document.body && document.body.offsetHeight)
     {
      return document.body.offsetHeight;
     }
     else return 0;
    }


    // Logo ausblenden

    function showlogo(n)
    {
     if (n==1)
     {
      document.getElementById('logo').style.display= 'inline';
     }
     else
     {
      document.getElementById('logo').style.display= 'none';
     }
    }

    // hps 5.2009: aus fcheck hierher in function damit beim laden keine Fehler auftreten:
    // durch setzen des src für iFrame wurde Unterseite geladen, dort rief fcheck z.B. über backMenu()
    // tag in index.html zu einem Zeitpunkt auf, wo die indexseite noch garnicht soweit aufgebaut war ...
    // nun übergibt fcheck titel und hash in Variable, und in index wird am Ende function nochmals aufgrufen

    function initSite()
    {
     if(fdocument_hash!=0)               // hash(#) vorhanden : Seite = Unterseite
     {                                   // = Seite die über eine Hauptseite aufgerufen wurde,
      hpmenu(fdocument_hash.substr(1));  // wo Menü ID mit Hash(#) übergeben wird, 1. Zeichen Hash=#
      backMenu(1);                       // Navigationsleiste 'zurück' anzeigen
     }
     else                                // kein hash vorhanden Seite = Hauptseite,
     {
      backMenu(0);                       // Navigationsleiste 'zurück' verbergen
      hpmenu(fdocument_title);           // Menü ID = Titel des Documents
     }

     var s= fdocument_title.substr(4);    // bei Anzeige Navigation Start durch Home ersetzen,  Menüitem
     s=s.replace(/Start/,"Home");         // soll Home sein, Dateiname darf aber nicht Home sein, Home = Index weil
     naviTitel('['+s+']');                // Navigationsleiste Titel anzeigen = Titel des Documents ab 4.Zeichen
    }
