// JavaScript-Funktionen zur Steuerung der Schriftgroesse in einem HTML-Dokument
// Copyright (C) 2005 Alexander Mueller
// Autor: Alexander Mueller
// Web:   http://www.EvoComp.de/
// Datei: fontsize.js
// The copyright notice must stay intact for use!
// You can obtain this and other scripts at http://www.EvoComp.de/scripts/skripte.html
//
// This program is distributed in the hope that it will be useful,
// but without any warranty, expressed or implied.


// !!! 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;
// 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 !!!

var steps = new Array(0.5,0.625,0.75);
var expiretime = 1000*60*60*24*30;

// 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()
{
  if(fsize = readCookie('fontsize'))
    true;
  else
    fsize = initial_font_size;

  setFontSize(fsize);
}

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

function saveFontSizeInCookie()
{
  saveCookie('fontsize',fsize);
}

function trim(s)
{
  while (s.substring(0,1) == ' ') {
    s = s.substring(1,s.length);
  }
  while (s.substring(s.length-1,s.length) == ' ') {
    s = s.substring(0,s.length-1);
  }
  return s;
}

function saveCookie(varname,value)
{

  document.cookie = varname+'='+value;
  var a = new Date();
  a = new Date(a.getTime() + expiretime);
  document.cookie = 'expires='+a;
}

function readCookie(varname)
{
  if(document.cookie)
  {
    cookies = document.cookie;
    if(cookies.indexOf(';')>-1)
      cookies = cookies.split(';');
    else
      cookies = new Array(cookies);

    var vars = new Object();

    for(i=0; i<cookies.length; i++)
    {
      if(cookies[i].indexOf('=')>-1)
      {
        temp = cookies[i].split('=');
        vars[trim(temp[0])] = trim(temp[1]);
      }
    }

    if(typeof(vars.expires)!='undefined')
    {
      var now = new Date();
      now = new Date(now.getTime());
      now = Date.parse(now);
      expires = Date.parse(vars.expires);

      if(expires<now)
        return false;
    }

    if(typeof(vars[varname])!='undefined')
      return vars[varname];

    return false;
  }
}

function setFontSizeLinkActive(num)
{
	document.getElementById('NavigationService').className='groesse'+num;
}
