window.onload = init;

var objXMLRequest;

function init()
{
	if (!document.getElementById || !document.createTextNode || (typeof XMLHttpRequest == 'undefined' && !ActiveXObject))
		return;

	var objAnchor = document.getElementById('fact');

	if (objAnchor)
	{
		objAnchor.onclick = function(event){return updateContent(this, event);};
		objAnchor.onkeypress = function(event){return updateContent(this, event);};
	}
}

function processResult()
{
	if (objXMLRequest.readyState == 4)
	{
		if (objXMLRequest.status == 200)
		{
			var strResult = objXMLRequest.responseText;

			var objCurrent = document.getElementById('update');
			var objReplacement = document.createElement('p');

			objReplacement.setAttribute('id', 'update');
			objReplacement.tabIndex = -1;
			objReplacement.appendChild(document.createTextNode(strResult));

			if (objCurrent)
				objCurrent.parentNode.replaceChild(objReplacement, objCurrent);
			else
			{
				var objContent = document.getElementById('content');
				objContent.appendChild(objReplacement);
			}
			objReplacement.focus();
		}
	}
}

function updateContent(objAnchor, objEvent)
{
	var iKeyCode;

	if (objEvent && objEvent.type == 'keypress')
	{
		if (objEvent.keyCode)
			iKeyCode = objEvent.keyCode;
		else if (objEvent.which)
			iKeyCode = objEvent.which;

		if (iKeyCode != 13 && iKeyCode != 32)
			return true;
	}

	/*@cc_on
	@if (@_jscript_version >= 5) 
		try
		{
			objXMLRequest = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e)
		{
			try
			{
				objXMLRequest = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e)
			{
				objXMLRequest = false;
			}
		}
	@else
		objXMLRequest = false;
	@end @*/

	if (!objXMLRequest && typeof XMLHttpRequest != 'undefined')
	{
		try
		{
			objXMLRequest = new XMLHttpRequest();
		}
		catch(e)
		{
			objXMLRequest = false;
		}
	}

	if (objXMLRequest)
	{
		objXMLRequest.onreadystatechange = processResult;
		objXMLRequest.open('GET', 'fact.php', true);
		objXMLRequest.send(null);
	}

	return false;
}
