function ahah(url, target, delay) {
  target.innerHTML = '<p>Loading...<\/p>';
  if (window.XMLHttpRequest) {
    req = new XMLHttpRequest();
  } else if (window.ActiveXObject) {
    req = new ActiveXObject("Microsoft.XMLHTTP");
  }
  if (req != undefined) {
    req.onreadystatechange = function() {ahahDone(url, target, delay);};
    req.open("GET", url, true);
    req.send("");
  }
}  

function ahahDone(url, target, delay) {
  if (req.readyState == 4) {
    if (req.status == 200 || req.status == 0) {
      target.innerHTML = req.responseText;
    } else {
      target.innerHTML = "<p>ahah error " + req.status +":\n<br>"+req.statusText+"<\/p>";
    }
    if (delay != undefined) {
      setTimeout('ahah("' + url + '", "' + target + '", ' + delay + ')', delay);
    }
  }
}

