function setAsync(elem,httpAddress){
	// fail-back error string - fails back to using an iframe
	var errString = "<iframe src=\"" + httpAddress + "\" style=\"width: 100%; border: 0px;\"></iframe>";
	//try to make the asynchronous HTTP Request
	var req;
	try{
		//build XMLHTTP object
		if (window.XMLHttpRequest) {
			req = new XMLHttpRequest();
		}
		else if(window.ActiveXObject){
			req = new ActiveXObject("Microsoft.XMLHTTP");
		}
		else{
			elem.innerHTML = errString;
			return;
		}

		req.onreadystatechange = function() {
			if(req.readyState == 4){
				try{
					if(req.status == 200){
						//remove the querying className
						elem.className = elem.className.replace(" querying","");
						//write the new content
						elem.innerHTML = req.responseText;
					}
					else{
						elem.innerHTML = errString;
						return;
					}
				}
				catch(exc){
					
				}
			}
		}

		//set the Open command and assign the return function
		if(httpAddress.indexOf("?") > 0)
			httpAddress += "&rand="
		else
			httpAddress += "?rand="
		httpAddress += (new Date()).getTime().toString();

		req.open("GET", httpAddress, true);

		//update classname to allow for CSS trickery
		elem.className += " querying";

		//do the send
		if (window.XMLHttpRequest)
			req.send(null);
		else if(window.ActiveXObject)
			req.send();
		else{	//this should never happen
			elem.innerHTML = errString;
			return;
		}
	}
	catch(exc){
		elem.innerHTML = errString;
	}
}
