// Javafunktionen für Seite ohne Navigationsleisten
// Christian Wilhelm * Pfeiffersche-Stiftungen Magdeburg * 22.6.2005
// letzte Überarbeitung: 11.5.2006

function zoom(faktor) {
   if (window.parent.HMenu) {
      window.parent.HMenu.zoom(faktor);
      return;
      }
   if ((typeof(zoomfaktor)=='undefined')||(zoomfaktor=="")) {  // beim 1. Aufruf der Funktion
      zoomfaktor=1;                                            // Anfangs- und Grenzwerte berechnen
      orgBreite=document.body.offsetWidth+36;
      orgHoehe=document.body.offsetHeight+49;
      zoomX=(screen.width-orgBreite)/30*0.05+1;
      zoomY=(screen.height-orgHoehe-50)/30*0.05+1;
//    alert("Fenstergröße: "+orgBreite+" x "+orgHoehe+"\r\nBildschirm: "+screen.width+" x "+screen.height+"\r\nMaxzoom: "+zoomX+" / "+zoomY);
   }
   var aendX=0;
   var aendY=0;
   if ((zoomX>zoomfaktor+0.05)&&(faktor=='+')||(zoomX>zoomfaktor)&&(faktor=='-')) {
      aendX=30;
   }
   if ((zoomY>zoomfaktor+0.05)&&(faktor=='+')||(zoomY>zoomfaktor)&&(faktor=='-')) {
      aendY=30;
   }
   if (!document.getElementById) {return;}
   switch (faktor) {
      case "+": zoomfaktor=zoomfaktor+0.05;
                window.resizeBy(aendX,aendY);
                break;
      case "-": zoomfaktor=zoomfaktor-0.05;
                window.resizeBy(-aendX,-aendY);
                break;
   }
   document.body.style.zoom=zoomfaktor;
   var element = document.getElementById('zoomanzeige');
   var text = element.firstChild;
   text.data = Math.round(zoomfaktor*100)+"%";
   if (document.form) {
      if (document.form.zoomwert) {document.form.zoomwert.value=zoomfaktor;}
      if (document.form.zoomX) {document.form.zoomX.value=zoomX;}
      if (document.form.zoomY) {document.form.zoomY.value=zoomY;}
   }
   linkAnpassen();
}
function linkAnpassen() {
   if ((typeof(zoomfaktor)!='undefined')&&(zoomfaktor!="")) {parameter="&zoom="+zoomfaktor;}
   if ((typeof(zoomX)!='undefined')&&(zoomX!="")) {parameter=parameter+"&x="+zoomX;}
   if ((typeof(zoomY)!='undefined')&&(zoomY!="")) {parameter=parameter+"&y="+zoomY;}
   i=1;
   while(i<6) {
      fragezeichen="";
      id="link"+i;
      if (document.getElementById(id)) {
         ziel=document.getElementById(id).href;
         if (ziel.indexOf("?")==-1) fragezeichen="?";
         document.getElementById(id).href=ziel+fragezeichen+parameter;
      }
   i++;
   }
}
function aktiv(id) {
   if (!document.getElementById) {return;}
   switch(id) {
      case 'naviPlus':document.getElementById('naviPlus').src="http://www.pfeiffersche-stiftungen.de/plus1.gif";break;
      case 'naviMinus':document.getElementById('naviMinus').src="http://www.pfeiffersche-stiftungen.de/minus1.gif";break;
   }
}
function normal(id) {
   if (!document.getElementById) {return;}
   switch(id) {
      case 'naviPlus':document.getElementById('naviPlus').src="http://www.pfeiffersche-stiftungen.de/plus.gif";break;
      case 'naviMinus':document.getElementById('naviMinus').src="http://www.pfeiffersche-stiftungen.de/minus.gif";break;
   }
}
// Schalter "Navigationsleiste einblenden" auf der Suchleiste
function navFrame() {
if (window.top.text) {
   window.top.location.href=window.top.text.location.href;
   }
if ((window.top.rechts)&&(window.top.rechts.text)) {
   window.top.location.href=window.top.rechts.text.location.href;
   }
}
// Starten des Mail2aFriend-formulars
function mail2aFriend() {
   if ((typeof(titZeile)=='undefined')||(typeof(textDat)=='undefined')) {
      alert('Diese Funktion ist hier nicht vorgesehen.');
      return;
   }
   titelZeile=escape(titZeile);
   var win = window.open("http://www.pfeiffersche-stiftungen.de/mail2aFriend.php?&s=1&t="+titelZeile+"&q="+textDat, "Kontakt",
         'toolbar=no,menubar=no,scrollbars=yes,status=yes,resizable=yes,width=600,height=350');
   win.focus();                                                          // Browserfenster öffnen
}
// Druckansicht
function vorschau() {
   if (window.top.text)        {window.top.location.href=window.top.text.location.href;}
   if (window.top.rechts.text) {window.top.location.href=window.top.rechts.text.location.href;}
   }

function initSeite() {
   window.onload=markiere;
   if ((!window.parent.HMenu)||(!document.getElementById)) return;
   if (typeof(titZeile)!='undefined') window.parent.HMenu.sTitel(titZeile);
}
// Markieren der Suchwörter, special thanks to Stuart Langridge (www.kryogenix.org)
function highlightWord(node,word) {                                      // Iterate into this nodes childNodes
   if (node.hasChildNodes) {
      var hi_cn;
         for (hi_cn=0;hi_cn<node.childNodes.length;hi_cn++) {
            highlightWord(node.childNodes[hi_cn],word);
            }
         }                                                               // And do this node itself
   if (node.nodeType == 3) {                                             // text node
      tempNodeVal = node.nodeValue.toLowerCase();
      tempWordVal = word.toLowerCase();
      if (tempNodeVal.indexOf(tempWordVal) != -1) {
         pn = node.parentNode;
         if (pn.className != "searchword") {                             // word has not already been highlighted!
            nv = node.nodeValue;
            ni = tempNodeVal.indexOf(tempWordVal);                       // Create a load of replacement nodes
            before = document.createTextNode(nv.substr(0,ni));
            docWordVal = nv.substr(ni,word.length);
            after = document.createTextNode(nv.substr(ni+word.length));
            hiwordtext = document.createTextNode(docWordVal);       
            hiword = document.createElement("a");
            hiword.className = "searchword";
            hiword.id = "fundstelle";
            hiword.appendChild(hiwordtext);
            pn.insertBefore(before,node);
            pn.insertBefore(hiword,node);
            pn.insertBefore(after,node);
            pn.removeChild(node);
            }
         }
      }
   }
function markiere() {
   if (typeof(start)!='undefined') start();
   if (!document.createElement) return;
   ref = window.location.search;
   if (ref.indexOf('?') == -1) ref = document.referrer;
   if (ref.indexOf('?') == -1) return;
   qs = ref.substr(ref.indexOf('?')+1);
   qsa = qs.split('&');
   for (i=0;i<qsa.length;i++) {
      qsip = qsa[i].split('=');
      if (qsip.length == 1) continue;
      if (qsip[0] == 'q' || qsip[0] == 'p') {                             // q= for Google, p= for Yahoo
         words = unescape(qsip[1].replace(/\+/g,' ')).split(/\s+/);
         for (w=0;w<words.length;w++) {
            highlightWord(document.getElementsByTagName("body")[0],words[w]);
            }
        }
      if (qsip[0] == 'suche') {                                           // suche= interne Volltextsuche
         highlightWord(document.getElementsByTagName("body")[0],unescape(qsip[1]));
         var n=0;
         while (n<qsip[1].length-3) {
            qsip[2]=qsip[1].substring(0,n+2)+"-"+qsip[1].substring(n+2);  // Suche mit Trennungsstrich
            highlightWord(document.getElementsByTagName("body")[0],unescape(qsip[2]));
            n++;
            }      
         }
      }
// alert(document.body.outerHTML); 
   location.hash="#fundstelle";
   if (document.body.scrollHeight-document.body.scrollTop>500) scrollBy(0,-200);
// alert(document.body.scrollTop+' von '+document.body.scrollHeight);
   }
//Bedienung per Tastatur
// Tastatureingabe Netscape
   if (navigator.appName=="Netscape") {document.onkeydown = Netscapetaste;}
function Netscapetaste(welche) {
   tastatur(welche.which);
   }   
function tastatur(taste) {
   switch(taste) {
      case 72: if (window.parent.HMenu) {
                  window.parent.HMenu.focus();                  // H: Hauptmenüfenster in den Vordergrund
                  window.status="Hauptmenü aktiv. Cursor rechts, links zum Navigieren, Zoom mit + -";
               }
               break;
      case 77: if (window.parent.Menu) {
                  window.parent.Menu.focus();                   // M: Menüfenster in den Vordergrund
                  window.status="Menü aktiv. Cursor auf, ab zum Navigieren, Zoom mit + -";
               }
               break;
      case 84: window.parent.text.focus();                      // T: Textfenster in den Vordergrund
               if (window.parent.Menu) {
                  window.status="Fertig. Tastaturbedienung: M für Menü H für Hauptmenü, Zoom mit + -";
               }
               break;
      case 107:zoom('+');break;
      case 109:zoom('-');break;
   }
}
