function ahah(url, target) {
  // document.getElementById(target).innerHTML = ' Fetching data...';
  if (window.XMLHttpRequest) {
    req = new XMLHttpRequest();
  } else if (window.ActiveXObject) {
    req = new ActiveXObject("Microsoft.XMLHTTP");
  }
  if (req != undefined) {
    req.onreadystatechange = function() {ahahDone(url, target);};
    req.open("GET", url, true);
    req.send("");
  }
}  

function ahahDone(url, target) {
  if (req.readyState == 4) { // only if req is "loaded"
    if (document.getElementById(target))
    {
      if (req.status == 200 || req.status == 304) { // only if "OK"
        document.getElementById(target).innerHTML = req.responseText;
      } else {
        document.getElementById(target).innerHTML=" AHAH Error:\n"+ req.status + "\n" +req.statusText;
      }
    }
  }
}


function ahah_messenger(url, target) {
  // document.getElementById(target).innerHTML = ' Fetching data...';
  if (window.XMLHttpRequest) {
    req = new XMLHttpRequest();
  } else if (window.ActiveXObject) {
    req = new ActiveXObject("Microsoft.XMLHTTP");
  }
  if (req != undefined) {
    //req.onreadystatechange = function() {ahahDone_messenger(url, target);};
    req.open("GET", url, false);
    req.send(null);
    ahahDone_messenger(url, target);
  }
}  

function ahahDone_messenger(url, target) {
  if (req.readyState == 4) { // only if req is "loaded"
    if (document.getElementById(target))
    {
      if (req.status == 200 || req.status == 304) { // only if "OK"
        if (req.responseText.length > 0) {
          if(req.responseText.indexOf("error_text") < 0) {
            messages = document.getElementById(target).innerHTML;
            message_count = messages.match(/timestamp/g);
            if(message_count) {
              if(message_count.length >= 25) {
                last_message = messages.lastIndexOf("timestamp") - 13;
                messages = messages.substring(0, last_message);
              }
            }
            document.getElementById(target).innerHTML = req.responseText + messages;
            self.focus();
            document.messageform.message.focus();
          } else {
            self.close();
          }
        }
      } else {
        document.getElementById(target).innerHTML=" AHAH Error:\n"+ req.status + "\n" +req.statusText;
        self.close();
      }
    }
  }
}