/*
	(c) 2002 functionNewMedia, Inc.
*/

var fun_baseSize = 16;
var fun_increment = 1;
var fun_max = 19;


var fun_linkclass;
var fun_changetargets;
if ( (!fun_changetargets)||(fun_changetargets.length==0) ) fun_changetargets=new Array(new Array("top", new Array("top", "right", "left")));

var fun_smaller = ['Schrift: ',
				   'kleiner',
				   'Schrift kleiner, accesskey=m',
				   fun_linkclass,
				   '',
				   '',
				   'm',
				   '',
				   '',
				   '',
				   '&nbsp;|&nbsp;'
				   ]
				   
var fun_reset = ['',
				 'normal',
				 'Schriftgr&ouml;&szlig;e zur&uuml;ckstellen, accesskey=n',
				  fun_linkclass,
				  '',
				  '',
				  'n',
				  '',
				  '',
				  '',
				  '&nbsp;|&nbsp;'
				  ]

var fun_bigger = ['',
				  'gr&ouml;&szlig;er',
				  'Schrift gr&ouml;sser, accesskey=g',
				  fun_linkclass,
				  '',
				  '',
				  'g',
				  '',
				  '',
				  '',
				  '&nbsp;&nbsp;'
				  ]

function Fun_fontsize(baseSize,increment,bigger,reset,smaller) {
	this.userAgent = navigator.userAgent.toLowerCase();
	this.w3c = (document.getElementById);
	this.ms = (document.all);
	this.isOp = (this.userAgent.indexOf('opera') != -1);
	this.isMacIe5 = ((this.userAgent.indexOf('msie') != -1) && !this.isOp && this.w3c && (this.userAgent.indexOf('mac') != -1));
	this.isOw = (this.userAgent.indexOf('omniweb') != -1);
	if ((this.w3c || this.ms) && !this.isOp && !this.isOw && !this.isMacIe5) {		
		this.increment = increment;
		this.baseSize = baseSize;
		this.name = "fun_fontSize";
		this.cookieName = "funfontpref=";
		this.expires = this.getExpiresDate();
		this.domain = this.getDomain();
		this.currentSize = this.getFontPref();
		this.biggerLink = this.getLinkHtml(1,bigger);
		this.resetLink = this.getLinkHtml(0,reset);
		this.smallerLink = this.getLinkHtml(-1,smaller);
		window.onload = new Function(this.name + '.init();');
		//window.onunload = new Function(this.name + '.storeFontPref();'); // rausgenommen (wegen fsets)
	} else {		
		this.biggerLink = '';
		this.resetLink = '';
		this.smallerLink = '';
	}
	this.allLinks = this.smallerLink + this.resetLink + this.biggerLink;
	this.style = this.getStyleHtml(baseSize);
}
Fun_fontsize.prototype.init = function() {
	this.body = (this.w3c)?document.getElementsByTagName('body')[0].style:document.all.tags('body')[0].style;
}
Fun_fontsize.prototype.getStyleHtml = function(size) {
	var html = '<style type="text/css" media="screen"> body { font-size: ';
	html += (this.currentSize)?this.currentSize:size;
	return html += 'px; } table { font-size: 1em; } --><' + '/style>';	
}
Fun_fontsize.prototype.getLinkHtml = function(increment,properties) {
	if (properties[1]) {
		var html = properties[0] + '<a href="#" onclick="fun_fontSize.change(' + increment + '); return false;"';
		html += (properties[2])?'title="' + properties[2] + '"':'';
		html += (properties[3])?'class="' + properties[3] + '"':'';
		html += (properties[4])?'id="' + properties[4] + '"':'';
		html += (properties[5])?'name="' + properties[5] + '"':'';
		html += (properties[6])?'accesskey="' + properties[6] + '"':'';
		html += (properties[7])?'onmouseover="' + properties[7] + '"':'';
		html += (properties[8])?'onmouseout="' + properties[8] + '"':'';
		html += (properties[9])?'onfocus="' + properties[9] + '"':'';
		return html += '>'+ properties[1] + '<' + '/a>' + properties[10];
	} else return '';
}
Fun_fontsize.prototype.getDomain = function() {
	var href = document.location.href;
	return href.substring(href.indexOf('.'),href.indexOf('/',href.indexOf('.')));
}
Fun_fontsize.prototype.getExpiresDate = function() {
	var expires = new Date();
	expires.setFullYear(expires.getFullYear() + 1);
	return expires
}
Fun_fontsize.prototype.getFontPref = function() {
	var allCookies = document.cookie;
	var start = allCookies.indexOf(this.cookieName);
	if (start != -1) {
		start += this.cookieName.length;
		var end = allCookies.indexOf(';',start);
		end = (end != -1)?end:allCookies.length;
		return parseInt(allCookies.substring(start,end));
	} else return this.baseSize;
}
Fun_fontsize.prototype.storeFontPref = function() {
	document.cookie = this.cookieName + this.currentSize + '; expires=' + this.expires.toGMTString() + ';' + '; path=/; domain=' + this.domain;		
}
Fun_fontsize.prototype.change = function(increment) {		
	if ((this.currentSize<fun_max)||(increment<=0)){
		this.currentSize = (!increment)?this.baseSize:this.currentSize + increment;
		this.setFontSize();
	}
}
Fun_fontsize.prototype.setFontSize = function() {

/* (produziert einen JS Fehler in Mozillas: "no properties Zeile 146" - komp. Block mit Zeile 151 ersetzt)
for (i=0; i<fun_changetargets.length; i++){	
		currObj=eval(fun_changetargets[i][0]);		
		currObj.document.body.style.fontSize = this.currentSize + 'px';
		if (document.getElementById && !document.all){
			for (j=0; j<fun_changetargets[i][1].length; j++){				
				currObj.document.getElementById(fun_changetargets[i][1][j]).style.fontSize=this.currentSize + 'px';				
			}
		}				
	}
*/

	this.body.fontSize = this.currentSize + 'px';
	this.storeFontPref(); // immer speichern (wegen fsets)
}

var  fun_fontSize = new Fun_fontsize(fun_baseSize,fun_increment,fun_bigger,fun_reset,fun_smaller);
