String.prototype.richreplace = function(search, replacement) {
  var tmp = this;
  for(var i = 0; i < search.length; i++) tmp = tmp.replace(new RegExp(search[i], "g"), replacement[i]);
  return(tmp);
}

String.prototype.xsltdecode = function() {
  return(this.richreplace(new Array("&lt;", "&gt;", "&amp;"), new Array("<", ">", "&")));
}

function loadXMLDoc(dname) {
  if(window.XMLHttpRequest) xhttp = new XMLHttpRequest();
  else xhttp = new ActiveXObject("Microsoft.XMLHTTP");
  xhttp.open("GET", dname, false);
  xhttp.send("");
  return(xhttp.responseXML);
}

function displayResult(pos, label) {
  if(typeof(label) == "undefined") {
    var path = document.location.pathname.split("/");
    label = path[path.length - 2];
  }
  var path = "";
  var xml = loadXMLDoc(label + ".xml");
  if(xml == null || xml.prototype == null) {
    path = "/cgi-bin/";
    xml = loadXMLDoc(path + label + ".xml");
  }
  var xsl = loadXMLDoc(path + label + ".xsl");
  if(window.ActiveXObject) document.getElementById(pos).innerHTML = xml.transformNode(xsl);
  else if(document.implementation && document.implementation.createDocument) {
    xsltProcessor = new XSLTProcessor();
    xsltProcessor.importStylesheet(xsl);
    document.getElementById(pos).appendChild(xsltProcessor.transformToFragment(xml, document));
  }
  document.getElementById(pos).innerHTML = document.getElementById(pos).innerHTML.xsltdecode();
}
