// most effective when all font sizes are relative (% or em)
// and you set font size on outermost container element

// relies on various functions in jscript_bbb.js (cookies, isset, addEvent)

// user-configurable options
var textElementID   = 'mainWrapper';
var defaultFontSize = 100; //%
var maxFontSize     = 152; //%
var minFontSize     = 81;  //%

function changeFontSize(factor) {
  if (isNaN(parseInt(currentFontSize)))
    currentFontSize = defaultFontSize;
  currentFontSize = Math.round(currentFontSize*factor);
  if (currentFontSize > maxFontSize)
    currentFontSize = maxFontSize;
  else if (currentFontSize < minFontSize)
    currentFontSize = minFontSize;
  textElement = document.getElementById(textElementID);
  if (textElement && textElement.style)
    textElement.style.fontSize = currentFontSize + '%';
  }

function getSavedSetting() {
  cookie = cookieGet("fontSize");
  if (!isNaN(parseInt(cookie))) {
    currentFontSize = cookie;
    // rather than changing dynamiclly, set as a new style rule so font size is already modified when page loads
    setStyle('#'+textElementID, 'font-size: '+currentFontSize+'%');
    }
  }

function saveSetting() {
  if (!isNaN(parseInt(currentFontSize)) && currentFontSize != defaultFontSize)
    cookieSet("fontSize", currentFontSize, 365);
  else
    cookieDel("fontSize");
  }

// Dynamically set a style rule
function setStyle(selector, rule) {
	var rulecount, ssheet = (document.styleSheets.length==0) ? document.createStyleSheet() : document.styleSheets[0];
	if (rule.indexOf(":")) {		
		if (ssheet.insertRule) {	/* DOM */
			rulecount = ssheet.cssRules.length;
			ssheet.insertRule(selector +"{"+ rule +"}", rulecount++);
		  }
    else if (document.styleSheets[0].addRule) { /* IE */
			rulecount = ssheet.rules.length;
			if (selector.indexOf(",") >0) {
				selectors = selector.split(",");
				for (var s=0; s<selectors.length; s++)
					ssheet.addRule(selectors[s], rule, rulecount++);
			  }
      else
				ssheet.addRule(selector, rule, rulecount++);	
		  }
		return true;
	  }
  else
		return false;
  }

var currentFontSize;

getSavedSetting(); // run immediately so font size is set before page loads
addEvent(window,'unload',saveSetting,false); // save setting on page exit
