var defaultFontSize = 12;
var xmlHttp;

function findAnchor(elem)
{
	var targ = "";
	for (i=0; i< elem.childNodes.length && targ == ""; i++)
		if (elem.childNodes[i].tagName && elem.childNodes[i].tagName.toUpperCase() == 'A')
			targ = elem.childNodes[i];
	
	return targ;
}

function clickA(e)
{
	var targ;
	var anchor;
	
	if (!e)
		e = window.event;
	
	if (e.target)
		targ = e.target;
	else
		targ = e.srcElement;
	
	if (0 == (mi = targ.className.indexOf('button')))
		anchor = findAnchor(targ);
	else
		anchor = targ;
	
	if (anchor && (anchor.tagName.toUpperCase() == 'A'))
		location.href = anchor.href;
}

function mouseoverA(e)
{
	var targ;
	var anchor;
	
	if (!e)
		e = window.event;
	
	if (e.target)
		targ = e.target;
	else
		targ = e.srcElement;
	
	if (0 == (mi = targ.className.indexOf('button')))
		anchor = findAnchor(targ);
	else
		anchor = targ;

}

function mouseoutSM(e)
{
}

function addonmouseover(elem,func)
{
	var oldomo = elem.onmouseover;
	if (typeof(func) != 'function')
	{
		elem.onmouseover = func;
	}
	else
		elem.onmouseover = function(event)
		{
			if (oldomo)
				oldomo(event);
			func(event);
		};
}

function addonmouseout(elem,func)
{
	var oldomo = elem.onmouseout;
	if (typeof(func) != 'function')
	{
		elem.onmouseout = func;
	}
	else
		elem.onmouseout = function(event)
		{
			if (oldomo)
				oldomo(event);
			func(event);
		};
}

function makeMenu(tag, cls)
{
	var elems = document.getElementsByTagName(tag);
	for (i=0; i<elems.length;i++)
	{
		elem = elems[i];
		if (0 == elem.className.indexOf(cls))
		{
			elem.onclick = function(event) { clickA(event); };
			addonmouseover(elem, function(event) { mouseoverA(event); });
			addonmouseout(elem, function(event) { mouseoutSM(event); });
		}
	}
}

function changeFontSize(e, n)
{
	s = defaultFontSize;
	
	if ("" != document.body.style.fontSize)
		s = parseInt(document.body.style.fontSize);
	
	s += n;
	document.body.style.fontSize = s+"pt";
	
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp != null)
	{
		xmlHttp.onreadystatechange = stateChanged;
		xmlHttp.open("GET","saveFontSize.php?size="+(s-defaultFontSize),true);
		xmlHttp.send(null);
	} 
}

function showFontSize(all_id, down_id, up_id, newsize)
{
	var all = document.getElementById(all_id);
	var down = document.getElementById(down_id);
	var up = document.getElementById(up_id);
	var newsize = document.getElementById(newsize);
	
	if (all && down && up && newsize)
	{
		down.onclick = function(event) { changeFontSize(event,-1); };
		up.onclick = function(event) { changeFontSize(event,1); };
		var fontSize = parseInt(newsize.innerHTML);
		if (!isNaN(fontSize))
			changeFontSize(null, fontSize);
	}
	
	
}

function internetExplorer()
{
	var browser=navigator.appName;
	var b_version=parseInt(navigator.appVersion);
	bad = false;
	
	if (("Microsoft Internet Explorer" == browser) && (b_version <= 4))
		bad = true;
		
	return bad;
}

function fixInternetExplorer()
{
	if (!internetExplorer())
	{
		return;
	}
	
	divs = document.getElementsByTagName('div')
	for (i=0; i<arguments.length; i++)
	{
		for (j=0; j<divs.length; j++)
		{
			if (-1 != divs[j].className.indexOf(arguments[i]))
			{
				divs[j].style.paddingBottom = "0px";
			}
		}
	}
}

function init()
{
	makeMenu('div','button');
	showFontSize('font-size', 'font-down', 'font-up', 'newsize');
	fixInternetExplorer('button-all','adjust-font');
}

function stateChanged() 
{
	if (xmlHttp.readyState==4)
		document.getElementById("newsize").innerHTML = xmlHttp.responseText;
}

function GetXmlHttpObject()
{
	var xmlHttp=null;
	try
	{
	// Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	}
	catch (e)
	{
	// Internet Explorer
		try
		{
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	
	return xmlHttp;
}
