tags = ["a", "div", "td", "p", "b", "table", "strong", "em", 'h1', 'h2', 'h3', 'pre', 'sub', 'i', 'th', 'cp', 'ul', 'ol', 'li', 'dt', 'dd', 'input', 'span'];
defaultSize = 11;
resizeCounter = 0;
var docId = "ContentBody";
increment = 2;
fontUnit = "px";
var __fw__init_is = false;

var docBody;

function __fw__init()
{
	if(__fw__init_is)
		return;
	__fw__init_is = true;
	docBody = GetGocBody();
	for (i = 0 ; i < tags.length ; i++ )
	{
		allTags = docBody.getElementsByTagName(tags[i]);
		for (k = 0 ; k < allTags.length ; k++)
		{
			if(allTags[k].className.indexOf("no-resize") >= 0)
				setNoResizeChildren(allTags[k]);
		}
	}
}
function setNoResizeChildren(tag)
{
	for(var i = 0; i < tag.childNodes.length; i ++)
	{
		if(tag.childNodes[i].nodeType == 3)
			continue;
		tag.childNodes[i].className += " no-resize";
		setNoResizeChildren(tag.childNodes[i]);
	}
}

function GetGocBody()
{
	__fw__init();
	if(docBody != null)
		return docBody;
	if(docId != null && docId != "")
		docBody = document.getElementById(docId);
	if(docBody == null)
		docBody = document.body;
	
	return docBody;
}

function FWresizeFont(resize) {
	if (!document.getElementById) {
		return;
	}
	
	docBody = GetGocBody();
	for (i = 0 ; i < tags.length ; i++ ) {		
		allTags = docBody.getElementsByTagName(tags[i]);
		
		if (resize > 0) {
			for (k = 0 ; k < allTags.length ; k++) {
				if(allTags[k].className.indexOf("no-resize") >= 0)
					continue;
				var size = parseInt(allTags[k].style.fontSize.substring(0, allTags[k].style.fontSize.length - 2));
				if (size) {
					allTags[k].style.fontSize = (size + increment) + fontUnit;
				} else {
					allTags[k].style.fontSize = (defaultSize + increment) + fontUnit;
				}
			}			
		} else {
			for (k = 0 ; k < allTags.length ; k++) {
				if(allTags[k].className.indexOf("no-resize") >= 0)
					continue;
				var size = parseInt(allTags[k].style.fontSize.substring(0,allTags[k].style.fontSize.length-2));
				if (size && size > 2) {
					allTags[k].style.fontSize = (size - increment) + fontUnit;
				} else {
					allTags[k].style.fontSize = (defaultSize - increment) + fontUnit;
				}
			}			
		}
	}
	
	resize > 0 ? resizeCounter++ : resizeCounter--;
}

function setFontSize(resizeCounter) {
	docBody = GetGocBody();

	for (i = 0 ; i < tags.length ; i++ ) {		
		allTags = docBody.getElementsByTagName(tags[i]);		
		for (k = 0 ; k < allTags.length ; k++) {
			if(allTags[k].className.indexOf("no-resize") >= 0)
				continue;

			var size = parseInt(allTags[k].style.fontSize.substring(0,allTags[k].style.fontSize.length-2));
			var resize = size + resizeCounter;			
			if (!size) {
				allTags[k].style.fontSize = (parseInt(defaultSize) + parseInt(resizeCounter)) + fontUnit;
			} else if (size && resize > 0) {
				allTags[k].style.fontSize = resize + fontUnit;
			}
		}
	}
}

function resetFontSize() {
	docBody = GetGocBody();
	for (i = 0 ; i < tags.length ; i++ ) {		
		allTags = docBody.getElementsByTagName(tags[i]);		
		for (k = 0 ; k < allTags.length ; k++) {
			if(allTags[k].className.indexOf("no-resize") >= 0)
				continue;

			allTags[k].style.fontSize = defaultSize + fontUnit;
		}
	}
	
	resizeCounter = 0;
}
//cookie functions for remember the font sizes across pages
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) {
	return null;
	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(){
	cookie = readCookie("FWresizeFont");
	if (cookie) {
		resizeCounter = cookie;
	} else {
		return null;
	}
	
	setFontSize(resizeCounter);
}

function saveSettings()
{
  createCookie("FWresizeFont", resizeCounter, 365);
}

