var tList="";
var vTipo="";
var vGnum=0;
var vGval="";
var vGtam="95%"
var jGfunciones="{}";
var vGmodulo="";
var vGcampoi="";
var vGcampof="";
 


function createREQ() {
try {
     req = new XMLHttpRequest(); /* p.e. Firefox */
     } catch(err1) {
       try {
       req = new ActiveXObject('Msxml2.XMLHTTP'); /* algunas versiones IE */
       } catch (err2) {
         try {
         req = new ActiveXObject("Microsoft.XMLHTTP"); /* algunas versiones IE */
         } catch (err3) {
          req = false;
         }
       }
     }
	  
     return req;
	 
	
}
function requestGET(url, query, req) {
myRand=parseInt(Math.random()*99999999);
if(query == ''){query='no=no';}
req.open("GET",url+'?'+query+'&rand='+myRand,true);
req.send(null);
}
function requestPOST(url, query, req) {
req.open("POST", url,true);
req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
req.send(query);
}
function doCallback(callback,item) {
eval(callback + '(item)');
}
//funcion principal (doAjax) los parametros son 
//*****url:Direccion pagina de proceso ejemplo pagina.php
//*****query:Envio de datos por parametros a la pagina si es metodo get se envia cedula=885930
//*****callback:Devolucion de llamada aqui define quien recibe los datos respondido mostrar(texto)
//*****reqtype:Metodo de trabajo get o post Por Defecto es get
//*****getxml: Metodo de envio respuesta reponseText(0) ó responseXML (1) recive 1 y 0 Por defecto es reponseText
//*****contenedor_espera:Div donde muestra una image de cargando si no se quiere utilizar colocar '' 
function doAjax(url,query,callback,reqtype,getxml,contenedor_espera) {
// crea la instancia del objeto XMLHTTPRequest 
var myreq = createREQ();

myreq.onreadystatechange = function() {//function()
if(myreq.readyState == 4) {//1
	if(contenedor_espera != '' ){document.getElementById(contenedor_espera).innerHTML ='';}
	if(myreq.status == 200) {//2
      	var item = myreq.responseText;
    	if(getxml==1) {//3
         item = myreq.responseXML;
    	}//3
      doCallback(callback, item);
    }//2
}//1
  else
     {//4
	   if(contenedor_espera != '' ){document.getElementById(contenedor_espera).innerHTML ='<img src="anim.gif">';}
     }//4
}//function()

	if(reqtype=='post') {//5
		requestPOST(url,query,myreq);			
	}else{
		requestGET(url,query,myreq);
	}//5
	
	
	
}//***************fin de createREQ*****************


//***********************************Funciones de matricez******************
function CrearMatriz(fila,columna){//crea y define una matris nxn
Matriz = new Array (fila);
for (i = 0; i < Matriz.length; ++ i)Matriz [i] = new Array (columna);
return Matriz
}//fin fr crear matriz

function OrdenarMatriz(array,Ncolumna,Columna_Order,TipoOrder){//crea y define una matris nxn   tipo de orden desendente o acendente 0 o 1
ArrayAux1 = new Array (Ncolumna);
ArrayAux2 = new Array (Ncolumna);
for (RowArray=1;RowArray<array.length; RowArray++){
	for (RowArrayAux=1;RowArrayAux<array.length; RowArrayAux++){
	    if(TipoOrder==0){
	  	 if(array[RowArray][Columna_Order] < array[RowArrayAux][Columna_Order]){
			for (ColAux=0;ColAux<Ncolumna; ColAux++){
			ArrayAux1[ColAux]=array[RowArrayAux][ColAux];
			ArrayAux2[ColAux]=array[RowArray][ColAux];
			array[RowArray][ColAux]=ArrayAux1[ColAux];
			array[RowArrayAux][ColAux]=ArrayAux2[ColAux];
			}
		 }
	  	}else{
	   		if(array[RowArray][Columna_Order] > array[RowArrayAux][Columna_Order]){
			for (ColAux=0;ColAux<Ncolumna; ColAux++){
			ArrayAux1[ColAux]=array[RowArrayAux][ColAux];
			ArrayAux2[ColAux]=array[RowArray][ColAux];
			array[RowArray][ColAux]=ArrayAux1[ColAux];
			array[RowArrayAux][ColAux]=ArrayAux2[ColAux];
			}
		 }
	  	}
	}
}
return array;
}//fin fr crear matriz

function VisualTablaArray(array,fila,colunma,titulo,ArrayTotales,ArrayFormatos,heigTable) {//visualiza una matriz nxn en una tabla 
str = "<table class=lightPro height='"+heigTable+"'>";
	var row;
	var col;
	var  cambiocolorTR=0;
	str +='<thead>';
	str +="<th scope=col colspan="+colunma+" ><center>"+titulo+"</center></td></th><tr>";
		for (col=0;col<colunma; ++col){
			str +="<th scope=col>"+array[0][col]+"</th>";
		}
	str +='</tr></thead>';
	str +='<tbody>';
	   for (row=1;row<array.length; row++){
		   if(array[row][0]!=undefined){//quitar datos no definidor
		  if(cambiocolorTR==0){ str += "<tr background='imagen/fondotablatd.jpg'>"; cambiocolorTR=1;}else{ str += "<tr>";cambiocolorTR=0; }
  				for (col=0; col<array[row].length; ++col){
					   str +="<td ><font color=black><strong>";
					if(ArrayFormatos[col]=="M"){//aqui pregunta si el formato es moneda
					 	str +=formatNumber(array[row][col],"$");
					}else{
						if(ArrayFormatos[col]=="P"){
							str +=Math.round(array[row][col]*100)/100+"%";
						}else{str +=array[row][col];}
					}//fin de codificar formatos
			        str +="<strong></font></td>";
				}
		str +="</tr>";
		 }//fin quitar no definidos
		}
str +=  "<tr background='imagen/fondotabla.jpg'>";
         for (colTotal=0;colTotal<ArrayTotales.length; colTotal++){//selecciono las columna que voy a sumar del array total
			if (ArrayTotales[colTotal]==0){//pregunto si esta columna contiene 0 esso quiere decir que es sumada
				for (row=1;row<array.length; row++){//realizo la totalizacion del array datos
			 		ArrayTotales[colTotal]=ArrayTotales[colTotal]+Math.round(array[row][colTotal]);
			    } 
			 }
		}
		
		for (col=0; col<ArrayTotales.length; col++){
			if(ArrayTotales[col]>=0){
			        str +="<td><font color=black><strong>";
					if(ArrayFormatos[col]=="M"){//aqui pregunta si el formato es moneda
					 	str +=formatNumber(ArrayTotales[col],"$");
					}else{
						if(ArrayFormatos[col]=="P"){
						str +=Math.round(ArrayTotales[col]*100)/100+"%";
						}else{str +=ArrayTotales[col];}
					}//fin de codificar formatos
			        str +="<strong></font></td>";
			}else{
				str+="<td></td>";
			}
		}
str +=  "</tr>";
str += "</tbody></table>";

return str;
}//fin de mostrar matriz
//*******************fin de funcion de matrices************************

//*******************funciones herramientas****************************
function Fecha_hoy(formato){//funcion de pedir fecha actual
	var fechaActual = new Date();
	dia = fechaActual.getDate();
	mes = fechaActual.getMonth() +1;
	anno = fechaActual.getFullYear();
	if (dia <10) dia = "0" + dia;
	if (mes <10) mes = "0" + mes;
	if(formato=="yyyy-mm-dd"){
		fechaHoy =anno  + "-" + mes + "-" + dia;
		}
	fechaHoy =anno  + "-" + mes + "-" + dia;
	return fechaHoy;
}//fin de fecha

function mostrar_ocultar_elem(accion,element){//hacer una accion a un elemento 
	if(accion=="mostrar"){
		document.getElementById(element).style.display = '';
		}else{
		document.getElementById(element).style.display='none';
	}
}//fin  hacer una accion a un elemento

function formatNumber(num,prefix){//cambiar a formato maneda
num = Math.round(parseFloat(num)*Math.pow(10,2))/Math.pow(10,2)
prefix = prefix || '';
num += '';
var splitStr = num.split('.');
var splitLeft = splitStr[0];
var splitRight = splitStr.length > 1 ? '.' + splitStr[1] : '.00';
splitRight = splitRight + '00';
splitRight = splitRight.substr(0,3);
var regx = /(\d+)(\d{3})/;
while (regx.test(splitLeft)) {
splitLeft = splitLeft.replace(regx, '$1' + ',' + '$2');
}
return prefix + splitLeft + splitRight;
}
//parametros get
function getGET(){
   var loc = document.location.href;
   var getString = loc.split('?')[1];
   try {
	     var GET = getString.split('&');
   	     var get = {};//this object will be filled with the key-value pairs and returned.
         for(var i = 0, l = GET.length; i < l; i++){
         	var tmp = GET[i].split('=');
         	get[tmp[0]] = unescape(decodeURI(tmp[1]));
         }
	} catch(e) {
    	get="NOPARAM";
	}
   return get;
}
//redireccionar pagina
function redireccionar(pagina){location.href=pagina;} 
//quitar espacio al inicio y al final
function trim(myString)
{
return myString.replace(/^\s+/g,'').replace(/\s+$/g,'')
}

//funcion de diferencia en fecha
function daysBetween(date1, date2){
   if (date1.indexOf("-") != -1) { date1 = date1.split("-"); } else if (date1.indexOf("/") != -1) { date1 = date1.split("/"); } else { return 0; }
   if (date2.indexOf("-") != -1) { date2 = date2.split("-"); } else if (date2.indexOf("/") != -1) { date2 = date2.split("/"); } else { return 0; }
   if (parseInt(date1[0], 10) >= 1000) {
       var sDate = new Date(date1[0]+"/"+date1[1]+"/"+date1[2]);
   } else if (parseInt(date1[2], 10) >= 1000) {
       var sDate = new Date(date1[2]+"/"+date1[0]+"/"+date1[1]);
   } else {
       return 0;
   }
   if (parseInt(date2[0], 10) >= 1000) {
       var eDate = new Date(date2[0]+"/"+date2[1]+"/"+date2[2]);
   } else if (parseInt(date2[2], 10) >= 1000) {
       var eDate = new Date(date2[2]+"/"+date2[0]+"/"+date2[1]);
   } else {
       return 0;
   }
   var one_day = 1000*60*60*24;
   var daysApart = Math.ceil((sDate.getTime()-eDate.getTime())/one_day);
   return daysApart;
}
//fin funcion de diferencia en fecha

function decimal(valor, decimal){
	var result=Math.round(valor);
	if(decimal==1){result=Math.round(valor*10)/10;}
	if(decimal==2){result=Math.round(valor*100)/100;}
	if(decimal==3){result=Math.round(valor*1000)/1000;}
	if(decimal==3){result=Math.round(valor*10000)/10000;}
	return result;
}


function decAhex(dec) { 
    dec = parseInt(dec) 
    var hexChars="0123456789ABCDEF" 
    var dig = new Array(10) 
    if (dec >= 1e12 ) { return 'demasiado grande' } 
    for (k=0; k<10; k++) 
    {   dig[k] = dec % 16 
        dec = (dec-dig[k]) / 16 
    } 
    var resul = "" 
    for (k=9; k>-1; k--) 
    {    resul += hexChars.charAt(dig[k]) 
    }     
    return resul 
}  


function myTrim(x) {
  return x.replace(/^\s+|\s+$/gm,'');
}
//fin de  solo numero
//******************fin funciones herramientas*************************

function nmodulo(nMod,tCampo,campo,accion,nTam,cIni,cFin) {
	vGmodulo=nMod
	vGcampoi=cIni
	vGcampof=cFin
	if(nTam!=''){
		vGtam=nTam;
	}
	if(accion!="g"){
		hide_search_list();
	}
	DetalleB="";
	tAcc=accion;
	console.log(url+campo);
	if(tAcc=="v"){
		alert("Esta presentacion no admite la acción guardar");
		return;
	}
	tId=campo;
	url="modulo="+nMod;
	url+="&tipo="+"l";
	url+="&accion="+accion;
	url+="&codemp="+VGempresa;
	console.log(url);
	var Rpage =VGRutaRiz+"controllers/modulos/"
	doAjax(Rpage,url,'resp_nmodulos_list','gets','0','Ccargar');
}

function resp_nmodulos_list(ResTex) {

	console.log(ResTex);
	console.log(tAcc);
	Detalle="";
	DetalleB="";
	DetalleM="";
	DetalleT=""
	tMod="";
	vC="";
	vJfunciones='{"Datos":[{';
	var oJsonDatos = JSON.parse(ResTex);
	var nMod="",tCampo=0;
	if(oJsonDatos.Datos!="ERROR"){
	    if(ResTex.length>1){
			cad=oJsonDatos.Datos[0];
			console.log(Object.keys(cad));
			nMod=oJsonDatos.Datos[0].tabla.trim()
			DetalleM="<h4>"+oJsonDatos.Datos[0].titmod.trim()+"</h4><br>"
			DetalleT="<p>"+oJsonDatos.Datos[0].titmod.trim()+"</p>";
			tMod=oJsonDatos.Datos[0].nommod.trim();
			DetalleM+="<p>"+oJsonDatos.Datos[0].obsmod.trim()+"</p><br><p>Para Crear siga los siguientes pasos:</p><br>"
			JsonActividad=ResTex;
			var oJsonDatos = JSON.parse(JsonActividad);
	        var NJsonItem=oJsonDatos.Datos.length;
			vDiv=""
			//Detalle+="<div class='page'>"
			for (RowArray=0;RowArray<NJsonItem; RowArray++){
				tCampo=RowArray;
				vCampo="c"+RowArray.toString()
				if(RowArray==0){
					Detalle+=oJsonDatos.Datos[RowArray].titulo+"<div id='"+oJsonDatos.Datos[RowArray].bloque+"' class='"+oJsonDatos.Datos[RowArray].clase+"'>"
					vDiv=oJsonDatos.Datos[RowArray].bloque.trim()
				}else{
					if(vDiv!=oJsonDatos.Datos[RowArray].bloque.trim()){
						Detalle+="</div>";
						Detalle+=oJsonDatos.Datos[RowArray].titulo+"<div id='"+oJsonDatos.Datos[RowArray].bloque+"' class='"+oJsonDatos.Datos[RowArray].clase+"'>"
						vDiv=oJsonDatos.Datos[RowArray].bloque.trim()
						}
					}
					Detalle+="<div class='"+oJsonDatos.Datos[RowArray].nomdiv+"'"
					if(oJsonDatos.Datos[RowArray].chkocu==1 && tAcc!="r"){
						Detalle+="' style='display: none' "
					}
					Detalle+=">";
					Detalle+=oJsonDatos.Datos[RowArray].htmlinicial.trim().replace('rrr',vCampo);
					if(oJsonDatos.Datos[RowArray].nomdiv.trim()=="drag-area"){
						Detalle+="<h2>Arrastra y suelta imagenes</h2>"
						Detalle+="<span>0</span>"
						Detalle+="<button>Selecciona tus archivos</button>"
					}else{
						if(oJsonDatos.Datos[RowArray].foreti.trim()!=""){
							if(oJsonDatos.Datos[RowArray].etiini.trim()=="table"){
								Detalle+='<a href="javascript:crear(\''+oJsonDatos.Datos[RowArray].lost.trim()+'\')">'
							}
							Detalle+='<label for="'+oJsonDatos.Datos[RowArray].foreti.trim()+'"'+oJsonDatos.Datos[RowArray].funcionlabel.trim()+" >"
							//alert(oJsonDatos.Datos[RowArray].description.length)
							
							if(oJsonDatos.Datos[RowArray].description!=''){
								Detalle+=oJsonDatos.Datos[RowArray].description;
							}else{
								Detalle+=oJsonDatos.Datos[RowArray].descripcion;
							}
							
							Detalle+="</label>"
							if(oJsonDatos.Datos[RowArray].etiini.trim()=="table"){
								Detalle+='</a>'
							}
						}else{
							if(oJsonDatos.Datos[RowArray].etiini.trim()=="table"){
								Detalle+='<a href="javascript:crear(\''+oJsonDatos.Datos[RowArray].lost.trim()+'\')">'
							}
							//if(oJsonDatos.Datos[RowArray].nomdiv.trim()=='conte_check'){
							if(oJsonDatos.Datos[RowArray].nombre.substr(0,3)=='chk'){
								//Detalle+="<label for='"+vCampo+"'  >"
								//class='lblcheck'
							}else{
								Detalle+="<label for='' >"
								
								if(oJsonDatos.Datos[RowArray].description.length>=2){
									Detalle+=oJsonDatos.Datos[RowArray].description+"</label>";
								}else{
									Detalle+=oJsonDatos.Datos[RowArray].descripcion+"</label>";
								}
							}
							if(oJsonDatos.Datos[RowArray].etiini.trim()=="table"){
								Detalle+='</a>'
							}
							//Detalle+="<label for='' >"+oJsonDatos.Datos[RowArray].descripcion+"</label>";
							//alert(oJsonDatos.Datos[RowArray].description.length)
							
						}
					}
					Detalle+="<"+oJsonDatos.Datos[RowArray].etiini+" id='"+vCampo+"' name='"+oJsonDatos.Datos[RowArray].nombre+"'"; if(oJsonDatos.Datos[RowArray].etiini=='select' && oJsonDatos.Datos[RowArray].chkvar==1){Detalle+=" multiple"};
					if(oJsonDatos.Datos[RowArray].tipo=="int"){
						Detalle+=" pattern='^[0-9]+' min='0' onkeypress='comprueba(this)' "//valido que solo sea numeros positivos
					}
					if(oJsonDatos.Datos[RowArray].interactive.trim().length>3){
						Detalle+=oJsonDatos.Datos[RowArray].interactive.trim();
					}
					if(oJsonDatos.Datos[RowArray].inicio.trim().length>3){
						if(vJfunciones.length>12){vJfunciones+=",{";}
						vJfunciones+='"modulo":"'+oJsonDatos.Datos[RowArray].inicio.trim()+'",';
						vJfunciones+='"objeto":"'+vCampo+'",';
						
						if(oJsonDatos.Datos[RowArray].predeterminado.trim()!=""){
							vJfunciones+='"valor":"'+localStorage.getItem(oJsonDatos.Datos[RowArray].predeterminado.trim())+'"}';
						}else{
							vJfunciones+='"valor":""}';
						}
					}else{
						if(oJsonDatos.Datos[RowArray].predeterminado.trim()!="" ){
							//&& (VGrol=='docente' || VGrol=='estudiante')
							vPred=oJsonDatos.Datos[RowArray].predeterminado.trim()
							if((vPred=='docente' || vPred=='estudiante') && VGrol!='docente' && VGrol!='estudiante'){
							}else{
								Detalle+=" value='"+localStorage.getItem(oJsonDatos.Datos[RowArray].predeterminado.trim())+"' "
							}
						}
					}
					//if(oJsonDatos.Datos[RowArray].extensiones.trim()!=""){
						//Detalle+=" onchange='return validarExt()' "	
					//}
					
					if(oJsonDatos.Datos[RowArray].lost.trim()!=""){
						Detalle+=' onblur="buscar('+oJsonDatos.Datos[RowArray].lost.trim()+')"'
					}
					if(VGrol=='docente' || VGrol=='estudiante'){
						//Detalle+=" disabled"
					}
					//if(	oJsonDatos.Datos[RowArray].chkpub==1 || oJsonDatos.Datos[RowArray].chkpub==2){
						Detalle+=" >"
						
						if(oJsonDatos.Datos[RowArray].nombre.substr(0,3)=='chk'){
							Detalle+="<label for='"+vCampo+"'  >"
							if(oJsonDatos.Datos[RowArray].description.length>=2){
								Detalle+=oJsonDatos.Datos[RowArray].description+"</label>";
							}else{
								Detalle+=oJsonDatos.Datos[RowArray].descripcion+"</label>";
							}
								//class='lblcheck'
						}
					//}else{
					//	if(tAcc!='r' ){
					//		Detalle+=" disabled>"
					//	}else{Detalle+=" >"}
					//}
					DetalleM+=RowArray;
					if(oJsonDatos.Datos[RowArray].etiini=='select'){DetalleM+=") Seleccione: "
						}else{DetalleM+=") Digite: "}
					DetalleM+=oJsonDatos.Datos[RowArray].descripcion.trim()+"<br>"
					
					if(oJsonDatos.Datos[RowArray].extensiones.trim()!=""){
						Detalle+="<p> Extensiones permitidas: "+oJsonDatos.Datos[RowArray].extensiones+"</p>";	
						}
						Detalle+=oJsonDatos.Datos[RowArray].valorhtml.trim();	
					
					Detalle+="</"+oJsonDatos.Datos[RowArray].etifin+">";	
					Detalle+=oJsonDatos.Datos[RowArray].htmlfinal.trim().replace('rrr',vCampo);
					Detalle+="</div>";
					
			}
			//Detalle+="</div>"
			DetalleM+='<br>Luego de click en el icono <span class="icon-save" ></span>';
			DetalleB+='<a href="javascript:nmodulo(\'' + tMod + '\',\'' + vC + '\',\'' + vC + '\',\'g\',\''+vGtam+'\',\''+vGcampoi+'\',\''+vGcampof+'\');" id="bnuevo"><div class="circulo_sup"><span class="icon-circle-with-plus" ></span></div></a>'
			DetalleB+='<a href="javascript:rmodulo(\'' + tMod + '\',\'' + tCampo + '\',\'' + tId + '\',\''+tAcc+'\');" id="bguardar"><div class="circulo_sup"><span class="icon-save" ></span></div></a>'
            DetalleB+='<a href="javascript:imodulo(\'' + tMod + '\',\'' + vC + '\',\'' + vC + '\',\'' + vC + '\');" id="blistar"><div class="circulo_sup"><span class="icon-list" ></span></div></a>'
			DetalleB+='</div></div>'
			
			
			Detalle+="</div>";	
		}else{
			alert("no registro");
	    }
	  	
	  
	}else{
		document.getElementById("mdi_tablero").innerHTML="Modulo invalido";
    }
	
	if(VGrol=='empleado'){
		DetalleB+='<a href="javascript:nmodulo(\'' + tMod + '\',\'' + vC + '\',\'' + vC + '\',\'g\',\''+vGtam+'\',\''+vGcampoi+'\',\''+vGcampof+'\');" id="bnuevo">	<div class="circulo_sup"><span class="icon-circle-with-plus" ></span></div></a>'
			DetalleB+='<a href="javascript:rmodulo(\'' + tMod + '\',\'' + tCampo + '\',\'' + tId + '\',\''+tAcc+'\');" id="bguardar"><div class="circulo_sup"><span class="icon-save" ></span></div></a>'
            DetalleB+='<a href="javascript:imodulo(\'' + tMod + '\',\'' + vC + '\',\'' + vC + '\',\'' + vC + '\');" id="blistar"><div class="circulo_sup"><span class="icon-list" ></span></div></a>'
			DetalleB+='</div></div>'
			tMod=vGmodulo;	
	}
	
	Detalle+="<div id='div_tabla' class='bloqueh'>..</div><div id='mdi_resumen' class='bloqueh'>..</div>"
	console.log(Detalle);
	document.getElementById("mdi_botones").innerHTML="<div class='superior'> <div class='sup_derecha'>"+DetalleB;	
	if(tAcc=="l"){
		imodulo(tMod,'','','');
		return 
	}
	Detalle=rpt_textos(Detalle);

	console.log(Detalle)

	DetalleT=rpt_textos(DetalleT);
	console.log(DetalleT)
	document.getElementById("mdi_tablero").innerHTML=Detalle;	
	//document.getElementById("manual").innerHTML=DetalleM;//Temporal mientras soluciono diseño
	document.getElementById("tmudulo").innerHTML=DetalleT;	
	document.getElementById("reporte").style.height="2px";
	document.getElementById("reporte").style.display="none";
	document.getElementById("mdi_tablero").style.height="100%"//estaba en 80% al 11-01-2023
	elem=document.getElementsByClassName('bloque')
	elem[0].style.width=vGtam;
	//alert(DetalleB);//11-01-2023
	//document.getElementById("footer").innerHTML="<div class='inferior'> <div class='sup_derecha'>"+DetalleB;
	vJfunciones+="]}";
	if(vJfunciones.length>13){
		console.log(vJfunciones)
		//agregar(vJfunciones);
		vGnum=0;
		jGfunciones = JSON.parse(vJfunciones);
    	//var NJsonItem = oJsonDatos.Datos.length;
		//console.log(NJsonItem);
		
		//for (RowArray=0;RowArray<NJsonItem; RowArray++){
		filtrar(jGfunciones.Datos[0].modulo,jGfunciones.Datos[0].objeto,jGfunciones.Datos[0].valor);
		//}
	
	}

	if(tAcc=="e" ){
		imodulo(tMod,tCampo,tId,tAcc);
	}
	
}
function rmodulo(mod,tC,campo,accion) {
	if(accion=="v"){
		alert("esta seccion no admite la funcion guarda")
		return;
	}
	url="modulo="+mod
	url+="&accion="+accion;
	url+="&campo="+campo;
	url+="&codemp="+VGempresa;
	
	console.log(url);
	var cadcampos="";
	var caddatos="";
	z=0;
	for(var i=0;i<=tC;i++){
		//getElementsByTagName("a")[0]
		//cChk=vBox.getElementsByTagName("input type='checkbox'");
		iCampo="c"+i.toString()
		nCampo=document.getElementById(iCampo).name.trim();
		vCampo=document.getElementById(iCampo).value;
		if(nCampo.substr(0,3)=="chk" || nCampo.substr(0,3)=="exc"){
			nB=document.getElementById(iCampo).checked
			if(nB==true){
				vCampo=1
			}else{
				vCampo=0
			}
		}
		if(document.getElementById(iCampo).value.trim()!="" && nCampo!="Id"){
			if(z!=0){cadcampos+=",";caddatos+=","}
			zCampo="c"+z.toString()
			caddatos+='"'+nCampo+'":'+'"'+vCampo+'"';
			cadcampos+='"'+zCampo+'":'+'"'+nCampo+'"';
			z++;
			}
		//alert(nCampo+vCampo)
	}
	caddatos="{"+caddatos+"}"
	cadcampos="{"+cadcampos+"}"
	caddatos=env_textos(caddatos);
	url+="&jsondatos="+caddatos;
	url+="&jsoncampos="+cadcampos;
	url+="&j="+z;
	url+="&tipo="+"r";
	
	
	console.log(caddatos);
	console.log(url);
	var Rpage =VGRutaRiz+"controllers/registros/"
	doAjax(Rpage,url,'resp_registro','post','0','Ccargar');
}


function resp_registro(ResTex) {
	alert("Procesado");
	console.log(ResTex);
	}

function cargar_menu() {
	url="tipo="+"l";
	url+="&codemp="+localStorage.getItem("Codempresa")
	
	vUsuario=localStorage.getItem("Usuario");
	VGrol=localStorage.getItem("rol");
	if(vUsuario=="Administrador"){
		url+="&proyecto="+"Admempire";
		
	}else{url+="&proyecto="+VGproyect;}
	url+="&rol="+VGrol;
	console.log(url);
	var Rpage =VGRutaRiz+"controllers/menus/"
	doAjax(Rpage,url,'resp_menus_list','gets','0','Ccargar');
}

function resp_menus_list(ResTex) {
	console.log(ResTex);
	Detalle="";
	var oJsonDatos = JSON.parse(ResTex);
	if(oJsonDatos.Datos!="ERROR"){
	    if(ResTex.length>1){
			JsonMenu=ResTex;
			var oJsonDatos = JSON.parse(JsonMenu);
	        var NJsonItem=oJsonDatos.Datos.length;
			vMenu=oJsonDatos.Datos[0].menu
			vSmenu=oJsonDatos.Datos[0].smenu
			sw=0
			swm=0
			v=0
			Detalle+="<ul class='menu'>"
			for (RowArray=0;RowArray<NJsonItem; RowArray++){
				if (sw==0){
					Detalle+="<li class='menu_principal'><a href='#' >"+oJsonDatos.Datos[RowArray].menu+"</a>"
					Detalle+="<ul>"
					sw=1;
					if(vSmenu!=''){
						swm=1
						mId="m"+v.toString()
						Detalle+="<li class='menu_submenu'>"
						Detalle+='<a href="javascript:verClick('+v+')" class="menu_link" >'+oJsonDatos.Datos[RowArray].smenu+"</a>"
						Detalle+="<ul class='menu_subm'>"
						v++;
					}
				}
				if(vSmenu!=oJsonDatos.Datos[RowArray].smenu){
					//alert(vSmenu+oJsonDatos.Datos[RowArray].smenu)
					if(oJsonDatos.Datos[RowArray].smenu!=''){
						//if(swm!=0 && vSmenu!=""){
						if(vSmenu!=""){
							Detalle+="</ul>"
							Detalle+="</li>"
					    }
						if(vMenu!=oJsonDatos.Datos[RowArray].menu){
							Detalle+="</ul>"
							Detalle+="</li>"
							Detalle+="<li class='menu_principal'><a href='#' >"+oJsonDatos.Datos[RowArray].menu+"</a>"
							Detalle+="<ul>"
						}
						swm=1
						Detalle+="<li class='menu_submenu'>"
						mId="m"+v.toString()
						Detalle+='<a href="javascript:verClick('+v+')" class="menu_link" >'+oJsonDatos.Datos[RowArray].smenu+"</a>"
						v++;
						Detalle+="<ul class='menu_subm'>"
					}else{
						
						
						if(vSmenu!=""){
							Detalle+="</ul>"
							Detalle+="</li>"
							//alert(oJsonDatos.Datos[RowArray].link)
						}
						if(vMenu!=oJsonDatos.Datos[RowArray].menu){
							Detalle+="</ul>"
							Detalle+="</li>"
							Detalle+="<li class='menu_principal'><a href='#' >"+oJsonDatos.Datos[RowArray].menu+"</a>"
							Detalle+="<ul>"
						}
					}
				}else{
					if(vMenu!=oJsonDatos.Datos[RowArray].menu){
						//alert(oJsonDatos.Datos[RowArray].link+"vsm")
						//console.log(Detalle)
						Detalle+="</ul>"
						Detalle+="</li>"
					
						Detalle+="<li class='menu_principal'><a href='#' >"+oJsonDatos.Datos[RowArray].menu+"</a>"
						Detalle+="<ul>"
					}
				}
				
				vMenu=oJsonDatos.Datos[RowArray].menu
				vSmenu=oJsonDatos.Datos[RowArray].smenu;
				Detalle+='<li class="menu_item"><a href="'+oJsonDatos.Datos[RowArray].link.trim()+'" >'+oJsonDatos.Datos[RowArray].titmod+'</a></li>';
				
				
				if(RowArray==NJsonItem-1){
					//alert(RowArray)
					if(vSmenu!=""){
						Detalle+="</ul>"
						Detalle+="</li>"
					}
					Detalle+="</ul>"
					Detalle+="</li>"
				}
			}
			Detalle+="</ul>"
		}else{
			alert("no hay menu");
	    	}
	}else{
		document.getElementById("mdi_menu").innerHTML="Error cargando menu";
    }
	//Detalle+="</div>";
	console.log(Detalle);
	document.getElementById("mdi_menu").innerHTML=Detalle;
}

function imodulo(mod,tCampo,campo,accion) {
	url="modulo="+mod;
	url+="&codemp="+localStorage.getItem("Codempresa")
	tList=mod;
	tAcc=accion;
	vtipo="l";
	tId=campo;
	if(mod=="facturae"){url+="&campo="+document.getElementById('c0').value;}else{url+="&campo="+campo;} 
	url+="&accion="+accion;
	url+="&nit="+localStorage.getItem("NitEmpresa");
	url+="&identidad="+localStorage.getItem('identidad');
	                   
	url+="&tipo="+vtipo;
	url+="&rol="+VGrol;
	vC=" ";
	document.getElementById("bguardar").href="javascript:rmodulo(\'" + mod + "\',\'" + tCampo + "\',\'" + campo + "\',\'"+tAcc+"\');"
	console.log(url);
	var Rpage =VGRutaRiz+"controllers/registros/"
	if(tAcc==""){
		doAjax(Rpage,url,'resp_registros_list','gets','0','Ccargar');
	}else{
		if(mod=="facturae"){
			doAjax(Rpage,url,'resp_registros_item','gets','0','Ccargar');
		}else{
			//doAjax('../../controllers/registros/',url,'resp_registros_factura','gets','0','Ccargar');
			doAjax(Rpage,url,'resp_registros_item','gets','0','Ccargar');
		}
	}
	
}
function resp_registros_factura(ResTex) {
	console.log(ResTex);
}
function resp_registros_item(ResTex) {
	
	console.log(ResTex);
	//alert(ResTex);
	var oJsonDatos = JSON.parse(ResTex);
	
	if(oJsonDatos.Datos!="ERROR"){
	    if(ResTex.length>1){
		}
		cad=oJsonDatos.Datos[0];
		
		console.log(cad);
		Detalle="<table>"
		for (i in cad){
			cNom=i;
			console.log(cNom);
			if(tAcc=="v"){
				//cDet=cad[i].replace('±','+');
				cDet=rpt_textos(cad[i]);
				Detalle+="<tr><td><strong>"+cNom+"</strong></td><td>"+cDet+"<td></tr>"
			}else{
				//cDet=cad[i].replace('±','+');
				cDet=rpt_textos(cad[i]);
				
				
				campo=document.getElementsByName(cNom);
				console.log(campo);
				if(cNom.substr(0,3)=="chk" || cNom.substr(0,3)=="exc" ){
					if(cad[i]==1){
						campo[0].checked =true;
					}else{
						campo[0].checked =false;
					}
					//alert(cad[i])
				}else{ 
					campo[0].value=cDet;
				}
			}
		}
		Detalle+="</table>"
		//vRep="±"
		//Detalle=Detalle.replace(new RegExp(vRep,"g") ,"+");
		Detalle=rpt_textos(Detalle);
		if(tAcc=="v"){
			document.getElementById("mdi_tablero").innerHTML=Detalle;
			document.getElementById("reporte").style.height="5%";
			document.getElementById("reporte").style.display="none";
			document.getElementById("mdi_tablero").style.height="90%";
		}
	}
}



function resp_registros_list(ResTex) {
	console.log(ResTex);
	vC="";
	var oJsonDatos = JSON.parse(ResTex);
	DetalleUl="";
	Detalle="";
	if(oJsonDatos.Datos!="ERROR"){
	    if(ResTex.length>1){
			document.getElementById("mdi_tablero").style.height="60px";
			
				Detalle="<div class='prueba'><div class='table-title' ><a href='#'>"+"Listado de "+tList+"</a><div class='ctn_icon_search' ><a href='javascript:view_search_list();' ><i class='icon-magnifying-glass' id='icon_search_list' ></i></a></div></div><div id='ctn_barra_search' disabled><input type='text' id='tsearch_list'  onKeyUp='search_list()' placeholder='¿Qué deseas buscar?'></div><ul id='box_search'></ul><a href='javascript:hide_search_list();'><div id='cover_ctn_search' ></div> </a><div class='conte_table' >"
		
			console.log(tAcc);
			if(tAcc=="v"){
				Detalle+="<table id='customers' class='table_invertida'>";
			}else{
				Detalle+="<table id='customers'>";
			}
			
			console.log(Detalle);
			//Detalle+="<thead>";
			Detalle+="<tr>";
			cad=oJsonDatos.Datos[0];
			console.log(Object.keys(cad));
			Detalle+="<th>Opciones</th>";
			Object.keys(cad).forEach((valor)=>{
				Detalle+="<th>"+valor+"</th>"
				
				})
			
			
			Detalle+="</tr>";
			//Detalle+="</thead>";
			JsonActividad=ResTex;
			var oJsonDatos = JSON.parse(JsonActividad);
	        var NJsonItem=oJsonDatos.Datos.length;
			var cNrov="";
			for (RowArray=0;RowArray<NJsonItem; RowArray++){
				cad=oJsonDatos.Datos[RowArray];	
				Detalle+="<tr>";
				tCampo=0;
				cCod=oJsonDatos.Datos[RowArray].Id;
				if(VGrol=='empleado' ){
					//vrutanom="http://miayudaapp.com/views/volante.html?empresa="+VGempresa+"&documento="
					//Detalle+='<td><div class="btopciones"><a href=""><div class="circulo_sup"><span class="icon-eye" ></span></div></a>'
					cNrov=cad['nrocmp'].trim();
						vrutanom="http://miayudaapp.com/views/volante.html?empresa="+VGempresa;
						vrutanom+="&documento='"+cNrov+"'";
						vrutanom+="&rol="+VGrol;
						vrutanom+="&modulo="+vGmodulo;
						vrutanom+="&identidad="+localStorage.getItem("identidad");
						Detalle+='<td><div class="btopciones"><a href="'+vrutanom+'" target="_blank"><div class="circulo_sup"><span class="icon-eye" ></span></div></a>'
				}else{
					Detalle+='<td><div class="btopciones"><a href="javascript:imodulo(\'' + tList + '\',\'' + tCampo + '\',\'' + cCod + '\',\'v\',\'' + vGtam + '\');"><div class="circulo_sup"><span class="icon-eye" ></span></div></a>'
					Detalle+='<a href="javascript:nmodulo(\'' + tList + '\',\'' + tCampo + '\',\'' + cCod + '\',\'e\',\'' + vGtam + '\');"><div class="circulo_sup"><span class="icon-edit" ></span></div></a>'
					Detalle+='<a href="javascript:imodulo(\'' + tList + '\',\'' + cCod + '\',\'d\');"><div class="circulo_sup"><span class="icon-erase" ></span></div></a>'				
				}
				Detalle+="</div></td>";
				
				for(d in cad){
					Detalle+="<td>"+cad[d]+"</td>";
					if(VGrol=='empleado' && d=='nrocmp' ){
						
					}
					if(d=='nombre'){
						DetalleUl+="<li><div class='d_search'><a href='#'><i class='icon-magnifying-glass'></i>"+cad[d]+'</a><a href="javascript:nmodulo(\''+ tList+ '\',\'nnn\',\'' + cad['Id'] + '\',\'e\');"><span class="icon-edit"></span></a>';
						DetalleUl+='</a><a href="javascript:imodulo(\''+ tList+ '\',\'' + cad['Id'] + '\',\'d\');" class="a_search"><span class="icon-erase"></span></a>';
						DetalleUl+='</a><a href="javascript:imodulo(\''+ tList+ '\',\'nnn\',\'' + cad['Id'] + '\',\'v\');"><span class="icon-eye"></span></a>';
						DetalleUl+="</div></li>";
					}
					
					tCampo++;
				}
				DetalleUl=DetalleUl.replace("nnn",tCampo);
				
				Detalle+="</tr>";
			}
			Detalle+="</table>";
		}else{
			alert("sino");
	    	}
	  	
		Detalle+="</div>";
		DetalleUl+="</ul>";  
	}
	
	//var vRep="±"
	//Detalle=Detalle.replace(new RegExp(vRep,"g") ,"+");
	Detalle=rpt_textos(Detalle);
	if(Detalle==""){Detalle="<div> <p style='margin-left:5px'>No hay registros!</p></div>"}
	//if(DetalleUl!=""){document.getElementById("box_search").innerHTML=DetalleUl;}
	
	console.log(DetalleUl);
	console.log(Detalle);
	
	
	document.getElementById("reporte").innerHTML=Detalle;
	
	document.getElementById("reporte").style.display="block";
	document.getElementById("mdi_tablero").style.height="0%";
	
	document.getElementById("reporte").style.height="80%";
	document.getElementById("footer").style.height="6";
	
	
}
function fechas(vtipo,cvalor){
	var lcampos=document.querySelectorAll("input");
	console.log(lcampos)
	cVal=""
	for(var i=0; i<lcampos.length; ++i){
		if(lcampos[i].name==cvalor){
			cVal=lcampos[i].value
		}
	}
	
	for(var i=0; i<lcampos.length; ++i){
		if(lcampos[i].name==cvalor){
		}else{
			lcampos[i].value=cVal
		}
	}
	
}
		
function buscar(nMod,cValor,vCampo,vTip,tCampo){
	VGitulo="Reporte de "+nMod;
	vTipo=vTip;
	var cCondicion="";
	vGid=vCampo;
	if(vTipo=="F"){//para cuando el valor enviado depanda de un elemento
		vCampo=cValor
	}
	cOrden=""
	url="modulo="+nMod;
	//alert(nMod)
	//if(vTipo=="V" || vTipo=="W"){
	if(vTipo!="F"){
		tC=tCampo//traera el total de campos que debo recorrer para armar al condicional
		cDife=">"
		for(var i=0;i<tC;i++){
			
			iCampo="c"+i.toString()
			nCampo=document.getElementById(iCampo).name.trim();
			vCampo=document.getElementById(iCampo).value;
			//alert(nCampo+vCampo)
			z=0
			if(vCampo!="" && vCampo!="..." ){
				
				if(nCampo.substring(0,3)=="fin" || nCampo.substring(0,3)=="ini" || nCampo.substring(0,3)=="fch"){
				//if(nCampo.substring(0,3)=="fin"){
				//	cDife=">";
				//	if(vGid!=''){
				//		cDife="<";
				//		nCampo=vGid
				//	}
					//if(nCampo.substring(0,3)=="ini" || nCampo.substring(0,3)=="fch"){
					//	cDife="<";
					//	if(vGid!=''){
					//		cDife=">";
					//		nCampo=vGid;
					//	}
					//}
					cCondicion+=" and "+nMod+"."+nCampo+cDife+"='"+vCampo+"'"
					cDife="<";
				}else{
					cCondicion+=" and "+nMod+"."+nCampo+"='"+vCampo+"'"
				}
				
				
			}
			nPos=cOrden.search(nCampo)
			if(nPos<0){
				if(i!=0){
					cOrden+=","
				}
				cOrden+=nMod+"."+nCampo
			}
			
		}
		
	}else {
		
		if(nMod!='volantesnom'){
			//console.log(cValor)
			//alert(nMod)
			cValor=document.getElementsByName(cValor)[0].value;
			console.log(localStorage.getItem("identidad"));
		}else{
			//alert()
			cValor=VGdocumento;
			url+="&rol="+localStorage.getItem("rol");
			url+="&identidad="+localStorage.getItem("identidad");
			//console.log(localStorage.getItem("identidad"));
		}
		console.log(url)
	}
	console.log(cCondicion);

	
	url+="&campo="+vCampo;
	url+="&valor="+cValor;
	url+="&condicion="+cCondicion
	
	url+="&orden="+cOrden
	url+="&tipo="+"l";
	url+="&accion="+"b";
	url+="&codemp="+VGempresa;
	localStorage.setItem("rutab","");
	console.log(url);
	var Rpage =VGRutaRiz+"controllers/registros/"
	if(vTipo=='T' ){
		console.log(url);
		
		doAjax(Rpage,url,'resp_filtrar_tabla','gets','0','Ccargar');
	}
	if(vTipo=='V' || vTipo=="W"){
		localStorage.setItem("rutab",url);
		console.log(url);
		doAjax(Rpage,url,'resp_filtrar_tabla','gets','0','Ccargar');
	}
	if(vTipo==' '){
		doAjax(Rpage,url,'resp_filtrar_busq','gets','0','Ccargar');
	}
	
	if(vTipo=='F'){
		console.log(url);
		if(nMod!='volantesnom'){
			doAjax(Rpage,url,'resp_filtrar_busq','gets','0','Ccargar');
		}else{
			doAjax(Rpage,url,'resp_filtrar_vol','gets','0','Ccargar');
		}
		
	}
}

function resp_filtrar_busq(ResTex) {
	//ResTex=ResTex.replace('+','Â±');
	console.log(ResTex);
	var oJsonDatos = JSON.parse(ResTex);
	console.log(oJsonDatos);
	if(oJsonDatos.Datos!="ERROR"){
	    if(ResTex.length>1){
		}
		cad=oJsonDatos.Datos[0];
		console.log(cad);
		for (i in cad){
			cNom=i;
			console.log(cNom);
				campo=document.getElementsByName(cNom);
				console.log(campo);
				campo[0].value=cad[i];
		}
	}
}

function resp_filtrar_tabla(ResTex) {
	//ResTex=ResTex.replace('+','Â±');
	console.log(ResTex);
	vC="";
	var oJsonDatos = JSON.parse(ResTex);
	Detalle="<div class='prueba'><div class='table-title' ><a href='#'>"+"Listado </a></div><div class='conte_table' >"
	DetalleUl="<ul>";
	if(oJsonDatos.Datos!="ERROR"){
	    if(ResTex.length>1){
			//Detalle="<div class='prueba'><div class='table-title' ><a href='#'>"+"Listado </a><div class='ctn_icon_search'><a href='javascript:view_search_list();'><i class='icon-magnifying-glass' id='icon_search_list'></i></a></div></div><div id='ctn_barra_search'><input type='text' id='tsearch_list'  onKeyUp='search_list()' placeholder='¿Qué deseas buscar?'></div><ul id='box_search'></ul><a href='javascript:hide_search_list();'><div id='cover_ctn_search' ></div> </a><div class='conte_table' >"
			
			tAcc=""
			if(tAcc=="v"){
				Detalle+="<table id='customers' class='table_invertida'>";
			}else{
				Detalle+="<table id='customers'>";
			}
			DetalleUl="";
			console.log(Detalle);
			Detalle+="<tr>";
			cad=oJsonDatos.Datos[0];
			console.log(Object.keys(cad));
			Object.keys(cad).forEach((valor)=>{
				nPos=valor.search('_')//aqui es para dependiento si encuentro este caracter, tomarlo como titulo
				cTit=valor
				if (nPos>0){
					//alert(cTit.substring(0,6));
					cTit=cTit.replace("_", " ");
					//cTit=cTit.substring(nPos+1);//temporal antes del 11-01-2023 
				}
				Detalle+="<th>"+cTit+"</th>"
				})
			if(vTipo!="W"){
				Detalle+="<th>Acciones</th>";
			}
			Detalle+="</tr>";
			JsonActividad=ResTex;
			var oJsonDatos = JSON.parse(JsonActividad);
	        var NJsonItem=oJsonDatos.Datos.length;
			for (RowArray=0;RowArray<NJsonItem; RowArray++){
				cad=oJsonDatos.Datos[RowArray];	
				console.log(cad);
				Detalle+="<tr>";
				tCampo=0;
				cId="";
				for(d in cad){
					nCp=d
					nPos=nCp.search('_')
					vchk=nCp.search('chk')
					//alert(nCp+vchk)
					if(nPos>0){
						nCp=nCp.substring(0,nPos);
					}
					if(nCp=='nriper'){
						cId=cad[d]
					}
					if(vTipo!="W"){
						
						if(cad[d]!="" && cad[d]!="0"){
							Detalle+="<td><input type='text' name='"+nCp+"' value='"+cad[d]+"' class='"+cId+"'></td>";
						}else{
							if(cad[d]=="" ){
								Detalle+="<td><textarea name='"+nCp+"'value='"+cad[d]+"' class='"+cId+"'></textarea></td>";
							}else{
								if(cad[d]=="0"){
									//alert(vchk)
									if(vchk>=0){
										Detalle+="<td><input type='checkbox' name='"+nCp+"' class='"+cId+"'></td>";
									}else{
										Detalle+="<td><input type='number' name='"+nCp+"'value='"+cad[d]+"' class='"+cId+"'></td>";
									}
								}
							}
						}
					}else{
						Detalle+="<td>"+cad[d]+"</td>";
					}
					//Revisar aqui ya que tiene que ver con las opciones de busqueda
					if(d=='nombre'){
						DetalleUl+="<li><div class='d_search'><a href='#'><i class='icon-magnifying-glass'></i>"+cad[d]+'</a><a href="javascript:nmodulo(\''+ tList+ '\',\'nnn\',\'' + cad['Id'] + '\',\'e\');"><span class="icon-edit"></span></a>';
						DetalleUl+='</a><a href="javascript:imodulo(\''+ tList+ '\',\'' + cad['Id'] + '\',\'d\');" class="a_search"><span class="icon-erase"></span></a>';
						DetalleUl+='</a><a href="javascript:imodulo(\''+ tList+ '\',\'nnn\',\'' + cad['Id'] + '\',\'v\');"><span class="icon-eye"></span></a>';
						DetalleUl+="</div></li>";
					}
					tCampo++;
				}
				DetalleUl=DetalleUl.replace("nnn",tCampo);
				cCod=oJsonDatos.Datos[RowArray].Id;
				if(vTipo!="W"){
					Detalle+='<td><div><a href="javascript:guardardet(\''+ vGmodulo+ '\',\'' + cId + '\',\'g\',\'' + vGcampoi + '\',\'' + vGcampof + '\');"><div class="circulo_sup"><span class="icon-save" ></span></div></a>'
				}
			
				Detalle+="</div></td>";
				Detalle+="</tr>";
			}
			Detalle+="</table>";
		}else{
			alert("sino");
	    	}
	  	
	  
	}
	Detalle+="</div></div>";
	DetalleUl+="</ul>";
	console.log(Detalle);
	console.log(DetalleUl);
	//document.getElementById("div_tabla").style.height="50%";.-
	//document.getElementById("div_tabla").style.overflow="scroll";
	//document.getElementById("div_tabla").style.maxWidth="800px";
	
	Detalle=rpt_textos(Detalle);
	
	document.getElementById("div_tabla").innerHTML=Detalle;
	
	if(localStorage.getItem("rutab")!=""){
		buscar_res(localStorage.getItem("rutab",Detalle));
	}
	
}
function buscar_res(ruta){
	
	document.getElementById("div_tabla").innerHTML=Detalle;
	url=ruta;
	url+="&consld="+"1";
	console.log(url)
	var Rpage =VGRutaRiz+"controllers/registros/"
	doAjax(Rpage,url,'resp_filtrar_res','gets','0','Ccargar');
}
function resp_filtrar_res(ResTex) {
	$tabla = document.querySelector("#customers");
	//alert(ResTex)
	Detalle=""
	//Detalle='<button id="btnExportar" class="btn btn-success" onclick="exportar_xls()"><i class="fas fa-file-excel"></i> Exportar a Excel</button> '
	Detalle+="<table>";
	JsonActividad=ResTex;
	var oJsonDatos = JSON.parse(JsonActividad);
	var NJsonItem=oJsonDatos.Datos.length;
	Detalle+="<tr>";
	cad=oJsonDatos.Datos[0];
	Object.keys(cad).forEach((valor)=>{
		nPos=valor.search('_')//aqui es para dependiento si encuentro este caracter, tomarlo como titulo
		cTit=valor
		if (nPos>0){
			cTit=cTit.replace("_", " ");
		}
		Detalle+="<th>"+cTit+"</th>"
	})
	Detalle+="</tr>";
			
	for (RowArray=0;RowArray<NJsonItem; RowArray++){
		cad=oJsonDatos.Datos[RowArray];	
		Detalle+="<tr>";
		tCampo=0;
		cId="";
		for(d in cad){
			Detalle+="<td>"+cad[d]+"</td>";
		}
	}
	Detalle+="</tr></table>";
	
	document.getElementById("mdi_resumen").innerHTML=Detalle;
	document.getElementById("mdi_resumen").style.height="70px";
	document.getElementById("mdi_resumen").style.width="100%";
	document.getElementById("mdi_resumen").style.display="block";
	document.getElementById("mdi_resumen").style.height="50px";
	console.log(Detalle)
}
function filtrar(nMod,vCampo,cValor){
	url="modulo="+nMod;
	url+="&tipo="+"l";
	url+="&accion="+"i";
	url+="&codemp="+VGempresa;
	vGid=vCampo;
	vGval=cValor;
	console.log(vGval);
	console.log(url);
	var Rpage =VGRutaRiz+"controllers/registros/";
	//Poner opcion quesi valirable es x variable, la informacion se llene en una tabla y llame a una fuancion que debe crear la tabla con sus objetos, ademas a
	//debe haber algo que me indique en que tabla se debe guardar esa informacion.
	doAjax(Rpage,url,'resp_filtrar_list','gets','0','Ccargar');
	}
function resp_filtrar_list(ResTex) {
	console.log(ResTex);
	console.log(vGval);
	//console.log(jGfunciones)
	voption="";
	Detalle="<option value='...' >No Aplica</option>";

	var oJsonDatos = JSON.parse(ResTex);
	z=0;
	if(oJsonDatos.Datos!="ERROR"){
	    if(ResTex.length>1){
			
			cCombo=document.getElementById(vGid);
			JsonActividad=ResTex;
			var oJsonDatos = JSON.parse(JsonActividad);
	        var NJsonItem=oJsonDatos.Datos.length;
			RowArray=0;//esto lo adicione nuevo
			cCombo.options[RowArray] = new Option("Seleccione","")
			for (RowArray=0;RowArray<NJsonItem; RowArray++){
				cad=oJsonDatos.Datos[RowArray];	
				j=RowArray+1;
				if(vGval==oJsonDatos.Datos[RowArray].codigo && vGval!=""){
					z=1;
					Detalle+='<option value="'+oJsonDatos.Datos[RowArray].codigo+'" selected>'+oJsonDatos.Datos[RowArray].nombre+'</option>'
				}else{
					Detalle+='<option value="'+oJsonDatos.Datos[RowArray].codigo+'">'+oJsonDatos.Datos[RowArray].nombre+'</option>'
				}
			}
			//vRep="±"
			//Detalle=Detalle.replace(new RegExp(vRep,"g") ,"+");
			Detalle=rpt_textos(Detalle);
			cCombo.innerHTML=Detalle;
		}else{
			alert("no hay registros");
    	}
	}
	if(z==1 && vGval!="" && (VGrol=='docente' || VGrol=='estudiante') ){
		cCombo.disabled = true;
	}
	console.log(Detalle);
	vGnum++;
	console.log(jGfunciones.Datos.length)
	if (jGfunciones.Datos.length>1){
		if(vGnum<jGfunciones.Datos.length){
			console.log(jGfunciones.Datos[vGnum].modulo+jGfunciones.Datos[vGnum].objeto,jGfunciones.Datos[vGnum].valor)
			filtrar(jGfunciones.Datos[vGnum].modulo,jGfunciones.Datos[vGnum].objeto,jGfunciones.Datos[vGnum].valor);
		}
	}
}
function guardardet(mod,campo,accion,eIni,eFin){
	url="modulo="+mod
	url+="&accion="+accion;
	
	var jSondet=document.getElementsByClassName(campo);
	nTam=jSondet.length;

	var cadcampos="";
	var caddatos="";
	z=0;
	//alert(nTam)
	for(var i=0;i<nTam;i++){
		nCampo=jSondet[i].name
		//alert(nCampo);
		vCampo=jSondet[i].value
		vchk=nCampo.search('chk')
		if(vchk>=0){
			vCampo=0
			if(jSondet[i].checked==true){
				vCampo=1
			}
		}
		if(z!=0){cadcampos+=",";caddatos+=","}
		zCampo="c"+z.toString()
		caddatos+='"'+nCampo+'":'+'"'+vCampo+'"';
		cadcampos+='"'+zCampo+'":'+'"'+nCampo+'"';
		z++;
	}
	console.log(caddatos);
	//Poner condicional que este ciclo se cumpla siempre y cuando alla campo inicial y final
	alert(eIni+eFin)
	for(var i=eIni-1;i<eFin;i++){
		iCampo="c"+i.toString()
		alert(iCampo);
		nCampo=document.getElementById(iCampo).name.trim();
		vCampo=document.getElementById(iCampo).value;
		if(document.getElementById(iCampo).value.trim()!="" && nCampo!="Id"){
			if(z!=0){cadcampos+=",";caddatos+=","}
			zCampo="c"+z.toString()
			caddatos+='"'+nCampo+'":'+'"'+vCampo+'"';
			cadcampos+='"'+zCampo+'":'+'"'+nCampo+'"';
			z++;
			}
	}
	console.log(caddatos);
	caddatos="{"+caddatos+"}"
	cadcampos="{"+cadcampos+"}"
	caddatos=env_textos(caddatos);
	
	url+="&jsondatos="+caddatos;
	url+="&jsoncampos="+cadcampos;
	url+="&j="+z;
	url+="&tipo="+"r";
	console.log(caddatos);
	console.log(url);
	var Rpage =VGRutaRiz+"controllers/registros/"
	doAjax(Rpage,url,'resp_guardardet','post','0','Ccargar');
}
function resp_guardardet(ResTex) {
	console.log(ResTex);
}
function agregar(vJsonf){
	
	
	var script = document.createElement( "script" );
	script.type = "text/javascript";
	console.log(vJsonf);
	var oJsonDatos = JSON.parse(vJsonf);
    var NJsonItem = oJsonDatos.Datos.length;
	console.log(NJsonItem);
	script.text="";
	for (RowArray=0;RowArray<NJsonItem; RowArray++){
		
		script.text+='filtrar("'+oJsonDatos.Datos[RowArray].modulo+'","'+oJsonDatos.Datos[RowArray].objeto+'")';
		//if(RowArray==0){
		//filtrar(oJsonDatos.Datos[RowArray].modulo,oJsonDatos.Datos[RowArray].objeto);
		//}
		alert(oJsonDatos.Datos[RowArray].modulo);
	}
	document.getElementsByTagName('body')[0].appendChild(script)
	//var script = document.querySelector('script[filtrar]')
	//script.parentNode.removeChild(script);
	
	//alert("ver");

	//var tr = document.getElementById("mdi_body");
	//var corner_td = tr.lastChild;
	//var hcuerpo = document.getElementById("mdi_body");
	//hcuerpo.parentNode.removeChild(corner_td);
	
}
//document.getElementById('cover_ctn_search').addEventListener("click",hide_search_list);
function view_search_list(){
	return //temporalmente estara inactivo mientras terminamos de trabajar esta opcion
	vTexto=document.getElementById('tsearch_list');
	vBox=document.getElementById('box_search');
	document.getElementById('ctn_barra_search').style.top='175px';
	document.getElementById('tsearch_list').focus();
	document.getElementById('cover_ctn_search').style.display='block';
	if(vTexto.value===""){
			vBox.style.display="none";
			}
	}
function hide_search_list(){
	return 
	document.getElementById('ctn_barra_search').style.top='-80px';
	document.getElementById('cover_ctn_search').style.display='none';
	document.getElementById('tsearch_list').value="";
	document.getElementById('box_search').style.display="none";
	}
	
function search_list(){
	vBox=document.getElementById('box_search');
	vTexto=document.getElementById('tsearch_list');
	
	li=vBox.getElementsByTagName('li');
	filter=vTexto.value.toUpperCase();
	
	for (i	=0; i<li.length; i++){
		a=li[i].getElementsByTagName("a")[0];
		tValor=a.textContent || a.innerText;
		if(tValor.toUpperCase().indexOf(filter) > -1){
			li[i].style.display="";
			vBox.style.display="block";
			if(vTexto.value===""){
				vBox.style.display="none";
			}
		}else{
			li[i].style.display="none";
		}
	}
}
function env_textos(vTexto){
	vRep="ñ"
	vTexto=vTexto.replace(new RegExp(vRep,"g") ,"Ã±");
	vRep="Ñ"
	vTexto=vTexto.replace(new RegExp(vRep,"g") ,"u00d1");
	vTexto=vTexto.replace("+","Â±");
	vRep="Á"
	vTexto=vTexto.replace(new RegExp(vRep,"g") ,"u00c1");
	vRep="á"
	vTexto=vTexto.replace(new RegExp(vRep,"g") ,"Ã¡");
	vTexto=vTexto.replace("+","Â±");
	vRep="É"
	vTexto=vTexto.replace(new RegExp(vRep,"g") ,"Ã‰");
	vRep="é"
	vTexto=vTexto.replace(new RegExp(vRep,"g") ,"Ã©");
	vTexto=vTexto.replace("+","Â±");
	vRep="Í"
	vTexto=vTexto.replace(new RegExp(vRep,"g") ,"u00cd");
	vRep="í"
	vTexto=vTexto.replace(new RegExp(vRep,"g") ,"Ã");
	vRep="Ó"
	vTexto=vTexto.replace(new RegExp(vRep,"g") ,"Ã“");
	vRep="ó"
	vTexto=vTexto.replace(new RegExp(vRep,"g") ,"Ã³");
	vTexto=vTexto.replace("+","Â±");
	
  	return vTexto;
}
function rpt_textos(vTexto){
	vRep="Ã±"
	vTexto=vTexto.replace(new RegExp(vRep,"g") ,"ñ");
	vRep="u00d1"
	vTexto=vTexto.replace(new RegExp(vRep,"g") ,"Ñ");
	vTexto=vTexto.replace("±","+");
	vRep="u00c1"
	vTexto=vTexto.replace(new RegExp(vRep,"g") ,"Á");
	vRep="Ã¡"
	vTexto=vTexto.replace(new RegExp(vRep,"g") ,"á");
	vTexto=vTexto.replace("±","+");
	vRep="Ã‰"
	vTexto=vTexto.replace(new RegExp(vRep,"g") ,"É");
	vRep="Ã©"
	vTexto=vTexto.replace(new RegExp(vRep,"g") ,"é");
	vTexto=vTexto.replace("±","+");
	vRep="u00cd"
	vTexto=vTexto.replace(new RegExp(vRep,"g") ,"Í");
	vRep="Ã"
	vTexto=vTexto.replace(new RegExp(vRep,"g") ,"í");
	vRep="Ã“"
	vTexto=vTexto.replace(new RegExp(vRep,"g") ,"Ó");
	vRep="Ã³"
	vTexto=vTexto.replace(new RegExp(vRep,"g") ,"ó");
	vTexto=vTexto.replace("±","+");
	
  	return vTexto;
}
function _(el){
  	return document.getElementById(el);
}
function uploadFile(Idarchivo){
	 	var file = _(Idarchivo).files[0];
	alert(file)
   	//alert(file.name+" | "+file.size+" | "+file.type);
   	var formdata = new FormData();
 	formdata.append("archivos", file);
	formdata.append("empresa",VGempresa);
	formdata.append("ruta","varios");
 	var ajax = new XMLHttpRequest();
  	ajax.upload.addEventListener("progress", progressHandler, false);
   	ajax.addEventListener("load", completeHandler, false);
   	ajax.addEventListener("error", errorHandler, false);
   	ajax.addEventListener("abort", abortHandler, false);
	console.log(formdata);
   	ajax.open("POST", "subir.php");
   	ajax.send(formdata);
}
function progressHandler(event){
   	_("loaded_n_total").innerHTML = "Uploaded "+event.loaded+" bytes of "+event.total;
	 var percent = (event.loaded / event.total) * 100;
   	_("progressBar").value = Math.round(percent);
	_("status").innerHTML = Math.round(percent)+"% uploaded... please wait";
}
function completeHandler(event){
   	_("status").innerHTML = event.target.responseText;
   	_("progressBar").value = 0;
}
function errorHandler(event){
	_("status").innerHTML = "Upload Failed";
}
function abortHandler(event){
   	_("status").innerHTML = "Upload Aborted";
}
function validarExt(Idarchivo,Idcampo){
	//alert("vali");
	var archivoInput=document.getElementById(Idarchivo);
	var archivoRuta=archivoInput.value;
	text=archivoRuta.replace(/^.*\\/,"");
	var vExt=/(.pgn|.jpg)$/i;
	if(!vExt.exec(archivoRuta)){
		alert('asegurate de haber seleccionado archivo de extension valida');
		archivoInput.value="";
		return false;
	}else{
		document.getElementById(Idcampo).value=text;
		if(archivoInput.files && archivoInput.files[0]){
			var visor=new FileReader();
			visor.onload=function(e){
				document.getElementById('visorarchivo').innerHTML='<embed src="'+e.target.result+'" width="100%" heigth="100%" >';
			}
			visor.readAsDataURL(archivoInput.files[0]);
		}
	}
}
function comprueba(valor){
  if(valor.value < 0){
    valor.value = 0;
  }
}

function resp_filtrar_vol(ResTex) {
	//alert("vol")
	//ResTex=ResTex.replace('+','Â±');
	console.log(ResTex);
	vC="";
	var oJsonDatos = JSON.parse(ResTex);
	Detalle="<div class='prueba'><div class='table-title' ><a href='#'>"+" </a></div><div class='conte_table' >"
	DetalleUl="<ul>";
	if(oJsonDatos.Datos!="ERROR"){
	    if(ResTex.length>1){
			//Detalle="<div class='prueba'><div class='table-title' ><a href='#'>"+"Listado </a><div class='ctn_icon_search'><a href='javascript:view_search_list();'><i class='icon-magnifying-glass' id='icon_search_list'></i></a></div></div><div id='ctn_barra_search'><input type='text' id='tsearch_list'  onKeyUp='search_list()' placeholder='¿Qué deseas buscar?'></div><ul id='box_search'></ul><a href='javascript:hide_search_list();'><div id='cover_ctn_search' ></div> </a><div class='conte_table' >"
			
			tAcc=""
			if(tAcc=="v"){
				Detalle+="<table id='customers' class='table_invertida'>";
			}else{
				Detalle+="<table id='customers'>";
			}
			DetalleTit=""
			DetalleUl="";
			console.log(Detalle);
			Detalle+="<tr>";
			cad=oJsonDatos.Datos[0];
			console.log(Object.keys(cad));
			Object.keys(cad).forEach((valor)=>{
				nPos=valor.search('_')//aqui es para dependiento si encuentro este caracter, tomarlo como titulo	
				cTit=valor
				if (nPos>0){
					
					//alert(cTit.substring(0,6));
					cTit=cTit.substring(nPos+1);
					//alert(cTit.substring((-1)*cTit.length));
				}else{
					Detalle+="<th>"+cTit.toUpperCase()+"</th>"
				}
				
				})
			if(vTipo!="W"){
				//Detalle+="<th>Acciones</th>";
			}
			tDev=0
			tDed=0
			Detalle+="</tr>";
			JsonActividad=ResTex;
			var oJsonDatos = JSON.parse(JsonActividad);
	        var NJsonItem=oJsonDatos.Datos.length;
			for (RowArray=0;RowArray<NJsonItem; RowArray++){
				cad=oJsonDatos.Datos[RowArray];	
				console.log(cad);
				Detalle+="<tr>";
				tCampo=0;
				cId="";
				for(d in cad){
					nCp=d
					nPos=nCp.search('_')
					vchk=nCp.search('chk')
					//alert(nCp+vchk)
					if(nPos>0){
						if(RowArray==0){
							
							DetalleTit+='<b>'+nCp.substring((-1)*cTit.length).toUpperCase()+'</b>: '+cad[d]+'<br>'
							DetalleTit=DetalleTit.replace('H_','')
							DetalleTit=DetalleTit.toUpperCase()
							//alert(nCp.substring((-1)*cTit.length))
							//alert(cad[d])
						}
						nCp=nCp.substring(0,nPos);
						
					}else{
						if(RowArray==0){
							cTit=cad[d].toUpperCase()
							Detalle+="<td>"+cTit.toUpperCase()+"</td>";
							
						}else{
							Detalle+="<td>"+cad[d]+"</td>";
							
						}
					}
					if(nCp=='devengado'){
						tDev+=parseInt(cad[d])
					}
					if(nCp=='deduccion'){
						tDed+=parseInt(cad[d])
					}
					tCampo++;
				}
				DetalleUl=DetalleUl.replace("nnn",tCampo);
				cCod=oJsonDatos.Datos[RowArray].Id;
				
			
				Detalle+="</div></td>";
				Detalle+="</tr>";
			}
			Detalle+="<tr><th>TOTAL</th><th></th><th>"+tDev+"</th><th>"+tDed+"</th></tr>";
			vTot=parseInt(tDev)-parseInt(tDed);
			Detalle+="<tr><th>NETO A PAGAR:</th><th>"+vTot+"</th></tr>";
			Detalle+="</table>";
		}else{
			alert("sino");
	    	}
	  	
	  
	}
	Detalle+="</div></div>";
	DetalleUl+="</ul>";
	//DetalleTit=DetalleTit.trim().replace('H_','-')
	console.log(Detalle);
	console.log(DetalleUl);
	console.log(DetalleTit);
	Detalle=rpt_textos(Detalle);

	document.getElementById("titempresa").innerHTML='<br>'+DetalleTit
	document.getElementById("detnom").innerHTML='<br>'+Detalle+'<br><br>RECIBI CONFORME______________________<br>';
	
	
}

function selectFolder(e) {
//	console.log(e)
   for (var i = 0; i < e.target.files.length; i++) {
      var s = e.target.files[i].name + '\n';
      s += e.target.files[i].size + ' Bytes\n';
      s += e.target.files[i].type;
      alert(s);
   }
}