var g_XmlHttp, g_objCmbDestino, g_semaforo = 0, g_blnShowID;

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];
	g_blnShowID = arguments[5];
	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, strValor, strTexto, objItemOpcion;
	intOptStart = g_objCmbDestino.options.length - 1;
	for(intIter = intOptStart; intIter > -1;intIter--) {
		g_objCmbDestino.options[intIter] = null;
	}
	nodoChild = nodoPrincipal.getElementsByTagName("nodoHijo");
	if(g_blnShowID == undefined) {
		g_objCmbDestino.options[g_objCmbDestino.length] = new Option(" - Elija una opci\ón - ", "",  false, false);
	}
	for (intIter = 0; intIter < nodoChild.length; intIter++){
   		strTexto = unescape(ObtenTexto(nodoChild[intIter]));
		strTexto = strTexto.replace(/\+/g, " ");
		if(g_blnShowID != undefined) {
			if(g_blnShowID == true) {
				strValor = ObtenValor(nodoChild[intIter]);
			}
		} else {
			strValor = strTexto;
		}
		objItemOpcion = new Option(strTexto, strValor,  false, false);
		g_objCmbDestino.options[g_objCmbDestino.length] = objItemOpcion;
	}
	entregaPosta();
}

function ObtenTexto (node) {
	return (node.textContent || node.innerText || node.text)
}

function ObtenValor (node) {
	return (node.getAttribute("value"))
}

function entregaPosta(){
	if(g_semaforo > 0) director(g_semaforo + 1);
}