/*
    (c) 2002 functionNewMedia, Inc.

    The script may distributed and used freely, provided the above
    copyright notice remains intact and the both the script and this
    readme file are distributed together and unaltered.

    Send bug reports, comments, questions or requests to:

    c.kaminski@function.de
*/

var fun_baseSize = 12;
var fun_increment = 1;

var fun_bigger = ['	',
                  '<span class="large">A</span>',
                  'Schrift gr&ouml;sser',
                  '',
                  '',
                  '',
                  '',
                  '',
                  '',
                  '',
                  ''
                  ]

var fun_reset = ['',
                  '<span class="middle">A</span>',
                 'Schriftgr&ouml;&szlig;e zur&uuml;cksetzen',
                  '',
                  '',
                  '',
                  '',
                  '',
                  '',
                  '',
                  ''
                  ]

var fun_smaller = ['',
                  '<span>A</span>',
                   'Schrift kleiner',
                   '',
                   '',
                   '',
                   '',
                   '',
                   '',
                   '',
                   ''
                   ]

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.isOldOp = ((this.userAgent.indexOf('opera') != -1)&&(parseFloat(this.userAgent.substr(this.userAgent.indexOf('opera')+5)) <= 7));
    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)
    if ((this.w3c || this.ms) && !this.isOldOp && !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(this.increment,bigger);
        this.resetLink = this.getLinkHtml(0,reset);
        this.smallerLink = this.getLinkHtml(-this.increment,smaller);
        window.onload = new Function(this.name + '.init();');
        window.onunload = new Function(this.name + '.storeFontPref();');
    }
    else
    {
        this.biggerLink = '';
        this.resetLink = '';
        this.smallerLink = '';
    }
    this.allLinks = this.biggerLink + this.resetLink + this.smallerLink;
    this.style = this.getStyleHtml(baseSize);
//	alert (this.style);
}
Fun_fontsize.prototype.init = function() {
    //this.body = (this.w3c)?document.getElementsByTagName('body')[0].style:document.all.tags('body')[0].style;
    this.content = (this.w3c)?document.getElementById("content").style:document.all["content"].style;
}
Fun_fontsize.prototype.getStyleHtml = function(size) {
    var html = '<style type="text/css" media="screen"> #content { 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) {
    //this.currentSize = (!increment)?this.baseSize:this.currentSize + increment;
    if(!increment) {
        this.currentSize = this.baseSize;
    } else {
        if(((this.currentSize + increment) >= 10) && ((this.currentSize + increment) <= 14)) {
            this.currentSize = this.currentSize + increment;
        } else {
            this.currentSize = this.currentSize;
        }
    }
    this.setFontSize();
}
Fun_fontsize.prototype.setFontSize = function() {
    this.content.fontSize = this.currentSize + 'px';
}

var fun_fontSize = new Fun_fontsize(fun_baseSize,fun_increment,fun_bigger,fun_reset,fun_smaller);

