var xmlreqs = new Array();

function CXMLReq(type, xmlhttp) {
	this.type = type;
	this.xmlhttp = xmlhttp;
}

function xmlreqGET(url, type) {
	var xmlhttp=false;

	if (window.XMLHttpRequest) { // Mozilla, etc.
		xmlhttp = new XMLHttpRequest();
		xmlhttp.onreadystatechange = xmlhttpChange;
		xmlhttp.open("GET", url, true);
		xmlhttp.send(null);
	} else if (window.ActiveXObject) { // IE
		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		if (xmlhttp) {
			xmlhttp.onreadystatechange = xmlhttpChange;
			xmlhttp.open("GET", url, true);
			xmlhttp.send();
		}
	}
	var xmlreq = new CXMLReq(type, xmlhttp);
	xmlreqs.push(xmlreq);
}

function xmlreqPOST(url, data, type) {
	var xmlhttp=false;
	
	if (window.XMLHttpRequest) { // Mozilla etc.
		xmlhttp = new XMLHttpRequest();
		xmlhttp.onreadystatechange=xmlhttpChange;
		xmlhttp.open("POST", url, true);
		xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		xmlhttp.send(data);
	} else if (window.ActiveXObject) { // IE
		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		if (xmlhttp) {
			xmlhttp.onreadystatechange=xmlhttpChange;
			xmlhttp.open("POST", url, true);
			xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			xmlhttp.send(data);
		}
	}
	var xmlreq = new CXMLReq(type, xmlhttp);
	xmlreqs.push(xmlreq);
}


function xmlhttpChange() {
	if (typeof(window['xmlreqs']) == "undefined") return;
	for (var i=0; i < xmlreqs.length; i++) {
		if (xmlreqs[i].xmlhttp.readyState == 4) {
			if (xmlreqs[i].xmlhttp.status == 200 || xmlreqs[i].xmlhttp.status == 304) {
				
				// 200 OK
				
				// get response info here before splicing				
				respTxt = xmlreqs[i].xmlhttp.responseText;
				
				triggered(respTxt, xmlreqs[i].type);
				
				xmlreqs.splice(i,1); i--;
			} else {
				// error
				xmlreqs.splice(i,1); i--;
			}
		}
	}
}

function triggered(respTxt, eleName) {	
	var ajxContent = document.getElementById(eleName);
	ajxContent.innerHTML = respTxt;
}

