// font-size switcher object
var _fss = {
    // add event listener
    addFSSEvent: function(elementId, eventType, eventFunction)
    {
        var currentElement = document.getElementById(elementId);
        if (document.addEventListener) {
            currentElement.addEventListener(eventType, eventFunction, false);
        }
        else if (document.attachEvent)
        {
            currentElement.attachEvent('on' + eventType, eventFunction);
        }
    },
    // get event target
    identifyFSSEvent : function(eventObj)
    {
        var eventObject = eventObj;
        var eventId = '';
        if (document.attachEvent)
        {
            eventId = eventObject.srcElement.getAttribute('id');
        }
        else
        {
            eventId = eventObject.target.getAttribute('id');
        }
        return eventId;
    },
    // set font-size cookie
    setFSSCookie : function(fS) {
        var a = new Date();
        var fssCookiePath = 'http://www.arbeitskreis-lernforschung.de/cookies/';
        a = new Date(a.getTime() +1000*60*60*24*365);
        document.cookie = 'fontSize=' + fS +'; expires=' + a.toGMTString() + '; path=/' + ';';
    },
    // get font-size from cookie
    readFSSCookie : function()
    {
        if (document.cookie)
        {
            var currentCookie = document.cookie;
            var cookieName = currentCookie.substr(0,currentCookie.search('='));
            var cookieValue = currentCookie.substr(
                                                currentCookie.search('=')+1,
                                                currentCookie.search(';')
                                            );
            if(cookieValue === '')
            {
                cookieValue = currentCookie.substr(
                                                currentCookie.search('=')+1,
                                                currentCookie.length
                                            );
            }
        }
        return cookieValue;
    },
    // check for cookie and set cookie-saved font-size
    checkCookieFSS: function()
    {
        if(document.cookie)
        {
            var cookieFS = _fss.readFSSCookie();
            document.body.style.fontSize = cookieFS;
            _fss.fssPagePeel();
        }
        else
        {
            return false;
        }
    },
    // change cursor symbol on mouseover
    changeCursor : function(eventObj)
    {
        var cursorElement = _fss.identifyFSSEvent(eventObj);
        document.getElementById(cursorElement).style.cursor = 'pointer';
    },
    // reduce font-size
    reduceFS: function()
    {
        var cookieFS = '90%';
        if (document.cookie)
        {
            var fSFactor = 10;
            var cookieFS = _fss.readFSSCookie();
            var fSValue = cookieFS.substr(0,cookieFS.search('%'));
            if (fSValue == 80)
            {
                cookieFS = '80%';
            }
            else
            {
                cookieFS = parseInt(fSValue,10) - parseInt(fSFactor,10) + '%';   
            }
        }
        document.body.style.fontSize = cookieFS;
        _fss.setFSSCookie(cookieFS);
        _fss.fssPagePeel();
    },
    // set default font-size
    normaliseFS: function()
    {
        var cookieFS = '100%';
        _fss.setFSSCookie(cookieFS);
        document.body.style.fontSize = cookieFS;
        _fss.fssPagePeel();
    },
    // enlarge font-size
    enlargeFS: function()
    {
        var cookieFS = '110%';
        if (document.cookie)
        {
            var fSFactor = 10;
            var cookieFS = _fss.readFSSCookie();
            var fSValue = cookieFS.substr(0,cookieFS.search('%'));
            if (fSValue == 140)
            {
                cookieFS = '140%';
            }
            else
            {
                cookieFS = parseInt(fSValue,10) + parseInt(fSFactor,10) + '%';   
            }
        }
        document.body.style.fontSize = cookieFS;
        _fss.setFSSCookie(cookieFS);
        _fss.fssPagePeel();
    },
    // graphical user interface method (graceful degradation)
    fssGui : function()
    {
        
        var urlPath = 'http://www.arbeitskreis-lernforschung.de/';
        
        var imgReduceFSElement = document.createElement('img');
        imgReduceFSElement.setAttribute('id','schrift_kleiner',0);
        imgReduceFSElement.setAttribute('src',urlPath+'images/header/schrift_kleiner.gif',0);
        imgReduceFSElement.setAttribute('alt','Schriftgröße verkleinern',0);

        var imgNormaliseFSElement = document.createElement('img');
        imgNormaliseFSElement.setAttribute('id','schrift_normal',0);
        imgNormaliseFSElement.setAttribute('src',urlPath+'images/header/schrift_normal.gif',0);
        imgNormaliseFSElement.setAttribute('alt','Schriftgröße normal',0);
        
        var imgEnlargeFSElement = document.createElement('img');
        imgEnlargeFSElement.setAttribute('id','schrift_groesser',0);
        imgEnlargeFSElement.setAttribute('src',urlPath+'images/header/schrift_groesser.gif',0);
        imgEnlargeFSElement.setAttribute('alt','Schriftgröße vergrößern',0);
        
        // var liElement = document.createElement('li');
        var liElement = document.getElementById('fss');
        liElement.appendChild(document.createTextNode('Schriftgröße: '));
        liElement.appendChild(imgReduceFSElement);
        liElement.appendChild(imgNormaliseFSElement);
        liElement.appendChild(imgEnlargeFSElement);
        
        document.getElementById('header_menue').appendChild(liElement);
    },
    // if font-size not equal 100%, pagepeel in infoblock should not appear
    fssPagePeel : function()
    {
        if(document.getElementById('pagepeel_div'))
        {
            var pagePeelDiv = document.getElementById('pagepeel_div');
            if (document.body.style.fontSize != '100%')
            {
                pagePeelDiv.style.display = 'none';
            }
            else
            {
                pagePeelDiv.style.display = 'block';
            }
        }
    }
};

// load script after document is ready
window.onload = function()
{
    _fss.checkCookieFSS();
    
    _fss.addFSSEvent('schrift_kleiner', 'mouseover', _fss.changeCursor);
    _fss.addFSSEvent('schrift_normal', 'mouseover', _fss.changeCursor);
    _fss.addFSSEvent('schrift_groesser', 'mouseover', _fss.changeCursor);

    _fss.addFSSEvent('schrift_kleiner', 'click', _fss.reduceFS);
    _fss.addFSSEvent('schrift_normal', 'click', _fss.normaliseFS);
    _fss.addFSSEvent('schrift_groesser', 'click', _fss.enlargeFS);
    
    // viewer extension
    if (document.getElementById('subtraktion_buchansicht'))
    {
        _fss.addFSSEvent('subtraktion_buchansicht','click',function(){var myPicWindow = window.open("http://www.arbeitskreis-lernforschung.de/buchvorstellung-subtraktion-buchansicht.html","Buchansicht","location=no,scrollbars=no,resizable=yes,toolbar=no,menubar=no,width=468,height=680"); myPicWindow.focus();});   
    }
};