Ajax = {};

Ajax.makeRequest = function(method , service, callbackMethod, queryString, requestHeaders){
    this.request = (window.XMLHttpRequest)? new XMLHttpRequest(): new ActiveXObject("MSXML2.XMLHTTP");

    this.request.open(method, service, true);
    this.request.onreadystatechange = callbackMethod;
    
	if(method=="POST"){
		for(var i = 0; i < requestHeaders.length; i++){
			this.request.setRequestHeader(requestHeaders[i].key, requestHeaders[i].value);
		}
	}
	this.request.send(queryString);
}

Ajax.checkReadyState = function(_id){
	var msgArea = document.getElementById(_id);
		
    switch(this.request.readyState){
	    case 0:
        	if(msgArea!=null)
            	document.getElementById(_id).innerHTML = 'Sending Request...';
            break;	    
        case 1:
        	if(msgArea!=null)
            	document.getElementById(_id).innerHTML = 'Loading Response...';
            break;
        case 2:
        	if(msgArea!=null)
            	document.getElementById(_id).innerHTML = 'Response Loaded...';
            break;
        case 3:
        	if(msgArea!=null)
            	document.getElementById(_id).innerHTML = 'Response Ready...';
            break;
       case 4:
       		if(msgArea!=null)
       			document.getElementById(_id).innerHTML = '';
       		AjaxUpdater.isUpdating = false;
           
           return HTTP.status(this.request.status);
       default:
       		if(msgArea!=null)
       			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;
    }
}

