function liveUpdaterUri(uri){    return liveUpdater(function() { return uri; });}function addParameter(uri, key, value){	var separator = "?";	if(uri.indexOf("?") >= 0)	    separator = "&";	return uri + separator + key + "=" + escape(value);}function liveUpdater(uriFunc){    var request = false;    var regex = /<(\w+).*?id="(\w+)".*?>((.|\n)*)<\/\1>/;        if (window.XMLHttpRequest) {       	request = new XMLHttpRequest();    }        function update()    {       if(request && request.readyState < 4)            request.abort();                    if(!window.XMLHttpRequest)            request = new ActiveXObject("Microsoft.XMLHTTP");                request.onreadystatechange = processRequestChange;        request.open("GET", addParameter(uriFunc(), "timestamp", (new Date()).getTime().toString()));        request.send(null);        return false;    }     function processRequestChange()   {       if(request.readyState == 4)       {           var results = regex.exec(request.responseText);           if(results) {               document.getElementById(results[2]).innerHTML =results[3];           } else {                 var bodyRegex = /<body>(.*)?<\/body>/;                 var body = bodyRegex.exec(request.responseText);                 if ( body ) {                     document.body.innerHTML = body[1];                 } else {                     document.body.innerHTML = request.responseText;                 }           }       }   }    return update;}function liveSelect(id, uri){	function constructUri()	{		return addParameter(uri, "s", document.getElementById(id).selectedIndex.toString());	}		return liveUpdater(constructUri); }function liveSearch(id, uri){    function constructUri()    {        return addParameter(uri, "s", document.getElementById(id).value);    }        var updater = liveUpdater(constructUri);    var last = "";    var timeout = false;       function update()    {       if (last != document.getElementById(id).value)            updater();    }            function start() {	   if (timeout)	       window.clearTimeout(timeout);	       	   timeout = window.setTimeout(update, 300);    }		if (navigator.userAgent.indexOf("Safari") > 0)		document.getElementById(id).addEventListener("keydown",start,false);    else if (navigator.product == "Gecko")		document.getElementById(id).addEventListener("keypress",start,false);    else		document.getElementById(id).attachEvent("onkeydown",start);}function timedUpdate(uriFunc, milliSeconds){	var updater = liveUpdaterUri(uriFunc);	updater();	var again = "timedUpdate(\""+uriFunc+"\","+milliSeconds+")";	setTimeout(again, milliSeconds);}