var vGmodulo=""
var vGide=""
var tDet=""
var vMod=""
var vGremision=""
function cmodulo_ok(nMod,tCampo,campo,accion,nTam,cIni,cFin,tipo) {
	vGtam=nTam
	vGmodulo=nMod
	if(sessionStorage.hasOwnProperty("modulo")){
		sessionStorage.removeItem("modulo")
	}
	sessionStorage.setItem("modulo",nMod)
	if(sessionStorage.hasOwnProperty("tipo")){
		sessionStorage.removeItem("tipo")
	}
	sessionStorage.setItem("tipo",tipo)
	if(sessionStorage.hasOwnProperty("campoi")){
		sessionStorage.removeItem("campoi")
	}
	sessionStorage.setItem("campoi",cIni)
	if(sessionStorage.hasOwnProperty("length")){
		sessionStorage.removeItem("length")
	}
	sessionStorage.setItem("length",nTam)
	if(sessionStorage.hasOwnProperty("accion")){
		sessionStorage.removeItem("accion")
	}
	sessionStorage.setItem("accion",accion)
	if(nTam!=''){
		vGtam=nTam
	}
	dSw==0
	if(accion!="g"){
		hide_search_list();
	}
	DetalleB="";
	tAcc=accion;
	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(accion)
	document.getElementById("lderecho").innerHTML="";
	var Rpage =VGRutaRiz+"controllers/modulos/"
	doAjax(Rpage,url,'resp_cmodulos_ok_list','gets','0','Ccargar','');
}

function resp_cmodulos_ok_list(ResTex,param) {
	console.log(ResTex);
	Detalle="";
	DetalleB="";
	DetalleM="";
	DetalleT="<p>"+sessionStorage.getItem("modulo")+"</p>";
	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()
			DetalleT="<p>"+oJsonDatos.Datos[0].titmod.trim()+"</p>";
			DetalleM="<h4>"+oJsonDatos.Datos[0].titmod.trim()+"</h4><br>"
			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=""
			iDet=0//para saber en que campo arranca el detalle
			swdet=0
			cAnt=""
			vCampo_padre=""//para cuando hay bloques que se arman con + de 1 campo
			for (RowArray=0;RowArray<NJsonItem; RowArray++){
				if(oJsonDatos.Datos[RowArray].inicio){swdet=1}
				tCampo=RowArray;
				vCampo="c"+RowArray.toString()
				if(oJsonDatos.Datos[RowArray].chkblq==1){vCampo_padre=vCampo}
				if(oJsonDatos.Datos[RowArray].chkblq==0){vCampo_padre=""}
				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()){
						if(vDiv=='bloquedet'){
							Detalle+='<a href="javascript:guardardetalle(\''+oJsonDatos.Datos[RowArray].nommod.trim()+'\',\''+iDet+'\',\''+(RowArray-1)+'\',\'c0\')">+ Agregar Item</a>';
							Detalle+="<div id='det_prod' class='form-msg'>...</div>"
						}
						//console.log(vDiv.search('det_')+vDiv)
						if(vDiv.search('det_')>=0){//verificando bloque anterior
							aTit=vDiv.substr(4,vDiv.length-4)
							Detalle+='<a href="javascript:guardar_detalle(\''+aTit+'\','+iDet+','+(RowArray-1)+',\'c0\')">+ Agregar '+aTit+'</a>';
							Detalle+="<div id='"+aTit+"' class='form-msg'>...</div>"
						}
						Detalle+="</div>";
							
						nDiv=oJsonDatos.Datos[RowArray].bloque//nombre del div
						dPos=nDiv.search("_")//verificando para ponerle ajustable el div
						console.log(dPos)
							
						if(dPos>0){
							dTit=nDiv.substr(dPos,nDiv.length-dPos)
							dTit=dTit.replace('_',' ')
							Detalle+='<a href="javascript:extiende(\''+nDiv+'\')" class="title_div" > <h4 style="width:100%;">'+dTit+'</h4></a>'
						}else{
							dTit=""//nombre del div
						}
						Detalle+=oJsonDatos.Datos[RowArray].titulo+"<div id='"+nDiv+"' class='"+oJsonDatos.Datos[RowArray].clase+"'>"
						vDiv=nDiv.trim()
						iDet=0
					}
				}
				if(oJsonDatos.Datos[RowArray].chkblq==0 || oJsonDatos.Datos[RowArray].chkblq==1){//para campos noson del mismo bloque
				
					Detalle+="<div class='"+oJsonDatos.Datos[RowArray].nomdiv+"' id='"+oJsonDatos.Datos[RowArray].nombre.trim()+"'"
				
					if(oJsonDatos.Datos[RowArray].campoadi.trim()!=""){
						Detalle+=" title='"+oJsonDatos.Datos[RowArray].campoadi.trim()+"'"
					}
				
					if(oJsonDatos.Datos[RowArray].chkocu==1 && tAcc!="r"){
						Detalle+="' style='display: none' "
					}
				
					Detalle+=">";
				}
					if(oJsonDatos.Datos[RowArray].inicio.trim().length>3){
						//cDfuncion='"'+oJsonDatos.Datos[RowArray].inicio.trim()+'","'+vCampo+'","'+oJsonDatos.Datos[RowArray].predeterminado.trim()+'","'+oJsonDatos.Datos[RowArray].condicion.trim()+'"'
						//SE DEBE PONER OPCION QUE REFRESQUE LO GUARDADO SOBRE EL SELECT DESPUES DE ABIERTO
						//Detalle+='<div id="buscador'+vCampo+'"><button onclick="refresh(\''+oJsonDatos.Datos[RowArray].inicio.trim()+'\',\''+vCampo+'\',\''+oJsonDatos.Datos[RowArray].predeterminado.trim()+'\',\''+oJsonDatos.Datos[RowArray].condicion.trim()+'\')">R</button></div>'
					}
					
					Detalle+=oJsonDatos.Datos[RowArray].htmlinicial.trim().replace('rrr',vCampo);
					Detlabel=""
					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{
						cDescripcion=oJsonDatos.Datos[RowArray].descripcion;
						console.log(oJsonDatos.Datos[RowArray].funcionlabel);
						if(oJsonDatos.Datos[RowArray].chkblq==0 || oJsonDatos.Datos[RowArray].chkblq==1){//para campos noson del mismo bloque
				
						if(oJsonDatos.Datos[RowArray].foreti.trim()!=""){
							
							if(oJsonDatos.Datos[RowArray].etiini.trim()=="table"){
								
								Detalle+='<a href="javascript:crear(\''+oJsonDatos.Datos[RowArray].lost.trim()+'\')">'
							}
							Detlabel+='<label for="'+oJsonDatos.Datos[RowArray].foreti.trim()+'"'+oJsonDatos.Datos[RowArray].funcionlabel.trim()+" >"	
							
							if(oJsonDatos.Datos[RowArray].description!=''){
								Detlabel+="<span>"+oJsonDatos.Datos[RowArray].description+"</span>";
							}else{
								Detlabel+="<span>"+cDescripcion+"</span>";
							}
							Detlabel+="</label>"
							eIni=oJsonDatos.Datos[RowArray].etiini.trim()
							if(eIni=="table" || eIni=="textarea"){
								Detalle+=Detlabel;
								Detlabel=""
							}
							
							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].nombre.substr(0,3)=='chk'){
							}else{
								if (oJsonDatos.Datos[RowArray].funcionlabel.length>=2){
									cFuncion=oJsonDatos.Datos[RowArray].funcionlabel.trim();
									if(oJsonDatos.Datos[RowArray].funcionlabel.includes("this")){
										cFuncion=cFuncion.replace("this",vCampo);
										console.log(cFuncion)
									}
										
									Detalle+='<a href="'+cFuncion+'" >'+cDescripcion+'</a>';
								}else{
									//Detlabel=""
									//eIni=oJsonDatos.Datos[RowArray].etiini.trim()
									//if(eIni=="table" || eIni=="textarea"){
									//	Detalle+="<label for=''>"+oJsonDatos.Datos[RowArray].description+"</label>";
									//}else{
										Detlabel+="<label for=''>"
										if(oJsonDatos.Datos[RowArray].description.length>=2){
										//	Detalle+=oJsonDatos.Datos[RowArray].description+"</label>";
											Detlabel+=oJsonDatos.Datos[RowArray].description+"</label>";
										}else{
										//	Detalle+=cDescripcion+"</label>";
											Detlabel+=cDescripcion+"</label>";
										}
										eIni=oJsonDatos.Datos[RowArray].etiini.trim()
										if(eIni=="table" || eIni=="textarea"){
											Detalle+=Detlabel;
											Detlabel=""
										}
									//}
								}
							}
							if(oJsonDatos.Datos[RowArray].etiini.trim()=="table"){
								Detalle+='</a>'
							}
						}
						}//cierra condicion del bloque de varias casillas
					}
					if(oJsonDatos.Datos[RowArray].funcion!=""){//Agregar lupa si es funcion y agregar nuevo si es chknew=1
						//Detalle+="<i class='icon-arrow-with-circle-left:before'>&#128193</i>";
					}
					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].keypress!=""){
						Detalle+=" onkeypress='"+oJsonDatos.Datos[RowArray].keypress+"'"//Restringiendo caracteres indicados
					}
					if(oJsonDatos.Datos[RowArray].length!=0){
						Detalle+=" style='width:"+oJsonDatos.Datos[RowArray].length+"%'"
					}
					if(oJsonDatos.Datos[RowArray].funcion!=""){//para buscardor al escribir
						divConte=vDiv.replace('det_','')//para identificar la clase a la que queda amarrado
						Detalle+=' onkeyup="buscador(\''+oJsonDatos.Datos[RowArray].funcion+'\',this,\''+oJsonDatos.Datos[RowArray].chknew+'\',\''+divConte+'\')" '//valido que solo sea numeros positivos
					}
					aReq=""
					aImg=""
					if(oJsonDatos.Datos[RowArray].nomdiv=='conte_foto'){
						aImg="archi_img"
					}
					if(oJsonDatos.Datos[RowArray].chkreq=="1" ){
						aReq+=" required "//valido que solo sea numeros positivos
					}
					if(vCampo_padre!='' && oJsonDatos.Datos[RowArray].chkblq==2){//Agregando a las clases para poder ubicarles y asignarles datos respectivos
						aReq+=" "+vCampo_padre+" "
					}
					if(oJsonDatos.Datos[RowArray].chktmp=="1" ){
						aReq+=" tmp "//para campos que no van a guardar
					}
					if(oJsonDatos.Datos[RowArray].etiini=="table" ){
						aReq+=" table "//para campos que no van a guardar
					}
					
					if(vDiv=="bloquedet" || vDiv.search("det_")>=0 ){
						if(vDiv.search("det_")>=0){
							Detalle+=" class='"+vDiv.substr(4,vDiv.length-4)+" "
						}else{
							Detalle+=" class='bloquedet "
						}
						
						if(oJsonDatos.Datos[RowArray].chkblq==1){
							Detalle+=oJsonDatos.Datos[RowArray].funcion.trim()+" "
						}
						
						Detalle+=aReq+" "+tMod+" txtdata' "
						if( iDet==0){
							iDet=RowArray;
						}
					}else{
						Detalle+="class='"
						if(oJsonDatos.Datos[RowArray].chkblq==1){//para llamar los que van buscar en local ejemplo ciudades
							Detalle+=oJsonDatos.Datos[RowArray].funcion.trim()+" local "
						}
						Detalle+=tMod
						if(oJsonDatos.Datos[RowArray].chkdet=="1"){
							Detalle+=" general "	
						}
						if(aReq!=''){
							Detalle+=" "+aReq
						}
						if(aImg!=''){
							Detalle+=" "+aImg
						}
						Detalle+=" txtdata'"
					}
					Detalle+=" required ";
					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":"",';
						}
						
						if(oJsonDatos.Datos[RowArray].condicion.trim()!=""){
							vJfunciones+='"condicion":"'+oJsonDatos.Datos[RowArray].condicion.trim()+'"';
						}else{
							vJfunciones+='"condicion":""';
						}
						//if(sessionStorage.getItem("modulo")=="cli_historia_odonto"){
							if(oJsonDatos.Datos[RowArray].etiini.trim()=="table"){
								vJfunciones+=',"modalidad":"tb"';
							}else{
								vJfunciones+=',"modalidad":"'+oJsonDatos.Datos[RowArray].chkimg.trim()+'"';
							}
						//}else{
						//	vJfunciones+=',"modalidad":"'+oJsonDatos.Datos[RowArray].chkimg.trim()+'"';
						//}
						vJfunciones+=',"lost":"'+oJsonDatos.Datos[RowArray].lost.trim()+'"';
						vJfunciones+='}';
					}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].lost.trim()!=""){
						Detalle+=' onblur="'+oJsonDatos.Datos[RowArray].lost.trim()+'"'
					}
					if(VGrol=='docente' || VGrol=='estudiante' || oJsonDatos.Datos[RowArray].enabled==1 ){
						//Detalle+=" disabled"
						Detalle+=" readonly"
					}
					
					Detalle+=" >"
					
						if(oJsonDatos.Datos[RowArray].nombre.substr(0,3)=='chk'){
							Detlabel+="<label for='"+vCampo+"'  >"
							if(oJsonDatos.Datos[RowArray].description.length>=2){
								Detlabel+=oJsonDatos.Datos[RowArray].description+"</label>";
							}else{
								Detlabel+=oJsonDatos.Datos[RowArray].descripcion+"</label>";
							}
						}

					DetalleM+=RowArray;
					//***********************SI CLASE NO ES BLOQUEPH
					//if(oJsonDatos.Datos[RowArray].clase!="bloqueph"){
					//	Detalle+=Detlabel;
						
					//}
					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+="</label>";//25-08-2023
					//if(oJsonDatos.Datos[RowArray].clase=="bloqueph"){//**********POR EL NUEVO CSS DE CLASE BLOQUEPH
						Detalle+=Detlabel;
					//}
					if(oJsonDatos.Datos[RowArray].chkblq==0 || oJsonDatos.Datos[RowArray].chkblq==2){
						Detalle+="</div>";
					}else{
						
					}
					if(vDiv=='bloquedet' && RowArray==NJsonItem-1){
						Detalle+='<a href="javascript:guardardetalle(\''+oJsonDatos.Datos[RowArray].nommod.trim()+'\',\''+iDet+'\',\''+RowArray+'\',\'c0\')">+ Agregar Item</a>';
						Detalle+="<div id='det_prod' class='form-msg'>...</div>"
					}	
			}
			DetalleM+='<br>Luego de click en el icono <span class="icon-save" ></span>';
			DetalleB+='<a href="javascript:limpiar(\'' + sessionStorage.getItem("modulo") + '\');" id="bnuevo"><div class="circulo_sup"><span class="icon-circle-with-plus" ></span></div></a>'
			if(tAcc!="l"){
				DetalleB+='<a href="javascript:rmodulo(\'' + sessionStorage.getItem("modulo") + '\',\'' + tCampo + '\',\'' + tId + '\',\''+tAcc+'\',\'\',\'\',\'\',\''+sessionStorage.getItem("tipo")+'\');" id="bguardar"><div class="circulo_sup"><span class="icon-save" ></span></div></a>'
			}   
			//if(localStorage.getItem("Codempresa")=='DND'){
				DetalleB+='<a href="javascript:listados(\'' + sessionStorage.getItem("modulo") + '\');" id="blistar"><div class="circulo_sup"><span class="icon-list" ></span></div></a>'
			//}else{      
		   // DetalleB+='<a href="javascript:cmodulo(\'' + localStorage.getItem("modulo") + '\',\'' + vC + '\',\'' + vC + '\',\'l\',\'\',\'\',\'\',\''+localStorage.getItem("tipo")+'\');" id="blistar"><div class="circulo_sup"><span class="icon-list" ></span></div></a>'
			//}
			Detalle+="</div>";	
		}else{
			Detalle+="</div>";
			
			DetalleB+='<a href="javascript:limpiar(\'' + sessionStorage.getItem("modulo") + '\');" id="bnuevo"><div class="circulo_sup"><span class="icon-circle-with-plus" ></span></div></a>'
			if(tAcc!="l"){
				DetalleB+='<a href="javascript:rmodulo(\'' + sessionStorage.getItem("modulo") + '\',\'' + tCampo + '\',\'' + tId + '\',\''+tAcc+'\',\'\',\'\',\''+sessionStorage.getItem("tipo")+'\');" id="bguardar"><div class="circulo_sup"><span class="icon-save" ></span></div></a>'
			}
			//if(localStorage.getItem("Codempresa")=='DND'){
				DetalleB+='<a href="javascript:listados(\'' + sessionStorage.getItem("modulo") + '\');" id="blistar"><div class="circulo_sup"><span class="icon-list" ></span></div></a>'
			//}else{
			//	DetalleB+='<a href="javascript:cmodulo(\'' + localStorage.getItem("modulo") + '\',\'' + vC + '\',\'' + vC + '\',\'l\',\'\',\'\',\''+localStorage.getItem("tipo")+'\');" id="blistar"><div class="circulo_sup"><span class="icon-list" ></span></div></a>'
			//}
				
			alert("no registro");
			
	    }
	}else{
		DetalleB+='<a href="javascript:limpiar(\'' + sessionStorage.getItem("modulo") + '\');" id="bnuevo"><div class="circulo_sup"><span class="icon-circle-with-plus" ></span></div></a>'
			if(tAcc!="l"){
				DetalleB+='<a href="javascript:rmodulo(\'' + sessionStorage.getItem("modulo") + '\',\'' + tCampo + '\',\'' + tId + '\',\''+tAcc+'\',\'\',\'\',\''+sessionStorage.getItem("tipo")+'\');" id="bguardar"><div class="circulo_sup"><span class="icon-save" ></span></div></a>'
			}
			//if(localStorage.getItem("Codempresa")=='DND'){
				DetalleB+='<a href="javascript:listados(\'' + sessionStorage.getItem("modulo") + '\')><div class="circulo_sup"><span class="icon-list" ></span></div></a>'
			//}else{
			//	DetalleB+='<a href="javascript:cmodulo(\'' + localStorage.getItem("modulo") + '\',\'' + vC + '\',\'' + vC + '\',\'l\');" id="blistar"><div class="circulo_sup"><span class="icon-list" ></span></div></a>'
			//}
		//document.getElementById("detcuerpo").innerHTML="Modulo invalido"+'</div><div id="reporte" style="background-color:white;"></div>';
    }
	if(VGrol=='empleado'){
		DetalleB+='<a href="javascript:cmodulo(\'' + sessionStorage.getItem("modulo") + '\',\'' + 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(\'' + sessionStorage.getItem("modulo") + '\',\'' + tCampo + '\',\'' + tId + '\',\''+tAcc+'\');" id="bguardar"><div class="circulo_sup"><span class="icon-save" ></span></div></a>'
            DetalleB+='<a href="javascript:imodulo(\'' + sessionStorage.getItem("modulo") + '\',\'' + vC + '\',\'' + vC + '\',\'' + vC + '\');" id="blistar"><div class="circulo_sup"><span class="icon-list" ></span></div></a>'

			tMod=vGmodulo;	
	}
	if(localStorage.hasOwnProperty("id")){
		localStorage.removeItem("id")
	}
	if(localStorage.hasOwnProperty("accion")){
		localStorage.removeItem("accion")
	}
	if(localStorage.hasOwnProperty("tcampo")){
		localStorage.removeItem("tcampo")
		
	}
	Detalle=rpt_textos(Detalle);
	DetalleT=rpt_textos(DetalleT);
	DetalleSup="<div class='superior'><div id='sup_izquierda' class='sup_izquierda'>"+DetalleT+"</div><div id='sup_derecha' class='sup_derecha'></div></div>"
	if(sessionStorage.getItem("tipo")=="RPT"){
		Detalle+='<div class="divbtn" ><input type="button"  onclick="filtrar_modulo(\''+sessionStorage.getItem('modulo')+'\')" value="Buscar"><input type="button"  onclick="reporte_modulo(\''+sessionStorage.getItem('modulo')+'\')" value="Imprimir"></div>'
	}
	Detalle+='<div id="reporte" style="background-color:white;"></div>'
	Detalle+='<div id="mimodal" class="mdsearch"><table id="table"></table></div>'
	if(vGmodulo=="citas"){
		Detalle+="<div id='div_tabla' class='bloque_calendar'>..</div><div id='mdi_resumen' class='bloqueh'>..</div>"	
	}else{
		Detalle+="<div id='div_tabla' class='bloqueh'>..</div><div id='mdi_resumen' class='bloqueh'>..</div>"
	}
	
		
	vJfunciones+="]}";
	if(tAcc=="e" ){
		localStorage.setItem("accion",'e')
		localStorage.setItem("tid",tId)
		localStorage.setItem("tcampo",tCampo)
	}
	console.log(vGmodulo)
	if (vGmodulo=='cajamenor'){
		console.log("insert")
		if(tAcc!="l"){
			insertar(Detalle,vJfunciones,DetalleSup,DetalleB)
		}else{
			imodulo(sessionStorage.getItem('modulo'),'','','');//verificar porque no dice lmodulo
		}
		return
	}
	console.log(Detalle+DetalleB)
	document.getElementById("mdi_botones").innerHTML=DetalleSup
	document.getElementById("detcuerpo").innerHTML=Detalle;
	document.getElementById("sup_izquierda").innerHTML=DetalleT;
	document.getElementById("sup_derecha").innerHTML=DetalleB;
	//document.getElementById("ibuscar").innerHTML="";
	
	
	if(tAcc=="l"){
		//var loc = window.location;
		//console.log(localStorage.getItem("Codempresa"))
    	//var pathName = loc.pathname.substring(0, loc.pathname.lastIndexOf('/') + 1);
		//ruta=loc.href.substring(0, loc.href.length - ((loc.pathname + loc.search + loc.hash).length - pathName.length));
		//if(localStorage.getItem("Codempresa")=='DND'){
			//listados(ruta,Detalle,vJfunciones,DetalleSup,DetalleB)
			listados(sessionStorage.getItem('modulo'))
		//}else {
		//	lmodulo(localStorage.getItem('modulo'),'','','');
		//}
		vGtam='100%'
		return 
	}
	console.log(DetalleT)
	console.log(Detalle)
	
	document.getElementById("mdi_tablero").style.height="100%"//estaba en 80% al 11-01-2023
	//if(localStorage.getItem("Codempresa")=='DND' ){
		elem=document.getElementsByClassName('bloqueph')
	//}else{
	//	elem=document.getElementsByClassName('bloque')
	//}
	console.log(vGtam)
	console.log(localStorage.getItem("Codempresa"))
	elem[0].style.width=vGtam;
	
	vGtam='100%'
	console.log(vJfunciones.length)
	
	if(vJfunciones.length>13){
		console.log(vJfunciones)
		vGnum=0;
		jGfunciones = JSON.parse(vJfunciones);
		filtrar(jGfunciones.Datos[0].modulo,jGfunciones.Datos[0].objeto,jGfunciones.Datos[0].valor,jGfunciones.Datos[0].condicion,jGfunciones.Datos[0].modalidad,jGfunciones.Datos[0].lost);
	}else{
	}
}

function extiende(iDiv){
	console.log(document.getElementById(iDiv).clientHeight)
	if (document.getElementById(iDiv).clientHeight<31){
		console.log("aumenta")
		document.getElementById(iDiv).style.display="flex";
		document.getElementById(iDiv).style.flexDirection="row";
		document.getElementById(iDiv).style.height="auto";
	}else{ 
		if(document.getElementById(iDiv).clientHeight>30){
			console.log("disminuye")
			document.getElementById(iDiv).style.display="none";
			document.getElementById(iDiv).style.height="30px";
		}
	}

}
function limita_tarea(elEvento){
	var evento = elEvento || window.event;
  	var codigoCaracter = evento.charCode || evento.keyCode;
	var Caracter = event.key
	if(Caracter=='ó' || Caracter=='í' || Caracter=='é' || Caracter=='ú' || Caracter=='á'){
		return true;
	}
	if(Caracter=='Ó' || Caracter=='Í' || Caracter=='É' || Caracter=='Ú' || Caracter=='Á'){
		return true;
	}
  	// Permitir utilizar las teclas con flecha horizontal
 	if(codigoCaracter == 37 || codigoCaracter == 39) {
    	return true;
	}
	if (codigoCaracter >= 48 && codigoCaracter <= 57){
		return true;
	}
	if(codigoCaracter >= 65 && codigoCaracter <= 90){
		return true
	}
	if(codigoCaracter >= 97 && codigoCaracter <= 122){
		return true
	}
	if(codigoCaracter >= 160 && codigoCaracter <= 164){
		return true
	}
	if(codigoCaracter == 44 || codigoCaracter == 32 || codigoCaracter == 241  || codigoCaracter == 209  || codigoCaracter == 130) {
    	return true;
	}
	return false
}

function filter_lost(nMod,vCampo,vCamporec,vDatos,condicion,orden){
	cvector= vDatos.split(','); //pasa de caracter a vector
	var jSondet=document.getElementsByClassName("required");
	for (i = 0; i < cvector.length; i++) { //recorrer vector
		campo=document.getElementsByName(cvector[i])
		iCampo=campo[0].id
		nParametro=cvector[i].trim()+"='"+document.getElementById(iCampo).value+"'"
		condicion=condicion.replace(cvector[i],nParametro);
		//cvector.search(cNom)>=0
		//armar condicional
	} 
	console.log(condicion)
	
	url="modulo="+nMod;
	url+="&tipo="+"l";
	url+="&accion="+"i";
	url+="&condicion="+condicion;
	url+="&orden="+orden;
	url+="&codemp="+VGempresa;
	vGide=vCamporec;
	
	var Rpage =VGRutaRiz+"controllers/registros/";
	
	doAjax(Rpage,url,'resp_filtrar_select','gets','0','Ccargar');

}
function resp_filtrar_select(ResTex){
	console.log(vGide+ResTex);
	campo=document.getElementsByName(vGide)
	iCampo=campo[0].id
	Detalle="<option value='' ></option>";
	voption="";
	var oJsonDatos = JSON.parse(ResTex);
	z=0;
	if(oJsonDatos.Datos!="ERROR" && ResTex.length>15){
	    if(ResTex.length>1){
			cCombo=document.getElementById(iCampo);
			JsonActividad=ResTex;
			var oJsonDatos = JSON.parse(JsonActividad);
	        var NJsonItem=oJsonDatos.Datos.length;
			RowArray=0;
			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>'
				}
			}
			console.log(Detalle)

			Detalle=rpt_textos(Detalle);
			cCombo.innerHTML=Detalle;
		}else{
			alert("no hay registros");
    	}
	}
}


function guardar_detalle(tmod,ini,fin,nId){
	vMod=tmod
	cSw=0
	z=0;
	caddatos=""
	cadcampos=""
	var jSondet=document.getElementsByClassName("general");//extraer solo los que deben ir en todos las tablas
	nTam=jSondet.length;
	swcond=0
	for(var i=0;i<nTam;i++){//validar obligatorios
		nCampo=jSondet[i].name
		cId=jSondet[i].id
		console.log(nCampo+camposdet.search(nCampo))
		document.getElementById(cId).style.borderColor="#363636"
		if(camposdet.search(nCampo)>=0){
		}else{
			vCampo=jSondet[i].value
			vchk=nCampo.search('chk')
			if(vchk>=0){
			}else {
				if(vCampo.length<=0 ){
					swcond=1
					document.getElementById(cId).style.borderColor="#F00"
				}
			}
		}
	}
	
	if(swcond==1){
		alert("Por favor verifique campos en rojo")
		return 
	}

	console.log(ini+' '+fin)
	//if(fin!=0){//para que si fin es 0 no recorra
		for(var i=ini;i<=fin;i++){
			
			iCampo="c"+i.toString()
			console.log(iCampo)
			nCampo=document.getElementById(iCampo).name.trim();
			vCampo=document.getElementById(iCampo).value;
			

			console.log(vCampo+nCampo)
			if(z!=0){cadcampos+=",";caddatos+=","}
			zCampo="c"+z.toString()
			caddatos+='"'+nCampo+'":'+'"'+vCampo+'"';
			cadcampos+='"'+zCampo+'":'+'"'+nCampo+'"';
			z++
		}
	//}else{
	//	console.log("revisa")
	//}
	
	console.log(caddatos)
	cRemi=""
	var jSondet=document.getElementsByClassName('general');
	nTam=jSondet.length;
	for(var i=0;i<nTam;i++){
		nCampo=jSondet[i].name
		vCampo=document.getElementById(jSondet[i].id).value
		if (nCampo=="nrorem"){
			cRemi=vCampo
		}
		zCampo="c"+z.toString()
		if(fin==0 && i==0){}else{cadcampos+=",";caddatos+=","}
		caddatos+='"'+nCampo+'":'+'"'+vCampo+'"';
		cadcampos+='"'+zCampo+'":'+'"'+nCampo+'"';
		z++
	}

	
	caddatos="{"+caddatos+"}"
	cadcampos="{"+cadcampos+"}"
	console.log(caddatos)
	caddatos=env_textos(caddatos);
	url="modulo="+tmod;
	url+="&jsondatos="+caddatos;
	url+="&jsoncampos="+cadcampos;
	url+="&j="+z;
	url+="&tipo="+"r";
	url+="&accion="+"detalle";
	url+="&consecutivo="+cRemi;
	url+="&codemp="+VGempresa;
	url+="&usuario="+localStorage.getItem('Usuario');
	url+="&tipocmp="+sessionStorage.getItem('tipo');
	ocampo = document.getElementsByName('nriper');
	iCampo=ocampo[0].id;
	cPaciente=document.getElementById(iCampo).value;
	cPaciente=cPaciente.trim()
	if(cPaciente.length<=0){//verificar que solo aplica temporal para evolucion
		alert("debe estar seleccionado paciente")
		return
	}

	tDet=tmod
	
	for(var i=ini;i<=fin;i++){
		iCampo="c"+i.toString()
		document.getElementById(iCampo).value=""
	}

	console.log(url)
	var Rpage =VGRutaRiz+"controllers/adicionales/"
	vMod=tmod;
	vGremision=cRemi
	doAjax(Rpage,url,'resp_registro_adi','post','0','Ccargar');
}

function resp_registro_adi(ResTex){
	console.log(ResTex);
	if(tDet=='remision_medica'){
		tDet='Remision_medica'
	}
	resp_filtrar_tabadi(ResTex,tDet,'100%',vMod,'detalle');
}

function resp_filtrar_tabadi(ResTex,cDiv,nWidth,nMod,accion) {
	vC="";
	var oJsonDatos = JSON.parse(ResTex);
	Detalle="<div class='prueba'><div class='table-title' ><a href='#'>"+"Detalle </a></div><div class='conte_table' >"
	DetalleUl="<ul>";
	if(oJsonDatos.Datos!="ERROR"){
	    if(ResTex.length>1){
			tAcc=""
			if(tAcc=="v"){
				Detalle+="<table id='customers' class='table_invertida'>";
			}else{
				Detalle+="<table id='customers'>";
			}
			DetalleUl="";
			console.log(Detalle);
			cad=oJsonDatos.Datos[0];
			Detalle+="<tr>";
			Object.keys(cad).forEach((valor)=>{
				nPos=valor.search('_')
				if(nPos>0){
					valor=valor.substring(nPos+1,(valor.length))
					Detalle+="<th>"+valor+"</th>";
					console.log(valor)
				}
	
			})
			Detalle+="<th>Opciones</th>";
			Detalle+="</tr>";
			JsonActividad=ResTex;
			var oJsonDatos = JSON.parse(JsonActividad);
	        var NJsonItem=oJsonDatos.Datos.length;
			vEditar=""
			sw=0
			for (RowArray=0;RowArray<NJsonItem; RowArray++){
				cad=oJsonDatos.Datos[RowArray];	
				console.log(cad);
				Detalle+="<tr>";
				tCampo=0;
				cId="";
				for(d in cad){
					nCp=d
					nCampo=""
					
					if(nCp.substring(0,1)=="W"){
						//llenar cadena de campos o contadores modificables y eliminar la w de primera letra
						nCp=nCp.substring(1,(nCp.length));
						nPos=nCp.search('_')
						if(RowArray==0){
							if(sw==1){
								vEditar=vEditar+","//llenando campos editables
							}
							vEditar=vEditar+nCp.substring(0,nPos)
							
							sw=1
						}
						
					}else{
						nPos=nCp.search('_')
					}
					
					vchk=nCp.search('chk')
					if(nPos>0){
						nCampo=nCp.substring(0,nPos)
						nCp=nCp.substring(nPos+1,(nCp.length));
						
						console.log(nCampo)
					}else{nCampo=nCp}

					if(nCp=='nriper' || nCp=='Id' ){//|| d.substr(-(d.length-(nPos+1)))=='codigo'
						cId=cad[d]
					}
					if(vTipo!="W"){
						console.log(nCp.substr(-3))
						if(vEditar.search(nCampo)>=0){
							//Aqui es para poner tipo spam los campos que no se puedan editar
						}
						if(nCp.substr(0,3)=='img'){
							Detalle+='<td><a><img src="clientes/'+VGempresa+'/'+'producto'+'/'+oJsonDatos.Datos[RowArray].codigo+'.jpg">'+oJsonDatos.Datos[RowArray].nombre+'</a></td>'
						}else if(nCp.substr(-3)=='pvp'){
							Detalle+="<td><input type='number' name='"+nCampo+"'value='"+cad[d]+"' class='"+cId+"'></td>";
						}else if(nCp=='Nombre' || nCp=='Id' || nCp=='Descripcion' || nCp.search('nombre')>=0  || nCp.search('Id')>=0  || nCp.search('Descripcion')>=0 ){
								Detalle+="<td><span>"+cad[d]+"</span></td>"
						}else if(nCp.search('Fecha')>=0){//campos feha editable
								Detalle+="<td><input type='date' name='"+nCampo+"' value='"+cad[d]+"' class='"+cId+"' ></td>";
						}else if((cad[d]!="" && (cad[d].substr(0,1)<"0" || cad[d].substr(0,1)>"9")) || (nCp=='nriper' ||  d.substr(-(d.length-(nPos+1)))=='codigo') ){
							Detalle+="<td><input type='text' name='"+nCampo+"' value='"+cad[d]+"' class='"+cId+"' disabled></td>";
						}else if(cad[d]=="" || nCp.substr(0,3)=='obs'){
							Detalle+="<td><textarea name='"+nCampo+"'value='"+cad[d]+"' class='"+cId+"'></textarea></td>";
						}else{
							if(cad[d].substr(0,1)>="0" || cad[d].substr(0,1)<="9"){
								
									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>";
					}
					tCampo++;
				}
				DetalleUl=DetalleUl.replace("nnn",tCampo);
				cCod=oJsonDatos.Datos[RowArray].Id;
				console.log(vEditar)
				
				if(vEditar.length>0){
					Detalle+='<td><div><a href="javascript:editdetalle(\''+ nMod+ '\',\'' + cId + '\',\'e\',\'' +vEditar+ '\');"><div class="circulo_sup"><span class="icon-save" ></span></div></a>'
				}
				if(vTipo!="W"){
					Detalle+='<td><div><a href="javascript:eliminardetalle(\''+ nMod+ '\',\'' + cId + '\',\'' + vGremision + '\',\'g\');"><div class="circulo_sup"><span class="icon-trash" ></span></div></a>'
				}
			
				Detalle+="</div></td>";
				Detalle+="</tr>";
			}
			Detalle+="</table>";
		}else{
			alert("sino");
	    	}
	  	
	  
	}
	Detalle+="</div></div>";
	DetalleUl+="</ul>";
	console.log(Detalle);
	console.log(DetalleUl);
	console.log(cDiv)
	Detalle=rpt_textos(Detalle);
	console.log(Detalle)
	Detalle+="<div id='divenviar'>..</div>"
	document.getElementById(cDiv).innerHTML=Detalle;
	document.getElementById(cDiv).style.width=nWidth;

}
function eliminardetalle(tmod,nId,cRemi,tipo){
	cRpta= confirm("¿Desea Eliminar Item?");
	if( cRpta==true){
		ocampo = document.getElementsByName('nriper');
		
		iCampo=ocampo[0].id;
		cPaciente=document.getElementById(iCampo).value;
		console.log(ocampo+cPaciente)
		cPaciente=cPaciente.trim()
		console.log(ocampo+cPaciente)
		if(cPaciente.length<=0){//verificar que solo aplica temporal para evolucion
			alert("debe estar seleccionado paciente")
			return
		}
		url="modulo="+tmod;
		url+="&tipo="+tipo;
		url+="&accion="+"detalle";
		url+="&item="+nId;
		url+="&consecutivo="+cRemi;
		url+="&codemp="+VGempresa;
		url+="&usuario="+localStorage.getItem('Usuario');
		url+="&tipocmp="+sessionStorage.getItem('tipo');
		url+="&paciente="+cPaciente;
		tDet=tmod
		console.log(url)
		var Rpage =VGRutaRiz+"controllers/eliminadetalles/"
		vMod=tmod;
		doAjax(Rpage,url,'resp_registro_adi','post','0','Ccargar');
	}
}

function filter_histo(vCampo){
	//for (i=0;300; i++){
	//}
	console.log(vCampo)
	ocampo = document.getElementsByName(vCampo);
	iCampo=ocampo[0].id;
	//iCampo=vCampo
	vMod=sessionStorage.getItem('modulo')
	console.log(iCampo+sessionStorage.getItem('modulo'))
	//cPaciente=document.getElementById(iCampo).value.trim();
	cPaciente=document.getElementById(iCampo).value;
	if(VGempresa=="DND" || vMod=='remision_medica'){//temporal mientras se prueba
		tmod=sessionStorage.getItem('modulo')
	}else{
		tmod="Evolucion"
		vMod="Evolucion"
	}
	
	tipo="HCLI"
	url="modulo="+tmod;
		url+="&tipo="+tipo;
		url+="&accion="+"detalle";
		url+="&paciente="+cPaciente;
		url+="&codemp="+VGempresa;
		url+="&usuario="+localStorage.getItem('Usuario');
		url+="&tipocmp="+sessionStorage.getItem('tipo');
		tDet=tmod
		console.log(url)
		var Rpage =VGRutaRiz+"controllers/filtrardetalles/"
		vMod=tmod;
		doAjax(Rpage,url,'resp_registro_adi','post','0','Ccargar');
}

function editdetalle(mod,campo,accion,vdatos){
	accion="e"
	url="modulo="+mod;
	url+="&accion="+accion;
	var jSondet=document.getElementsByClassName(campo);
	console.log(jSondet)
	nTam=jSondet.length;
	var cadcampos="";
	var caddatos="";
	z=0
	for(var i=0;i<nTam;i++){
		nCampo=jSondet[i].name
		vCampo=jSondet[i].value
		vchk=nCampo.search('chk')
		if(vchk>=0){
			vCampo=0
			if(jSondet[i].checked==true){
				vCampo=1
			}
		}
		if(vdatos.search(nCampo)>=0){//validar que dato se puede editar
			if(z!=0){cadcampos+=",";caddatos+=","}
				zCampo="c"+z.toString()
				caddatos+='"'+nCampo+'":'+'"'+vCampo+'"';
				cadcampos+='"'+zCampo+'":'+'"'+nCampo+'"';
				z++;
		}
	}

	ocampo = document.getElementsByName('nriper');
	iCampo=ocampo[0].id;
	cPaciente=document.getElementById(iCampo).value;
	cPaciente=cPaciente.trim()
	if(cPaciente.length<=0){//verificar que solo aplica temporal para evolucion
		alert("debe estar seleccionado paciente")
		return
	}

	caddatos="{"+caddatos+"}"
	cadcampos="{"+cadcampos+"}"
	caddatos=env_textos(caddatos);
	url+="&Id="+campo;
	url+="&jsondatos="+caddatos;
	url+="&jsoncampos="+cadcampos;
	url+="&j="+z;
	url+="&paciente="+cPaciente;
	url+="&codemp="+VGempresa;
	url+="&usuario="+localStorage.getItem('Usuario');
	console.log(caddatos);
	console.log(url);

	var Rpage =VGRutaRiz+"controllers/editdetalles/"
	doAjax(Rpage,url,'resp_registro_adi','post','0','Ccargar');
}