//	all JS related to font size (retrieve, change, save preference)

var minFontSize;
var maxFontSize;

function setFontSizes() {
	var defSize = getDefaultFontSize();
	var curSize = getCurFontSize();
	var minSize;
	if ( _readCookie ( 'bblastvisit' ) ) {
		minSize = parseInt ( _readCookie ( 'minFontSize' ));
	}
	if ( minSize ) {
		minFontSize = minSize;
	} else {
		if ( defSize > curSize ) {
			minFontSize = curSize;
		} else {
			minFontSize = defSize;
		}	// if
		if ( _readCookie ( 'bblastvisit' ) ) {
			_createCookie ( 'minFontSize', minFontSize, 9999 );
		}	// if
	}	// if
	maxFontSize = minFontSize + 5;
}	// setFontSizes

function getDefaultFontSize() {
	var ss; var cr; var cssRules;
	for ( var i = 0; i < document.styleSheets.length; i++ ) {
		if ( document.styleSheets[i].href && document.styleSheets[i].href.indexOf('styles.css') >= 0 ) {
			cssRules = getCssRules ( i );
			for ( var j = 0; j < cssRules.length; j++ ) 	{
				if ( cssRules[j].selectorText.toLowerCase() == 	'#article' ) {
					ss = i;
					cr = j;
					break;
				}	// if
			}	// for
			break;
		}	// if
	}	// for
	cssRules = getCssRules ( ss );
	var ar = cssRules[cr];
	var ru = new Array();
	var fsa = new Array();
	ru = ar.style.cssText.split(';');
	for ( var k = 0; k < ru.length; k++ ) {
		if ( ru[k].toLowerCase().indexOf('font-size') >= 0 ) {
			fsa = ru[k].split(':');
			break;
		}	// if
	}	// for
	var fs = fsa[1].trim();
	if ( fs.indexOf ( 'em' ) >= 0 ) {
		// em * 16 = px
		var dfs = parseFloat ( fs ) * 16;
	} else {
		var dfs = parseInt ( fs );
	}	// if
	return dfs;
}	// getDefaultFontSize

function getCssRules ( sheetIndex ) {
	var rules = new Array();
	sheet = document.styleSheets[sheetIndex];
	if ( sheet && sheet.rules ) { 
		rules = sheet.rules;
	} else {
		rules = sheet.cssRules;
	}	// if
	return rules;
}	// getCssRules

function getCurFontSize() {
	var elm = document.getElementById('Article');
	if ( !elm ) {
		elm = document.getElementById('pageBody');
	}	// if
	if ( elm ) {
		var curFontSizeStyle = getStyle ( elm, 'font-size' );
		if ( curFontSizeStyle.indexOf ( 'em' ) >= 0 ) {
			// em * 16 = px
			var curFontSize = parseFloat ( curFontSizeStyle ) * 16;
		} else {
			var curFontSize = parseInt ( curFontSizeStyle );
		}	// if
		return curFontSize;
	} else {
		return 11;
	}	// if
}	// getCurFontSize

function changeFontSize ( increment ) {
	var a = document.getElementById("Article");
	var s = getCurFontSize();
	var newSize = s + increment;
	if ( newSize >= minFontSize && newSize <= maxFontSize ) {
		a.style.fontSize = newSize + "px";
		if ( document.getElementById('showFontSize') ) {
			document.getElementById('showFontSize').innerText = getCurFontSize();
		}	// if
		if ( _readCookie ( 'bblastvisit' ) ) {
			_createCookie ( 'fontSize', newSize, 9999 );
		}	// if
	} //if
}	// changeFontSize
