Ajax = {};

Ajax.makeRequest = function(method, url, callback_method, parameters){

	this.request = (window.XMLHttpRequest)?new XMLHttpRequest(): new ActiveXOject("MSXML2.XMLHTTP");
	this.request.onreadystatechange = callback_method;
	this.request.open(method, url, true);
	
	if(method=='GET')
		this.request.send(url);
	else if(method=='POST')
	{
		this.request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		this.request.setRequestHeader("Content-length", parameters.length);
		this.request.setRequestHeader("Connection", "close");
		this.request.send(parameters);
	}
}

Ajax.checkReadyState = function(id,hide_id){
	switch(this.request.readyState){
		case 0:
			document.getElementById(hide_id).style.display='none';
			document.getElementById(id).style.display='block';
			break;
		case 1:
			document.getElementById(hide_id).style.display='none';
			document.getElementById(id).style.display='block';
			break;
		case 2:
			document.getElementById(hide_id).style.display='none';
			document.getElementById(id).style.display='block';
			break;
		case 3:
			document.getElementById(hide_id).style.display='none';
			document.getElementById(id).style.display='block';
			break;
		case 4:
			document.getElementById(hide_id).style.display='block';
			document.getElementById(id).style.display='none';
			return (this.request.status);//or return HTTP.status(this.request.status);
			break;
		default:
			document.getElementById(id).innerHTML = "An unexpected error has occurred.";
	}
}

Ajax.getResponse = function(){
	if(this.request.getResponseHeader('Content-Type').indexOf('xml') != -1)
		return this.request.responseXML.documentElement;
	else
		return this.request.responseText;
}

