var loadingImage = new Image();
loadingImage.src = "resources/images/template/loading.gif";

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 showHTML(divname, url, cb) {
	document.getElementById(divname).innerHTML = '<img src="resources/images/template/loading.gif" width="16" height="16" /><font style="font-size:14px;font-family:Tahoma, Geneva, sans-serif;font-weight:normal;">  ... Loading ...</font>';
	
	var xhri = xhrRequest('html');
	var mytime = "";
	mytime +="&ms="+new Date().getTime();
	xhr[xhri].open('GET', url+mytime, true);
	xhr[xhri].onreadystatechange = function() {
		if (xhr[xhri].readyState == 4 && xhr[xhri].status == 200) {
			document.getElementById(divname).innerHTML= xhr[xhri].responseText;
			xi[xhri] = 1;
			xhr[xhri] = null;
			if(cb != undefined)
				cb();
		}
	};
	xhr[xhri].send(null);
}
	
function cancelAjax()
{
	request.transport.abort();
}

function GetXmlHttpObject()
{
	var xmlHttp=null;
	try	{
		xmlHttp=new XMLHttpRequest();
	}catch (e){
		try{
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}catch (e){
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttp;
}

function showPOST(divname,url, parameters) {
	document.getElementById(divname).innerHTML = '<img src="../resources/images/template/loading.gif" width="16" height="16" /><font style="font-size:14px;font-family:Tahoma, Geneva, sans-serif;font-weight:normal;">  ... Loading ...</font>';

	var xhri = xhrRequest('html');
	var mytime = "";
	mytime +="&ms="+new Date().getTime();
	xhr[xhri].open('POST', url+mytime, true);
	xhr[xhri].setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xhr[xhri].setRequestHeader("Content-length", parameters.length);
	xhr[xhri].setRequestHeader("Connection", "close");
	xhr[xhri].onreadystatechange = function() {
		if (xhr[xhri].readyState == 4 && xhr[xhri].status == 200) {
			document.getElementById(divname).innerHTML= xhr[xhri].responseText;
			xi[xhri] = 1;
			xhr[xhri] = null;
			if(cb != undefined)
				cb();
		}
	};
	xhr[xhri].send(parameters);	
}
