/** general ajax functions: */
function createxmlhttp() {
	var xmlhttp=false;
	/*@cc_on @*/
	/*@if (@_jscript_version >= 5)
	// JScript gives us Conditional compilation, we can cope with old IE versions.
	// and security blocked creation of the objects.
	 try {
	  xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	 } catch (e) {
	  try {
	   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	  } catch (E) {
	   xmlhttp = false;
	  }
	 }
	@end @*/
	if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
		if (window.XMLHttpRequest) {
			  // If IE7, Mozilla, Safari, and so on: Use native object.
			
			xmlhttp = new XMLHttpRequest();
			}
	}
	else
	{
	  if (window.ActiveXObject) {
	     // ...otherwise, use the ActiveX control for IE5.x and IE6.
		  //xmlhttp = new ActiveXObject('MSXML2.XMLHTTP.3.0');
		  xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	  }
	}
	

	return xmlhttp;
}

function processXML(uri,func) {
	var xmlhttp = createxmlhttp();
	if (uri.indexOf('?')==-1) uri+='?dummy';
	/* use randomizer to ensure we always get new content. fools MSIE. */
	xmlhttp.open("GET", uri+'&'+(Math.floor(Math.random()*1000000)),true);
	xmlhttp.onreadystatechange=function() {
		if (xmlhttp.readyState==4) {
			clearTimeout(xmlHttpTimeout); 
			eval(func);
			hideLoadingImage();
		}
		else
		{
			showLoadingImage();
		}
	}
	var xmlHttpTimeout=setTimeout(ajaxTimeout,2000000);
	function ajaxTimeout(){
		xmlhttp.abort();
	}
	xmlhttp.send(null)			
}

