
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(request.status);
            //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);
        }
    }
    
    this.doGet2 = function() { 
        
        request.open(reqType, url, false); 

        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(); 
} 

function makeRequest2(reqType, url, respHandle) { 
    var ai = new httpRequest(reqType, url, respHandle, arguments[3]); 
    ai.doGet2(); 
} 
