// ------------------------------------
// Funciones Genericas (Inicio)
// Funciones para Ajax
function http_request() {
	try {
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try {
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (E) {
			xmlhttp = false;
		}
	}
	if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
		xmlhttp = new XMLHttpRequest();
	}
	return xmlhttp;
}
// Funciones Genericas (Fin)


// ------------------------------------
// Expandir (Inicio)
// -------------- Arbol menos y arbol mas --------------
function arbolMas(fila){
	enlace=getCampo('a'+fila);
	enlace.href='javascript:arbolMenos(\''+fila+'\')';
	enlace.innerHTML='<img src="images/ico_supri.gif" border=0 />';
	//Expandir filas
	pos=0;
	var sw=true;
	while(sw){
		try{
			getCampo('f'+fila+'_'+pos).style.display='';
			pos++;
		}catch(ex){
			sw=false;
		}
	}
}

function arbolMenos(fila){	
	enlace=getCampo('a'+fila);
	enlace.href='javascript:arbolMas(\''+fila+'\')';
	enlace.innerHTML='<img src="images/ico_expan.gif" border=0 />';
	//Expandir filas
	pos=0;
	var sw=true;
	while(sw){
		try{
			getCampo('f'+fila+'_'+pos).style.display='none';
			pos++;
		}catch(ex){
			sw=false;
		}
	}
	/*getCampo('aTodos').innerHTML="Expandir Todos";
	getCampo('aTodos').href="javascript:todosMas()";*/
}

// --- Todos (Listado de datos)
function todosMas(){ // Expandor todos
	var sw=true;
	var f=1;
	var arbolDpto = false;	
	try{
		enlace = getCampo("aDep0"); //Existe arbol de nivel departamental
		textoNiv3Menos('0');
		arbolDpto=true;
	}catch(e){
		arbolDpto=false;
	}
	while(sw){
		try{
			enlace=getCampo('a'+f);		
			arbolMas(f);
			if(arbolDpto){ textoNiv3Menos(f); }
			f++;
		}catch(e){
			sw=false;
		}
	}
	getCampo('aTodos').innerHTML="Contraer Todos";
	getCampo('aTodos').href="javascript:todosMenos()";
}

function todosMenos(){ // Contraer todos
	var sw=true;
	var f=1;
	var arbolDpto = false;	
	try{
		enlace = getCampo("aDep0"); //Existe arbol de nivel departamental
		textoNiv3Mas('0');
		arbolDpto=true;
	}catch(e){
		arbolDpto=false;
	}
	while(sw){
		try{
			enlace=getCampo('a'+f);
			arbolMenos(f);
			if(arbolDpto){ textoNiv3Mas(f); }
			f++;			
		}catch(e){
			sw=false;
		}
	}
	getCampo('aTodos').innerHTML="Expandir Todos";
	getCampo('aTodos').href="javascript:todosMas()";
}

function arbolMenosNiv3(num){
	var f = parseInt(num);
	var sw = true;
	var enlace;
	f++;
	while(sw){
		try{
			enlace = getCampo("aDep"+f); // Enlace de Dpto
			if(enlace==null){
				try{
					enlace = getCampo("a"+f); // Enlace de Prov
					arbolMenos(f);
					f++;					
				}catch(e){
					sw = false;
				}
			}else{
				arbolMenos(f);
				sw = false				
				f++;
			}
		// en caso de existir se llego al final			
		}catch(e){			
		}
	}
	textoNiv3Mas(num);
}

function arbolMasNiv3(num){
	var f = parseInt(num);
	var sw = true;
	var enlace;
	f++;
	while(sw){
		try{
			enlace = getCampo("aDep"+f); // Enlace de Dpto
			if(enlace==null){
				try{
					enlace = getCampo("a"+f); // Enlace de Prov
					arbolMas(f);
					f++;					
				}catch(e){
					sw = false;
				}
			}else{
				arbolMas(f);
				sw = false				
				f++;
			}
		// en caso de existir se llego al final			
		}catch(e){			
		}
	}
	textoNiv3Menos(num);
}

function textoNiv3Mas(fila){
	try{
		enlace = getCampo("aDep"+fila);
		enlace.href='javascript:arbolMasNiv3(\''+fila+'\')';
		enlace.innerHTML='<img src="images/ico_expan.gif" border=0 />';
	}catch(e){}
}

function textoNiv3Menos(fila){
	try{
		enlace = getCampo("aDep"+fila);
		enlace.href='javascript:arbolMenosNiv3(\''+fila+'\')';
		enlace.innerHTML='<img src="images/ico_supri.gif" border=0 />';
	}catch(e){/*alert("Error en menos");*/}
}

// ---- Contraer y Expandir variables ----
// Variables a seleccionar, listado de checks
function variableMas(fila){	
	enlace=getCampo('aCol'+fila);
	enlace.href='javascript:variableMenos(\''+fila+'\')';
	enlace.innerHTML='<img src="images/ico_supri.gif" border=0 />';
	//Expandir filas
	pos=0;
	var sw=true;
	while(sw){
		try{
			getCampo('var'+fila+'_'+pos).style.display='';
			pos++;
		}catch(ex){
			sw=false;
		}
	}
}

function variableMenos(fila){
	enlace=getCampo('aCol'+fila);
	enlace.href='javascript:variableMas(\''+fila+'\')';
	enlace.innerHTML='<img src="images/ico_expan.gif" border=0 />';
	//Expandir filas
	pos=0;
	var sw=true;
	while(sw){
		try{
			getCampo('var'+fila+'_'+pos).style.display='none';
			pos++;
		}catch(ex){
			sw=false;
		}
	}
}

// Forzar Estado de etiqueta

function estadoArbolMas(){
	getCampo('aTodos').innerHTML="Contraer Todos";
	getCampo('aTodos').href="javascript:todosMenos()";
}


function getCampo(id){
	return document.getElementById(id);
}

// Expandir (Fin)

// ------------------------------------
function clickDpto(cmb){
	if(cmb.value=='00'){
		limpiarCombo('cmbProv');
		limpiarCombo('cmbDist');
	}else{
		buscarUbigeo("prov",cmb.value);
		limpiarCombo('cmbDist');
	}
}

function clickProv(cmb){
	if(cmb.value=='00'){
		limpiarCombo('cmbDist');		
		}else{
			buscarUbigeo("dist",cmb.value);
		}
	
}

// Cargar Ubigeos (inicio)
function buscarUbigeo(alcance,u){
	var arr=new Array();
	var n=0;
	if(alcance=="prov"){
		for(var i=1;i<P.length;i++){
			if(MID(P[i],0,2)==u){
				arr[n]=P[i];
				n++;
			}
		}
	}else if(alcance=="dist"){
		for(var i=1;i<D.length;i++){
			if(MID(D[i],0,4)==u){
				arr[n]=D[i];
				n++;
			}
		}
	}else if(alcance=='dpto'){
		for(var i=1;i<De.length;i++){
				arr[n]=De[i];
				n++;
		}
	}
	cargarCombo(arr,u);
}

function cargarCombo(arr,ubigeo){
	var combo;
	switch(ubigeo.length){
		case 0: combo = document.getElementById('cmbDpto'); break;
		case 2: combo = document.getElementById('cmbProv'); break;
		case 4: combo = document.getElementById('cmbDist'); break;
	}
	combo.options.length=0;
	//combo.options[0]=new Option("Seleccione ...","-1");
	combo.options[0]=new Option("TODOS","00");	
	for(var i=0;i<arr.length;i++){
		codNom = arr[i].split("&");
		codigo=codNom[0];
		varNombre=codNom[1];
		combo.options[i+1] = new Option(codigo + ' ' +varNombre,codigo); // texto, valor
	}
}

function limpiarCombo(id){
	var combo;
	combo = document.getElementById(id);
	combo.options.length=0;
	//combo.options[0]=new Option("Seleccione ...","-1");	
	combo.options[0]=new Option("TODOS","00");	
}

// Fin

// Configuracion de Fecha
function clickAnio(cmb){
	var arrCad=Array("ENERO","FEBRERO","MARZO","ABRIL","MAYO","JUNIO","JULIO","AGOSTO","SEPTIEMBRE","OCTUBRE","NOVIEMBRE","DICIEMBRE");
	var finPos=0;
	if(cmb.value==anioFin){
		finPos=mesFin;
	}
	else{
		finPos=12;
	}
	combo = document.getElementById("cmbMes");
	//limpiarCombo("cmbMes");
	combo.options.length=0;
	combo.options[0]=new Option("Seleccione ...","-1");	
	for(var i=0;i<finPos;i++){
		combo.options[i+1] = new Option(arrCad[i],(i+1)); // texto, valor
	}
}

// Validar campos necesarios
function validacion(){
	if(getCampo('cmbAnio').value=='-1' || getCampo('cmbMes').value=='-1'){
		return false;
	}else{
		return true;
	}
}

function emergentePagos(parametro){
		if(parametro==''){
			alert("A?n no se realiza b?squeda.");
		}else{
			var url = "puenteCobertura.php?"+parametro+"&emergente=ok";
			window.open(url,"Cronograma","status=1,scrollbars=1,resizable=1");
		}
}


// Visualizaci?n de Mapa
function verMapa(param){
	if(param==""){
		
	}else{
		mapaServ(param+"&mapa=ok");
	}
}


function mapaServ(param){
	ajax=http_request();	
	var valores;
	url="puenteCobertura.php";
	valores=param;
	ajax.open ('POST', url, true);
    ajax.onreadystatechange = function() {
         if (ajax.readyState==1) {
		 	getCampo("divMapa").innerHTML="Cargando ...";
         }
         else if (ajax.readyState==4){
            if(ajax.status==200){
					presentacionMapa(ajax.responseText);
            }
            else if(ajax.status==404){
				getCampo("divMapa").innerHTML="Servicio no disponible temporalmente.";
            }
            else{
				getCampo("divMapa").innerHTML="Datos no disponibles temporalmente.";
            }
        }
    }
    ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    ajax.send(valores);
   return;
}

function presentacionMapa(tabla){
	var cad="";
	cad+="<table bgcolor='#E47171'><tr bgColor='#FFFFFF'><td>"
	cad+="<table bgcolor='#FFFFFF' >";
	cad+="<tr bgColor='#FFFFFF'><td align=right><a title='Cerrar Mapa' href=\"javascript:cerrarMapa()\" >[Cerrar]</a></td></tr>";
	cad+="<tr bgColor='#FFFFFF'><td>"+tabla+"</td></tr>";
	cad+="</table>";
	cad+="</td></tr></table>";
	mostrarMapa();
	getCampo("divMapa").innerHTML=cad;
}

function cerrarMapa(){
	getCampo("divMapa").style.display="none";
}

function mostrarMapa(){
	var x = (screen.width - 306)/2;
	getCampo("divMapa").style.left = x;
	getCampo("divMapa").style.display="";
}

var globalParam="";

function inicio(){
	buscarUbigeo('dpto','');
}

function consultar(){
	var nombre;
	var param;
	var apPaterno;
	var apMaterno;
	var opc;
	ccdd=right(getCampo('cmbDpto').value,2);
	ccpp=right(getCampo('cmbProv').value,2);
	ccdi=right(getCampo('cmbDist').value,2);
	opc=getCampo('cmbHogar').value;
	nombre=getCampo('nombre').value;
	apPaterno=getCampo('apPaterno').value;
	apMaterno=getCampo('apMaterno').value;
	var paramFiltro="";
	if(opc=="reciennacido")
		paramFiltro="&confecha="+getCampo('cmbFecha').value+"&rangofecha="+getCampo('cmbFechaRango').value;
	param="command=consultaWebPadron&accion=CONSULTA_NOMBRE&ccdd="+ccdd+"&ccpp="+ccpp+"&ccdi="+ccdi+"&opc="+opc+"&nombre="+escape(nombre)+"&apPaterno="+escape(apPaterno)+"&apMaterno="+escape(apMaterno)+paramFiltro;
	globalParam = param;
	param+="&pag=1";
	cnxServidor(param);
}

function right(cadena, num){
	if(cadena=='00')
		return '';
	else
		return cadena.substring(cadena.length-2,cadena.length);
}

function cnxServidor(param){
	ajax=http_request();	
	var valores;
	contenedor = "divDetalle";
	url="ctrl";
	valores=param;
	ajax.open ('POST', url, true);
    ajax.onreadystatechange = function() {
         if (ajax.readyState==1) {
		 	getCampo(contenedor).innerHTML="Cargando ...";
         }
         else if (ajax.readyState==4){
            if(ajax.status==200){
            		getCampo(contenedor).innerHTML=ajax.responseText;
            }
            else if(ajax.status==404){
				getCampo(contenedor).innerHTML="Servicio no disponible temporalmente.";
            }
            else{
				getCampo(contenedor).innerHTML="Datos no disponibles temporalmente.";
            }
        }
    }
    ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    ajax.send(valores);
   return;
}

function clickPagina(cmb){
	cnxServidor(globalParam+"&pag="+cmb.value);
}

function abrirVentana(cad){
	//window.open(cad);
	window.open(cad , "ventana1" , "width=600,height=700,scrollbars=yes,resizable=yes") 
	
}

function colorFila(elemento,cadColor){
	elemento.style.backgroundColor=cadColor;
	elemento.style.cursor="hand";
}

function txtDescConsulta(cmb){
	var cad="";
	if(cmb.value=="titulares"){
		cad = "Lista de titulares de hogares activos en el programa JUNTOS, puede darse que no hayan recibido a?n ning?n incentivo monetario.";
	}else if(cmb.value=="gestante"){
		cad = "Lista de madres gestantes";
	}else if(cmb.value=="hogar0_5"){
		cad = "Titular del hogar donde se encuentra por lo menos un ni?o en el intervalor de 0 a 5 a?os.";
	}else if(cmb.value=="hogar6_14"){
		cad = "Titular del hogar donde se encuentra por lo menos un ni?o en el intervalor de 6 a 14 a?os.";
	}else if(cmb.value=="reciennacido"){
		cad = "Recien nacidos hasta 11 meses.";
	}else{
		cad = "";
	}
	getCampo("idDescrip").innerHTML=cad;
	// mostrar/ocultar filtro adicional.
	var cadVerOcultar = "";
	if(cmb.value=="reciennacido")
		cadVerOcultar = "";
	else
		cadVerOcultar = "none";
	getCampo("idFiltroNac1").style.display=cadVerOcultar;
	getCampo("idFiltroNac2").style.display=cadVerOcultar;
}

// ---------------------------------
// ------- ver/oculta buscar -------

function verBuscar(num){
	if(num=="1"){
		// ver
		getCampo("aBuscar").href="javascript:verBuscar('0')";
		getCampo("divBuscar").style.display="";
		getCampo("txtBuscar").focus();
	}else{
		//ocultar
		getCampo("aBuscar").href="javascript:verBuscar('1')";
		getCampo("divBuscar").style.display="none";
	}
}

function busquedaUbigeo(){
	//var anio = arrGlobal[getValor('txtProyecto')]['anio'];
	var texto = getCampo("txtBuscar").value;
	var cadRpta = "";
	texto = Trim(texto);	
	if(texto.length==0){
		alert("Ingrese texto a buscar.");
	}
	else if(texto.length<4){
		alert("Ingrese como minimo 4 caracteres");
	}
	else{
		// Busqueda de Departamentos
		var num = 0;
		var arrAuxP;
		var arrAuxD;
		for(var i=1; i<De.length; i++ ){
			arr = De[i].split("&");
			if( buscarCad(arr[1], texto) ){
				num++; 
				cadRpta += "<tr><td height=5></td></tr><tr><td>" + num + ".</td><td>Dpto: </td><td><a href=javascript:rptaBusqueda('"+arr[0]+"') >" + arr[1]+"</a></td></tr>";
			}
			// Buscar en Lista de Provincias
			arrAuxP = obtenerArregloUbiguo(arr[0]);
			for(var j=0; j<arrAuxP.length; j++){
				arr2 = arrAuxP[j].split("&");
				if( buscarCad(arr2[1], texto) ){
					num++;
					cadRpta += "<tr><td height=5></td></tr><tr><td>" + num + ".</td><td>Dpto: </td><td>" + arr[1]+"</td></tr>";
					cadRpta += "<tr><td></td><td>Prov: </td><td><a href=javascript:rptaBusqueda('"+arr2[0]+"') >" + arr2[1]+"</a></td></tr>";
				}
				// Buscar en Lista de Distritos
				arrAuxD = obtenerArregloUbiguo(arr2[0]);
				for(var k=0; k<arrAuxD.length; k++){
					arr3 = arrAuxD[k].split("&");
					if( buscarCad(arr3[1], texto) ){
						num++;
						cadRpta += "<tr><td height=5></td></tr><tr><td>" + num + ".</td><td>Dpto: </td><td>" + arr[1]+"</td></tr>";
						cadRpta += "<tr><td></td><td>Prov: </td><td>" + arr2[1]+"</td></tr>";
						cadRpta += "<tr><td></td><td>Dist: </td><td><a href=javascript:rptaBusqueda('"+arr3[0]+"') >" + arr3[1]+"</a></td></tr>";
					}
				}
			}
		}
		if(num==0)
			getCampo("tdBusqueda").innerHTML= "0 coincidencias con <b>"+texto+"</b>";
		else
			getCampo("tdBusqueda").innerHTML= "<table><tr><td colspan=3 >"+num+" coincidencias con <b>"+texto+"</b></td></tr>"+cadRpta+"</table>";
	}
}

function buscarCad(cadena, busq){
	if(cadena.indexOf(busq.toUpperCase())==-1)
		return false;
	else
		return true;
}

function obtenerArregloUbiguo(codUbigeo){
	var n=0;
	var arr = new Array();
	if(codUbigeo.length==2){
		for(var i=1;i<P.length;i++){
			if(MID(P[i],0,2)==codUbigeo){
				arr[n]=P[i];
				n++;
			}
		}
	}else if(codUbigeo.length==4){
		for(var i=1;i<D.length;i++){
			if(MID(D[i],0,4)==codUbigeo){
				arr[n]=D[i];
				n++;
			}
		}
	}
	return arr;
}

function rptaBusqueda(ubigeo){
	limpiarCombo("cmbProv");
	limpiarCombo("cmbDist");
	seleccionCmbValor("cmbDpto",ubigeo.substring(0,2));
	clickDpto(getCampo("cmbDpto"));
	if(ubigeo.length>=4){
		seleccionCmbValor("cmbProv",ubigeo.substring(0,4));
		clickProv(getCampo("cmbProv"));
	}
	if(ubigeo.length==6){
		seleccionCmbValor("cmbDist",ubigeo.substring(0,6));
	}
}

