var xmlreqs = new Array();

function CXMLReq(type, xmlhttp, obj) { this.type = type; this.xmlhttp = xmlhttp; this.obj = obj; }

function replicateStyle(tre) {
  var itr;
  for (itr = 0; itr < tre.children.length; itr++) {
    tre.children[itr].className=tre.className;
  }
}

function OnChange(url, ddList) {
  var xmlhttp = CreateXHTMLHttp();
  
  xmlhttp.open("GET", url, true);
  xmlhttp.onreadystatechange = xmlhttp_response;
  xmlhttp.send(null);
  
  var xmlreq = new CXMLReq('combo', xmlhttp, ddList); 
  xmlreqs.push(xmlreq);
}

function GetContent(url, objDiv) {
  SetContent('Loading...', objDiv);
  
  var xmlhttp = CreateXHTMLHttp();


  xmlhttp.open("POST", url, true);
  xmlhttp.onreadystatechange = xmlhttp_response;

  xmlhttp.send(0);
  
  var xmlreq = new CXMLReq('div', xmlhttp, objDiv); 
  xmlreqs.push(xmlreq);
}

function  xmlhttp_response() {
    for (var i=0; i < xmlreqs.length; i++) { 
        if (xmlreqs[i].xmlhttp.readyState == 4) {
            SetContent(xmlreqs[i].xmlhttp.responseText, xmlreqs[i].obj);

            xmlreqs.splice(i,1);
            i--;
        }
    }
}

function SetContent(txt, objDiv) {
  objDiv.innerHTML = txt;
}

function RefreshCombo(xmlText, ddList) {
  xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
  xmlDoc.async = false;
  xmlDoc.loadXML(xmlText);
  root = xmlDoc.documentElement;
  var xRows = xmlDoc.getElementsByTagName("item");
  
  if (ddList.options != null) {
    ddList.options.length = 0;
  } else {
    ddList.options = new Array();
  }
  
  for (i = 0; i < xRows.length; i++) {
    var txt = xRows[i].attributes.getNamedItem("text").text;
    var val = xRows[i].attributes.getNamedItem("value").text;
    var opt = new Option(txt, val, false, false);
    ddList.options[i] = opt;    
  }
  
  if (ddList.options != null && ddList.options.length > 0) {
    ddList.selectedIndex = 0;
  }
}


function CreateXHTMLHttp() {
  var xmlhttp=false;
  
  try {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
    try {
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (E) {
      xmlhttp = false;
    }
  }
  //return;
  /*@cc_on @*/
  /*@if (@_jscript_version >= 5)
  // JScript gives us Conditional compilation, we can cope with old IE versions.
  // and security blocked creation of the objects.
  try {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
    try {
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (E) {
      xmlhttp = false;
    }
  }
  @end @*/

  if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  	try {
  		xmlhttp = new XMLHttpRequest();
  	} catch (e) {
  		xmlhttp=false;
  	}
  }
  if (!xmlhttp && window.createRequest) {
  	try {
  		xmlhttp = window.createRequest();
  	} catch (e) {
  		xmlhttp=false;
  	}
  }
  
  return xmlhttp;
}

function returnObjById( id )
{
    if (document.getElementById)
        var returnVar = document.getElementById(id);
    else if (document.all)
        var returnVar = document.all[id];
    else if (document.layers)
        var returnVar = document.layers[id];
    return returnVar;
}