function loadDownloads(url) {
	// branch for native XMLHttpRequest object

	if (window.XMLHttpRequest) {
		dlReq = new XMLHttpRequest();
		dlReq.onreadystatechange = processDlReqChange;
		dlReq.open("GET", url, true);
		dlReq.send(null);
		// branch for IE/Windows ActiveX version
	} else if (window.ActiveXObject) {
		isIE = true;
		dlReq = new ActiveXObject("Microsoft.XMLHTTP");
		if (dlReq) {
			dlReq.onreadystatechange = processDlReqChange;
			dlReq.open("GET", url, true);
			dlReq.send();
		}
	}
}

function processDlReqChange() {
	// only if dlReq shows "loaded"
	if (dlReq.readyState == 4) {
		// only if "OK"
		if (dlReq.status == 200) {
			document.getElementById('dlprogress1').style.display='none';
			document.getElementById('dlprogress2').style.display='none';
			document.getElementById('site_downloads').innerHTML = dlReq.responseText;
			if (dlReq.responseText.indexOf('###')!=-1){
				dlBits = dlReq.responseText.split('###');
				document.getElementById('site_downloads').innerHTML = dlBits[0];
				if (dlBits[1]!=""){
					showCharacteristics();
				}
			} else {
				document.getElementById('site_downloads').innerHTML = dlReq.responseText;
			}
		} else {
			alert("There was a problem retrieving the XML data:\n" +
			dlReq.statusText);
		}
	}
}

/*
* Hack to make sure page has loaded before trying to display characteristics
*/
function showCharacteristics() {
	if (document.getElementById('characteristics')) {
		document.getElementById('characteristics').innerHTML = dlBits[1];
	} else {
		setTimeout("showCharacteristics()",2000);
	}
}