//AddEvent - attach a function to an event
function AddEvent(target, event, func){ 
	if (target.addEventListener){ 
		target.addEventListener(event, func, false); 
		return true; 
	} else if (target.attachEvent){ 
		var result = target.attachEvent("on"+event, func); 
		return result; 
	} else { 
		return false; 
	}
}

function WriteCookie(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;
}

var defaultFontSize = 12;

function SetFontSize(targetId, fontSize)
{
	var targetObj = (document.getElementById) ? document.getElementById(targetId) : document.all(targetId);
	targetObj.style.fontSize = fontSize + 'px';
}

var prefsLoaded = false;
var currentFontSize = defaultFontSize;

function ChangeFontSize(sizeDifference)
{
	currentFontSize = parseInt(currentFontSize) + parseInt(sizeDifference);

	if(currentFontSize > 18){
		currentFontSize = 18;
	}else if(currentFontSize < 12){
		currentFontSize = 12;
	}

	SetFontSize("content", currentFontSize);
}

function ResetFontSize()
{
	currentFontSize = defaultFontSize;
	ChangeFontSize(0);
}

function LoadPrefs()
{
	if(!prefsLoaded){
		cookie = ReadCookie("fontSize");
		currentFontSize = cookie ? cookie : defaultFontSize;
		ChangeFontSize(0);
		
		prefsLoaded = true;
	}
}

function SavePrefs()
{
	WriteCookie("fontSize", currentFontSize, 365);
}

function InitTemplate()
{
	// Set accessibility preferences
	LoadPrefs();
}

function FinalizeTemplate()
{
	// Save accessibility preferences
	SavePrefs();
}

AddEvent(window, 'load', InitTemplate);
AddEvent(window, 'unload', FinalizeTemplate);
