// Standardschriftgroesse
var initial_font_size = 9;
// Einheit font-size
var font_unity = 'pt';
// Schrittweite
var delta = 1;
// Klassen-Elemente
var class1 = "fltext";
var class2 = "fliesstext";

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)
{
	
	var pos = 0;
	while(typeof document.getElementsByTagName('span')[pos] != 'undefined')
	{
		if(document.getElementsByTagName('span')[pos].className == class1 || document.getElementsByTagName('span')[pos].className == class2)
		{
			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('span')[pos].style.fontSize)) || parseFloat(document.getElementsByTagName('span')[pos].style.fontSize) == 0)
				fsize = getFontSize ();
			else
				fsize = parseFloat(document.getElementsByTagName('span')[pos].style.fontSize);
			if (fsize != initial_font_size)
				addFontSizeToLinks ();
			document.getElementsByTagName('span')[pos].style.fontSize = fsize + font_unity;
		}
		pos ++;
	}
	
	
	pos = 0;
	while(typeof document.getElementsByTagName('p')[pos] != 'undefined')
	{
		//if(document.getElementsByTagName('p')[pos].className == class1 || document.getElementsByTagName('p')[pos].className == class2)
		//{
			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('p')[pos].style.fontSize)) || parseFloat(document.getElementsByTagName('p')[pos].style.fontSize) == 0)
				fsize = getFontSize ();
			else
				fsize = parseFloat(document.getElementsByTagName('p')[pos].style.fontSize);
			if (fsize != initial_font_size)
				addFontSizeToLinks ();
			document.getElementsByTagName('p')[pos].style.fontSize = fsize + font_unity;
		//}
		pos ++;
	}

	pos = 0;
	while(typeof document.getElementsByTagName('li')[pos] != 'undefined')
	{
		//if(document.getElementsByTagName('li')[pos].className == class1 || document.getElementsByTagName('li')[pos].className == class2)
		//{
			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('li')[pos].style.fontSize)) || parseFloat(document.getElementsByTagName('li')[pos].style.fontSize) == 0)
				fsize = getFontSize ();
			else
				fsize = parseFloat(document.getElementsByTagName('li')[pos].style.fontSize);
			if (fsize != initial_font_size)
				addFontSizeToLinks ();
			document.getElementsByTagName('li')[pos].style.fontSize = fsize + font_unity;
		//}
		pos ++;
	}
	
	
	pos = 0;
	while(typeof document.getElementsByTagName('a')[pos] != 'undefined')
	{
		if(document.getElementsByTagName('a')[pos].className == class1 || document.getElementsByTagName('a')[pos].className == class2)
		{
			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('a')[pos].style.fontSize)) || parseFloat(document.getElementsByTagName('a')[pos].style.fontSize) == 0)
				fsize = getFontSize ();
			else
				fsize = parseFloat(document.getElementsByTagName('a')[pos].style.fontSize);
			if (fsize != initial_font_size)
				addFontSizeToLinks ();
			document.getElementsByTagName('a')[pos].style.fontSize = fsize + font_unity;
		}
		pos ++;
	}
	
}

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

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

function stdFontSize ()
{
	if (!isNaN(delta))
		setFontSize (initial_font_size);
}

// Schriftgroesse um delta veraendern
function setFontSize (newsize)
{
	if (!isNaN(newsize))
	{
		fsize = Math.round((parseFloat(newsize)) * 100) / 100;
		
		var pos = 0;
		while(typeof document.getElementsByTagName('span')[pos] != 'undefined')
		{
			if(document.getElementsByTagName('span')[pos].className == class1 || document.getElementsByTagName('span')[pos].className == class2 )
			{
				document.getElementsByTagName('span')[pos].style.fontSize = fsize + font_unity;
			}
			pos ++;
		}
		
		pos = 0;
		while(typeof document.getElementsByTagName('a')[pos] != 'undefined')
		{
			if(document.getElementsByTagName('a')[pos].className == class1 || document.getElementsByTagName('a')[pos].className == class2 )
			{
				document.getElementsByTagName('a')[pos].style.fontSize = fsize + font_unity;
			}
			pos ++;
		}
		
		
		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;
		}
	}
}

