function Ajax(callback)
{
	var me = this;
	this.OnDataReceived = callback;
	this.SendRequest = function(request)
	{
		if (request == "search")
		{
			if (document.search.bar.value.length > 0)
			{
				request = "search.php?n="+document.search.bar.value;
			}
			else
			{
				request = "search.php?n=qdughdfhfshsc";
			}
		}
		var httpRequest = GetXmlHttpObject();
		if (httpRequest)
		{
			httpRequest.onreadystatechange = function()
			{
				if (httpRequest.readyState == 4)
				{
					if (httpRequest.status == 200)
						me.OnDataReceived(new XmlDocument(httpRequest.responseXML));
				}
			};
			httpRequest.open("GET", request, true);
			httpRequest.send(null);
			
		}
	};
}


function XmlDocument(document)
{
	var me = this;
	this.Document = document;
	this.ReadNode = function(name, index, childIndex)
	{
		var ret = me.Document.getElementsByTagName(name)[index].childNodes[childIndex].nodeValue;
		ret = ret.replace(/{\[}/g, "&#91;");
		ret = ret.replace(/{\]}/g, "&#93;");
		ret = ret.replace(/\[/g, "<");
		ret = ret.replace(/\]/g, ">");
		return ret;
	};
}
function GetXmlHttpObject()
{
	if (window.XMLHttpRequest)
	{
		return new XMLHttpRequest();
	}
	else if (window.ActiveXObject)
	{
		return new ActiveXObject("Microsoft.XMLHTTP");
	}

	return null;
}
