var g_XmlHttp, g_objCmbDestino;

function CrearXmlHttp() {
	try	{
		g_XmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); }
	catch(e) {
		try	{
			g_XmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } 
		catch(oc) {
			g_XmlHttp = null;	} }
	if(!g_XmlHttp && typeof XMLHttpRequest != "undefined") g_XmlHttp = new XMLHttpRequest(); }

function HandleOnChangeCmb(){
	var objCmbTrigger = arguments[0];
	var hfldTriggerSelIndex = document.getElementById(arguments[1]);
	g_objCmbDestino = document.getElementById(arguments[2]);
	var hfldDestinoSelIndex = document.getElementById(arguments[3]);
	var strURLBase = arguments[4];
	var errNoDestino = false, errNoTrigger = false;
	try {
		hfldTriggerSelIndex.value = objCmbTrigger.selectedIndex; }
		catch (e) { if(e != "") errNoTrigger = true; }
	if(!errNoTrigger) {
		var strValorTrigger = objCmbTrigger.options[objCmbTrigger.selectedIndex].value;
		var strURL = strURLBase + "?paramremote=" + encodeURIComponent(strValorTrigger); }
	try {
		hfldDestinoSelIndex.value = 0; }
		catch(e) { if(e != "") errNoDestino = true; }
	if(!errNoDestino && !errNoTrigger){
		CrearXmlHttp();
		if(g_XmlHttp) {
			g_XmlHttp.onreadystatechange = HandleRespuesta;
			g_XmlHttp.open("GET", strURL,  true);
			g_XmlHttp.send(null); }	}
	if(errNoTrigger || errNoDestino) entregaPosta();}

function HandleRespuesta() {
	if(g_XmlHttp.readyState == 4)	{
		if(g_XmlHttp.status == 200) {		
			BorraYLlenaCmb(g_XmlHttp.responseXML.documentElement);
		} else {
			alert("Problema recuperando los datos del servidor." );	} } }
			
function BorraYLlenaCmb(nodoPrincipal) {
	var intOptStart, intIter, nodoChild, strValorID, strValorTexto, objItemOpcion;
	intOptStart = g_objCmbDestino.options.length - 1;
	
	for(intIter = intOptStart; intIter > -1;intIter--) {
	g_objCmbDestino.options[intIter] = null; }
	
	
	g_objCmbDestino.options[g_objCmbDestino.length] = new Option(" - Elija una opci\ón - ", "",  false, false);
	
	nodoChild = nodoPrincipal.getElementsByTagName("nodoHijo");
		for (intIter = 0; intIter < nodoChild.length; intIter++)	{
   		strValorID = ObtenId(nodoChild[intIter]);
		strValorTexto = unescape(ObtenTexto(nodoChild[intIter]));
		strValorTexto = strValorTexto.replace(/\+/g, " ");
		objItemOpcion = new Option(strValorTexto, strValorID,  false, false);
		g_objCmbDestino.options[g_objCmbDestino.length] = objItemOpcion; }
	entregaPosta();
	}

function ObtenTexto (node) {
	return (node.textContent || node.innerText || node.text) }
	
function ObtenId(node){
	return node.attributes.getNamedItem("id").value; }

function entregaPosta(){
	if(g_semaforo > 0){ director(g_semaforo + 1) } }