var http_responses = new Array();

function HTTPResponse(url, hook){
	this.url = url;
	this.hook = hook;

	if(window.XMLHttpRequest) this.httprequest = new XMLHttpRequest();
	else this.httprequest = new ActiveXObject("Microsoft.XMLHTTP");
}

function SendHTTP(url, hook){
	httpresponse = new HTTPResponse(url, hook);

	if(httpresponse.httprequest != undefined){

		httpresponse.httprequest.onreadystatechange = function(){ if(httpresponse.httprequest.readyState == 4) eval(hook); };
		httpresponse.httprequest.open("GET", url += (url.match(/\?/) == null ? "?" : "&") + (new Date()).getTime(), true);
		httpresponse.httprequest.send("");

		http_responses.push(httpresponse);
		
	}else{
		alert("Uw browser ondersteund geen XMLHttpRequest of Microsoft.XMLHTTP objecten.");
	}

	return httpresponse;
}

function getLastResponse(){
	if(http_responses.length != 0) return http_responses[http_responses.length-1];
	return null;
}

function getResponse(from_url){
	for(i = http_responses.length-1; i>=0; i--)
		if(http_responses[i].url == from_url && http_responses[i].httprequest.responseText != "" && http_responses[i].httprequest.responseText != "undefined")
			return http_responses[i].httprequest.responseText;

	return "";
}

function getResponseObj(from_url){
	for(i = http_responses.length-1; i>=0; i--)
		if(http_responses[i].url == from_url && http_responses[i].httprequest.responseText != "" && http_responses[i].httprequest.responseText != "undefined")
			return http_responses[i].httprequest;
}

function LoadElement(url, element){
	document.getElementById(element).innerHTML = "";
	SendHTTP(url, "document.getElementById('"+ element +"').innerHTML = getResponse('"+ url +"');");
}

function LoadElement(url, element, hook){
	document.getElementById(element).innerHTML = "";
	SendHTTP(url, "document.getElementById('"+ element +"').innerHTML = getResponse('"+ url +"'); "+ hook);
}

function clearResponses(){
	http_responses = new Array();
}
