function AJAX(url, params, callback, loader)
{
	
	//$('debugme').innerHTML+="<hr>URL : "+url+"<br>"
	//$('debugme').innerHTML+="PARAMS: "+params+"<br>"
	
	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()
	{  
		 
		//$('debugme').innerHTML+="URL : "+url+" :: STATE:"+req.readyState+"<Br>"
		
		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); // The true means that its asynchronous
	req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	req.send(params);
}