var xhr = new Array(); // ARRAY OF XML-HTTP REQUESTS
var xi = new Array(0); // ARRAY OF XML-HTTP REQUEST INDEXES
xi[0] = 1; // FIRST INDEX SET TO 1 MAKING IT AVAILABLE

function xhrRequest(type)
{
	if (!type) {
		type = 'html';
	}

	// xhrsend IS THE xi POSITION THAT GETS PASSED BACK
	// INITIALIZED TO THE LENGTH OF THE ARRAY(LAST POSITION + 1)
	// IN CASE A FREE RESOURCE ISN'T FOUND IN THE LOOP
	var xhrsend = xi.length;

	// GO THROUGH AVAILABLE xi VALUES
	for (var i=0; i<xi.length; i++) {

		// IF IT'S 1 (AVAILABLE), ALLOCATE IT FOR USE AND BREAK
		if (xi[i] == 1) {
			xi[i] = 0;
			xhrsend = i;

			break;
		}
	}

	// SET TO 0 SINCE IT'S NOW ALLOCATED FOR USE
	xi[xhrsend] = 0;

	// SET UP THE REQUEST
	if (window.ActiveXObject) {
		try {
			xhr[xhrsend] = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				xhr[xhrsend] = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	} else if (window.XMLHttpRequest) {
		xhr[xhrsend] = new XMLHttpRequest();

		if (xhr[xhrsend].overrideMimeType) {
			xhr[xhrsend].overrideMimeType('text/' + type);
		}
	}

	return (xhrsend);
}

function ajaxUpdate( elementId, url )
{
	elementId = elementId || false;

	var xhri = xhrRequest('html');
	xhr[xhri].open('GET', url, true);
	xhr[xhri].onreadystatechange = function() {
		if (xhr[xhri].readyState == 4 && xhr[xhri].status == 200) {
			if ( elementId != false ) {
				document.getElementById(elementId).innerHTML=xhr[xhri].responseText
			} else {
				alert(xhr[xhri].responseText);
			}

			xi[xhri] = 1;
			xhr[xhri] = null;
		}
	};

	xhr[xhri].send(null);
}

function loadMulti()
{
	// CALL A FUNCTION THAT USES xmlHttp MULTIPLE TIMES
	ajaxUpdate('ajax.php?action=test&arg=1');
	ajaxUpdate('ajax.php?action=test&arg=2');
	ajaxUpdate('ajax.php?action=test&arg=3', 'signin');
}

//window.onload = loadMulti();

