function makeHttpRequest(url, callback_function, return_xml)
{
   var http_request = false;

   $PreMessage = "Working...";
   printMessages($PreMessage);

try
  {  // Firefox, Opera 8.0+, Safari
    http_request=new XMLHttpRequest();
  }
  catch (e)
    {  // Internet Explorer
      try
        {
          http_request=new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e)
          {
            try
              {
                http_request=new ActiveXObject("Microsoft.XMLHTTP");
              }
              catch (e)
                {
                  alert("Your browser does not support AJAX!");
                  return 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) {
       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('There was a problem with the request.(Code: ' + http_request.status + ')');
           }
       }
   }
   http_request.open('GET', url, true);
   http_request.send(null);
}

function printMessages(messages_string)
{
  var messages_div = document.getElementById('messages');

  messages_div.appendChild(document.createElement('br'));
  messages_div.appendChild(document.createTextNode(messages_string));
  messages_div.appendChild(document.createElement('p'));

  //messages_div.scrollTop = messages_div.scrollHeight;
}

