//-------------------------------------------------------------------
//Creacio de un ajax
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;
}
//-------------------------------------------------------------------
function limpiar_select (id_select) {

	return false; // Estaba asi y funcionaba en firefox

	selecttmp = document.getElementById(id_select);
	selecttmp.length=0;

	// Creamos un option nuevo, sin valor
	var nuevaOpcion = document.createElement("option");
	nuevaOpcion.value = 0;
	nuevaOpcion.innerHTML="Seleccione";

	// Le anadimos la opcion al select y lo deshabilitamos
	selecttmp.appendChild(nuevaOpcion);
	selecttmp.disabled=true;
}
//-------------------------------------------------------------------
function cargar_paises (pais_default) {

	//-------------------------------------------------------------------
	// Si el usuario desea indicar
	if (pais_default=="indicar")
		{
		return false;
		}

	//-------------------------------------------------------------------
	// 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", "listar_paises.php?pais=" + pais_default, true);

	ajax.onreadystatechange=function()
		{
		var pais = document.getElementById('pais');
		//-------------------------------------------------------------------
		if (pais && ajax.readyState==1)
			{
			// Elimino todas las opciones del hijo
			pais.length=0;

			// Creamos un elemento nuevo
			var nuevaOpcion=document.createElement("option");
			nuevaOpcion.value=0;
			nuevaOpcion.innerHTML="Cargando...";

			// Agregamos la opcion vacia y lo deshabilitamos
			pais.appendChild(nuevaOpcion);
			pais.disableid_hijod=true;
			}

		//-------------------------------------------------------------------
		// Agrego las opciones que nos regresa el ajax
		if (ajax.readyState==4)
			{
			if(pais.parentNode!=null)
				{
				if (ajax.responseText!=null)
					{
					var respuesta = "";

					respuesta += "<select";
					respuesta += "	name=\"pais\"";
					respuesta += "	id=\"pais\"";
					respuesta += "	onclick=\"mostrar_globito('globo_pais');\"";
					respuesta += "	onchange=\"cargar_estados_de_pais(this.value); mostrar_ocultar_caja_manual(this.value, 'pais_manual'); \"";
					respuesta += "	onBlur=\"ocultar_globito('globo_pais'); \"";
					respuesta += "	onKeyUp=\"if (!document.getElementById('buscar_por_cp').checked) cargar_estados_de_pais(this.value); \"";
					respuesta += "	style=\"width: 225px\"";
					respuesta += ">";
					respuesta += ajax.responseText;
					respuesta += "</select>";

					pais.parentNode.innerHTML = respuesta;
					}
				}
			}
		}

	ajax.send(null);
}
//-------------------------------------------------------------------
function cargar_estados_de_pais (pais) {

	//-------------------------------------------------------------------
	// Si el usuario desea indicar
	if (pais=="indicar")
		{
		return false;
		}

	//-------------------------------------------------------------------
	// Si no se indica ninguno limpiamos
	if (pais==0 || pais=="")
		{
		return false;
		}

	//-------------------------------------------------------------------
	// 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", "listar_estados.php?pais=" + pais, true);

	ajax.onreadystatechange=function()
		{
		var estado = document.getElementById('estado');
		//-------------------------------------------------------------------
		if (estado && ajax.readyState==1)
			{
			// Elimino todas las opciones del hijo
			estado.length=0;

			// Creamos un elemento nuevo
			var nuevaOpcion=document.createElement("option");
			nuevaOpcion.value=0;
			nuevaOpcion.innerHTML="Cargando...";

			// Agregamos la opcion vacia y lo deshabilitamos
			estado.appendChild(nuevaOpcion);
			estado.disableid_hijod=true;
			}

		//-------------------------------------------------------------------
		// Agrego las opciones que nos regresa el ajax
		if (ajax.readyState==4)
			{
			if(estado.parentNode!=null)
				{
				if (ajax.responseText!=null)
					{
					var respuesta = "";

					respuesta += "<select";
					respuesta += "	name=\"estado\"";
					respuesta += "	id=\"estado\"";
					respuesta += "	onclick=\"mostrar_globito('globo_estado');\"";
					respuesta += "	onchange=\"cargar_municipios_de_estado(this.value); mostrar_ocultar_caja_manual(this.value, 'estado_manual'); \"";
					respuesta += "	onBlur=\"ocultar_globito('globo_estado'); \"";
					respuesta += "	onKeyUp=\"if (!document.getElementById('buscar_por_cp').checked) cargar_municipios_de_estado(this.value); \"";
					respuesta += "	style=\"width: 225px\"";
					respuesta += ">";
					respuesta += ajax.responseText;
					respuesta += "</select>";

					estado.parentNode.innerHTML = respuesta;
					}
				}
			}
		}

	ajax.send(null);
}
//-------------------------------------------------------------------
function cargar_municipios_de_estado (estado) {

	//-------------------------------------------------------------------
	// Si el usuario desea indicar
	if (estado=="indicar")
		{
		return false;
		}

	//-------------------------------------------------------------------
	// Si no se indica ninguno limpiamos
	if (estado==0 || estado=="")
		{
		return false;
		}

	//-------------------------------------------------------------------
	// 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", "listar_municipios.php?estado=" + estado, true);

	ajax.onreadystatechange=function()
		{
		var municipio = document.getElementById('municipio');
		//-------------------------------------------------------------------
		if (municipio && ajax.readyState==1)
			{
			// Elimino todas las opciones del hijo
			municipio.length=0;

			// Creamos un elemento nuevo
			var nuevaOpcion=document.createElement("option");
			nuevaOpcion.value=0;
			nuevaOpcion.innerHTML="Cargando...";

			// Agregamos la opcion vacia y lo deshabilitamos
			municipio.appendChild(nuevaOpcion);
			municipio.disableid_hijod=true;
			}

		//-------------------------------------------------------------------
		// Agrego las opciones que nos regresa el ajax
		if (ajax.readyState==4)
			{
			if(municipio.parentNode!=null)
				{
				if (ajax.responseText!=null)
					{
					var respuesta = "";

					respuesta += "<select";
					respuesta += "	name=\"municipio\"";
					respuesta += "	id=\"municipio\"";
					respuesta += "	onclick=\"mostrar_globito('globo_municipio');\"";
					respuesta += "	onchange=\"cargar_localidad_de_municipio(this.value); mostrar_ocultar_caja_manual(this.value, 'municipio_manual');\"";
					respuesta += "	onBlur=\"ocultar_globito('globo_municipio'); \"";
					respuesta += "	onKeyUp=\"if (!document.getElementById('buscar_por_cp').checked) cargar_localidad_de_municipio(this.value); \"";
					respuesta += "	style=\"width: 225px\"";
					respuesta += ">";
					respuesta += ajax.responseText;
					respuesta += "</select>";

					municipio.parentNode.innerHTML = respuesta;
					}
				}
			}
		}

	ajax.send(null);
	}
//-------------------------------------------------------------------
function cargar_localidad_de_municipio (municipio) {

	//-------------------------------------------------------------------
	// Si el usuario desea indicar
	if (municipio=="indicar")
		{
		return false;
		}

	//-------------------------------------------------------------------
	// Si no se indica ninguno limpiamos
	if (municipio==0 || municipio=="")
		{
		return false;
		}

	//-------------------------------------------------------------------
	// 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", "listar_localidades.php?municipio=" + municipio, true);

	ajax.onreadystatechange=function()
		{
		var colonia = document.getElementById('colonia');
		//-------------------------------------------------------------------
		if (colonia && ajax.readyState==1)
			{
			// Elimino todas las opciones del hijo
			colonia.length=0;

			// Creamos un elemento nuevo
			var nuevaOpcion=document.createElement("option");
			nuevaOpcion.value=0;
			nuevaOpcion.innerHTML="Cargando...";

			// Agregamos la opcion vacia y lo deshabilitamos
			colonia.appendChild(nuevaOpcion);
			colonia.disableid_hijod=true;
			}

		//-------------------------------------------------------------------
		// Agrego las opciones que nos regresa el ajax
		if (ajax.readyState==4)
			{
			if(colonia.parentNode!=null)
				{
				if (ajax.responseText!=null)
					{
					var respuesta = "";

					respuesta += "<select";
					respuesta += "	name=\"colonia\"";
					respuesta += "	id=\"colonia\"";
					respuesta += "	onclick=\"mostrar_globito('globo_colonia');\"";
					respuesta += "	onchange=\"mostrar_ocultar_caja_manual(this.value, 'colonia_manual');\"";
					respuesta += "	onBlur=\"ocultar_globito('globo_colonia'); \"";
					respuesta += "	onKeyUp=\"\"";
					respuesta += "	style=\"width: 225px\"";
					respuesta += ">";
					respuesta += ajax.responseText;
					respuesta += "</select>";

					colonia.parentNode.innerHTML = respuesta;
					}
				}
			}
		}

	ajax.send(null);
	}
//-------------------------------------------------------------------
function cargar_todo_desde_cp (codigo_postal) {

	//-------------------------------------------------------------------
	// Si no son 5 caracteres
	if (codigo_postal.length<5)
		return false;

	//-------------------------------------------------------------------
	// Si no se indica ninguno limpiamos
	if (codigo_postal==0 || codigo_postal=="")
		{
		limpiar_select('pais');
		limpiar_select('estado');
		limpiar_select('municipio');
		limpiar_select('colonia');
		return false;
		}

	//-------------------------------------------------------------------
	// Ocultamos las cajas manuales
	mostrar_ocultar_caja_manual('','pais_manual');
	mostrar_ocultar_caja_manual('','estado_manual');
	mostrar_ocultar_caja_manual('','municipio_manual');
	mostrar_ocultar_caja_manual('','colonia_manual');

	//-------------------------------------------------------------------
	// Creo el nuevo objeto AJAX y envio al servidor el ID del select a cargar y la opcion seleccionada del select origen
	var ajax0=nuevoAjax();
	ajax0.open("GET", "listar_cp.php?obtener=pais&codigo_postal=" + codigo_postal, true);

	ajax0.onreadystatechange=function()
		{
		var pais = document.getElementById('pais');
		//-------------------------------------------------------------------
		if (pais && ajax0.readyState==1)
			{
			// Elimino todas las opciones del hijo
			pais.length=0;

			// Creamos un elemento nuevo
			var nuevaOpcion=document.createElement("option");
			nuevaOpcion.value=0;
			nuevaOpcion.innerHTML="Cargando...";

			// Agregamos la opcion vacia y lo deshabilitamos
			pais.appendChild(nuevaOpcion);
			pais.disableid_hijod=true;
			}

		//-------------------------------------------------------------------
		// Agrego las opciones que nos regresa el ajax
		if (ajax0.readyState==4)
			{
			if(pais.parentNode!=null)
				{
				if (ajax0.responseText!=null)
					{
					var respuesta = "";

					respuesta += "<select";
					respuesta += "	name=\"pais\"";
					respuesta += "	id=\"pais\"";
					respuesta += "	onclick=\"mostrar_globito('globo_pais');\"";
					respuesta += "	onchange=\"cargar_estados_de_pais(this.value); mostrar_ocultar_caja_manual(this.value, 'pais_manual');\"";
					respuesta += "	onBlur=\"ocultar_globito('globo_pais'); \"";
					respuesta += "	onKeyUp=\"if (!document.getElementById('buscar_por_cp').checked) cargar_estados_de_pais(this.value); \"";
					respuesta += "	style=\"width: 225px\"";
					respuesta += ">";
					respuesta += ajax0.responseText;
					respuesta += "</select>";

					pais.parentNode.innerHTML = respuesta;
					}
				}
			}
		}

	ajax0.send(null);

	//-------------------------------------------------------------------
	// 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", "listar_cp.php?obtener=estado&codigo_postal=" + codigo_postal, true);

	ajax.onreadystatechange=function()
		{
		var estado = document.getElementById('estado');
		//-------------------------------------------------------------------
		if (estado && ajax.readyState==1)
			{
			// Elimino todas las opciones del hijo
			estado.length=0;

			// Creamos un elemento nuevo
			var nuevaOpcion=document.createElement("option");
			nuevaOpcion.value=0;
			nuevaOpcion.innerHTML="Cargando...";

			// Agregamos la opcion vacia y lo deshabilitamos
			estado.appendChild(nuevaOpcion);
			estado.disableid_hijod=true;
			}

		//-------------------------------------------------------------------
		// Agrego las opciones que nos regresa el ajax
		if (ajax.readyState==4)
			{
			if(estado.parentNode!=null)
				{
				if (ajax.responseText!=null)
					{
					var respuesta = "";

					respuesta += "<select";
					respuesta += "	name=\"estado\"";
					respuesta += "	id=\"estado\"";
					respuesta += "	onclick=\"mostrar_globito('globo_estado');\"";
					respuesta += "	onchange=\"cargar_municipios_de_estado(this.value); mostrar_ocultar_caja_manual(this.value, 'estado_manual');\"";
					respuesta += "	onBlur=\"ocultar_globito('globo_estado'); \"";
					respuesta += "	onKeyUp=\"if (!document.getElementById('buscar_por_cp').checked) cargar_municipios_de_estado(this.value); \"";
					respuesta += "	style=\"width: 225px\"";
					respuesta += ">";
					respuesta += ajax.responseText;
					respuesta += "</select>";

					estado.parentNode.innerHTML = respuesta;
					}
				}
			}
		}

	ajax.send(null);

	//------------------------------------------------------------------------
	// Creo el nuevo objeto AJAX y envio al servidor el ID del select a cargar y la opcion seleccionada del select origen
	var ajax2=nuevoAjax();
	ajax2.open("GET", "listar_cp.php?obtener=municipio&codigo_postal=" + codigo_postal, true);

	ajax2.onreadystatechange=function()
		{
		var municipio = document.getElementById('municipio');
		//-------------------------------------------------------------------
		if (municipio && ajax2.readyState==1)
			{
			// Elimino todas las opciones del hijo
			municipio.length=0;

			// Creamos un elemento nuevo
			var nuevaOpcion=document.createElement("option");
			nuevaOpcion.value=0;
			nuevaOpcion.innerHTML="Cargando...";

			// Agregamos la opcion vacia y lo deshabilitamos
			municipio.appendChild(nuevaOpcion);
			municipio.disableid_hijod=true;
			}

		//-------------------------------------------------------------------
		// Agrego las opciones que nos regresa el ajax
		if (ajax2.readyState==4)
			{
			if(municipio.parentNode!=null)
				{
				if (ajax2.responseText!=null)
					{
					var respuesta = "";

					respuesta += "<select";
					respuesta += "	name=\"municipio\"";
					respuesta += "	id=\"municipio\"";
					respuesta += "	onclick=\"mostrar_globito('globo_municipio');\"";
					respuesta += "	onchange=\"cargar_localidad_de_municipio(this.value); mostrar_ocultar_caja_manual(this.value, 'municipio_manual');\"";
					respuesta += "	onBlur=\"ocultar_globito('globo_municipio'); \"";
					respuesta += "	onKeyUp=\"if (!document.getElementById('buscar_por_cp').checked) cargar_localidad_de_municipio(this.value); \"";
					respuesta += "	style=\"width: 225px\"";
					respuesta += ">";
					respuesta += ajax2.responseText;
					respuesta += "</select>";

					municipio.parentNode.innerHTML = respuesta;
					}
				}
			}
		}

	ajax2.send(null);

	//------------------------------------------------------------------------
	// Creo el nuevo objeto AJAX y envio al servidor el ID del select a cargar y la opcion seleccionada del select origen
	var ajax3=nuevoAjax();
	ajax3.open("GET", "listar_cp.php?obtener=localidad&codigo_postal=" + codigo_postal, true);

	ajax3.onreadystatechange=function()
		{
		var colonia = document.getElementById('colonia');
		//-------------------------------------------------------------------
		if (colonia && ajax3.readyState==1)
			{
			// Elimino todas las opciones del hijo
			colonia.length=0;

			// Creamos un elemento nuevo
			var nuevaOpcion=document.createElement("option");
			nuevaOpcion.value=0;
			nuevaOpcion.innerHTML="Cargando...";

			// Agregamos la opcion vacia y lo deshabilitamos
			colonia.appendChild(nuevaOpcion);
			colonia.disableid_hijod=true;
			}

		//-------------------------------------------------------------------
		// Agrego las opciones que nos regresa el ajax
		if (ajax3.readyState==4)
			{
			if(colonia.parentNode!=null)
				{
				if (ajax3.responseText!=null)
					{
					var respuesta = "";

					respuesta += "<select";
					respuesta += "	name=\"colonia\"";
					respuesta += "	id=\"colonia\"";
					respuesta += "	onclick=\"mostrar_globito('globo_colonia');\"";
					respuesta += "	onchange=\"mostrar_ocultar_caja_manual(this.value, 'colonia_manual');\"";
					respuesta += "	onBlur=\"if (!document.getElementById('buscar_por_cp').checked) ocultar_globito('globo_colonia'); \"";
					respuesta += "	onKeyUp=\"\"";
					respuesta += "	style=\"width: 225px\"";
					respuesta += ">";
					respuesta += ajax3.responseText;
					respuesta += "</select>";

					colonia.parentNode.innerHTML = respuesta;
					}
				}
			}
		}

	ajax3.send(null);
	}
//-------------------------------------------------------------------
