  var req_fifo;

  // GetAsyncData sends a request to read the fifo.
  function GetAsyncData() {

    // branch for native XMLHttpRequest object
    if (window.XMLHttpRequest) {
      req_fifo = new XMLHttpRequest();
      req_fifo.abort();

      req_fifo.onreadystatechange = GotAsyncData;
      var thisdate = new Date();


      req_fifo.open("POST", url+"?"+thisdate.getTime(), true);
	  req_fifo.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');

      req_fifo.send(null);
    // branch for IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
      req_fifo = new ActiveXObject("Microsoft.XMLHTTP");
      if (req_fifo) {
        req_fifo.abort();
	var thisdate = new Date();
        req_fifo.onreadystatechange = GotAsyncData;
        req_fifo.open("GET", url+"?"+thisdate.getTime(), true);
        req_fifo.send();
      }
    }
  }

  // GotAsyncData is the read callback for the above XMLHttpRequest() call.
  // This routine is not executed until data arrives from the request.
  // We update the "fifo_data" area on the page when data does arrive.
  function GotAsyncData() {
    // only if req_fifo shows "loaded"
    if (req_fifo.readyState != 4 || req_fifo.status != 200) {
      return;
    }
    document.getElementById("fifo_data").innerHTML=
      req_fifo.responseText;

    // Schedule next call to wait for fifo data
    setTimeout("GetAsyncData()", 10000);
    return;
  }