﻿function makeHttpRequest(url, callback_function, return_xml) 
{ 
   var http_request = false; 

   if (window.XMLHttpRequest)
   { // Mozilla, Safari,... 
       http_request = new XMLHttpRequest(); 
       if (http_request.overrideMimeType)
       { 
           http_request.overrideMimeType('text/xml'); 
				} 
   }
   else 
		if (window.ActiveXObject) { // IE 
       try { 
           http_request = new ActiveXObject("Msxml2.XMLHTTP"); 
       } catch (e) { 
           try { 
               http_request = new ActiveXObject("Microsoft.XMLHTTP"); 
           } catch (e) {} 
       } 
   } 

   if (!http_request) { 
       return false; 
   } 
   http_request.onreadystatechange = function() {
  //document.getElementById("ReadyState").innerHTML =  document.getElementById("ReadyState").innerHTML + "|" + http_request.readyState;
       if (http_request.readyState == 4) { 
 //document.getElementById("Status").innerHTML =  document.getElementById("Status").innerHTML + "|" + http_request.status;
           if (http_request.status == 200) {
               if (return_xml) { 
//document.getElementById("ResponseText").innerHTML = document.getElementById("ResponseText").innerHTML + "|" + http_request.responseXML;
                   eval(callback_function + '(http_request.responseXML)'); 
               } else { 
//document.getElementById("ResponseText").innerHTML = document.getElementById("ResponseText").innerHTML + "|" + http_request.responseText;
                   eval(callback_function + '(http_request.responseText)'); 
               } 
           } else { 
               //alert('There was a problem with the request.(Code: ' + http_request.status + ')'); 
           } 
       } 
   }
//alert(url);
   http_request.open('POST', url, true); 
   http_request.send(null); 
}

function makeOutOfBandHttpRequest(url, callback_function, return_xml) 
{ 
   var oobhttp_request = false; 

   if (window.XMLHttpRequest)
   { // Mozilla, Safari,... 
       oobhttp_request = new XMLHttpRequest(); 
       if (oobhttp_request.overrideMimeType)
       { 
           oobhttp_request.overrideMimeType('text/xml'); 
				} 
   }
   else 
		if (window.ActiveXObject) { // IE 
       try { 
           oobhttp_request = new ActiveXObject("Msxml2.XMLHTTP"); 
       } catch (e) { 
           try { 
               oobhttp_request = new ActiveXObject("Microsoft.XMLHTTP"); 
           } catch (e) {} 
       } 
   } 

   if (!oobhttp_request) { 
       return false; 
   } 
   oobhttp_request.onreadystatechange = function() {
  //document.getElementById("ReadyState").innerHTML =  document.getElementById("ReadyState").innerHTML + "|" + http_request.readyState;
       if (oobhttp_request.readyState == 4) { 
 //document.getElementById("Status").innerHTML =  document.getElementById("Status").innerHTML + "|" + http_request.status;
           if (oobhttp_request.status == 200) {
               if (return_xml) { 
//document.getElementById("ResponseText").innerHTML = document.getElementById("ResponseText").innerHTML + "|" + http_request.responseXML;
                   eval(callback_function + '(oobhttp_request.responseXML)'); 
               } else { 
//document.getElementById("ResponseText").innerHTML = document.getElementById("ResponseText").innerHTML + "|" + http_request.responseText;
                   eval(callback_function + '(oobhttp_request.responseText)'); 
               } 
           } else { 
               //alert('There was a problem with the request.(Code: ' + http_request.status + ')'); 
           } 
       } 
   }
//alert(url);
   oobhttp_request.open('GET', url, true); 
   oobhttp_request.send(null); 
}