
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() { 
		 var xmlReq = false;

    if (window.XMLHttpRequest) {    // Non-Microsoft browsers
        xmlReq = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
		try {
			// XMLHttpRequest in later versions of Internet Explorer
			xmlReq = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e1) {
			try {
				// Try version supported by older versions of Internet Explorer
				xmlReq = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e2) {
				// Unable to create an XMLHttpRequest with ActiveX
			}
		}
	}

	return xmlReq;
}

	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(); 
} 
