// functions relating to the site's font size
var defaultFontSize;
var minFontSize = 10; //  set the minimum font size
var maxFontSize = 18; // set the maximum font size

// get any site preference cookies
if (getCookie("fontsize"))
{ defaultFontSize = getCookie("fontsize"); }
else
{ defaultFontSize = "12px"; }

// set the site preferences on load (add this function to the body onload of page)
function retrievePreference()
{
	setFontSize(parseInt(defaultFontSize));
}

function increaseTextSize()
{
	var content =  getElement("content_area"); // get the content area element
	if(content.style.fontSize == "") // if the size hasn't already be manipulated by the javascript
	{
		content.style.fontSize = defaultFontSize; // then set the font size to the default
	}

	var oldSize = parseInt(content.style.fontSize); // get original font size (without the 'px');
	if(oldSize < maxFontSize)
	{
		var newSize = oldSize + 2; // add 2 px to the original size;
		setFontSize(newSize);
	}
}

function decreaseTextSize() 
{
	var content =  getElement("content_area"); // get the content area element
	
	if(content.style.fontSize == "")
	{
		content.style.fontSize = defaultFontSize;
	}
	
	var oldSize = parseInt(content.style.fontSize.replace("px", ""));
	if(oldSize > minFontSize)
	{
		var newSize = oldSize - 2;
		setFontSize(newSize);
	}
}

function setFontSize(newSize)
{
	var content =  getElement("content_area"); // get the content area element
	var content1 =  getElement("content_column1"); // get the content area element
	var content2 =  getElement("content_column2"); // get the content area element
	content.style.fontSize = newSize + "px"; // convert the size to the 00px format and change the element to the new size
	content.style.lineHeight = (newSize + 2) + "px"; // change the line height to be 2 more pixels than the new font-size;
	writeCookie("fontsize", newSize, 30);
}

// a cross browser get element function
function getElement(id)
{
	var element; 
	
	if (document.getElementById) // newer browsers
	{ element = document.getElementById(id); }
	else if (document.all) // old IE
	{ element = document.all[id]; }
	else if (document.layers) // old Netscape
	{ element = document.layers[id]; }
	else // non-compatible browsers
	{ element = null }
	
	return element;	
}	


// function to write a cookie
function writeCookie(name, value, daystoexpire)
{
	
	if (daystoexpire)
	{
		var expiration = "";
		var expire = new Date();
		expire.setDate(expire.getDate() + daystoexpire );
		expiration = " expires=" + expire.toUTCString();
	}
	else
	{
		expiration = "";
	}
	
	
	document.cookie = name + "=" + escape(value) + "; " + expiration;
}

function getCookie(name)
{
	var cookies = document.cookie.split(";"); // get the cookies for the site
	var value = ""; // value to return
	
	
	for(i=0; i<cookies.length; i++)
	{
		var cook = cookies[i].split("=");
		if(cook[0] == name)
		{ return cook[1]; }
	}
	
	return null;
}

function deleteCookie(name)
{
	var expiration = "";
	var expire = new Date();
	expire.setDate(expire.getDate() - 1);
	expiration = " expires=" + expire.toUTCString();
	document.cookie = name + "=; " + expiration;
}