function AJAXCall(HTTP_Mode,url,args,callback) {
   http_request = new XMLHttpRequest();
   if (http_request.overrideMimeType)
     http_request.overrideMimeType('text/xml');
   http_request.onreadystatechange = function(){callOnOk(http_request,callback);};
   http_request.open(HTTP_Mode, url, true);
   http_request.setRequestHeader( "Pragma", "no-cache" );
   http_request.setRequestHeader( "Cache-Control", "must-revalidate" );
   http_request.setRequestHeader( "Cache-Control", "no-cache" );
   http_request.setRequestHeader( "Cache-Control", "no-store" );
   http_request.send(args);
}

function http_req_isOK(hr) {
   return (hr.readyState == 4 && hr.status == 200);
}

var AJAX_response = null;
var Text_response = null;

function callOnOk(hr,func) {
   if (!http_req_isOK(hr))
      return false;
   var tmp = AJAX_response;
   var tmpT = Text_response;
   AJAX_response = hr.responseXML;
   Text_response = hr.responseText;
   if (func != null)
      func();
   AJAX_response = tmp;
   Text_response = tmpT;
}
