// This is a heavily modified version of the code can be found at "http://www.white-hat-web-design.co.uk/articles/js-fontsize.php".

var interfaceElement;

var cookiesSupported;

//var sizeMin = -5;
var sizeCurrent = 0;
//var sizeMax = 5;

function writeSizeOption(size)
{
	var elementLi;
	var element;
	var text;
	
	elementLi = document.createElement("li");
	elementLi.className = "fontresizer-menu-item";
	elementLi.style.width = "32px";
	elementBdo = document.createElement("bdo");
	elementBdo.style.fontSize = (16 + size) + "px";
	text = document.createTextNode("Aa");
	elementBdo.appendChild(text);
	
	if (size === sizeCurrent)
	{
		elementBdo.className = "fontresizer-sizeoption fontresizer-fontsize-fixed fontresizer-sizeoption-selected link-disabled";
		elementLi.appendChild(elementBdo);
	}
	else
	{
		elementBdo.className = "fontresizer-sizeoption fontresizer-fontsize-fixed";
		elementA = document.createElement("a");
		elementA.className = "fontresizer-sizeoption fontresizer-fontsize-fixed";
		elementA.href = "javascript:setSize(" + size + ")";
		elementA.appendChild(elementBdo);
		elementLi.appendChild(elementA);
	}
	
	interfaceElement.appendChild(elementLi);
	interfaceElement.appendChild(document.createTextNode(" "));
	
	//document.write("<a id=\"fontresizer-sizeoption-" + size + "\" class=\"fontresizer-sizeoption fontresizer-fontsize-fixed\" style=\"font-size: " + (16 + size) + "px;\" href=\"javascript:setSize(" + size + ")\">Aa</a> ");
}

function refreshInterface()
{
	var elementCookiesNote;
	var textCookiesNote;
	
	var elementDebug;
	var textDebug;
	
	while (interfaceElement.firstChild)
	{
		interfaceElement.removeChild(interfaceElement.firstChild);
	}
	
	writeSizeOption(-4);
	writeSizeOption(-3);
	writeSizeOption(-2);
	writeSizeOption(-1);
	writeSizeOption( 0);
	writeSizeOption( 1);
	writeSizeOption( 2);
	writeSizeOption( 3);
	writeSizeOption( 4);
	
	if (!cookiesSupported)
	{
		elementCookiesNote = document.createElement("p");
		textCookiesNote = document.createTextNode("*Cookies are either not supported, or you have them disabled.\nYou will not be able to keep your font settings from page to page.");
		elementCookiesNote.appendChild(textCookiesNote);
		interfaceElement.appendChild(elementCookiesNote);
	}
}

function setSizeElementType(size, elementType, elementClass, defaultSize)
{
	var elementsOriginal = document.getElementsByTagName(elementType);
	var elements = [];
	
	// Remove Elements of Class "fontresizer-fontsize-fixed".
	for (i = 0; i < elementsOriginal.length; i++)
	{
		if (elementsOriginal[i].className.search("fontresizer-fontsize-fixed") === -1)
		{
			if (elementsOriginal[i].className.search(elementClass) !== -1)
			{
				elements.push(elementsOriginal[i]);
			}
		}
	}
	
	for (i = 0; i < elements.length; i++)
	{
		for (i = 0; i < elements.length; i++)
		{
			var elementSize = defaultSize;
			
			elementSize += size;
			elements[i].style.fontSize = elementSize + "px";
		}
	}
}

function setSize(size)
{
	//if (size >= sizeMin && size <= sizeMax)
	//{
		if (size !== 0)
		{
			var expireDate = new Date();
			expireDate.setFullYear(expireDate.getFullYear() + 1);
			
			/*
			Yes, I know the cookie will be rewritten when you are reading the size from the cookie itself.
			It may be hacky, but this will extend the expireAt data everytime you visit the site.
			*/
			jaaulde.utils.cookies.set('fontResizerSize', size, {domain: 'www.entech281.com', expiresAt: expireDate, secure: false});
		}
		else
		{
			jaaulde.utils.cookies.del('fontResizerSize', {domain: 'www.entech281.com', expiresAt: expireDate, secure: false});
		}
		
		setSizeElementType(size, 'h1', "", 32);
		setSizeElementType(size, 'h1', "sidebar", 20);
		setSizeElementType(size, 'h2', "", 24);
		setSizeElementType(size, 'p', "", 14);
		setSizeElementType(size, 'p', "sidebar", 8);
		setSizeElementType(size, 'li', "", 14);
		setSizeElementType(size, 'li', "sidebar", 8);
		setSizeElementType(size, 'table', "sidebar", 8);
		setSizeElementType(size, 'body', "", 14);
		
		sizeCurrent = size;
		
		refreshInterface();
	//}
}

function insertInterface()
{
	var cookie = jaaulde.utils.cookies.get("fontResizerSize");
	
	cookiesSupported = jaaulde.utils.cookies.test();
	
	interfaceElement = document.getElementById("font-resizer-interface");
	
	refreshInterface();
	
	if (cookiesSupported && (cookie != null))
	{
		//setSize(cookie);
		document.getElementsByTagName("body")[0].setAttribute("onload", "setSize(jaaulde.utils.cookies.get('fontResizerSize'));");
	}
}

