function makeRequest(_method, _url, _callback, _param, _nextcall) {
	request = (window.XMLHttpRequest) ? new XMLHttpRequest() : new ActiveXObject("MSXML2.XMLHTTP");
	request.onreadystatechange = function() { _callback(request, _url,  _param, _nextcall);}
	request.open(_method, _url, true);
	request.send(_url);
	return request;
}

function checkReadyState(request, _id, _1, _2, _3) {
	switch (request.readyState) {
	case 1:
		//loading
		if (_id != null) document.getElementById(_id).innerHTML = _1;
		break;
	case 2:
		//loaded
		if (_id != null) document.getElementById(_id).innerHTML = _2;
		break;
	case 3:
		//interactive
		if (_id != null) document.getElementById(_id).innerHTML = _3;
		break;
	case 4:
		//complete
		return request.status;
	}
}
function replace(request,_url, _id, _nextcall) {
	if (checkReadyState(request) == "200") {
		document.getElementById(_id).innerHTML = request.responseText;
		if (_nextcall != null) {
			_nextcall();
		}
	}
}
function requestfs() {
	makeRequest("GET", "featured_sites.html", replace, "featured", requestds);
}
function requestds() {
	makeRequest("GET", "details_sites.html", replace, "details");
}
function requestfa() {
	makeRequest("GET", "featured_apps.html", replace, "featured", requestda);
}
function requestda() {
	makeRequest("GET", "details_apps.html", replace, "details");
}	
function siteclick() {
	document.getElementById("sites").className = "active";
	document.getElementById("applications").className = "";
	document.getElementById("details").className = "";
	requestfs();
}
function appclick() {
	document.getElementById("sites").className = "";
	document.getElementById("applications").className = "active";
	document.getElementById("details").className = "shifted_arrow";
	requestfa();
}
/*////////////////////////////////////////////////////////////////////example usage//

var Ajax = new Ajax();
function onResponse() {
	if (ajax.checkReadyState("elementID", "loading...", "loading...", "loading...") == "OK") {
		var response = ajax.request.responseText;
		//               OR            //
		var response = ajax.request.responseXML.rootNodeName;
	}
}
ajax.makeRequest("GET", "requestUrl.php", onResponse);

*///////////////////////////////////////////////////////////////////////////////////
