function request()
{
	this.hash = "";
	this.proc = new Object();
	this.proc.readyState = 0;
}

request.prototype.load = function()
{
	if (window.XMLHttpRequest)
		this.proc = new XMLHttpRequest();
	else
		this.proc = new ActiveXObject("Microsoft.XMLHTTP");
	
	this.proc.open('GET', AJAXmod+decodeURIComponent(this.hash.substr(1)), true);
	this.proc.onreadystatechange = this.status;
	this.proc.setRequestHeader("ENCTYPE", "xml");
	this.proc.send(null);
}

request.prototype.status = function()
{
	var oRequest = MAIN.request;
	
	if (oRequest.proc.readyState == 4)
		oRequest.build();
}

request.prototype.build = function()
{
	var rText = this.proc.responseText;
	var rXml = this.proc.responseXML;
	
	switch(rText) {
		case ("Not Authorized"):
		case (""):
			sContent = ERROR;
			break;
		default:
			if (rXml.getElementsByTagName('request') && rXml.getElementsByTagName('request').length) {
					// done to bypass 4098 byte limit in moz
					sNodeValue = rXml.getElementsByTagName('request')[0].firstChild.nodeValue;
					sTextContent = rXml.getElementsByTagName('request')[0].textContent; // is not supported by IE
					
					if (sTextContent && sNodeValue.length < sTextContent.length)
						sContent = sTextContent;
					else
						sContent = sNodeValue;
			}
			else
				sContent = false;
	}
	
	if (sContent.length > 0)
		swapDynId(sContent, "fade");
}