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,dest) {
	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) {
		if (document.getElementById) 
			{ var oe = document.getElementById(dest+"6"); oe.innerHTML = '<img src=al.gif>'; } 
		else if (document.layers && document.layers[dest+"6"])
			document.layers[dest+"6"].innerHTML =  '<img src=al.gif>';
		else if (document.all)
    			document.all[dest+"6"].innerHTML =  '<img src=al.gif>';
	
	var randomnumber=Math.floor(Math.random()*999999);
	
		xmlreqs[pos].freed = 0;
		xmlreqs[pos].xmlhttp.open("GET",url+"&rand="+randomnumber,true);
		xmlreqs[pos].xmlhttp.onreadystatechange = function() {
			if (typeof(xmlhttpChange) != 'undefined') { xmlhttpChange(pos,dest); }
		}
		if (window.XMLHttpRequest) {
			xmlreqs[pos].xmlhttp.send(null);
		} else if (window.ActiveXObject) {
			xmlreqs[pos].xmlhttp.send();
		}
	}
}

function xmlreqPOST(url,data) {
	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].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,dest) {
	if (typeof(xmlreqs[pos]) != 'undefined' && xmlreqs[pos].freed == 0 && xmlreqs[pos].xmlhttp.readyState == 4) {
		if (xmlreqs[pos].xmlhttp.status == 200 || xmlreqs[pos].xmlhttp.status == 304) {
		{
		var rowdata = xmlreqs[pos].xmlhttp.responseText;
		
		if (rowdata.charAt(0) == '~')
		{
		var valign = false;
		
		if (rowdata.indexOf("class=goals") > 0) valign = true;
		
		if (valign)
		{
		if (document.getElementById) 
			{ var oe = document.getElementById(dest + 2); oe.style.verticalAlign  = "top"; } 
		else if (document.layers && document.layers[dest+2])
			document.layers[dest+2].style.verticalAlign  = "top";
		else if (document.all)
			document.all[dest+2].style.verticalAlign  = "top";
			
		if (document.getElementById) 
			{ var oe = document.getElementById(dest + 2); oe.style.verticalAlign  = "top"; } 
		else if (document.layers && document.layers[dest+2])
			document.layers[dest+2].style.verticalAlign  = "top";
		else if (document.all)
			document.all[dest+2].style.verticalAlign  = "top";;
			
		}
		
		var splitArray = rowdata.split("~#~");
		var x = 2;
		
		while ((x < splitArray.length) && (x < 7))
			{
			if (document.getElementById) 
				{ var oe = document.getElementById(dest + x); oe.innerHTML = splitArray[x]; } 
			else if (document.layers && document.layers[dest+x])
				document.layers[dest+x].innerHTML = splitArray[x];
			else if (document.all)
	    			document.all[dest+x].innerHTML = splitArray[x];
			
			x++;
			}
		
		}
		else
		{
		if (document.getElementById) 
			{ var oe = document.getElementById(dest); oe.innerHTML = xmlreqs[pos].xmlhttp.responseText; } 
		else if (document.layers && document.layers[dest])
			document.layers[dest].innerHTML =  xmlreqs[pos].xmlhttp.responseText;
		else if (document.all)
    			document.all[dest].innerHTML =  xmlreqs[pos].xmlhttp.responseText;
		}
		
		
		// document.getElementById(dest).innerHTML = xmlreqs[pos].xmlhttp.responseText;
		//	handle_response(xmlreqs[pos].xmlhttp.responseXML);
		}
		} else {
			handle_error();
		}
		xmlreqs[pos].freed = 1;
	}
}




