var isIE = false;
var req;
var _targetDiv;
var _allLower;
function loadXMLDoc(url, targetDiv, allLower) {
_targetDiv = targetDiv;
_allLower  = allLower;
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
req.onreadystatechange = processReqChanged;
req.open("GET", url, true);
req.send(null);} else if (window.ActiveXObject) {
isIE = true;
req = new ActiveXObject("Microsoft.XMLHTTP");
if (req) {
req.onreadystatechange = processReqChanged;
req.open("GET", url, true);
req.send();}}}
function loadXMLDoc(url, targetDiv, allLower, callbackfunc) {
_targetDiv = targetDiv;
_allLower  = allLower;
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
req.onreadystatechange = function() { processReqChanged(callbackfunc); }
req.open("GET", url, true);
req.send(null);} else if (window.ActiveXObject) {
isIE = true;
req = new ActiveXObject("Microsoft.XMLHTTP");
if (req) {
req.onreadystatechange = function() { processReqChanged(callbackfunc); }
req.open("GET", url, true);
req.send();}}}
function makeAjaxRequest(url, callbackfunc) {
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
var callback = function(){ callbackfunc(req); }
req.onreadystatechange = callback;
req.open("GET", url, true);
req.send(null);} else if (window.ActiveXObject) {
isIE = true;
req = new ActiveXObject("Microsoft.XMLHTTP");
if (req) {
var callback = function(){ callbackfunc(req); }
req.onreadystatechange = callback;
req.open("GET", url, true);
req.send();}}}
function processReqChanged() {
if (req.readyState == 4) {
if (req.status == 200) {
fillDiv();} else {
alert("There was a problem retrieving the XML data:\n"+
req.statusText);}}}
function processReqChanged(callback) {
if (req.readyState == 4) {
if (req.status == 200) {
fillDiv();
if(callback)
callback();} else {
alert("There was a problem retrieving the XML data:\n"+
req.statusText);}}}
function loadDoc(evt) {
evt = (evt) ? evt : ((window.event) ? window.event : null);
if (evt) {
var elem = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
if (elem) {
try {
if (elem.selectedIndex > 0) {
loadXMLDoc(elem.options[elem.selectedIndex].value);}}
catch(e) {
var msg = (typeof e == "string") ? e : ((e.message) ? e.message : "Unknown Error");
alert("Unable to get XML data:\n"+msg);
return;}}}}
function getElementTextNS(prefix, local, parentElem, index) {
var result = "";
if (prefix && isIE) {
result = parentElem.getElementsByTagName(prefix+":"+local)[index];} else {
result = parentElem.getElementsByTagName(local)[index];}
if (result) {
if (result.childNodes.length > 1) {
return result.childNodes[1].nodeValue;} else {
return result.firstChild.nodeValue;}} else {
return "n/a";}}
function fillDiv() {
var root = req.responseXML.documentElement;
if(root.textContent)
var data = root.textContent;
else
var data = root.parentNode.text;
document.getElementById(_targetDiv).innerHTML = (_allLower ? data.toLowerCase() : data);}
function clearTopicList() {
var select = document.getElementById("topics");
while (select.length > 0) {
select.remove(0);}}
function appendToSelect(select, value, content) {
var opt;
opt = document.createElement("option");
opt.value = value;
opt.appendChild(content);
select.appendChild(opt);}
function buildTopicList() {
var select = document.getElementById("topics");
var items = req.responseXML.getElementsByTagName("item");
for (var i = 0; i < items.length; i++) {
appendToSelect(select, i,
document.createTextNode(getElementTextNS("", "title", items[i], 0)));}
document.getElementById("details").innerHTML = "";}
function showDetail(evt) {
evt = (evt) ? evt : ((window.event) ? window.event : null);
var item, content, div;
if (evt) {
var select = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
if (select && select.options.length > 1) {
item = req.responseXML.getElementsByTagName("item")[select.value];
content = getElementTextNS("content", "encoded", item, 0);
div = document.getElementById("details");
div.innerHTML = "";
div.innerHTML = content;}}}
