function init()
{
	// We'll use this "pointer" to traverse the document object tree
	var ptr;
	
	// Implement user-preferred font size
	if (readCookie("fontSize") != null)
	{
		setFontSize(readCookie("fontSize"), null);
		
		if(readCookie("fontSize") == 0){
			var fontSelectors = getSpecificElementsByClass("a", "smallFontSizeItem");
			
			//for (var i in elems)
			for (var i=0; i < fontSelectors.length; i++)
			{
				addClass(fontSelectors[i], "ovSmallFontSize");
			}
		} else if(readCookie("fontSize") == 1){
			var fontSelectors = getSpecificElementsByClass("a", "middleFontSizeItem");
			
			//for (var i in elems)
			for (var i=0; i < fontSelectors.length; i++)
			{
				addClass(fontSelectors[i], "ovMiddleFontSize");
			}
		} else if(readCookie("fontSize") == 2) {
			var fontSelectors = getSpecificElementsByClass("a", "largeFontSizeItem");
			
			//for (var i in elems)
			for (var i=0; i < fontSelectors.length; i++)
			{
				addClass(fontSelectors[i], "ovLargeFontSize");
			}
		}
	}
	else
	{
			setFontSize("1", null);
	}
}

window.onload = init;

////
// Mimics font size selection functionality from Canada.com
//
// @author PJ
// @date 2005 10 07
// @param intFontSize font size level corresponding to CSS style
////
var kNumFontSizes = 3;
var currentFontSize = readCookie("fontSize");

function setFontSize(intFontSize, objSelector)
{
	var obj = document.getElementById("ContentBox");
	if (obj)
	{
		for (var i = 0; i < kNumFontSizes; i++)
			removeClass(obj, "fontSize" + i);
		addClass(obj, "fontSize" + intFontSize);
	}
	
	if (objSelector) {
		resetFontSelector();
		
		if(intFontSize == 0){
			addClass(objSelector, "ovSmallFontSize");
		} else if(intFontSize == 1){
			addClass(objSelector, "ovMiddleFontSize");
		} else if(intFontSize == 2){
			addClass(objSelector, "ovLargeFontSize");
		}
		
		document.cookie = "fontSize="+intFontSize+"; path=/";
		currentFontSize = intFontSize;
	}
}

// className functions

// Dean Edwards 2004.10.24

function addClass(element, className) {
    if (!hasClass(element, className)) {
        if (element.className) element.className += " " + className;
        else element.className = className;
    }
};

function removeClass(element, className) {
    var regexp = new RegExp("(^|\\s)" + className + "(\\s|$)");
    element.className = element.className.replace(regexp, "$2");
};

function hasClass(element, className) {
    var regexp = new RegExp("(^|\\s)" + className + "(\\s|$)");
    return regexp.test(element.className);
};

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 eraseCookie(name)
{
	createCookie(name,"",-1);
}


////
// Retrieves an array of DOM objects that belong to a specific class.
//
// @author PJ
// @date 2005 07 21
// @param tagName (optional) the type of objects (e.g. div, or table) to return
// @param className the name of the class that the objects belong to
// @return Array of DOM objects
////
getSpecificElementsByClass = function (tagName, className)
{
	var elems = document.getElementsByTagName(tagName);
	var classElems = new Array();
	
	//for (var i in elems)
	for (var i=0; i < elems.length; i++)
	{
		if (hasClass(elems[i], className))
		{
			classElems.push(elems[i]);
		}
	}
	return classElems;
}

resetFontSelector = function ()
{
	var fontSelectors = getSpecificElementsByClass("a", "smallFontSizeItem");
	
	//for (var i in elems)
	for (var i=0; i < fontSelectors.length; i++)
	{
		removeClass(fontSelectors[i], "ovSmallFontSize");
	}
	
	fontSelectors = getSpecificElementsByClass("a", "ovMiddleFontSize");
	
	//for (var i in elems)
	for (var i=0; i < fontSelectors.length; i++)
	{
		removeClass(fontSelectors[i], "ovMiddleFontSize");
	}
	
	fontSelectors = getSpecificElementsByClass("a", "ovLargeFontSize");
	
	//for (var i in elems)
	for (var i=0; i < fontSelectors.length; i++)
	{
		removeClass(fontSelectors[i], "ovLargeFontSize");
	}
}
