      var xmlServiceRequest;
      
      function setXMLServiceErrorMessage(text)
      {
        errorField = document.getElementById('xmlServiceError');
        if (errorField == null) {
          if (text != '') alert('xmlerror: ' + text);
        } else if (text != '' ) {
          errorField.innerText = text;
          errorField.style.display = "inline";
        } else {
          errorField.innerText = '';
          errorField.style.display = "none";
        } 
      }

      function xmlServiceProcessChange() 
      {
        // only if xmlServiceRequest shows "complete"
        if (xmlServiceRequest.readyState == 4) {
          setXMLServiceErrorMessage('');
          // only if "OK"
          if (xmlServiceRequest.status == 200) {
            // ...processing statements go here...
            response = xmlServiceRequest.responseXML.documentElement;
            if (response == null) {
              setXMLServiceErrorMessage('Problem retrieving XML data (isNULL)!');
            } else {
              method = response.getElementsByTagName('method')[0].firstChild.data;
              eval(method + '(response)');
            }
          } else {
            setXMLServiceErrorMessage('Problem retrieving XML data!');
          }
        }
      }
      
      function xmlServiceRetrieveDocument(url) 
      {
          // branch for native XMLHttpRequest object
          if (window.XMLHttpRequest) {
              xmlServiceRequest = new XMLHttpRequest();
              xmlServiceRequest.onreadystatechange = xmlServiceProcessChange;
              xmlServiceRequest.open("GET", url, true);
              xmlServiceRequest.send(null);
          // branch for IE/Windows ActiveX version
          } else if (window.ActiveXObject) {
              xmlServiceRequest = new ActiveXObject("Microsoft.XMLHTTP");
              if (xmlServiceRequest) {
                  xmlServiceRequest.onreadystatechange = xmlServiceProcessChange;
                  xmlServiceRequest.open("GET", url, true);
                  xmlServiceRequest.send();
              }
          }
      }
