function systemXmlHttp() {
}
systemXmlHttp.onchangerunning = false;
systemXmlHttp.onchangecalled = false;
systemXmlHttp.createRequest = function () {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	}
	if (window.ActiveXObject) {
		try {
			req = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e) {
			try {
				req = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(e) {
				req = null;
			}
		}
		return req;
	}
	return null;
}
systemXmlHttp.request = function (method, url, async, username, password, send, sender, onsuccess) {
	if(systemXmlHttp.acceptRequests == false) {
		return false;
	}
	//alert(url);
	var r = this.createRequest();
	if(r == null) {
		return false;
	}
	var p = [r, sender, onsuccess, url];
	systemXmlHttp.activeRequests[systemXmlHttp.activeRequests.length] = p;
	r.onreadystatechange = systemXmlHttp.onreadystatechange;
	r.open(method, url, async, username, password);

	r.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
	r.send(send);

	if(async) return true;
	else return r;
}
systemXmlHttp.onreadystatechange = function () {
	if(systemXmlHttp.onchangerunning) {
		systemXmlHttp.onchangecalled = true;
		if(systemXmlHttp.onchangerunning) return;
	}
	systemXmlHttp.onchangecalled = false;
	systemXmlHttp.onchangerunning = true;
	var r = new Array();
	var s;
	for(var i=systemXmlHttp.activeRequests.length-1; i>=0; i--) {
		if(systemXmlHttp.activeRequests[i][0].readyState == 4) {
						
			try { s = systemXmlHttp.activeRequests[i][0].status ? systemXmlHttp.activeRequests[i][0].status : 0; } catch (e) { s = 0; }
			if(s == 200) {
				r[r.length] = i;
				if(systemXmlHttp.activeRequests[i][1]) {
					if(systemXmlHttp.activeRequests[i][2].call) {
						systemXmlHttp.activeRequests[i][2].call(systemXmlHttp.activeRequests[i][1], systemXmlHttp.activeRequests[i][0], systemXmlHttp.activeRequests[i][3]);
					} else {
						systemXmlHttp.activeRequests[i][2](systemXmlHttp.activeRequests[i][0], systemXmlHttp.activeRequests[i][3]);
					}
				} else {
					systemXmlHttp.activeRequests[i][2](systemXmlHttp.activeRequests[i][0], systemXmlHttp.activeRequests[i][3]);
				}
			}
			else {
				if(systemXmlHttp.activeRequests[i][0]) {
					r[r.length] = i;
					//alert('request failed: '+systemXmlHttp.activeRequests[i][0].statusText);
				}
			}
		}
	}
	for(i=r.length-1; i>=0; i--) {
		systemXmlHttp.activeRequests.removeElementAt(r[i]);
	}
	systemXmlHttp.onchangerunning = false;
	if(systemXmlHttp.onchangecalled) {
		systemXmlHttp.onreadystatechange();
	}
}
systemXmlHttp.activeRequests = new Array();



