		var fontSizeList = [];

		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 reportStyles()
		{
			if (!document.styleSheets) return;
			var theRules = new Array();

			for (j=0; j<document.styleSheets.length; ++j)
			{
				if (document.styleSheets[j].cssRules)
					theRules = document.styleSheets[j].cssRules
				else if (document.styleSheets[j].rules)
					theRules = document.styleSheets[j].rules
				else return

				for (i=0; i<theRules.length; ++i)
				{
					var tempStyle = theRules[i].style.fontSize;
					
					if (!tempStyle) continue;

					alert(tempStyle);
				}
			}
		}

		function recordFontSizes()
		{
			if (!document.styleSheets) return;
			var theRules = new Array();

			for (j=0; j<document.styleSheets.length; ++j)
			{
				var sheetFontSizes = new Array();

				if (document.styleSheets[j].cssRules)
					theRules = document.styleSheets[j].cssRules
				else if (document.styleSheets[j].rules)
					theRules = document.styleSheets[j].rules
				else return

				for (i=0; i<theRules.length; ++i)
				{
					var tempStyle = theRules[i].style.fontSize;
					
					if (!tempStyle) continue;

					sheetFontSizes.push(
						{
							'index' : i,
							'default' : tempStyle
						}
					);
				}

				fontSizeList.push(sheetFontSizes);
			}
		}

		function changeFontSizes(sizeMod)
		{
			if (isNaN(sizeMod)) return;
			if (!document.styleSheets) return;

			var theRules = new Array();

			for (j=0; j<document.styleSheets.length; ++j)
			{
				if (document.styleSheets[j].cssRules)
					theRules = document.styleSheets[j].cssRules
				else if (document.styleSheets[j].rules)
					theRules = document.styleSheets[j].rules
				else return

				if (sizeMod==0)
				{
					for (i=0; i<fontSizeList[j].length; ++i)
					{
						index = fontSizeList[j][i]['index'];
						defaultSize = fontSizeList[j][i]['default'];
						theRules[index].style.fontSize = defaultSize;
					}				

					document.cookie = 'fontmod=0; path=/';
				}
				else
				{
					for (i=0; i<theRules.length; ++i)
					{
						if (!theRules[i].style.fontSize)
							continue;

						fontsizeexp = /[0-9.]+/;
						fontunitexp = /[A-Za-z]+/;

						fontsize = fontsizeexp.exec(theRules[i].style.fontSize);
						fontunit = fontunitexp.exec(theRules[i].style.fontSize);

						if (fontsize == null)
							continue;

						if (fontunit[0].match(/em/i))
						{
							if (sizeMod>0)	theRules[i].style.fontSize = ((1*fontsize[0])+(.1*sizeMod))+fontunit[0];
							else			theRules[i].style.fontSize = ((1*fontsize[0])+(.1*sizeMod))+fontunit[0];
						}
						else if (fontunit[0].match(/px/i))
						{
							if (sizeMod>0)	theRules[i].style.fontSize = ((1*fontsize[0])+(1*sizeMod))+fontunit[0];
							else			theRules[i].style.fontSize = ((1*fontsize[0])+(1*sizeMod))+fontunit[0];
						}
					}
				}
			}
		}

		function changeFontSizesCookieValue(sizeMod)
		{
			var fontsizetemp = readCookie('fontmod');
			if (sizeMod==0)
			{
				fontsizetemp = 0;
			}
			else
				fontsizetemp = (1*fontsizetemp) + sizeMod;

			document.cookie = 'fontmod='+fontsizetemp+"; path=/";
		}

		recordFontSizes();
