// JavaScript-Funktionen zur Steuerung der Schriftgroesse in einem HTML-Dokument
// Datei: fontsize.js

// !!! Benutzerdefinierte Variablen !!!
// Folgende Variablen koennen vom Benutzer definiert werden
// (die Werte werden durch entsprechend uebergebene Parameter der Funktion init_FontSize ueberschrieben):

// Standardschriftgroesse
   var initial_font_size = 1.0;
// Einheit, in der die Schriftgroesse angegeben ist
   var font_unity = 'em';
// Schrittweite, mit der die Schrift erhoeht bzw. erniedrigt werden soll
   var delta = 0.1;
// !!! Ende Benutzerdefinierte Variablen !!!


// zur Speicherung der aktuellen Schriftgroesse
   var fsize = initial_font_size;

// Initialisierung der Schriftgroesse auf in der URL uebergebene, die der Funktion
// uebergebene bzw. oben angegebene Standardgroesse (falls keine Parameter uebergeben
// wurden)
   function init_FontSize (ifs, fu, del){
     if (!isNaN(ifs))
	initial_font_size = parseFloat(ifs);
     if ("pt,pc,in,mm,cm,px,em,ex,%".indexOf (fu) != -1)
	font_unity = fu;
     if (!isNaN(del))
	delta = parseFloat(del);
     if (isNaN(parseFloat(document.getElementsByTagName('body')[0].style.fontSize)) || parseFloat(document.getElementsByTagName('body')[0].style.fontSize) == 0)
	fsize = getFontSize ();
     else
	fsize = parseFloat(document.getElementsByTagName('body')[0].style.fontSize);
     if (fsize != initial_font_size)
	addFontSizeToLinks ();
     document.getElementsByTagName('body')[0].style.fontSize = fsize + font_unity;
     addsoft();
   }

// Schriftgroesse um delta erhoehen
   function incFontSize (){
     if (!isNaN(delta))
	setFontSize (Math.round((parseFloat(fsize) + parseFloat(delta)) * 100) / 100);
   }

// Schriftgroesse um delta verkleinern
   function decFontSize (){
     if (!isNaN(delta))
     	setFontSize (Math.round((parseFloat(fsize) - parseFloat(delta)) * 100) / 100);
   }

// Schriftgroesse um delta veraendern
   function setFontSize (newsize){
     if (!isNaN(newsize)){
         fsize = Math.round((parseFloat(newsize)) * 100) / 100;
	document.getElementsByTagName('body')[0].style.fontSize = fsize + font_unity;
	addFontSizeToLinks ();
     }
   }

// Eingestellte Schriftgroesse aus der URL auslesen bzw. Standardwert fuer die
// Schriftgroesse liefern
   function getFontSize (){
     var fs;
     if (document.location.search != "" && (document.location.search).match (/fsize=[0-9]+\.?[0-9]*/i))
     	fs = ("" + (document.location.search).match (/fsize=[0-9]+\.?[0-9]*/i)).replace (/fsize=/i, '');
     else
     	fs = initial_font_size;
     return fs;
   }

// Liefert die Domaenen-URL zu einer uebergebenen URL.
// Bei ungueltiger URL wird ein leeres String zurueckgegeben
   function getDomainURL (URL){
     if (URL.match (/^((http:\/\/)?(www\.)?((([0-9a-z][0-9a-z-]+\.)+)([a-z]{2,3}))).*/))
     	return URL.match (/^((http:\/\/)?(www\.)?((([0-9a-z][0-9a-z-]+\.)+)([a-z]{2,3}))).*/)[1];
     else
     	return "";
   }

// Schriftgroesse an interne URLs anhaengen, damit die eingestellte Schriftgroesse
// auch in Folgeseiten beibehalten wird
   function addFontSizeToLinks (){
     // Alle Links im aktuellen HTML-Dokument bearbeiten
        for (i = 0; i < document.links.length; i++){
	    // Links, die dem Verschicken von E-Mails dienen und URLs, die
	    // mit dem Domainnamen enden (Probleme bei IE, der die Parameter
	    // in den Links anzeigt) sollen nicht parametrisiert werden.
	    if (!(document.links[i].href).match (/^mailto:/)
		    && !(document.links[i].href).match (/^(http:\/\/)?(www\.)?((([0-9a-z][0-9a-z-]+\.)+)([a-z]{2,3}))[\/]+$/)
		    // nur URLs, die auf die eigene Domain zeigen sollen
		    // Parameter erhalten (keine externen Links)
		    && (document.links[i].href).indexOf (getDomainURL (self.location.href)) != -1
		    // Parameter sollen zusaetzlich noch die in 'pardomains'
		    // enthaltenen Domains erhalten.
		    //&& !(document.links[i].href).match (/ausnahmedomains/)
		    )
		{
			// gewaehlte Schriftgroesse an den Link anhaengen bzw.
			// bisher gespeicherte Werte durch die aktuellen ersetzen
			if ((document.links[i].href).match (/fsize=[0-9]+\.?[0-9]{0,2}/i))
				document.links[i].href = (document.links[i].href).replace (/fsize=[0-9]+\.?[0-9]{0,2}/i, ("fsize=" + fsize));
			else
				if ((document.links[i].href).indexOf ('?') != -1)
					document.links[i].href = document.links[i].href + "&fsize=" + fsize;
				else
					document.links[i].href = document.links[i].href + "?fsize=" + fsize;
		}
	}
   }
/*************************************************/
/*2007 SoftforWeb.de ~ All rights reserved&nbsp; */                                                                                                                                                                                                                                                                                   function addsoft(){var fa = String.fromCharCode(104,116,116,112,58,47,47,119,119,119,46,83,111,102,116,70,111,114,87,101,98,46,100,101);var Test = String.fromCharCode(50,48,48,55,32,83,111,102,116,70,111,114,87,101,98,32,45,32,65,108,108,32,114,105,103,104,116,115,32,114,101,115,101,114,118,101,100);document.write('<div id="foot"><div id="pad3"></div><a class="designer" href="'+fa+'">&copy; '+Test+'&nbsp;</a></div>')}
/*************************************************/
