function AJAX(url, params, callback, loader)
{
	var req = null;
	
	if(window.XMLHttpRequest)
		req = new XMLHttpRequest();
	else
		req = new ActiveXObject("Microsoft.XMLHTTP");

	if(!req)
	{
		alert("Unexpected error: AJAX failed to initialize");
		return false;
	}

	if(params)
		params = params.replace(/\s/g, "%20")

	req.onreadystatechange = function()
	{
		switch(req.readyState)
		{
			case 4:
				var response = req.responseText;
				req = null;
				if(callback)
					callback(response);
			break;

			case 1:
				if(loader)
					loader();
			break;
		}
	}

	req.open('post', url, true);
	req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	req.send(params);
}