//document variables
var defaultSize		= 12;
var resizeCounter	= 0;
var increment		= 2;
var maxsize		= 18;
var minsize		= 8;

///////////////////// Beyond herew be functions ////////////////

function resizeFont(resize) 
{
	if (!document.getElementById) {
		return;
	}
		
	if (resize > 0)
	{
		var size = parseInt(document.getElementById("size-text").style.fontSize.substring(0,document.getElementById("size-text").style.fontSize.length-2));
		if (size && size + increment <= maxsize)
		{
			document.getElementById("size-text").style.fontSize = (size + increment) + 'px';
			resizeCounter++;
		}else{
			document.getElementById("size-text").style.fontSize = defaultSize + 'px';
			resizeCounter = 0;
		}
	} else {
		var size = parseInt(document.getElementById("size-text").style.fontSize.substring(0,document.getElementById("size-text").style.fontSize.length-2));
		if (size && size >= minsize)
		{
			document.getElementById("size-text").style.fontSize = (size - increment) + 'px';
			resizeCounter--;
		}else{
			document.getElementById("size-text").style.fontSize = defaultSize + 'px';
			resizeCounter = 0;
		}
	}
	saveSettings();
}

///////////////////////////////////

function setFontSize(resizeCounter)
{

	var size = parseInt(document.getElementById("size-text").style.fontSize.substring(0,document.getElementById("size-text").style.fontSize.length-2));
	var resize = size + resizeCounter;			
	if (!size)
	{
		document.getElementById("size-text").style.fontSize = (parseInt(defaultSize) + parseInt(resizeCounter)) + 'px';
	}
	else if (size && resize > 0)
	{
		document.getElementById("size-text").style.fontSize = resize + 'px;';
	}
}

////////////////////////

function resetFontSize()
{
	document.getElementById("size-text").style.fontSize = defaultSize + 'px';
	resizeCounter = 0;
}
//cookie functions to 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)
{
	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("FontSize");
	if(cookie)
	{
		resizeCounter = cookie;
	}else{
		return null;
	}
	setFontSize(resizeCounter*increment);
}

///////////////////////

function saveSettings()
{
	createCookie("FontSize", resizeCounter, 365);
}

///////////////////////

function varitext(text)
{
	text=document;
	print(text);
	return false;
}

/////////////////////////////////////////////////

function load(Url, winTitle, winWidth, winHeight)
{
	new_win = window.open(Url, winTitle, 'status = 1, height = '+winHeight+', width = '+winWidth+', resize = 1');
	if(window.focus){new_win.focus();}
	return false;
}

/////////////////////////

function addToFav(pgName)
{
	var pgSplit	= pgName.split("/");
	if((pgSplit[1] == "sitemap")||(pgSplit[1] == "my-favorites"))
	{
		alert("This page cannot be added to My Favorites");
		return false;
	}
	retVal	= confirm("Save "+pgName+" to your favorites?");
	if(retVal == true)
	{
		if(Cookie.enabled.cache == false)
		{
			alert("You must enable cookies for Add to Favorites to work");
			return false;
		}else{
			var favCookie		= new Cookie('favorites');
			if(favCookie.pages)
			{
				var favPages	= favCookie.pages.split("|");
				for(var i = 0; i < favPages.length; i++)
				{
					if(favPages[i] == pgName)
					{
						var hasPage	= true;
						break;
					}
					var hasPage	= false;
				}
				if(!hasPage)
				{
					favCookie.pages	+="|"+pgName;
					favCookie.store(365, '/');
					return false;
				}else{
					favCookie.store(365, '/');
					return false;
				}
			}else{
				favCookie.pages=pgName;
				favCookie.store(365, '/');
				return false;
			}
		}
	}else{
		return false;
	}
}

////////////////////////////

function remFav(url, pgName)
{
	var favCookie	= new Cookie('favorites');
	retVal	= confirm('Remove '+pgName+' from favorites?');
	if(retVal == true)
	{
		var favCookie	= new Cookie('favorites');
		var favPages	= favCookie.pages.split("|");
		var favCount	= favPages.length;
		var cookChk	= false;
		favCookie.pages = "";
		for(var i = 0; i < favCount; i++)
		{
			if(favPages[i] != pgName)
			{
				if(!cookChk)
				{
					favCookie.pages=favPages[i];
					cookChk	= true;
				}else{
					favCookie.pages	+="|"+favPages[i];
				}
			}
		}
		favCookie.store(365, '/');
		var checkFavs	= new Cookie('favorites');
		if(checkFavs.pages=="")
		{
			favCookie.remove(365, '/');
			window.location	= url;
			return false;
		}
		window.location	= url;
	}else{
		return false;
	}
	
}
//////////////////////////////

function dispFav(serverScript)
{
	var dispDivID	= $('size-text');
	favPgReq	= new xmlRequest;
	var favCookie	= new Cookie('favorites');
		
	if(favCookie.pages != '')
	{
		favPages	= favCookie.pages;
		queryString	= 'fav_pages='+favPages;
	}else{
		queryString	= 'fav_pages=none:Empty';
	}
		favPgReq.open("POST", serverScript, false);
		favPgReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	
	favPgReq.onreadystatechange = function()
	{
		if (favPgReq.readyState == 4 && favPgReq.status == 200)
		{
			return true;
		}
	}
	favPgReq.send(queryString);
}

/////////////

function $(id) 
{
	return document.getElementById(id);
}

//////////////////////////////////

String.prototype.trim = function()
{
	return this.replace(/^\s+|\s+$/g,"");
}

///////////////////////////////////

String.prototype.ltrim = function()
{
	return this.replace(/^\s+/,"");
}

///////////////////////////////////

String.prototype.rtrim = function()
{
	return this.replace(/\s+$/,"");
}

//////////////////////

function xmlRequest()
{
	try
	{
		xmlHttp=new XMLHttpRequest();
	}catch(e){
		try
		{
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}catch(e){
			try
			{
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
			}catch (e){
				alert("Your browser is quite out-dated and does not support AJAX!");
			}
		}
	}
	return xmlHttp;
}

window.onload = setUserOptions;
