var req;
var which;
var divId;

  function load(id, url) {
    divId = id;
    retrieveURL(url, '');
  }

  function loadForm(id, url, formName) {
    divId = id;
    retrieveURL(url, formName);
  }

  function retrieveURL(url, formName) {
    mode = 'GET';
    postArgs = null;
    if (formName != '') {
      mode = 'POST';
      postArgs = '';
      for (i=0; i<formName.elements.length; i++) {
        if (formName.elements[i].type == 'checkbox')
          postArgs = postArgs + formName.elements[i].name + '=' + formName.elements[i].checked + '&';
        else
          postArgs = postArgs + formName.elements[i].name + '=' + formName.elements[i].value + '&';
      }
    }
    if (window.XMLHttpRequest) { // Non-IE browsers
      req = new XMLHttpRequest();
      req.onreadystatechange = processStateChange;
      try {
      	req.open(mode, url, true);
        if (mode == 'POST')
          req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
      }
      catch (e) {
        alert("Problem Communicating with Server\n"+e);
      }
      req.send(postArgs);
    } else if (window.ActiveXObject) { // IE
      req = new ActiveXObject("Microsoft.XMLHTTP");
      if (req) {
        req.onreadystatechange = processStateChange;
        req.open(mode, url, true);
        if (mode == 'POST')
          req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        req.send(postArgs);
      }
    }
  }

  function processStateChange () {
      if (req.readyState == 4) { // Complete
      if (req.status == 200) { // OK response
        replace(req.responseText);
      } else {
        alert("Problem with server response:\n " + req.statusText);
      }
    }
  }

  function replace(response){
    if(document.getElementById(divId)) {
      document.getElementById(divId).innerHTML = response;
    }
 }

