
/* ---------- Data Retrieval ---------- */

function fetchData(url, dataToSend, runFunction) {
	var pageRequest = false
	if (window.XMLHttpRequest) {
		pageRequest = new XMLHttpRequest()
	} else if (window.ActiveXObject){
		try {
			pageRequest = new ActiveXObject("Msxml2.XMLHTTP")
		}
		catch (e) {
			try {
				pageRequest = new ActiveXObject("Microsoft.XMLHTTP")
			}
			catch (e){}
		}
	} else {
		return false
	}
	pageRequest.onreadystatechange=function() {
		filterData(pageRequest,runFunction)
	}
	document.body.style.cursor = 'wait';
	if (dataToSend) {
		var sendData = 'sendData=' + dataToSend;
		pageRequest.open('POST',url,true);
		pageRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		pageRequest.send(sendData);
	} else {
		pageRequest.open('GET',url,true)
		pageRequest.send(null)
	}
}

function filterData(pageRequest, runFunction) {
	if (pageRequest.readyState == 4) {
		if (pageRequest.status == 200) {
			var result;
			eval('result = ' + pageRequest.responseText);
			///better but not supported in all browsers
			///var result = JSON.parse(pageRequest.responseText);
			for (var key in result) {
				data[key] = result[key];
			}
			if (runFunction) {
				runFunction();
			}
		} else {
			alert ("Server error: " + pageRequest.status + " " + pageRequest.statusText);
		}
		document.body.style.cursor = 'default';
	}
}
