var http = new Array;
var completed = new Array;

function loadXMLDoc(url) {
	if (window.XMLHttpRequest) {
		var i = http.length;

		var request = new XMLHttpRequest();
		request.onreadystatechange = processReqChange;
		request.open("GET", url, true);
		request.send(null);

		http[i] = request;
	} else if (window.ActiveXObject) {
		var i = http.length;
		var request2;

		try {
			request2 = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e) {
			try {
				request2 = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) { }
		}

		if (request2) {
			request2.onreadystatechange = processReqChange;
			request2.open("GET", url, true);
			request2.send();

			http[i] = request2;
		}
	}
}

function processReqChange() {
	for (var i=0; i < http.length; i++) {
		if (completed[i] || !http[i]) {
			continue;
		}

		if (http[i].readyState == 4) {
			if (http[i].status == 200) {
				var response  = http[i].responseXML.documentElement;
				var method = response.getElementsByTagName('method')[0].firstChild.data;
				var request = response.getElementsByTagName('request')[0];
				var result = response.getElementsByTagName('result')[0];
				eval(method + '(request, result)');
			}
			
			completed[i] = 1;
		}
	}
}
