function getData(dataSource,targetDiv) {
  target = document.getElementById(targetDiv);
  dataSource += "?t=" + new Date().getTime();
  var XMLHttpRequestObject = false;
  if (window.XMLHttpRequest) {
    XMLHttpRequestObject = new XMLHttpRequest();
  } else if (window.ActiveXObject) {
    XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
  } else {
    alert ("You must have a modern browser to use this site.");
  }

  if (XMLHttpRequestObject) {
    XMLHttpRequestObject.open("GET", dataSource, true);

    XMLHttpRequestObject.onreadystatechange = function() {

      if (document.getElementById('ajaxstatus')) {
        // indicate status of transfer
        var statusMsg = 'Status: <em><strong>';
        var statusColor = 'green';
        switch (XMLHttpRequestObject.readyState) {
          case 0: statusMsg += 'Uninitialized'; statusColor = 'red';  break;
          case 1: statusMsg += 'Loading';       statusColor = 'red';  break;
          case 2: statusMsg += 'Loaded';        statusColor = 'orange';  break;
          case 3: statusMsg += 'Interactive';   statusColor = 'orange';  break;
          case 4: statusMsg += 'Ready';      statusColor = 'green'; break;
        }
        document.getElementById("ajaxstatus").innerHTML = statusMsg + "</strong></em>";
        document.getElementById("ajaxstatus").style.backgroundColor = statusColor;
        delete statusMsg;
        delete statusColor;
      }

      if (XMLHttpRequestObject.readyState == 4) {
        switch (XMLHttpRequestObject.status) {
          case 200: 
            document.getElementById(targetDiv).innerHTML = XMLHttpRequestObject.responseText;
            break;
          case 404:
            document.getElementById(targetDiv).innerHTML = "<h1>Entry not found</h1>";
            break;
        }
        delete XMLHttpRequestObject;
        XMLHttpRequestObject = null;
      }
    }

    XMLHttpRequestObject.send(null);
  }
}
