     function deshabilitaCombosEstado(){
	var select2	=	document.getElementById("select2");
     select2.value = "0";
	 select2.disabled="disabled";

	var select3	=	document.getElementById("select3");
	select3.value="0";
	select3.disabled="disabled";

	document.getElementById("coloniaDiv").style.visibility = "hidden";	  
	var select4	=	document.getElementById("select4");	  
	select4.value="0";
	select4.disabled="disabled";
	var testFrame = document.getElementById("prodigyMovil"); 
		testFrame.id = "prodigyMovil"; 
		testFrame.src = ""; 
		testFrame.height="1500";
		testFrame.width="630"; 
		testFrame.frameborder="1";  

}
function deshabilitaComboSLocalidad(){

	var select3	=	document.getElementById("select3");
	select3.value="0";
	select3.disabled="disabled";

	document.getElementById("coloniaDiv").style.visibility = "hidden";	  

	var select4	=	document.getElementById("select4");
	select4.value="0";
	select4.disabled="disabled";
	var testFrame = document.getElementById("prodigyMovil"); 
		testFrame.id = "prodigyMovil"; 
		testFrame.src = ""; 
		testFrame.height="1500";
		testFrame.width="630"; 
		testFrame.frameborder="1";
    prodigyMovil();
//    alert("si dime");
}
function deshabilitaCombosGiro(){

	document.getElementById("coloniaDiv").style.visibility = "hidden";	  
	var select3	=	document.getElementById("select3");
	var select4	=	document.getElementById("select4");
	select4.value="0";
    if ( (select3.value*1) == 0 ){
        document.getElementById("coloniaDiv").style.visibility = "hidden";
	    select4.disabled="true";  
    }
	var testFrame = document.getElementById("prodigyMovil"); 
		testFrame.id = "prodigyMovil"; 
		testFrame.src = ""; 
		testFrame.height="1500";
		testFrame.width="630"; 
		testFrame.frameborder="1";
        prodigyMovil();
}
function nuevoAjax()
{ 
	/* Crea el objeto AJAX. Esta funcion es generica para cualquier utilidad de este tipo, por
	lo que se puede copiar tal como esta aqui */
	var xmlhttp=false;
	try
	{
		// Creacion del objeto AJAX para navegadores no IE
		xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch(e)
	{
		try
		{
			// Creacion del objet AJAX para IE
			xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch(E)
		{
			if (!xmlhttp && typeof XMLHttpRequest!='undefined') xmlhttp=new XMLHttpRequest();
		}
	}
	return xmlhttp; 
}

// Declaro los selects que componen el documento HTML. Su atributo ID debe figurar aqui.
var listadoSelects=new Array();
listadoSelects[0]="select1";
listadoSelects[1]="select2";
listadoSelects[2]="select3";
listadoSelects[3]="select4";

function buscarEnArray(array, dato)
{
	// Retorna el indice de la posicion donde se encuentra el elemento en el array o null si no se encuentra
	var x=0;
	while(array[x])
	{
		if(array[x]==dato) return x;
		x++;
	}
	return null;
}

function cargaContenido(idSelectOrigen)
{
	// Obtengo la posicion que ocupa el select que debe ser cargado en el array declarado mas arriba
	var posicionSelectDestino=buscarEnArray(listadoSelects, idSelectOrigen)+1; 
	// Obtengo el select que el usuario modifico
	var selectOrigen=document.getElementById(idSelectOrigen);
	// Obtengo la opcion que el usuario selecciono
	var opcionSeleccionada=selectOrigen.options[selectOrigen.selectedIndex].value;
	// Si el usuario eligio la opcion "Elige", no voy al servidor y pongo los selects siguientes en estado "Selecciona opcion..."
	if(opcionSeleccionada==0)
	{
 		var x=posicionSelectDestino, selectActual=null;
		// Busco todos los selects siguientes al que inicio el evento onChange y les cambio el estado y deshabilito
		while(listadoSelects[x])
		{
			selectActual=document.getElementById(listadoSelects[x]);
			selectActual.length=0;
			
			var nuevaOpcion=document.createElement("option"); 
            nuevaOpcion.value=0; 
            nuevaOpcion.innerHTML="Selecciona Opci&oacute;n...";
			selectActual.appendChild(nuevaOpcion);	selectActual.disabled=true;
			x++;
		}
	}
	// Compruebo que el select modificado no sea el ultimo de la cadena
	else if(idSelectOrigen!=listadoSelects[listadoSelects.length-1])
	{
		// Obtengo el elemento del select que debo cargar
		var idSelectDestino=listadoSelects[posicionSelectDestino];
		var selectDestino=document.getElementById(idSelectDestino);
		// Creo el nuevo objeto AJAX y envio al servidor el ID del select a cargar y la opcion seleccionada del select origen
		var ajax=nuevoAjax();
		ajax.open("POST", "localidades.jsp?select="+idSelectDestino+"&opcion="+opcionSeleccionada, true);
        ajax.setRequestHeader("Content-Type","application/x-javascript; charset:ISO-8859-1"); 
		ajax.onreadystatechange=function() 
		{ 
			if (ajax.readyState==1)
			{
				// Mientras carga elimino la opcion "Selecciona Opcion..." y pongo una que dice "Cargando..."
				selectDestino.length=0;
				var nuevaOpcion=document.createElement("option"); nuevaOpcion.value=0; nuevaOpcion.innerHTML="Cargando...";
				selectDestino.appendChild(nuevaOpcion); selectDestino.disabled=true;	
			}
			if (ajax.readyState==4)
			{                                    
				selectDestino.parentNode.innerHTML=ajax.responseText; 
                prodigyMovil();

			} 
		}
		ajax.send(null);
	}
}	   

function cargaGiros(idSelectOrigen)
{
	// Obtengo la posicion que ocupa el select que debe ser cargado en el array declarado mas arriba
//	var posicionSelectDestinoEstado=buscarEnArray(listadoSelects, idSelectOrigen-1)+1;
//	alert( "posicionSelectDestinoEstado =  " + posicionSelectDestinoEstado );
	var posicionSelectDestino=buscarEnArray(listadoSelects, idSelectOrigen)+1;
//	alert( "posicionSelectDestino =  " + posicionSelectDestino );
//	alert( "idSelectOrigen =  " + idSelectOrigen );
	// Obtengo el select que el usuario modifico			 
	
//	var selectOrigenEstado=document.getElementById("select1");
	
	var selectOrigen=document.getElementById(idSelectOrigen);
	// Obtengo la opcion que el usuario selecciono

//	var opcionSeleccionadaEstado=selectOrigenEstado.options[selectOrigenEstado.selectedIndex].value;	
//	alert( "opcionSeleccionadaEstado =  " + opcionSeleccionadaEstado );

	var opcionSeleccionada=selectOrigen.options[selectOrigen.selectedIndex].value;	
//	alert( "opcionSeleccionada =  " + opcionSeleccionada );

	
	// Si el usuario eligio la opcion "Elige", no voy al servidor y pongo los selects siguientes en estado "Selecciona opcion..."
	if(opcionSeleccionada==0)
	{    
		var x=posicionSelectDestino, selectActual=null;
		// Busco todos los selects siguientes al que inicio el evento onChange y les cambio el estado y deshabilito
		while(listadoSelects[x])
		{
			selectActual=document.getElementById(listadoSelects[x]);
			selectActual.length=0;
			
			var nuevaOpcion=document.createElement("option"); 
            nuevaOpcion.value=0; 
            nuevaOpcion.innerHTML="Selecciona Opci&oacute;n...";
			selectActual.appendChild(nuevaOpcion);	
            selectActual.disabled=true;
			x++;
		}
	}
	// Compruebo que el select modificado no sea el ultimo de la cadena
	else if(idSelectOrigen!=listadoSelects[listadoSelects.length-1])
	{
		// Obtengo el elemento del select que debo cargar
		var idSelectDestino=listadoSelects[posicionSelectDestino];
		var selectDestino=document.getElementById(idSelectDestino);
		// Creo el nuevo objeto AJAX y envio al servidor el ID del select a cargar y la opcion seleccionada del select origen
		var ajax=nuevoAjax();
//		ajax.open("GET", "select_dependientes_3_niveles_proceso_tercero.jsp?select="+idSelectDestino+"&opcionEstado="+opcionSeleccionadaEstado+"&opcion="+opcionSeleccionada, true);
		ajax.open("POST", "despliega_giros.jsp?select="+idSelectDestino+"&opcion="+opcionSeleccionada, true);
        ajax.setRequestHeader("Content-Type","application/x-javascript; charset:ISO-8859-1"); 
		ajax.onreadystatechange=function() 
		{ 
			if (ajax.readyState==1)
			{
				// Mientras carga elimino la opcion "Selecciona Opcion..." y pongo una que dice "Cargando..."
				selectDestino.length=0;
				var nuevaOpcion=document.createElement("option"); nuevaOpcion.value=0; nuevaOpcion.innerHTML="Cargando...";
				selectDestino.appendChild(nuevaOpcion); selectDestino.disabled=true;	
			}
			if (ajax.readyState==4)
			{        
				selectDestino.parentNode.innerHTML=ajax.responseText;
                prodigyMovil();
			} 
		}
		ajax.send(null);
	}
}

function cargaColonia(idSelectOrigen)
{

	var selectOrigenEstado=document.getElementById("select1");
	var selectOrigenLocalidad=document.getElementById("select2");
	var selectOrigenGiro=document.getElementById("select3");
	var selectOrigenColonia=document.getElementById("select4");
	var pintaTabla=document.getElementById("tabla");

	var opcionEstado	=	selectOrigenEstado.options[selectOrigenEstado.selectedIndex].value;	
	var opcionLocalidad	=	selectOrigenLocalidad.options[selectOrigenLocalidad.selectedIndex].value;	
	var opcionGiro		=	selectOrigenGiro.options[selectOrigenGiro.selectedIndex].value;	
	var opcionColonia	=	selectOrigenColonia.options[selectOrigenColonia.selectedIndex].value;	
                           
	// Obtengo la posicion que ocupa el select que debe ser cargado en el array declarado mas arriba
//	var posicionSelectDestinoEstado=buscarEnArray(listadoSelects, idSelectOrigen-1)+1;
//	alert( "posicionSelectDestinoEstado =  " + posicionSelectDestinoEstado );
	var posicionSelectDestino=buscarEnArray(listadoSelects, idSelectOrigen)+1;
//	alert( "posicionSelectDestino =  " + posicionSelectDestino );
//	alert( "idSelectOrigen =  " + idSelectOrigen );
	// Obtengo el select que el usuario modifico			 
	
	//var selectOrigenColonia=document.getElementById("select2");
	
//	var selectOrigen=document.getElementById(idSelectOrigen);
	// Obtengo la opcion que el usuario selecciono

	//var opcionSeleccionada=selectOrigenColonia.options[selectOrigenColonia.selectedIndex].value;	
//	alert( "opcionSeleccionadaEstado =  " + opcionSeleccionadaEstado );

//	var opcionSeleccionada=selectOrigen.options[selectOrigen.selectedIndex].value;	
	//alert( "opcionSeleccionada =  " + opcionSeleccionada );

	
	// Si el usuario eligio la opcion "Elige", no voy al servidor y pongo los selects siguientes en estado "Selecciona opcion..."
	if(opcionLocalidad==0)
	{
		var x=posicionSelectDestino, selectActual=null;
		// Busco todos los selects siguientes al que inicio el evento onChange y les cambio el estado y deshabilito
		while(listadoSelects[x])
		{
			selectActual=document.getElementById(listadoSelects[x]);
			selectActual.length=0;
			
			var nuevaOpcion=document.createElement("option"); nuevaOpcion.value=0; nuevaOpcion.innerHTML="Selecciona Opci&oacute;n...";
			selectActual.appendChild(nuevaOpcion);	selectActual.disabled=true;
			x++;
		}
	}
	// Compruebo que el select modificado no sea el ultimo de la cadena
	else if(idSelectOrigen!=listadoSelects[listadoSelects.length-1])
	{
		// Obtengo el elemento del select que debo cargar
		var idSelectDestino=listadoSelects[posicionSelectDestino];
		var selectDestino=document.getElementById(idSelectDestino);
		// Creo el nuevo objeto AJAX y envio al servidor el ID del select a cargar y la opcion seleccionada del select origen
		var ajax=nuevoAjax();
//		ajax.open("GET", "select_dependientes_3_niveles_proceso_tercero.jsp?select="+idSelectDestino+"&opcionEstado="+opcionSeleccionadaEstado+"&opcion="+opcionSeleccionada, true);
//    alert("opcionEstado = " + opcionEstado );
 //   alert("opcionLocalidad = " +  opcionLocalidad );
  //  alert("opcionGiro = " +  opcionGiro );
   // alert("opcionColonia =  " +  opcionColonia );
//		ajax.open("POST", "despliega_colonias.jsp?select="+idSelectDestino+"&opcion="+opcionSeleccionada, true);
		ajax.open("POST", "despliega_colonias.jsp?select="+idSelectDestino+"&opcionEstado="+ opcionEstado+"&opcionLocalidad="+opcionLocalidad+"&opcionGiro="+opcionGiro, true);
        ajax.setRequestHeader("Content-Type","application/x-javascript; charset:ISO-8859-1"); 
		ajax.onreadystatechange=function() 
		{ 
			if (ajax.readyState==1)
			{
				// Mientras carga elimino la opcion "Selecciona Opcion..." y pongo una que dice "Cargando..."
				selectDestino.length=0;
				var nuevaOpcion=document.createElement("option"); nuevaOpcion.value=0; nuevaOpcion.innerHTML="Cargando...";
				selectDestino.appendChild(nuevaOpcion); selectDestino.disabled=true;	
			}
			if (ajax.readyState==4)
			{                            
        		function reemplaza( cadena ){
        			var cadenaReemplazada   =   "";
                    var cadenaCharAt;    
                    var cadenaCharCodeAt;    
                    var cadenafromCharCode;    
                    var contadorN   =   0;
                    var contadorPorCaracter = 0;
                    var mensaje="";   
                    var letra="";
                    for ( var i = 0; i < cadena.length; i++ ){
                        cadenaCharAt    =    cadena.charAt(i);    
                      	cadenaCharCodeAt = cadenaCharAt.charCodeAt(0);
//                        alert(cadena.charAt(i) + " :::: " + cadenaCharCodeAt ) 

/*                        if ( cadenaCharCodeAt < 200 ){
                               cadenaReemplazada += cadena.charAt(i);
                        }
                        if ( cadenaCharCodeAt == 65535 ){
                            contadorPorCaracter     =   i;
                            cadenaReemplazada += "Ñ";
                       }
*/
                               cadenaReemplazada += cadena.charAt(i);                       
                    }
        			return cadenaReemplazada;		
        		}
                var respoT  =   reemplaza(ajax.responseText);
//                document.write ("buuueno " + respoT)  
                
				selectDestino.parentNode.innerHTML=respoT;
                prodigyMovil();                                                        
               	var select3	=	document.getElementById("select3");
                if ( (select3.value*1) == 0 ){
                    document.getElementById("coloniaDiv").style.visibility = "hidden";
//        	        select4.disabled="true";  
                }else{
    				document.getElementById("coloniaDiv").style.visibility = "visible";	  
                }
			} 
		}
		ajax.send(null);
	}
}

function prodigyMovil()
{           
	var selectOrigenEstado=document.getElementById("select1");
	var selectOrigenLocalidad=document.getElementById("select2");  
	var selectOrigenGiro=document.getElementById("select3");
	var selectOrigenColonia=document.getElementById("select4");
	var pintaTabla=document.getElementById("tabla");

	var opcionEstado	=	selectOrigenEstado.options[selectOrigenEstado.selectedIndex].value;	
	var opcionLocalidad	=	selectOrigenLocalidad.options[selectOrigenLocalidad.selectedIndex].value;	
	var opcionGiro		=	selectOrigenGiro.options[selectOrigenGiro.selectedIndex].value;	
	var opcionColonia	=	selectOrigenColonia.options[selectOrigenColonia.selectedIndex].value;	

//    alert("opcionEstado = " + opcionEstado );
 //   alert("opcionLocalidad = " +  opcionLocalidad );
 //   alert("opcionGiro = " +  opcionGiro );
 //   alert("opcionColonia =  " +  opcionColonia );
    
	var testFrame = document.getElementById("prodigyMovil"); 
		testFrame.id = "prodigyMovil"; 
		testFrame.src = "despliegaProdigyMovil.jsp?select=&opcionEstado="+opcionEstado+"&opcionLocalidad="+opcionLocalidad+"&opcionGiro="+opcionGiro+"&opcionColonia="+opcionColonia; 
		testFrame.height="1500";
		testFrame.width="630"; 
		testFrame.frameborder="1";

//		document.body.appendChild(testFrame); 

/*	var ajax=nuevoAjax();
	ajax.open("POST", "despliegaProdigyMovil.jsp?select=&opcionEstado="+opcionEstado+"&opcionLocalidad="+opcionLocalidad+"&opcionGiro="+opcionGiro+"&opcionColonia="+opcionColonia, true);
	//ajax.open("GET", "despliegaProdigyMovil2.jsp?select=&opcionEstado="+opcionEstado+"&opcionLocalidad="+opcionLocalidad+"&opcionGiro="+opcionGiro+"&opcionColonia="+opcionColonia, true)
		ajax.onreadystatechange=function() 
		{ 
			if (ajax.readyState==1)
			{		 
				document.getElementById(pintaTabla).style.visibility = "visible";
				var testFrame = document.getElementById("iframe"); 
				testFrame.id = "prodigyMovil"; 
				testFrame.src = "despliegaProdigyMovil2.jsp?select=&opcionEstado="+opcionEstado+"&opcionLocalidad="+opcionLocalidad+"&opcionGiro="+opcionGiro+"&opcionColonia="+opcionColonia; 
				testFrame.height="300";
				testFrame.width="200"; 
				testFrame.frameborder="1";
				document.body.appendChild(testFrame); 

//	
//				pintaTabla.disabled=false;	
			}
			if (ajax.readyState==4)
			{
				prodigyMovil.innerHTML=ajax.responseText;
			} 
		}
	ajax.send(null);
*/
}    
