var xmlreqs = new Array();

function CXMLReq(freed) {
	this.freed = freed;
	this.xmlhttp = false;
	if (window.XMLHttpRequest) {
		this.xmlhttp = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
}

function xmlreqGET(url,element) {
	var pos = -1;
	for (var i=0; i<xmlreqs.length; i++) 
		{
		if (xmlreqs[i].freed == 1) { pos = i; break; }
		}	
	if (pos == -1) { pos = xmlreqs.length; xmlreqs[pos] = new CXMLReq(1); }
	if (xmlreqs[pos].xmlhttp) 
		{		
		xmlreqs[pos].freed = 0;	
		xmlreqs[pos].element = element;
		xmlreqs[pos].xmlhttp.open("GET",url,true);		
		xmlreqs[pos].xmlhttp.onreadystatechange = function() 
			{			
			if (typeof(xmlhttpChange) != 'undefined') 
				{ 
				xmlhttpChange(pos); 
				}
			}		
if (window.XMLHttpRequest) 
			{
			xmlreqs[pos].xmlhttp.send(null);
			} 
		else if (window.ActiveXObject) 
			{
			xmlreqs[pos].xmlhttp.send();
			}
	}
}

function xmlreqPOST(url,data,element) {
	var pos = -1;
	for (var i=0; i<xmlreqs.length; i++) {
		if (xmlreqs[i].freed == 1) { pos = i; break; }
	}
	if (pos == -1) { pos = xmlreqs.length; xmlreqs[pos] = new CXMLReq(1); }
	if (xmlreqs[pos].xmlhttp) {
		xmlreqs[pos].freed = 0;
		xmlreqs[pos].element = element;
		xmlreqs[pos].xmlhttp.open("POST",url,true);
		xmlreqs[pos].xmlhttp.onreadystatechange = function() {
			if (typeof(xmlhttpChange) != 'undefined') { xmlhttpChange(pos); }
		}
		xmlreqs[pos].xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		xmlreqs[pos].xmlhttp.send(data);
	}
}

function xmlhttpChange(pos) {
	if (typeof(xmlreqs[pos]) != 'undefined' && xmlreqs[pos].freed == 0 && xmlreqs[pos].xmlhttp.readyState == 4) 
		{	
		if (xmlreqs[pos].xmlhttp.status == 200 || xmlreqs[pos].xmlhttp.status == 404) 
			{
			handle_response(xmlreqs[pos].xmlhttp.responseText, xmlreqs[pos].element);
			// Get your response here..
			} 
		else 
			{			
			handle_error();
			}
		xmlreqs[pos].freed = 1;
	}
}

function handle_error()
	{
		return true;
	}
	
function handle_response(responseData, element) 
	{
	var contentHolder=document.getElementById(element);
	contentHolder.innerHTML=responseData;
	}