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 [15]'); 
       } 
   } 
	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) { 
       alert('Unfortunatelly you browser doesn\'t support this feature.'); 
       return false; 
   }
   
   http_request.onreadystatechange = function() { 
       if (http_request.readyState == 4) { 
           if (http_request.status == 200) { 
               if (return_xml) { 
                   eval(callback_function + '(http_request.responseXML)'); 
               } else { 
                   eval(callback_function + '(http_request.responseText)'); 
               } 
           } else { 
               alert('Ajax request returned error.\n\nCode: ' + http_request.status);
               parent.AddTab("Error", "", url);  //http_request.responseText);
           } 
       } 
   } 
   
   http_request.open('GET', url, true); 
   http_request.send(null); 
}