    /*
    * Generic AJAX functions
    */

    // Creates an XMLHTTP instance (cross-browser)
    function create_request() {
       var httpRequest;
       
       if (window.XMLHttpRequest) { // Mozilla, Safari, ...
          httpRequest = new XMLHttpRequest();
          if (httpRequest.overrideMimeType) {
             httpRequest.overrideMimeType('text/plain');
          }
       } else if (window.ActiveXObject) { // IE
          try {
             httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
          }
          catch (e) {
             try {
                httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
             }
             catch (e) {}
          }
       }
       
       if (!httpRequest) {
         // alert('Giving up :( Cannot create an XMLHTTP instance');
          return false;
       }

       return httpRequest;
    }

    // Request a page -- this is where you begin
    // This is always a GET request
    // Parameters:
    //    url, is required
    //    handle_request, a function object, NOT A STRING!
    //                Not required. This function gets back the response from the URL you provided in the first parameter.
    function make_request(url, handle_request) {
       if(!url) return false;
       
       var httpRequest = create_request();

       httpRequest.onreadystatechange = function() { get_response(httpRequest, handle_request); };
       httpRequest.open('GET', url, true);
       httpRequest.send('');
    }

    // Executes the function handle_request if provided.
    function get_response(httpRequest, handle_request) {
       if (httpRequest.readyState == 4) {
          if (httpRequest.status == 200) {
             if(handle_request) {
                handle_request(httpRequest.responseText);
             }
          } else {
             // alert('There was a problem with the request.');
		alert('Het is nodig om het scherm te verversen. Druk hiervoor op F5.');
          }
       }
    }

    /*
    * End of generic AJAX functions
    */

