
function setInitialFontSize() {

    var fontsizeelement = document.getElementById( 'fontlink' );
    
    if ( fontsizeelement ) {
        fontsizeelement.style.display = 'inline';
    }

    setAllFontSizes( readFontSizeCookie() );
}

function resetFontSize() {

    changeFontSize( readFontSizeCookie() * -1 );
}

function changeFontSize( inc ) {

    createFontSizeCookie( inc );
    setAllFontSizes( inc );
}

function getElementsByClass( searchClass, node, tag ) {

	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\\\\s)"+searchClass+"(\\\\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

function setAllFontSizes( inc ) {

    var elementsToChange = getElementsByClass( "*", document );

    for ( i = 0; i < elementsToChange.length; i++ ) {
    
        if ( elementsToChange[ i ].style ) {
            if ( elementsToChange[ i ].style.fontSize ) {
                oldsize = parseInt( elementsToChange[ i ].style.fontSize.replace( "px", "" ) );
                elementsToChange[ i ].style.fontSize = oldsize + inc + 'px';
            }
        }
    }
}

function readFontSizeCookie() {

    var nameand = "fontadjust" + "=";
    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( nameand ) == 0 ) return parseInt( c.substring( nameand.length, c.length ) );
    }
    
    return null;
}


function createFontSizeCookie( inc ) {

    var currentvalue = readFontSizeCookie();
    
    if ( currentvalue ) {
    
        currentvalue += inc;
        
    } else { 
    
        currentvalue = inc;
        
        if ( currentvalue == 0 ) return;        
    }

    document.cookie = "fontadjust=" + currentvalue;
}
