var busy = 0;

function loadXMLDoc(url, data)
  {
	if (busy)
		{
		var t = setTimeout ("loadXMLDoc('" + url + "', '" + data + "')", 10);
		return;
		}
	busy = 1;
  // branch for native XMLHttpRequest object
  if (window.XMLHttpRequest)
    {
    req = new XMLHttpRequest();
    req.onreadystatechange = processReqChange;
    req.open("POST", url, true);
		req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		req.setRequestHeader("Content-length", data.length);
		req.setRequestHeader("Connection", "close");
    req.send(data);
    // branch for IE/Windows ActiveX version
    }
  else if (window.ActiveXObject)
    {
    req = new ActiveXObject("Microsoft.XMLHTTP");
    if (req)
      {
      req.onreadystatechange = processReqChange;
      req.open("POST", url, true);
			req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			req.setRequestHeader("Content-length", data.length);
			req.setRequestHeader("Connection", "close");
      req.send(data);
      }
    }
  }

function processReqChange()
  {
  // only if req shows "complete"
  if (req.readyState == 4)
    {
    // only if "OK"
    if (req.status == 200)
      {
    	//alert (req.responseText);
			response  = req.responseXML.documentElement;
      method    = response.getElementsByTagName('method')[0].firstChild.data;
      result    = response.getElementsByTagName('result')[0].firstChild.data;
	    error_code= response.getElementsByTagName('error_code')[0].firstChild.data;
      eval(method + '(result, error_code)');
      }
    else
      {
      alert("There was a problem retrieving the XML data:\n" + req.statusText);
      }
		busy = 0;
    }
  }

