var vGnum=0;
var jGfunciones="{}";
var vGmod=""
var vGfiltro=""
var vGval="";

function filtrar(nMod,vCampo,cValor,cCondicion,cmodalidad,filtro,accion,invoca){
	
	accion = accion || "i";

	//if flitro=1 entonces el valor depende del campo que 
	//url="modulo="+nMod+"&tipo="+"l"+"&accion="+"i"+"&condicion="+cCondicion+"&codemp="+VGempresa;
	url="modulo="+nMod+"&tipo="+"l"+"&accion="+accion+"&condicion="+cCondicion+"&codemp="+VGempresa;
	if(filtro=='interactive' && (invoca !== undefined && invoca !== null) ){
		depende=invoca.name
		vdepende=invoca.value
		url+="&campo="+depende+"&valor="+vdepende;
	}
	
	vGid=vCampo;//id del select para cargar valores
	vGmod=cmodalidad
	vGfiltro=filtro
	vGval=cValor;//valor x defecto armar la condicion, pendiente revisar bien 
	Rpage="pdo/pdoconsulta.php"
	
	if (cmodalidad === "t") {
		// doAjax(Rpage, url, 'resp_filtrar_tab', 'gets', '0', 'Ccargar');
	} else if (cmodalidad === "color") {
		send_datas(url, Rpage, 'resp_filtrar_div');
	} else if (cmodalidad === "img") {
		send_datas(url, Rpage, 'resp_filtrar_img');
	} else if (cmodalidad === "tb") {
		if(sessionStorage.getItem("accion") !== "e"){
			//?  doAjax(Rpage, url, 'resp_filtrar_tabfind', 'gets', '0', 'Ccargar'); //hace las veces de if
			//:  resp_filtrar_tabfind_e(); //y have veces de sino
		}
		
	} else {
		send_datas(url, Rpage, 'resp_filtrar_list');
	}
	
}
function resp_filtrar_img(ResTex) {
    console.log(ResTex);
    const productos = JSON.parse(ResTex);
    const logoEmpresa = `../image/${VGempresa.toLowerCase()}.png`;

    const contenedor = document.getElementById('contenedor-productos');
    contenedor.innerHTML = '';

    productos.forEach(prod => {
        const div = document.createElement('div');
        div.classList.add('producto');
        div.style.border = '1px solid #ccc';
        div.style.padding = '10px';
        div.style.margin = '10px';
        div.style.width = '180px';
        div.style.height = '220px';
        div.style.display = 'inline-block';
        div.style.textAlign = 'center';
        div.style.cursor = 'pointer';
        div.style.verticalAlign = 'top';

        const img = document.createElement('img');
        img.src = prod.foto && prod.foto.trim() !== '' ? prod.foto : logoEmpresa;
        img.alt = prod.nombre || prod.codigo || 'Producto';
        img.style.width = '100px';
        img.style.height = '100px';
        img.style.objectFit = 'cover';
        div.appendChild(img);

        for (const [key, value] of Object.entries(prod)) {
            if (key === 'foto') continue;

            const campo = document.createElement('div');

            let texto = '';

            if (key === 'id') {
                texto = `id: ${value}`;
            } else if (key.toLowerCase().includes('vlr')) {
                texto = `$${parseFloat(value).toLocaleString()}`;
            } else {
                texto = `${value}`;
            }

            campo.textContent = texto;
            div.appendChild(campo);
        }

        //div.onclick = () => agregarAlCarrito(prod);
		div.onclick = () => agregarItem('tabla1', null, null, null, prod);


        contenedor.appendChild(div);
    });
}



function resp_filtrar_div(ResTex) {
    console.log(ResTex)
	categorias = JSON.parse(ResTex);
	const container = document.getElementById('divcategory');
	categorias.forEach(cat => {
  		const btn = document.createElement('button');
  		btn.textContent = cat.nombre;
  		btn.style.backgroundColor = cat.color;
  		btn.style.color = '#ccc';
  		btn.style.border = 'none';
  		btn.style.padding = '10px 15px';
  		btn.style.margin = '5px';
  		btn.style.borderRadius = '6px';
  		btn.style.cursor = 'pointer';

  		btn.onclick = () => filtrar('liteproducts','','',' and artcla="'+cat.Id+'" ','img','','t');
  		container.appendChild(btn);
	});

}
function resp_filtrar_list(ResTex) {
    console.log(ResTex)
	cCombo=document.getElementById(vGid);
	cCombo.innerHTML="";
	/*console.log(vGnum)
	console.log(jGfunciones.Datos.length);
	console.log(ResTex+vGid);*/
	Detalle="<option value='' ></option>";
	voption="";
	var oJsonDatos = JSON.parse(ResTex);
	z=0;
	if(oJsonDatos!="ERROR" && ResTex.length>15){
	    if(ResTex.length>1){
			
	        var NJsonItem=oJsonDatos.length;
			RowArray=0;//esto lo adicione nuevo
			cCombo.options[RowArray] = new Option("Seleccione","")
			for (RowArray=0;RowArray<NJsonItem; RowArray++){
				cad=oJsonDatos[RowArray];	
				j=RowArray+1;
				if(vGval==oJsonDatos[RowArray].codigo && vGval!=""){
					z=1;
					Detalle+='<option value="'+oJsonDatos[RowArray].codigo+'" selected>'+oJsonDatos[RowArray].nombre+'</option>'
				}else{
					Detalle+='<option value="'+oJsonDatos[RowArray].codigo+'">'+oJsonDatos[RowArray].nombre+'</option>'
				}
			}

			cCombo.innerHTML=Detalle;
		}else{
			alert("no hay registros");
    	}
	}
	if(z==1 && vGval!="" && (VGrol=='docente' || VGrol=='estudiante') ){
		cCombo.disabled = true;
	}
	vGnum++;
	//console.log(vGnum+"tam:"+jGfunciones.Datos.length)
	if(vGnum==jGfunciones.Datos.length){
		if(sessionStorage.getItem('accion')=='e' ){
			if(sessionStorage.getItem('modulo')=='ordenserviciot'){
				console.log("di llama")
				setTimeout(lmodulo(sessionStorage.getItem('modulo'),sessionStorage.getItem('tcampo'),sessionStorage.getItem('tid'),sessionStorage.getItem('accion')), 1000);
			}else{
				setTimeout(imodulo(sessionStorage.getItem('modulo'),sessionStorage.getItem('tcampo'),sessionStorage.getItem('tid'),sessionStorage.getItem('accion')), 1000);
			}
		}
	}
	
	if (jGfunciones.Datos.length>1){
		if(vGnum<=jGfunciones.Datos.length){
			//console.log(vGnum+jGfunciones.Datos[vGnum-1].modulo)
			filtrar(jGfunciones.Datos[vGnum-1].modulo,jGfunciones.Datos[vGnum-1].objeto,jGfunciones.Datos[vGnum-1].valor,jGfunciones.Datos[vGnum-1].condicion,jGfunciones.Datos[vGnum-1].modalidad,jGfunciones.Datos[vGnum-1].lost);
		}
	}else{

	}
}


function buscar(nMod,cValor,vCampo,vTip,tCampo,vdatos,condicion){
	cvector=vdatos
	console.log(vCampo)
	vGid=vCampo;
	cOrden=""
	nCampo=""
	url="modulo="+nMod;
	if(tCampo==1){
		iCampo=cValor
		nCampo=iCampo.trim();
		vCampo=document.getElementById(vGid).value;
	}else{
		//return
	}
	url+="&campo="+nCampo;
	url+="&valor="+vCampo;
	url+="&codemp="+VGempresa;
	Rpage="pdo/pdobusqueda.php"
	console.log(url)
	if(vTip=='TR'){
		send_data(url,Rpage,"resp_filtrar_table");
	}else{
		send_data(url,Rpage,"resp_filtrar_busq");
	}
	
}

/*function resp_filtrar_busq(ResTex) {
	console.log(ResTex);
	var oJsonDatos = JSON.parse(ResTex);
	console.log(oJsonDatos);

	if (oJsonDatos != "ERROR") {
		if (ResTex.length > 1) {
			cad = oJsonDatos[0];
			console.log(cad);

			for (var i in cad) {
				var cNom = i;
				console.log(cNom);
				
				var campo = document.getElementsByName(cNom);
				
				if (campo.length > 0 && campo[0]) {
					console.log(campo);
					campo[0].value = cad[i];

					if (campo[0].name.substr(0, 3) === 'chk') {
						campo[0].checked = (cad[i] == 1);
					}
				} else {
					console.warn("Campo no encontrado: " + cNom);
				}
			}
		}
	}

	procesarBusqueda();
}*/
function resp_filtrar_busq(ResTex) {
	console.log(ResTex);
	var oJsonDatos = JSON.parse(ResTex);
	console.log(oJsonDatos);

	if (oJsonDatos != "ERROR" && oJsonDatos.length > 0) {
		// ➤ Encabezado (si existe)
		var encabezado = oJsonDatos[0];
		console.log("Encabezado:", encabezado);

		for (var i in encabezado) {
			var cNom = i;
			var campo = document.getElementsByName(cNom);

			if (campo.length > 0 && campo[0]) {
				campo[0].value = encabezado[i];

				if (campo[0].name.substr(0, 3) === 'chk') {
					campo[0].checked = (encabezado[i] == 1);
				}
			} else {
				console.warn("Campo no encontrado: " + cNom);
			}
		}

		// ➤ Recorrer todos los registros en busca de items
		var items = [];

		for (var j = 0; j < oJsonDatos.length; j++) {
			var registro = oJsonDatos[j];

			if (registro["items_Id"] !== undefined && registro["items_Id"] !== null && registro["items_Id"] !== "") {
				var item = {};

				for (var campo in registro) {
					if (campo.startsWith("items_")) {
						let key = campo.replace("items_", "");
						item[key] = registro[campo];
					}
				}

				if (Object.keys(item).length > 0) {
					items.push(item);
				}
			}
		}

		// ➤ Guardar en localStorage y mostrar si hay ítems válidos
		if (items.length > 0) {
			localStorage.setItem("items", JSON.stringify(items));
			renderItems();

			// Mostrar en pantalla
			//debugDiv.innerText = JSON.stringify(items, null, 2);
		} else {
			//debugDiv.innerText = "No se encontraron ítems válidos.";
		}
	}

	procesarBusqueda();
}



function filter_lost(nMod,vCampo,vCamporec,vDatos,condicion,orden){
	if(vDatos.length>0){
		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)

	}else{
		condicion=''
		orden=''
		vCamporec=""
	}
		
	url="modulo="+nMod;
	url+="&tipo="+"l";
	url+="&accion="+"t";
	url+="&condicion="+condicion;
	url+="&orden="+orden;
	url+="&codemp="+VGempresa;
	vGide=vCamporec;
	Rpage="pdo/pdobusqueda.php"
	console.log(url)
	vTip="TR"//Parametrizarla
	if(vTip=='TR'){
		send_data(url,Rpage,"resp_filtrar_table");
	}else{
		send_data(url,Rpage,"resp_filtrar_busq");
	}
	
}
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 resp_filtrar_table(ResTex) {
	console.log(ResTex);
	var oJsonDatos = JSON.parse(ResTex);
	console.log(oJsonDatos);
	if(oJsonDatos!="ERROR"){
	    if(ResTex.length>1){
		}
		cad=oJsonDatos[0];
		console.log(cad);
		cDetalle="<div id='buscar_item'></div><table id='table_item' class='order_item' ><tbody>"
		for(j=0;j<oJsonDatos.length;j++){
			cad=oJsonDatos[j];
			cDetalle+="<tr>";
			for (i in cad){
				cNom=i;//nombre del campo
				if(cNom=='nombre'){
					cDetalle+='<td><a href="javascript:agregaritem(\''+cad['Id']+'\','+cad['artpvp']+')" >'+cad[i]+'</a></td>'
					console.log("<td><a href='javascript:agregaritem(\'"+cad['Id']+"\')' >"+cad[i]+"</a></td>")
				}else{
					if(cNom!="Id"){
						cDetalle+="<td>"+cad[i]+"</td>"
					}
					
				}
				
				console.log(cad['Id']);
			}
			cDetalle+="</tr>";

		}
		cDetalle+="</tbody></table></div>"
		console.log(cDetalle)
		document.getElementById("productos").innerHTML=cDetalle;
		document.getElementById("buscar_item").innerHTML='<input type="text" id="searchInput" onkeyup="filtrarTabla(\'searchInput\',\'table_item\')" placeholder="Buscar...">' 
	}
}


function filtrarTabla(searchInput,dataTable) {
	// Obtener el valor del input
	let input = document.getElementById(searchInput);
	let filter = input.value.toLowerCase();
	let table = document.getElementById(dataTable);
	
	let tr = table.getElementsByTagName('tr');
	console.log(tr)
	// Recorrer todas las filas de la tabla y ocultar las que no coincidan con el filtro
	for (let i = 0; i < tr.length; i++) {
		let td = tr[i].getElementsByTagName('td');
		let match = false;
		for (let j = 0; j < td.length; j++) {
			if (td[j]) {
				if (td[j].innerHTML.toLowerCase().indexOf(filter) > -1) {
					match = true;
					break;
				}
			}
		}
		tr[i].style.display = match ? '' : 'none';
	}
}
function agregaritem(codigo,precio){
	campo=document.getElementsByName('nrorem');
	cRemi=campo[0].value
	sw=0
	if(cRemi.length<=0){
		campo[0].style.borderColor="red";
		sw=1
	}
	campo=document.getElementsByName('fecha');
	cFch=campo[0].value
	if(cFch.length<=0){
		campo[0].style.borderColor="red";
		sw=1
	}
	campo=document.getElementsByName('nriper');
	cNri=campo[0].value
	if(cNri.length<=0){
		campo[0].style.borderColor="red";
		sw=1
	}
	if(sw==1){
		return;
	}
	url="modulo=Pedido";
	url+="&tipo="+"l";
	url+="&accion="+'temp';
	url+="&remision="+cRemi;
	url+="&codigo="+codigo;
	url+="&fecha="+cFch;
	url+="&tercero="+cNri;
	url+="&precio="+precio;
	url+="&codemp="+VGempresa;
	console.log(url)
    Rpage="pdo/base.php"
	send_datas(url,Rpage,"resp_registro_adi");

}
