1jQuery(document).ready(function ($) { 2 let ajaxRequest; // Variable para almacenar la solicitud AJAX en curso 3const sinonimos = { 4 "NOTIC": [{ title: "Noticias ISPCH", url: "/noticia/" }], 5 "NOTICIA": [{ title: "Noticias ISPCH", url: "/noticia/" }], 6 "NOTICIAS": [{ title: "Noticias ISPCH", url: "/noticia/" }], 7 "ANAMED": [{ title: "Agencia Nacional de Medicamentos", url: "/anamed/" }], 8 "ANDIM": [{ title: "Agencia Nacional de Dispositivos Médicos", url: "/andim/" }], 9 "ANDID": [{ title: "Agencia Nacional de Dispositivos Médicos", url: "/andim/" }], 10 "COVID": [{ title: "Información y Medidas ISP COVID-19", url: "/isp-covid-19/" }], 11 "19": [{ title: "Información y Medidas ISP COVID-19", url: "/isp-covid-19/" }], 12 "DONACION": [{ title: "Gestión de Trasplante", url: "/biomedico/gestion-de-trasplante/" }], 13 "ORGANOS": [{ title: "Gestión de Trasplante", url: "/biomedico/gestion-de-trasplante/" }], 14 "DROGAS": [{ title: "Estupefacientes y Psicotrópicos", url: "/anamed/medicamentos/estupefacientes-y-psicotropicos/"}], 15 "REVISTA": [{ title: "Revista CientÃfica del ISPCH", url: "https://revista.ispch.gob.cl/"}], 16 "VIH": [{ title: "Dispositivos Médicos de Diagnóstico in vitro con Registro Sanitario", url: "/andim/listado-de-dispositivos-medicos-establecimientos-y-empresas/dispositivos-medicos-in-vitro-con-registro-sanitario/"}], 17 "SIPRO": [{ title: "Importación Uso Personal", url: "/anamed/importacion-y-exportacion/importacion-uso-pers
17onal/"}], 18 "GICONA": [{ title: "Importación Uso Comercial", url: "/anamed/importacion-y-exportacion/importacion-uso-comercial/"}], 19 "MEDICAMENTO": [{ title: "Sistema Consulta Productos Registrados", url: "https://registrosanitario.ispch.gob.cl/"}], 20 "MEDICAMENTOS": [{ title: "Sistema Consulta Productos Registrados", url: "https://registrosanitario.ispch.gob.cl/"}], 21 "COSMETICOS": [{ title: "Sistema Consulta Productos Registrados", url: "https://registrosanitario.ispch.gob.cl/"}], 22 "PLAGUICIDAS": [{ title: "Sistema Consulta Productos Registrados", url: "https://registrosanitario.ispch.gob.cl/"}], 23 "DESINFECTANTES": [{ title: "Sistema Consulta Productos Registrados", url: "https://registrosanitario.ispch.gob.cl/"}], 24 "SANITIZANTES": [{ title: "Sistema Consulta Productos Registrados", url: "https://registrosanitario.ispch.gob.cl/"}], 25 "INSPECTORES" : [{ title: "Fiscalización, Inspección y Control", url: "/anamed/establecimientos-farmaceuticos-y-cosmeticos/actividades-de-inspeccion-fiscalizacion-y-control/"}], 26 "LISTADO" : [{ title: "Fiscalización, Inspección y Control", url: "/anamed/establecimientos-farmaceuticos-y-cosmeticos/actividades-de-inspeccion-fiscalizacion-y-control/"}], 27 "MURCIELAGO": [ 28 { title: "Rabia", url: "/biomedico/enfermedades-transmisibles/virus/rabia/" }, 29 { title: "Vigilancia Rabia", url: "/biomedico/vigilancia-de-laboratorio/ambitos-de-vigilancia/vigilancia-rabia/" } 30 ] 31}; 32 33$("#buscador").on("input", function () { 34 let termino = $(this).val().trim(); 35 let sugerencias = $("#sugerencias"); 36 37 if (termino.length === 0) { 38 sugerencias.empty(); 39 sugerencias.hide(); 40 if (ajaxRequest) { 41 ajaxRequest.abort(); 42 } 43 return; 44 } 45 46 if (ajaxRequest) { 47 ajaxRequest.abort(); 48 } 49 50 ajaxRequest = $.ajax({ 51 url: "https://www.ispch.cl/wp-admin/admin-ajax.php", 52 type: "GET", 53 data: { action: "buscar_palabras_similares", term: termino }, 54 success: function (data) { 55 sugerencias.empty(); 56 let uniqueItems = []; 57 58 data.forEach(item => { 59 if (!uniqueItems.some(el => el.title === item.title)) { 60 uniqueItems.push(item); 61 } 62 }); 63 64 uniqueItems = uniqueItems.filter(item => 65 /^[a-zA-ZáéÃóúÃÃÃÃÃ0-9\s\(\)\-.,¿\?:]+$/.test(item.title) && 66 !/\b\d{4}\b/.test(item.title) 67 ); 68 69 let searchTermLower = termino.toLowerCase(); 70 uniqueItems.sort((a, b) => { 71 let titleA = a.title.toLowerCase(); 72 let titleB = b.title.toLowerCase(); 73 74 let startsWithA = titleA.startsWith(searchTermLower); 75 let startsWithB = titleB.startsWith(searchTermLower); 76 77 if (startsWithA && !startsWithB) return -1; 78 if (!startsWithA && startsWithB) return 1; 79 80 return titleA.localeCompare(titleB); 81 }); 82 83 // Agregar sinónimos si coinciden con el término exacto 84 if (sinonimos[termino.toUpperCase()]) { 85 uniqueItems.unshift(...sinonimos[termino.toUpperCase()]); 86 } 87 88 if (uniqueItems.length > 0) { 89 sugerencias.show(); 90 uniqueItems.forEach((item) => { 91 sugerencias.append(`<li class="sugerencia-item"> 92 <a href="${item.url}" target="_blank">${item.title}</a> 93 </li>`); 94 }); 95 96 $(".sugerencia-item a").on("click", function (e) { 97 e.preventDefault(); 98 $("#buscador").val($(this).text()); 99 window.location.href = $(this).attr("href"); 100 }); 101 } else { 102 sugerencias.hide(); 103 } 104 }, 105 error: function () { 106 if (ajaxRequest.statusText !== "abort") { 107 console.error("Error en la solicitud AJAX"); 108 } 109 } 110 }); 111 }); 112});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.