^ '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);
}'
|