// Global variables to keep track of the request
//  and the function to call when done
var ajaxreq=false, ajaxCallback;
// ajaxRequest: Set up a request
function ajaxRequest(filename, args) {
  try {
    ajaxreq = new XMLHttpRequest();
  } catch (error) {
    try {
      ajaxreq = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (error) {
      return false;
    }
  }
  ajaxreq.open("POST", filename, true);
  ajaxreq.onreadystatechange = ajaxResponse;
  ajaxreq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
  ajaxreq.send(args);
}

function ajaxResponse() {
  if ( ajaxreq.readyState != 4 ) return;
  if ( ajaxreq.status == 200 ) {
    if ( ajaxCallback ) ajaxCallback();
  } else alert("Request failed: " + ajaxreq.statusText);
  return true;
}
