
function httpRequest(reqType, url, respHandle){

	var request = init(); 
	var postData = arguments[3];
	
	if(request)  {
		request.onreadystatechange = processRequest; 
	} else {
		//alert("Your browser does not permit the use of all " + "of this application's features!");
	}

	function init() { 
		if(window.XMLHttpRequest){	 //Mozilla-based browsers
			return new XMLHttpRequest();
		} else if (window.ActiveXObject){
			temp = new ActiveXObject("Msxml2.XMLHTTP"); 
			if (!temp){
				temp = new ActiveXObject("Microsoft.XMLHTTP");
			}
			return temp;
		}
	} 

	function processRequest () { 

		try{
			if(request.readyState == 4){
				if(request.status == 200){
					var resp = request.responseText;
					respHandle(request);	
				} else {
					//request.status is 503  if the application isn't available; 
					//500 if the application has a bug
					
					//alert("A problem occurred with communicating between the XMLHttprequest object and the server program.");
				}
			}
		} catch (err)   {
			//alert(err.name);
			
			//alert("It does not appear that the server is available for this application. Please"+ " try again very soon. \nError: "+err.message);
		}	

	} 

	this.doGet = function() { 
		
		request.open(reqType, url, true); 

		if(reqType.toLowerCase() == "post") {
            request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
			request.send(postData);
        }   else {
            request.send(null);
        }
	} 

}

function makeRequest(reqType, url, respHandle) { 
	var ai = new httpRequest(reqType, url, respHandle, arguments[3]); 
	ai.doGet(); 
} 