var vGid=""
var vRefresh_calendario=""
var gFecha=""

function reg_horario(mod,tC,campo,accion,cini,cfin,tam,tipo) {
	sessionStorage.setItem('tipo',tipo)
	dEle=0
	swcond=0
	url="modulo="+mod
	url+="&accion="+accion;
	url+="&campo="+campo;
	url+="&codemp="+VGempresa;
	var jSondet=document.getElementsByClassName(mod);
	console.log(jSondet)
	nTam=jSondet.length;
	for(var i=0;i<nTam;i++){
		nCampo=jSondet[i].name
		cId=jSondet[i].id
		document.getElementById(cId).style.borderColor="#363636"
		vCampo=jSondet[i].value
		vchk=nCampo.search('chk')
		if(vchk>=0){
			nB=document.getElementById(cId).checked
			if(nB==true){
				vCampo=1
			}else{
				vCampo=0
			}
		}else {
			if(vCampo.length<=0 ){
				swcond=1
				document.getElementById(cId).style.borderColor="#F00"
			}else{
				if(nCampo=='codfte'){
					fuente=document.getElementById(cId);
					dEle = fuente.options[fuente.selectedIndex].text.substr(0,1);
				}
			}
		}
		url+="&"+nCampo+"="+vCampo;
	}
	if(swcond==1){
		alert("Por favor verifique campos en rojo")
		return 
	}
	url+="&tipo="+"r";
	url+="&usuario="+localStorage.getItem('Usuario');
	console.log(url)
	var Rpage =VGRutaRiz+"controllers/horarios/"
	doAjax(Rpage,url,'resp_reghorario','post','0','Ccargar');
}
function resp_reghorario(ResTex){
	console.log(ResTex);
}

function reg_historia(mod,tC,campo,accion,cini,cfin,tam,tipo) {
	sessionStorage.setItem('tipo',tipo)
	dEle=0
	swcond=0
	var jSondet=document.getElementsByClassName("required");
	var jSondet_det=document.getElementsByClassName("bloquedet");
	nTam=jSondet_det.length;
	camposdet=""
	for(var i=0;i<nTam;i++){
		camposdet+=jSondet_det[i].name+","
	}
	var jSondet_det=document.getElementsByClassName("Diagnostico");
	nTam=jSondet_det.length;
	for(var i=0;i<nTam;i++){
		camposdet+=jSondet_det[i].name+","
	}
	var jSondet_det=document.getElementsByClassName("Evolucion");
	nTam=jSondet_det.length;
	for(var i=0;i<nTam;i++){
		camposdet+=jSondet_det[i].name+","
	}
	var jSondet_det=document.getElementsByClassName("Medicamentos");
	nTam=jSondet_det.length;
	for(var i=0;i<nTam;i++){
		camposdet+=jSondet_det[i].name+","
	}
	var jSondet_det=document.getElementsByClassName("Remision_medica");
	nTam=jSondet_det.length;
	for(var i=0;i<nTam;i++){
		camposdet+=jSondet_det[i].name+","
	}
	var jSondet_det=document.getElementsByClassName("PlanTratamiento");
	nTam=jSondet_det.length;
	for(var i=0;i<nTam;i++){
		camposdet+=jSondet_det[i].name+","
	}
	
	nTam=jSondet.length;
	var cadcampos="";
	for(var i=0;i<nTam;i++){
		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"
				}else{
					if(nCampo=='codfte'){
						fuente=document.getElementById(cId);
						dEle = fuente.options[fuente.selectedIndex].text.substr(0,1);
					}
				}
			}
		}
	}
	
	if(swcond==1){
		alert("Por favor verifique campos en rojo")
		return 
	}
	
	if(accion=="v"){
		alert("esta seccion no admite la funcion guarda")
		return;
	}
	if(sessionStorage.getItem("tipo")=="p" || sessionStorage.getItem("tipo")=="d"){
		if(cSw==0 ){
			gXml=""
			gFac=""
			gPre=""
			gNro=0
			gNom=""
			gEml=""
			ver_numeracion('c0','c1','c2','c3','c4');
			return 
		}else{cSw=0}
	}
	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++){
		if(accion.trim()!='lat'){
			iCampo="c"+i.toString()
		}else{
			iCampo="L"+i.toString()
		}
		item=document.getElementById(iCampo)//inicio para poder verificar clases
		var vclase_tmp = item.classList.contains( 'tmp' );
		var vclase_table = item.classList.contains( 'table' );
		console.log(vclase_table)
		console.log(iCampo)
		if(vclase_tmp!=true && vclase_table!=true){//Se verifica si contiene la clase temporal y que no sea una tabla
			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(nCampo!="Id"){//se puede guardar si dato esta en blanco
				if(camposdet.search(nCampo)>=0){//para verificar si campo es detalle(18-11-2023)
				}else{
					if(z!=0){cadcampos+=",";caddatos+=","}
					zCampo="c"+z.toString()
					caddatos+='"'+nCampo+'":'+'"'+vCampo+'"';
					cadcampos+='"'+zCampo+'":'+'"'+nCampo+'"';
					z++;
				}
			}
		}
		if(vclase_table==true){
			pJson=document.querySelector("#"+iCampo)
			console.log(pJson)
			nCampo=pJson.getAttribute("name")
			console.log(nCampo)
			//nCampo=document.getElementById(iCampo).name.trim();
			dJson=document.getElementsByClassName(iCampo);
			console.log(dJson)
			nTamj=dJson.length;
			var campo_Json="";
			vJson_campo="["
			swj=0
			for(var n=0;n<nTamj;n++){
				nCamp_j=dJson[n].name
				vCamp_j=dJson[n].value
				cId_j=dJson[n].id
				console.log(nCamp_j+cId_j+vCamp_j)
				if(nCamp_j=="Id"){
					if(swj==1){
						vJson_campo+="},{"
					}else{
						vJson_campo+="{"
					}
				}else{
					vJson_campo+=","
				}
				if(nCamp_j.substr(0,3)=="chk" || nCamp_j.substr(0,3)=="exc"){
					nB=dJson[n].checked
					if(nB==true){
						vCampo=1
					}else{
						vCampo=0
					}
					vJson_campo+="'"+nCamp_j+"':'"+vCampo+"'"
				}else{
					vJson_campo+="'"+nCamp_j+"':'"+vCamp_j+"'"
				}
				
				swj=1
			}
			vJson_campo+="}]"
			console.log(vJson_campo)
			
			zCampo="c"+z.toString()
				caddatos+=',"'+nCampo+'":'+'"'+vJson_campo+'"';
				cadcampos+=',"'+zCampo+'":'+'"'+nCampo+'"';
				z++;
			
		}
		
		if(nCampo=="nrorem" && (sessionStorage.getItem('modulo')=='remision_medica' || sessionStorage.getItem('modulo')=='recetasmed')){
			gNro=vCampo
		}
	}
	console.log(caddatos+gNro)
	
	caddatos="{"+caddatos+"}"
	cadcampos="{"+cadcampos+"}"
	caddatos=env_textos(caddatos);
	url+="&jsondatos="+caddatos;
	url+="&jsoncampos="+cadcampos;
	url+="&j="+z;
	url+="&tipo="+"r";
	url+="&usuario="+localStorage.getItem('Usuario');
	console.log(url)
	var Rpage =VGRutaRiz+"controllers/registros/"
	if(sessionStorage.getItem('modulo')=='remision_medica' || sessionStorage.getItem('modulo')=='recetasmed' ){
		url+="&tipocmp="+sessionStorage.getItem('tipo')
		url+="&consecutivo="+gNro;
		gNro=""
		console.log(url);
		doAjax(Rpage,url,'resp_muestrapdf','post','0','Ccargar');
		return
	}else{
		doAjax(Rpage,url,'resp_registro','post','0','Ccargar');
	}
	
}

function calendariomed(nMod,cValor,vCampo,vTip,tCampo,vdatos,condicion,orden){
	cvector=vdatos
	console.log(vCampo+vTip)
	VGitulo="Calendario "+nMod;
	vTipo=vTip;
	var cCondicion="";
	vGid=vCampo;
	cOrden=""
	url="modulo="+nMod;
	tC=tCampo
	if(tC>1){
		for(var i=0;i<tC;i++){
			iCampo="c"+i.toString()
			nCampo=document.getElementById(iCampo).name.trim();
			vCampo=document.getElementById(iCampo).value;
			z=0
			if(vCampo!="" && vCampo!="..." ){
				console.log(vCampo+nCampo)
				if(condicion.search(nCampo)>=0){//verify that value is not in condicion
					console.log(condicion)
					condicion=condicion.replace(nCampo,nCampo+"='"+vCampo+"'")
					console.log(condicion)
				}else{
					if(nCampo.substring(0,3)=="fin" || nCampo.substring(0,3)=="ini" || nCampo.substring(0,3)=="fch"){
						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"));
		}
		console.log(url)
	}
	console.log(cCondicion);
	if(cOrden!=''){
		cOrden=cOrden+","
	}
	ocampo = document.getElementsByName('fchcmp');
	iCampo=ocampo[0].id;
	cFecha=document.getElementById(iCampo).value;
	
	
	if(vTip=="atras" || vTip=="sgte"){
		if(gFecha!=""){
			cFecha=gFecha	
		}
		if(vTip=="atras"){
			nDias=-7
		}else{
			nDias=7
		}

		cFecha=sumarDias(cFecha,nDias)
		fant=cFecha
		fec=fant.split("/").reverse().join("-")
		cFecha=fec
		gFecha=cFecha
	}else{
		gFecha=""
	}
	
	cOrden=cOrden+orden
	url+="&campo="+vCampo;
	url+="&valor="+cValor;
	url+="&condicion="+cCondicion
	url+="&orden="+cOrden
	url+="&tipo="+"l";
	url+="&accion="+"b";
	url+="&fchcmp="+cFecha;
	url+="&codemp="+VGempresa;
	sessionStorage.setItem("rutab","");
	console.log(url);
	
	//var Rpage =VGRutaRiz+"controllers/registros/"
	var Rpage =VGRutaRiz+"controllers/agendameds/"
	doAjax(Rpage,url,'resp_calendario','gets','0','Ccargar');
}

function resp_calendario(ResTex){

	vGid="div_tabla"
	var oJsonDatos = JSON.parse(ResTex);
	z=0;
	if(oJsonDatos.Datos!="ERROR"){
	    if(ResTex.length>1){
			cTabla=document.getElementById(vGid);
			JsonActividad=ResTex;
			var oJsonDatos = JSON.parse(JsonActividad);
	        var NJsonItem=oJsonDatos.Datos.length;
			cad=oJsonDatos.Datos[0];
			ocampo = document.getElementsByName('nrimed');
			console.log(ocampo)
			iCampo = ocampo[0].id;	
			Detalle='<div calss="btnatras_sgte"><a href="javascript:calendariomed(\''+sessionStorage.getItem('modulo')+'\',\'nrimed\',\''+iCampo+'\',\'atras\',\'3\',\'\',\'\',\'  citas.fchcmp,citas.horini\') "> Anterior </a>'
			Detalle+='<a href="javascript:calendariomed(\''+sessionStorage.getItem('modulo')+'\',\'nrimed\',\''+iCampo+'\',\'sgte\',\'3\',\'\',\'\',\'  citas.fchcmp,citas.horini\') "> Siguiente </a></div>'
			
			fIni=oJsonDatos.Datos[0].fchcmp	
			nDia=oJsonDatos.Datos[0].dia
			Detalle+="<div class='conte_calendar'><div class='calendario'><div class='columna'><h5>"+fIni+"("+nDia+")</h5>"
			RowArray=0;
			sw=0
			for (RowArray=0;RowArray<NJsonItem; RowArray++){
				if(fIni!=oJsonDatos.Datos[RowArray].fchcmp	){
					nDia=oJsonDatos.Datos[RowArray].dia
					Detalle+="</div><div class='columna'><h5>"+oJsonDatos.Datos[RowArray].fchcmp+"("+nDia+")</h5>"
					fIni=oJsonDatos.Datos[RowArray].fchcmp;
					sw=1
				}
				Detalle+="<div class='celda'>"
				cad=oJsonDatos.Datos[RowArray];	
				//console.log(cad);
				tCampo=0;
				cId="";
				for(d in cad){
					nCp=d
					nPos=nCp.search('_')
					vchk=nCp.search('chk')
					if(nPos>0){
						nCp=nCp.substring(0,nPos);
					}
					if(nCp=='Id'){
						vGid=cad[d]
					}
					if(nCp=='horini'){
						//if(sw==0){
							Detalle+='<span style="font-size:12px">'+cad[d].substr(0,5)+'</span>'
						//}
						Detalle+="<span style='font-size:11px;color:#3C9'>("+oJsonDatos.Datos[RowArray].paciente+')</span>'
						if(oJsonDatos.Datos[RowArray].paciente==''){
							Detalle+='<a href="javascript:citasmed(\''+sessionStorage.getItem('modulo')+'\',\'3\',\''+vGid+'\',\'e\',\'4\',\'7\',\'Asignada\',\''+sessionStorage.getItem('tipo')+'\')" >+</a>'
						}
						if(oJsonDatos.Datos[RowArray].paciente!=''){
							Detalle+='<a href="javascript:citasmed(\''+sessionStorage.getItem('modulo')+'\',\'3\',\''+vGid+'\',\'e\',\'4\',\'7\',\'Cancelada\',\''+sessionStorage.getItem('tipo')+'\')" style="color:red">X</a>'
						}
					}
					
					
					tCampo++;
				}

				cCod=oJsonDatos.Datos[RowArray].Id;

			
				Detalle+="</div>";
				//Detalle+="</tr>";
			}
			Detalle+="</div></div></div>";
			console.log(Detalle)
			cTabla.innerHTML=Detalle;
		}else{
			alert("no hay registros");
    	}
	}
	limpiar_calendario(4,6)
}

function citasmed(mod,tC,campo,accion,cini,cfin,cEst,tipo) {
	sessionStorage.setItem('tipo',tipo)
	var jSondet=document.getElementsByClassName("required");
	camposdet=""
	swcond=0
	nTam=jSondet.length;
	
	var cadcampos="";
	var caddatos="";
	z=0;
	for(var i=cini;i<cfin;i++){
		iCampo="c"+i.toString()
		cId=iCampo
		console.log(cId)
		nCampo=document.getElementById(iCampo).name
		
		document.getElementById(cId).style.borderColor="#363636"
		vCampo=document.getElementById(iCampo).value
		
		item=document.getElementById(iCampo)
		var vclase_tmp = item.classList.contains( 'tmp' );
		vchk=nCampo.search('chk')
		if(nCampo.substr(0,3)=="chk" || nCampo.substr(0,3)=="exc"){
			//verificar si esta chequeado para asignar 1 sino 0
			nB=document.getElementById(cId).checked
			if(nB==true){
				vCampo=1
			}else{
				vCampo=0
			}
		}else {
			if(vCampo.length<=0 ){
				if(cEst!='Cancelada'){
					swcond=1
					document.getElementById(cId).style.borderColor="#F00"
				}
				
			}else{
				if(nCampo=='codfte'){
					fuente=document.getElementById(cId);
					dEle = fuente.options[fuente.selectedIndex].text.substr(0,1);
				}
			}
		}
		zCampo="c"+z.toString()
		if(cEst=='Cancelada' && vchk<0){
			vCampo=""
		}
		if(z!=0){cadcampos+=",";caddatos+=","}
		caddatos+='"'+nCampo+'":'+'"'+vCampo+'"';
		cadcampos+='"'+zCampo+'":'+'"'+nCampo+'"';
		z++;
	}
	
	if(swcond==1){
		alert("Por favor verifique campos en rojo")
		return 
	}
	
	url="modulo="+mod
	url+="&accion="+accion;
	url+="&campo="+campo;
	url+="&codemp="+VGempresa;
	zCampo="c"+z.toString()
	
	caddatos+=',"estado":'+'"'+cEst+'"';
	cadcampos+=',"'+zCampo+'":'+'"estado"';
	z++;
	caddatos="{"+caddatos+"}"
	cadcampos="{"+cadcampos+"}"
	caddatos=env_textos(caddatos);
	url+="&jsondatos="+caddatos;
	url+="&jsoncampos="+cadcampos;
	url+="&j="+z;
	url+="&tipo="+"r";
	url+="&usuario="+localStorage.getItem('Usuario');
	console.log(url)
	
	var Rpage =VGRutaRiz+"controllers/Agendameds/"
	doAjax(Rpage,url,'resp_mostrarcalendario','post','0','Ccargar');

}
function resp_mostrarcalendario(ResTex){
	console.log(ResTex)
	campo=document.getElementsByName('nrimed')
	iCampo=campo[0].id
	calendariomed('citas','nrimed',iCampo,' ',3,'','',' citas.fchcmp,citas.horini')
}

function limpiar_calendario(cIni,cFin){
	for(var i=cIni;i<cFin;i++){
		iCampo="c"+i.toString()
		cId=iCampo
		nCampo=document.getElementById(iCampo).name
		console.log(nCampo)
		if(nCampo.substr(0,3)=="chk" || nCampo.substr(0,3)=="exc"){
			document.getElementById(cId).checked=false
		}else {
			document.getElementById(cId).value=""
		}
	}
}

function sumarDias(fecha, dias){
	let hoy = new Date(fecha);
	let semanaEnMilisegundos = 1000 * 60 * 60 * 24 * (dias);
	let suma = hoy.getTime() + semanaEnMilisegundos; //getTime devuelve milisegundos de esa fecha
	
	let fechaDentroDeUnaSemana = new Date(suma)
	
	const fechaFormateada = convertirFechaAMilisegundos(fechaDentroDeUnaSemana);
	return (fechaFormateada)
	
}

function convertirFechaAMilisegundos(fechaEnMilisegundos) {
	const fecha = new Date(fechaEnMilisegundos);
  
	// Formatear la fecha como "200012-23"
	const formateador = new Intl.DateTimeFormat("es-MX", {
	  year: "numeric",
	  month: "2-digit",
	  day: "2-digit",
	});
	
	return formateador.format(fecha);
  }
