// Specify affected tags. Add or remove from list:
var tgs = new Array('a','ul','td','span','font','p','h3','h5'); //  'div','td','tr'

//Specify spectrum of different font sizes:
var szs = new Array( 'xx-small','','medium','large','large','x-large','xx-large' );

var prefsLoaded = false;
var defaultFontSize = 1;
var currentFontSize = defaultFontSize;

function ts( trgt,inc ) {
	if (!document.getElementById) return
	var d = document,cEl = null,sz = currentFontSize,i,j,cTags;
	
	sz = inc;
	if ( sz < 0 ) sz = 0;
	if ( sz > 6 ) sz = 6;
	
	if (sz != currentFontSize) saveSettings(sz);
	
	currentFontSize = sz;
		
	if ( !( cEl = d.getElementById( trgt ) ) ) cEl = d.getElementsByTagName( trgt )[ 0 ];

	cEl.style.fontSize = szs[ sz ];

	for ( i = 0 ; i < tgs.length ; i++ ) {
		cTags = cEl.getElementsByTagName( tgs[ i ] );
		for ( j = 0 ; j < cTags.length ; j++ ) cTags[ j ].style.fontSize = szs[ sz ];
	}
}

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;
};

function setUserOptions(){
	if(!prefsLoaded){

		cookie = readCookie("fontSize");
		currentFontSize = cookie ? cookie : 1;
		ts('body',currentFontSize);
		
		prefsLoaded = true;
	}
}

function saveSettings(size)
{
  createCookie("fontSize", size);
}

window.onload = setUserOptions;
//window.onunload = saveSettings;
