var req;

/*
usage url = pagina welke moet worden aangesproken
      method = POST of GET
      vars = veld1=waarde1&veld2=waarde2
      
      waardes moeten wel escape gebruiken indien gebruik wordt gemaakt van POST
*/
function loadXMLDoc(url,method,vars) {
	req = false;
    // branch for native XMLHttpRequest object
  if(window.XMLHttpRequest) {
    try {
			req = new XMLHttpRequest();
    } catch(e) {
			req = false;
    }
    // branch for IE/Windows ActiveX version
  } else if(window.ActiveXObject) {
    try {
      req = new ActiveXObject("Msxml2.XMLHTTP");
    } catch(e) {
      try {
        req = new ActiveXObject("Microsoft.XMLHTTP");
      } catch(e) {
        req = false;
      }
		}
  }
	if(req) {
		req.onreadystatechange = processReqChange;
    
    if (method == 'POST' || method == 'post') {
  		req.open('POST', url,true);
      req.setRequestHeader('Method', 'POST ' +url+ ' HTTP/1.1');
      req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    }
    else {
    // in de vars moet een = voorkomen naders is het geen correcte post string
    // indien vars al begint met een & hoeft deze niet meer toegevoegd te worden
      if (vars.indexOf('=') > 0 && vars.indexOf('?') != 0)  {
        vars = '?' + vars; 
      }
      req.open('GET', url+vars,true);
// vars wordt leeggemaakt voor de send 
// deze is wel gevuld indien POST wordt gebruikt
      vars = '';
    }

    req.send(vars);

//		req.send("");
	}
}

function processReqChange() {
    // only if req shows "loaded"
    if (req.readyState == 4) {
        // only if "OK"
        if (req.status == 200) {
        // ...processing statements go here...
// zorg er voor dat er dus maar een status is en deze ook wordt terug gegeven
          var status = req.responseXML.getElementsByTagName('ReqStatus')[0].firstChild.nodeValue;

          if (status == 'OK') {
          // page gives ok back
              exec_function_after_req_OK(req.responseXML);
          } else {
          // page gives something else back        
            exec_function_after_req_NOT_OK(req.responseXML);
          }
            
        } else {
        // something went wrong
            exec_function_after_req_NOT_OK(req.status);
        }
    }
}