var fontsize=
{
    cookieName: 'nefuFS',
    elementID: 'body',
    normalSize: 0.8,
    maxSize: 1.5,
    minSize: 0.7,
    step: 0.1,

    setCookie: function( name, value, expiresInDays )
    {
        var expireDate = false;

        if ( expiresInDays )
        {
            expireDate = new Date();
            expireDate.setTime( expireDate.getTime() + ( expiresInDays * 24 * 3600 * 1000 ) );
        }

        document.cookie = name + "=" + escape( value )
            + ( ( expireDate )? "; expires=" + expireDate.toGMTString(): "" )
            + "; path=/";
    },
                                    
    getCookie: function( name )
    {
        var dc = document.cookie;
        var begin = dc.indexOf( name + "=" ); 
        if ( begin != -1 )
        {
            begin += name.length + 1; 
            var end = dc.indexOf( ";", begin );
            if ( end == -1 )
            {
                end = dc.length;
            }
            return unescape( dc.substring( begin, end ) );
        }
        return false;
    },

    size: function()
    {
        var el = document.getElementById( fontsize.elementID );
        var size = el.style.fontSize;
        if ( !size )
        {
            size = fontsize.normalSize;
        }
        else
        {
            size = parseFloat( size );
        }

        return size;
    },

    setSize: function( fontSize )
    {
        var el = document.getElementById( fontsize.elementID );
        el.style.fontSize = fontSize + 'em';
        fontsize.setCookie( fontsize.cookieName, fontSize, 3652 );
    },

    decrease: function()
    {
        var size = fontsize.size();
        size = Math.max( size - fontsize.step, fontsize.minSize );
        fontsize.setSize( size );
        return false;
    },

    increase: function()
    {
        var size = fontsize.size();
        size = Math.min( size + fontsize.step, fontsize.maxSize );
        fontsize.setSize( size );
        return false;
    },

    normalize: function()
    {
        fontsize.setSize( fontsize.normalSize );
        return false;
    },

    initialize: function()
    {
        var size = fontsize.getCookie( fontsize.cookieName );
        if ( size )
        {
            document.getElementById( fontsize.elementID ).style.fontSize = size + 'em';
        }
    }
}
