//---------------------------------------------------------------------------------
//						BUSQUEDAS.JS 
//
//		Contiene funciones necesarias para realizar la carga de los datos en la 
//	página a partir de la base de datos.			
//	
//---------------------------------------------------------------------------------

//---------------------------------------------------------------------------------
//LimpiaListas: elimina todas las options de un menu desplegable a partir de su ID
//	option_por_defecto: incluye una option a la select, la tipica 'Todos' o 'Seleccione'
//---------------------------------------------------------------------------------
function LimpiaListas(idCombo, option_por_defecto){
	combo = document.getElementById(idCombo);
	lon = combo.childNodes.length;
	if (combo.childNodes.length > 0){
		for (i = 0; i < lon; i++) {
			combo.removeChild(combo.firstChild);
		}
	}
	if(option_por_defecto){
		opt = document.createElement('option');
        opt.id = 'opt0';
		opt.value = 'opt0';		
		txt = document.createTextNode(option_por_defecto);		
		opt.appendChild(txt);
	    document.getElementById(idCombo).appendChild(opt);
	}
}

//----------------------------------------------------------------------------------
//ListasTematicas: Reliza la petición para recuperar la info relativa a procesos y 
//				fenomenos de la base de datos necesarios para la Búsqueda Temática.
//----------------------------------------------------------------------------------
function ListasTematicas(){
	var proxyUrl='/predecan/listTemas';
	http.open("GET",proxyUrl, true);
	http.setRequestHeader("content-type","application/x-www-form-urlencoded");
	http.onreadystatechange = handleListTemas;
	http.send(null);
}

//Manejador de LISTASTEMATICAS
function handleListTemas() {
    switch (http.readyState){
    	case 1:
    	case 2:
    	case 3:
	 		mostrarCargando();
	 	break;
        case 4:
            xmlRes = http.responseXML;
            var resultados = xmlRes.getElementsByTagName("List")[0];                      
            LimpiaListas('selProces', 'Todos');
            var numProcesos = resultados.getElementsByTagName("Proceso").length;
		    	   
            for (i=0; i<numProcesos; i++){
            	var proceso = resultados.getElementsByTagName("Proceso").item(i);
		        var nombre = proceso.getElementsByTagName("nombre").item(0).firstChild.data;
		        var id = proceso.getElementsByTagName("id").item(0).firstChild.data;	
		       	opt = document.createElement('option');
		       	opt.id = "proces" + id;
				opt.value = "proces" + id;				
				txt = document.createTextNode(nombre + ' ');
				opt.appendChild(txt);
				document.getElementById('selProces').appendChild(opt);		          
            } 
            
            ocultarCargando();
            
        break;
        case 0:
            Ext.MessageBox.alert('Error','En la conexión con la BD');
        break;                
    }
}

//----------------------------------------------------------------------------------
// SeleccionarTemas: Petición para recuperar a partir del proceso seleccionado la 
//					lista de temas para realizar las búsquedas.					
//----------------------------------------------------------------------------------
function SeleccionarTemas(){
	var indProces = document.getElementById('selProces').selectedIndex;	
	
	if (indProces > 0){
		var valProces = document.getElementById('selProces').options[indProces].value;
		var idProces = valProces.substr(6);
		var proxyUrl='/predecan/listTemas';	
		http.open("GET",proxyUrl+"?idproces="+idProces, true);
		http.setRequestHeader("content-type","application/x-www-form-urlencoded");
		http.onreadystatechange = handleTemas;
		http.send(null);
	}
	else{
		document.getElementById("divInforme").style.display = "none";
		document.getElementById("divInformeTitulo").style.display = "none";
	}
}

//Manejador de SELECCIONARTEMAS
function handleTemas(){
	 switch (http.readyState){	
	 	case 1:
    	case 2:
    	case 3:
	 		mostrarCargando();
	 	break;
        case 4:
            xmlRes = http.responseXML;           
            var resultados = xmlRes.getElementsByTagName("List")[0];
            
            div = document.createElement("div");
			div.id = "divInforme";
			div.className = "divInforme";
			
            nodo = document.getElementById("divInforme").parentNode;
			nodo.replaceChild(div,document.getElementById("divInforme"));

			var tabla = document.createElement("TABLE");			
			tabla.id = "tablaTemas";
			tabla.cellSpacing = 4;
			tabla.setAttribute("width", "100%");
			var tbody = document.createElement("TBODY");
        	var numTemas = xmlRes.getElementsByTagName("Tema").length;
            for (i=0; i<numTemas;i++) {
				var tema = resultados.getElementsByTagName("Tema").item(i);
		        var nombre = tema.getElementsByTagName("nombre").item(0).firstChild.data;
		        var id = tema.getElementsByTagName("id").item(0).firstChild.data;
		        if (tema.getElementsByTagName("expresion").item(0).firstChild != null){
			        var expresion = tema.getElementsByTagName("expresion").item(0).firstChild.data;		        
		        }else{
		        	var expresion = "";
		        }		        
		        if (tema.getElementsByTagName("fecha").item(0).firstChild != null){		        	
		        	var fecha = tema.getElementsByTagName("fecha").item(0).firstChild.data;		        	
		        }else{
		        	var fecha = false;
		        }
		         if (tema.getElementsByTagName("area").item(0).firstChild != null){		        	
		        	var area = tema.getElementsByTagName("area").item(0).firstChild.data;		        	
		        }else{
		        	var area = false;
		        }		        
		        var tr_cab = document.createElement("TR");		        
				var txt_cab = document.createTextNode(nombre);								
				var td_cab = document.createElement("TD");
				var td_chk = document.createElement("TD");
							
				td_cab.id = 'tema'+id;
				td_cab.className = "itemBuscador";				
				td_cab.onclick = clickinfo(td_cab.id,"tablaTemas");												
				
				var chkbox = document.createElement("INPUT");
				chkbox.id = 'chk'+id;
				chkbox.name = 'chktem';
				chkbox.type="checkbox";	
				chkbox.setAttribute((document.all ? 'className' : 'class'), "checkbox");											
				td_cab.onclick = clickinfo3(chkbox.id);
				
				var input = document.createElement("INPUT");
				input.id = 'temex'+id;
				input.type = "hidden";
				input.value = expresion;
				
				
				var input_fecha = document.createElement("INPUT");
				input_fecha.id = 'temexdate' + id;
				input_fecha.type = "hidden";
				input_fecha.value = fecha; 

				var input_area = document.createElement("INPUT");
				input_area.id = 'temexarea' + id;
				input_area.type = "hidden";
				input_area.value = area; 
				
				td_chk.appendChild(chkbox);
				//td_cab.appendChild(chkbox);
				td_cab.appendChild(input);
				td_cab.appendChild(input_fecha);
				td_cab.appendChild(input_area);
				td_cab.appendChild(txt_cab);
				tr_cab.appendChild(td_chk);
				tr_cab.appendChild(td_cab);
				tbody.appendChild(tr_cab);
		    }
		    tabla.appendChild(tbody);
			document.getElementById("divInforme").appendChild(tabla);
			document.getElementById("divInforme").style.display = "block";
			document.getElementById("divInformeTitulo").style.display = "block";
			
			ocultarCargando();
         break;
        case 0:
            Ext.MessageBox.alert('Error','En la conexión con la BD');
        break;                
    }
}

//----------------------------------------------------------------------------------
// clickinfo: selecciona un unico elemento (id) de la tabla (tabla) modificando su
//			  css className.
//----------------------------------------------------------------------------------			
function clickinfo(id,tabla){
return function() {
	var table = document.getElementById(tabla);	
	var num = table.getElementsByTagName("TD");
	var asistida = ""; //para añadir la tabulacion de la busqueda asistida, la tematica no tiene
	if (id.indexOf("preg")!=-1)
		asistida = " itemBuscadorAsistida"
	if (num.length > 0){
		for (i=0; i < num.length; i++){
			var identify = table.getElementsByTagName("TD").item(i).id;
			if (id == identify){
				if (document.getElementById(id).className == "itemBuscador" + asistida){
					document.getElementById(id).className = "itemBuscadorOver" + asistida;
				}else{
					document.getElementById(id).className = "itemBuscador" + asistida;
				}
			}else{
				if (document.getElementById(identify).className == "itemBuscadorOver" + asistida){
					document.getElementById(identify).className = "itemBuscador" + asistida;
				}
			}
		}		
	}
};
}

function clickinfo3(id){
return function() {
	if (document.getElementById(id).checked == true){
		document.getElementById(id).checked = false;
	}else{
		document.getElementById(id).checked = true;
	}
};
}

function clickinfo2(id){
return function() {	
	document.getElementById(id).checked = true;
};
}
//----------------------------------------------------------------------------------
//ListasAsistidas: Reliza la petición para recuperar la info relativa a roles y 
//				fenomenos de la base de datos necesarios para la Busqueda Asistida.
//----------------------------------------------------------------------------------
function ListasAsistidas(){
	var proxyUrl='/predecan/listAsist';
	http.open("GET",proxyUrl, true);
	http.setRequestHeader("content-type","application/x-www-form-urlencoded");
	http.onreadystatechange = handleListAsist;
	http.send(null);
}

//var cargando = Ext.LoadMask('principal', {msg: 'Cargando...'});

//Manejador de LISTASASISTIDAS
function handleListAsist() {
    switch (http.readyState){
    	case 1:
    	case 2:
    	case 3:
	 		mostrarCargando();
	 	break;
        case 4:
            xmlRes = http.responseXML; 
            var resultados = xmlRes.getElementsByTagName("List")[0];                      
            LimpiaListas('selPerfil', 'Seleccione un perfil');
            var numRol = resultados.getElementsByTagName("Rol").length;
             
            for (i=0; i<numRol; i++){
            	var rol = resultados.getElementsByTagName("Rol").item(i);
		        var nombre = rol.getElementsByTagName("nombre").item(0).firstChild.data;
		        var id = rol.getElementsByTagName("id").item(0).firstChild.data;	
		       	opt = document.createElement('option');
				opt.value = "rol" + id;
				txt = document.createTextNode(nombre + ' ');
				opt.appendChild(txt);
				document.getElementById('selPerfil').appendChild(opt);		          
            } 

            //SeleccionarObjPreg();            
            ocultarCargando();
        break;
        case 0:
            Ext.MessageBox.alert('Error','En la conexión con la BD');
        break;                
    }
}

//----------------------------------------------------------------------------------
// SeleccionarObjPreg: Peticion para recuperar a partir del perfil o rol 
//				seleccionado la	lista de tareas y preguntas necesarias para realizar 
//				las busquedas en catalogo.					
//----------------------------------------------------------------------------------
function SeleccionarObjPreg(){
	var indRol = document.getElementById('selPerfil').selectedIndex;	
	
	if (indRol > 0){
		var valRol= document.getElementById('selPerfil').options[indRol].value;    	
		var idRol = valRol.substr(3);	
		var proxyUrl='/predecan/listAsist';	
		http.open("GET",proxyUrl+"?idRol="+idRol, true);
		http.setRequestHeader("content-type","application/x-www-form-urlencoded");
		http.onreadystatechange = handleObjPreg;
		http.send(null);
	}
	else{
		document.getElementById("divResultAsist").style.display = "none";
		document.getElementById("divResultAsistTitulo").style.display = "none";
	}
}

//Manejador de SeleccionarObjPreg
function handleObjPreg(){
	switch (http.readyState){	
		case 1:
    	case 2:
    	case 3:
	 		mostrarCargando();
	 	break;
        case 4:
            xmlRes = http.responseXML;  
            var resultados = xmlRes.getElementsByTagName("List")[0];
            
            div = document.createElement("div");
			div.id = "divResultAsist";
			div.className = "divResultAsist";
			
            nodo = document.getElementById("divResultAsist").parentNode;
			nodo.replaceChild(div,document.getElementById("divResultAsist"));

			var tabla = document.createElement("TABLE");
			tabla.id = "tablaAsist";
			tabla.cellSpacing = 4;
			tabla.setAttribute("width", "100%");
			var tbody = document.createElement("TBODY");
        	var numObjPreg = xmlRes.getElementsByTagName("Obj-Preg").length;
        	var idObjant = "";
            for (i=0; i<numObjPreg;i++) {
				var ObjPreg = resultados.getElementsByTagName("Obj-Preg").item(i);
		        var nomObj = ObjPreg.getElementsByTagName("nombreObj").item(0).firstChild.data;
		        var idObj = ObjPreg.getElementsByTagName("idObj").item(0).firstChild.data;
		        var nomPreg = ObjPreg.getElementsByTagName("nombrePreg").item(0).firstChild.data;
		        var idPreg = ObjPreg.getElementsByTagName("idPreg").item(0).firstChild.data;
		        if (ObjPreg.getElementsByTagName("expresion").item(0).firstChild != null){
			        var expr = ObjPreg.getElementsByTagName("expresion").item(0).firstChild.data;
			    }else{
			    	var expr = "";
			    }
			    
			    if (ObjPreg.getElementsByTagName("fecha").item(0).firstChild != null){		        	
		        	var fecha = ObjPreg.getElementsByTagName("fecha").item(0).firstChild.data;		        	
		        }else{
		        	var fecha = false;
		        }
		         if (ObjPreg.getElementsByTagName("area").item(0).firstChild != null){		        	
		        	var area = ObjPreg.getElementsByTagName("area").item(0).firstChild.data;		        	
		        }else{
		        	var area = false;
		        }
		        	
		        if (idObj == idObjant){
		        	var tr_cab = document.createElement("TR");
					var txt_cab = document.createTextNode(nomPreg);
					var spc_cab = document.createTextNode("       ");
					//var td_check = document.createElement("TD");
					//td_check.className = "itemBuscador itemBuscadorAsistida";
					var td_cab = document.createElement("TD");					
					td_cab.id = "preg"+idPreg;
					td_cab.className = "itemBuscador itemBuscadorAsistida";
					
					try{
						var chkbox = document.createElement('<input type="radio" name="chkpreg" />');
					}catch(err){
						var chkbox = document.createElement("INPUT");
					}										
					chkbox.setAttribute('id','chk'+idPreg);
					chkbox.setAttribute('type','radio');
					chkbox.setAttribute('name','chkpreg');
					chkbox.setAttribute((document.all ? 'className' : 'class'), "checkbox");
					td_cab.onclick = clickinfo2(chkbox.id);
					
					var input = document.createElement("INPUT");
					input.id = 'pregex'+idPreg;
					input.type = "hidden";
					input.value = expr;
										
					var input_fecha = document.createElement("INPUT");
					input_fecha.id = 'pregexdate' + idPreg;
					input_fecha.type = "hidden";
					input_fecha.value = fecha; 
	
					var input_area = document.createElement("INPUT");
					input_area.id = 'pregexarea' + idPreg;
					input_area.type = "hidden";
					input_area.value = area; 

					td_cab.appendChild(chkbox);
					td_cab.appendChild(spc_cab);	
					td_cab.appendChild(input);
					td_cab.appendChild(input_fecha);
					td_cab.appendChild(input_area);					
					td_cab.appendChild(txt_cab);
					//tr_cab.appendChild(td_check);
					tr_cab.appendChild(td_cab);
					tbody.appendChild(tr_cab);		        
		        }else{
			        var tr_cab = document.createElement("TR");
					var txt_cab = document.createTextNode(nomObj);
					var spc_cab = document.createTextNode("       ");
					var td_cab = document.createElement("TD");
					td_cab.colSpan = "2";
					td_cab.id = "obj"+idObj;
					td_cab.className = "itemObj";
					td_cab.appendChild(txt_cab);
					tr_cab.appendChild(td_cab);
					tbody.appendChild(tr_cab);
					
					var tr_cab = document.createElement("TR");
					//var td_check = document.createElement("TD");
					//td_check.className = "itemBuscador itemBuscadorAsistida";
					var txt_cab = document.createTextNode(nomPreg);
					td_cab = document.createElement("TD");
					td_cab.id = "preg"+idPreg;
					td_cab.className = "itemBuscador itemBuscadorAsistida";
					//td_cab.onclick = clickinfo(td_cab.id,"tablaAsist");
					
					try{
						var chkbox = document.createElement('<input type="radio" name="chkpreg" />');
					}catch(err){
						var chkbox = document.createElement("INPUT");
					}	
					chkbox.setAttribute('id','chk'+idPreg);
					chkbox.setAttribute('type','radio');
					chkbox.setAttribute('name','chkpreg');
					chkbox.setAttribute((document.all ? 'className' : 'class'), "checkbox");
					td_cab.onclick = clickinfo2(chkbox.id);
					
					var input = document.createElement("INPUT");
					input.id = 'pregex'+idPreg;
					input.type = "hidden";					
					input.value = expr;
					
					var input_fecha = document.createElement("INPUT");
					input_fecha.id = 'pregexdate' + idPreg;
					input_fecha.type = "hidden";
					input_fecha.value = fecha; 
	
					var input_area = document.createElement("INPUT");
					input_area.id = 'pregexarea' + idPreg;
					input_area.type = "hidden";
					input_area.value = area; 
					
					td_cab.appendChild(chkbox);					
					td_cab.appendChild(spc_cab);
					td_cab.appendChild(input);
					td_cab.appendChild(input_fecha);
					td_cab.appendChild(input_area);
					td_cab.appendChild(txt_cab);
					//tr_cab.appendChild(td_check);
					tr_cab.appendChild(td_cab);
					tbody.appendChild(tr_cab);
				}
				idObjant = idObj;
		    }
		    tabla.appendChild(tbody);
			document.getElementById("divResultAsist").appendChild(tabla);
			document.getElementById("divResultAsist").style.display = "block";
			document.getElementById("divResultAsistTitulo").style.display = "block";
			
			ocultarCargando();
        break;
	}
}	

//----------------------------------------------------------------------------------