function hasClass( ele, cls )
{
    return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
}

function addClass( ele, cls )
{
    if (!this.hasClass(ele,cls)) ele.className += " "+cls;
}

function removeClass( ele, cls )
{
    if (hasClass(ele,cls)) {
        var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
        ele.className=ele.className.replace(reg,' ');
    }
}

function fontsizedefault()
{
    var bd = document.getElementsByTagName( "body" )[0];
    fs = getCurrentFontSize( bd );
    removeClass( bd, 'fs' + fs );

    // 3 is the default
    addClass( bd, 'fs3' );
    createCookie( 'phpbb3_fs_cookie', 3, 365 );
}

function getCurrentFontSize( obj )
{
    if( hasClass( obj, "fs1" ))
        return 1;
    if( hasClass( obj, "fs2" ))
        return 2;
    if( hasClass( obj, "fs3" ))
        return 3;
    if( hasClass( obj, "fs4" ))
        return 4;
    if( hasClass( obj, "fs5" ))
        return 5;
    if( hasClass( obj, "fs6" ))
        return 6;
    if( hasClass( obj, "fs7" ))
        return 7;
    return 0;
}

function fontsizeup()
{
    var bd = document.getElementsByTagName( "body" )[0];
    fs = getCurrentFontSize( bd );

    if( fs == 7 )   // already largest; don't do anything.
        return;

    removeClass( bd, 'fs' + fs );
    fs++;
    addClass( bd, 'fs' + fs );

    createCookie( 'phpbb3_fs_cookie', fs, 365 );
}

function fontsizedown()
{
    var bd = document.getElementsByTagName( "body" )[0];
    fs = getCurrentFontSize( bd );

    if( fs == 1 )   // already largest; don't do anything.
        return;

    removeClass( bd, 'fs' + fs );
    fs--;
    addClass( bd, 'fs' + fs );

    createCookie( 'phpbb3_fs_cookie', fs, 365 );
}

function createCookie(name, value, days)
{
    if( days )
    {
        var date = new Date();
        date.setTime( date.getTime() + ( days * 24 * 60 * 60 * 1000 ));
        var expires = '; expires=' + date.toGMTString();
    }
    else
    {
        expires = '';
    }
    document.cookie = name + '=' + value + expires + '; path=/';
}

function readCookie(name)
{
    var nameEQ = name + '=';
    var ca = document.cookie.split(';');

    for (var i = 0; i < ca.length; i++)
    {
        var c = ca[i];

        while (c.charAt(0) == ' ')
        {
            c = c.substring(1, c.length);
        }

        if (c.indexOf(nameEQ) == 0)
        {
            return c.substring(nameEQ.length, c.length);
        }
    }
    return null;
}
