var moz = false;

function initRequester(arequester) {
  if (arequester != null && arequester.readyState != 0 && arequester.readyState != 4) { 
    arequester.abort(); 
  } 
  arequester = null;    
  try { 
    arequester = new XMLHttpRequest();
    if(arequester.overrideMimeType){        
      arequester.overrideMimeType("text/xml");
    }
    moz = true;
  } catch (error) { 
    try { 
      arequester = new ActiveXObject("Microsoft.XMLHTTP"); 
    } catch (error) { 
      arequester = null; 
    } 
  }
  return arequester;
}

function loadXML(xmlstring){
  if (window.ActiveXObject){
    var xmlobject = new ActiveXObject("Microsoft.XMLDOM");
    xmlobject.async = "false";
    xmlobject.loadXML(xmlstring);
  } else {
    var parser = new DOMParser();
    var xmlobject = parser.parseFromString(xmlstring,"text/xml");
  }
  return xmlobject;
}

function updatePage(xmlstring) {
  if (xmlstring == '') {
    return false;
  }
  var xmlobject = loadXML(xmlstring);
  var root = xmlobject.getElementsByTagName('root')[0];
  var items = root.getElementsByTagName("item");
  for (var i = 0 ; i < items.length ; i++) {
    var item = items[i];
    elId = item.getAttribute("id");
    elValue = item.getAttribute("value");
    elType = item.getAttribute("type");
    switch (elType) {
      case "value":
        document.getElementById(elId).value = elValue;
        break;
      
      case "html":
        document.getElementById(elId).innerHTML = elValue;
        break;
      
      case "select":
        var SelectObject = document.getElementById(elId);
        if (elValue == 0) {
          SelectObject.selectedIndex = 0;
        } else { 
          for(index = 0; index < SelectObject.length; index++) {
            if (SelectObject[index].value == elValue) {
              SelectObject.selectedIndex = index;
            }
          }
        }
        
      default:
        // No valid element type
        break;
    }
  }
}

var updateRequest = null;

function doUpdateRequest(query) {
  updateRequest = initRequester(updateRequest);
  updateRequest.open("POST", "ajax.php", true);
  updateRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  updateRequest.onreadystatechange = function() {
   if (updateRequest.readyState == 4) {
     updatePage(updateRequest.responseText);
   }
  }
  updateRequest.send(query);
  return '';
} 
  
function setInnerText(aObj, aVal){  
  if (document.all) {
    aObj.innerText = aVal; 
  } else {
    aObj.textContent = aVal; 
  }
}