var xmlHttp = createXmlHttpRequestObject();
var ajaxLoading = '<img src="img/system/ajax.gif" alt="AJAX Loading..." />';

var resObjId;
var processor;
var query;

var xmlRoot;

function createXmlHttpRequestObject(){
   
   var xmlHttp;
   
   if(window.ActiveXObject){
       try{
          xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
       } catch(e) {
          xmlHttp = false;
       }
   } else {
       try {
          xmlHttp = new XMLHttpRequest();
       } catch(e) {
          xmlHttp = false;
       } 
    }
    if (!xmlHttp){
        alert("Can not create XMLHttpRequest.");
    } else {
        return xmlHttp;
    }
    
}

function process(query_t,resObjId_t,processor_t){
		
	resObjId = resObjId_t;
	query = query_t;
	processor = processor_t;
	
	if (resObjId != ""){document.getElementById(resObjId).style.display = "block";}
	if (resObjId != ""){document.getElementById(resObjId).innerHTML = ajaxLoading;}
	
	ajaxstart();
    
}

function ajaxstart(){
	
	if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0){
        xmlHttp.open("POST", processor, true);
        xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
        xmlHttp.onreadystatechange = handleServerResponse;
        xmlHttp.send(query);
   	} else {
   	    setTimeout('ajaxstart()',1000);
   	}
   	
}

function handleServerResponse(){
    if (xmlHttp.readyState == 4){
         if (xmlHttp.status == 200){
            xmlRoot = xmlHttp.responseXML.documentElement; 
            if (resObjId != ""){ document.getElementById(resObjId).innerHTML = xmlRoot.getElementsByTagName("result").item(0).firstChild.data; }
         } else {
            if (resObjId != ""){ document.getElementById(resObjId).innerHTML = "Error!  " + xmlHttp.statusText; }
         }
    }
}