var req;

function loadXMLDoc(url) 
{
    // branch for native XMLHttpRequest object
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
        req.onreadystatechange = processReqChange;
        req.open("GET", url, true);
        req.send(null);
    // branch for IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {
            req.onreadystatechange = processReqChange;
            req.open("GET", url, true);
            req.send();
        }
    }
}

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