﻿var request = 'abc';



function httpRequest(reqType,url,asynch,respHandle){
/* Wrapper function for constructing a Request object.
 Parameters:
  reqType: The HTTP request type such as GET or POST.
  url: The URL of the server program.
  asynch: Whether to send the request asynchronously or not.
  respHandle: The name of the function that will handle the response.
  Any fifth parameters represented as arguments[4] are the data a
  POST request is designed to send. */
    //Mozilla-based browsers
    if(window.XMLHttpRequest){ request = new XMLHttpRequest(); } 
    else if (window.ActiveXObject){ 
    	request = new ActiveXObject("Msxml2.XMLHTTP"); 
    	if (! request){
            request = new ActiveXObject("Microsoft.XMLHTTP");
        	}
    	}
    //Very unlikely, but we test for a null request
    //if neither ActiveXObject was initialized
    if(request)  {
        //if the reqType parameter is POST, then the
        //5th argument to the function is the POSTed data
        if(reqType.toLowerCase() != "post") { initReq(reqType,url,asynch,respHandle); }
        else {
            //the POSTed data
            var args = arguments[4];
            if(args != null && args.length > 0){
                initReq(reqType,url,asynch,respHandle,args);
        	    }
        	}
    	}
    else {
        alert("Your browser does not permit the use of all "+
              "of this application's features. (Specifically AJAX.)");
        }
	}



function initReq(reqType,url,bool,respHandle){ 
	/* Initialize a Request object that is already constructed */
    try{
        /* Specify the function that will handle the HTTP response */
        request.onreadystatechange = respHandle;
        request.open(reqType,url,bool);
        //if the reqType parameter is POST, then the
        //5th argument to the function is the POSTed data
        if(reqType.toLowerCase() == "post") {
            request.setRequestHeader("Content-Type",
                        "application/x-www-form-urlencoded; charset=UTF-8");
            request.send(arguments[4]);
        	}
        else { request.send(null); }
    	}
    catch (errv) {
        alert( "The application cannot contact the server at the moment. "+
                "Please try again in a few seconds.\n"+
                "Error detail: "+errv.message );
    	}
	}



