document.observe("dom:loaded", function() {
var img = document.createElement("img");
img.id = "loading";
img.src = "loading.gif";
img.style.visibility = "hidden";
$("controls").appendChild(img);
$("lookup").observe("click", doLookup);
doLookup();
});
function doLookup() {
new Ajax.Request("../urban.php",
{
method: "get",
onSuccess: gotResult,
onFailure: ajaxFailure,
onException: ajaxFailure,
parameters: {
"term": $("term").value,
"format": "xml"
}
}
);
$("loading").style.visibility = "visible";
}
function gotResult(ajax) {
$("loading").style.visibility = "hidden";
var root = ajax.responseXML.firstChild;
var error = root.getAttribute("error");
if (error) {
$("result").innerHTML = error;
} else {
var list = document.createElement("ol");
var entries = root.getElementsByTagName("entry");
for (var i = 0; i < entries.length; i++) {
var definition = document.createElement("p");
var example = document.createElement("p")
var permalink = $(document.createElement("p"));
example.className = "example";
var entry = entries[i];
var definitionNode = entry.getElementsByTagName("definition")[0];
definition.innerHTML = definitionNode.firstChild.nodeValue;
var exampleNode = entry.getElementsByTagName("example")[0];
example.innerHTML = exampleNode.firstChild.nodeValue;
var link = $(document.createElement('a'));
link.href = entry.getAttribute('permalink');
link.innerHTML = "permalink";
permalink.appendChild(link);
var li = $(document.createElement('li'));
li.innerHTML = "";
li.appendChild(definition);
li.appendChild(example);
li.appendChild(permalink);
list.appendChild(li);
}
$("result").innerHTML = "";
$("result").appendChild(list);
}
}
// provided Ajax failure code (displays a useful alert when something goes
// wrong with the Ajax request)
function ajaxFailure(ajax, exception) {
alert("Error making Ajax request:" +
"\n\nServer status:\n" + ajax.status + " " + ajax.statusText +
"\n\nServer response text:\n" + ajax.responseText);
if (exception) {
throw exception;
}
}