PageSourceSearch

https://iymagazine.es/busquedas/busquedas.js

js iymagazine.es collected 2026-09-29 07:26:07 UTC 12,893 bytes, 292 lines download raw bytes

1$(document).ready(function(){
2	$(".boton_buscador_simple").click(function(){
3		var formulario_padre = $(this).closest("form");
4		//si estamos en una sección, hago la búsqueda sólo para la sección en la que estamos
5		var resultado = location.href.match(/\/seccion\/(\d+)\//);
6		if (resultado!=null) formulario_padre.find("input[name='q_seccion']").val(resultado[1]);
7		//reviso que el formulario se puede mandar y lo mando
8		if (protege_busqueda2(formulario_padre.find("input[name='cadena']").get(0),formulario_padre.find("input[name='tam_vector']").get(0)))
9			formulario_padre.submit();
10	});
11   //evento de selección de fecha = "entre_2_fechas" o fecha = "edicion"
12   $("#fecha").change(function(){
13      switch($(this).val()){
14         case "entre_2_fechas" :
15            $("#selector-edicion").hide();
16            $("#selectores-fechas").show(); break;
17         case "edicion" :
18            $("#selectores-fechas").hide();
19            $("#selectores-fechas input").val("");
20            $("#selector-edicion").show(); break;
21         default :
22            $("#selectores-fechas").hide();
23            $("#selectores-fechas input").val("");
24            $("#selector-edicion").hide();
25            break;
26      }
27   });
28   if($("#selectores-fechas").length > 0) {
29      //marco los selectores de fechas como datepickers
30      $("#selectores-fechas input").datepicker();
31      //doy estilo al botón submit
32      $("input:submit").button();
33   }
34});
35
36/*ORIGINAL EN : WWW/EDITMAKER/TRATA_ESPECIALES.JS*/
37/*VERSIÓN CASTELLANO - 1.0*/
38function trataEspeciales(texto,comillas) {
39    //ojo:si se modifica, modificar tb el que está en www/busquedas/busqueds.js
40    var resul = "";
41    for (i=0; i<texto.length; i++) {
42			codigo = texto.charCodeAt(i);
43			texto_simple = (codigo==9 || codigo==10 || codigo==13 || (codigo>=32 && codigo<=33) || (codigo>=35 && codigo<=38) || (codigo>=40 && codigo<=126) || (!comillas && (codigo == 34 || codigo == 39)));
44			if (texto_simple) {
45				switch (codigo) {
46					case 34:
47					resul += "\"";
48					break;
49					case 39:
50					resul += "\'";
51					break;
52					default:
53					resul += texto.charAt(i);
54					break;
55				}
56			}
57			else {
58				resul += "&#" + codigo + ";";
59			}
60		}
61		return resul;
62}
63/*Revisa que los parámetros pasados a la búsqueda sean correctos.
64Parámetros:
65- cad_area: Objeto que contiene la cadena
66- modo: 1 == por palabras
67        2 == por frase completa
68- tam_vec: Parámetro de salida: número de palabras en cad_area*/
69function protege_busqueda1(cad_area,modo,tam_vec) {
70   //Mira que la cadena tenga por lo menos 3 caracteres
71   if(cad_area.value.length<3) {
72      alert("Cadena no válida. Tamaño mínimo: 3 caracteres.")
73      return false
74   }
75   //Mira que, en caso de haber seleccionado búsqueda por fechas, las fechas sean válidas.
76   if(document.opbus.q_edicion[1].checked) {
77      if (!fechaOk(document.opbus.fecha1.value)) return false;
78      if (!fechaOk(document.opbus.fecha2.value)) return false;
79   }
80   ok = true
81   //Quita palabras comunes si la búsqueda es por palabras
82   if(modo[0].checked) //la búsqueda es por palabras
83      ok = filtra_palabras0(cad_area)
84   else if(modo[1].checked) //la búsqueda es completa
85      ok = filtra_palabras1(cad_area)
86   if (ok) {
87      //Cambia letras con tilde, eñes, ues con diéresis, etc. por su correspondiente código.
88      cad_area.value = trataEspeciales(cad_area.value,true)
89      //Cuenta cuántos bloques debe procesar.
90   }
91   return ok
92}
93/*Revisa que los parámetros pasados a la búsqueda pequeña sean
94correctos. Es una sobrecarga de la función anterior.
95Parámetros:
96- cad_area: Objeto que contiene la cadena
97- tam_vec: Parámetro de salida: número de palabras en cad_area*/
98function protege_busqueda2(cad_area,tam_vec) {
99   //Mira que la cadena tenga por lo menos 3 caracteres
100   if(cad_area.value.length<3) {
101      alert("Cadena no válida. Tamaño mínimo: 3 caracteres.")
102      return false
103   }
104   ok = true
105   //Quita palabras comunes si la búsqueda es por palabras
106   ok = filtra_palabras0(cad_area)
107   if (ok) {
108      cad_area.value = trataEspeciales(cad_area.value,true)
109   }
110   return ok
111}
112
113/*Elimina palabras comunes de una cadena. Hay que pedir a FAbio (Destak) que nos pase las traducciones de estas palabras para cambiarlas en Destak.
114Este fichero se traduce entero y ya está. No se pone la traducción a través de EditMaker.*/
115function elimina_palabras_comunes(cad) {
116   //Paso todo a minúsculas
117   cad = cad.toLowerCase();
118   //Quito signos de puntuación
119   cad = cad.replace(/,{1,}/g, " ")       //,
120   cad = cad.replace(/\.{1,}/g, " ")      //.
121   cad = cad.replace(/;{1,}/g, " ")       //;
122   cad = cad.replace(/¿{1,}/g, " ")       //¿
123   cad = cad.replace(/\?{1,}/g, " ")      //?
124   cad = cad.replace(/\*{1,}/g, " ")      //asterisco
125   cad = cad.replace(/\+{1,}/g, " ")      //+
126   cad = cad.replace(/\/{1,}/g, " ")      //barra
127
128   //Quito espacios blancos innecesarios, usando una expresión regular
129   cad = cad.replace(/\s{2,}/g, " ") //Adaptado de: http://www.devguru.com/Technologies/ecmascript/quickref/regexp_special_characters.html
130   cad = cad.replace(/^\s/,"") //quito primer espacio blanco si lo hay
131   cad = cad.replace(/\s$/,"") //quito último espacio blanco si lo hay
132
133   cad = " " + cad + " "
134   //Quito palabras comunes
135   cad = cad.replace(/\sa\s{1,}/g, " ")       //a
136   cad = cad.replace(/\sal\s{1,}/g, " ")      //al
137   cad = cad.replace(/\sante\s{1,}/g, " ")    //ante
138   cad = cad.replace(/\sademas\s{1,}/g, " ")  //ademas
139   cad = cad.replace(/\sademás\s{1,}/g, " ")  //además
140   cad = cad.replace(/\saun\s{1,}/g, " ")     //aun
141   cad = cad.replace(/\saún\s{1,}/g, " ")     //aún
142   cad = cad.replace(/\scabe\s{1,}/g, " ")    //cabe
143   cad = cad.replace(/\scada\s{1,}/g, " ")    //cada
144   cad = cad.replace(/\scomo\s{1,}/g, " ")    //como
145   cad = cad.replace(/\scómo\s{1,}/g, " ")    //cómo
146   cad = cad.replace(/\scon\s{1,}/g, " ")     //con
147   cad = cad.replace(/\scual\s{1,}/g, " ")    //cual
148   cad = cad.replace(/\scuando\s{1,}/g, " ")  //cuando
149   cad = cad.replace(/\scuándo\s{1,}/g, " ")  //cuándo
150   cad = cad.replace(/\sde\s{1,}/g, " ")      //de
151   cad = cad.replace(/\sdel\s{1,}/g, " ")     //del
152   cad = cad.replace(/\sdesde\s{1,}/g, " ")   //desde
153   cad = cad.replace(/\sdonde\s{1,}/g, " ")   //donde
154   cad = cad.replace(/\sdónde\s{1,}/g, " ")   //dónde
155   cad = cad.replace(/\se\s{1,}/g, " ")       //e
156   cad = cad.replace(/\sel\s{1,}/g, " ")      //el
157   cad = cad.replace(/\sella\s{1,}/g, " ")    //ella
158   cad = cad.replace(/\sellos\s{1,}/g, " ")   //ellos
159   cad = cad.replace(/\sél\s{1,}/g, " ")      //él
160   cad = cad.replace(/\sen\s{1,}/g, " ")      //en
161   cad = cad.replace(/\ses\s{1,}/g, " ")      //es
162   cad = cad.replace(/\sesa\s{1,}/g, " ")     //esa
163   cad = cad.replace(/\sese\s{1,}/g, " ")     //ese
164   cad = cad.replace(/\sesta\s{1,}/g, " ")    //esta
165   cad = cad.replace(/\sestá\s{1,}/g, " ")    //está
166   cad = cad.replace(/\sestas\s{1,}/g, " ")   //estas
167   cad = cad.replace(/\sestás\s{1,}/g, " ")   //estás
168   cad = cad.replace(/\seste\s{1,}/g, " ")    //este
169   cad = cad.replace(/\sestés\s{1,}/g, " ")   //estés
170   cad = cad.replace(/\sesto\s{1,}/g, " ")    //esto
171   cad = cad.replace(/\sestos\s{1,}/g, " ")   //estos
172   cad = cad.replace(/\sfue\s{1,}/g, " ")     //fue
173   cad = cad.replace(/\sfué\s{1,}/g, " ")     //fué
174   cad = cad.replace(/\sha\s{1,}/g, " ")      //ha
175   cad = cad.replace(/\shan\s{1,}/g, " ")     //han
176   cad = cad.replace(/\shas\s{1,}/g, " ")     //has
177   cad = cad.replace(/\shay\s{1,}/g, " ")     //hay
178   cad = cad.replace(/\she\s{1,}/g, " ")      //he
179   cad = cad.replace(/\shemos\s{1,}/g, " ")   //hemos
180   cad = cad.replace(/\sir\s{1,}/g, " ")      //ir
181   cad = cad.replace(/\sla\s{1,}/g, " ")      //la
182   cad = cad.replace(/\slas\s{1,}/g, " ")     //las
183   cad = cad.replace(/\sle\s{1,}/g, " ")      //le
184   cad = cad.replace(/\slo\s{1,}/g, " ")      //lo
185   cad = cad.replace(/\slos\s{1,}/g, " ")     //los
186   cad = cad.replace(/\smas\s{1,}/g, " ")     //mas
187   cad = cad.replace(/\smás\s{1,}/g, " ")     //más
188   cad = cad.replace(/\sme\s{1,}/g, " ")      //me
189   cad = cad.replace(/\smi\s{1,}/g, " ")      //mi
190   cad = cad.replace(/\smí\s{1,}/g, " ")      //mí
191   cad = cad.replace(/\sni\s{1,}/g, " ")      //ni
192   cad = cad.replace(/\sno\s{1,}/g, " ")      //no
193   cad = cad.replace(/\spara\s{1,}/g, " ")    //para
194   cad = cad.replace(/\spero\s{1,}/g, " ")    //pero
195   cad = cad.replace(/\spon\s{1,}/g, " ")     //pon
196   cad = cad.replace(/\spor\s{1,}/g, " ")     //por
197   cad = cad.replace(/\sporque\s{1,}/g, " ")  //porque
198   cad = cad.replace(/\sque\s{1,}/g, " ")     //que
199   cad = cad.replace(/\squé\s{1,}/g, " ")     //qué
200   cad = cad.replace(/\squien\s{1,}/g, " ")   //quien
201   cad = cad.replace(/\squién\s{1,}/g, " ")   //quién
202   cad = cad.replace(/\sse\s{1,}/g, " ")      //se
203   cad = cad.replace(/\ssé\s{1,}/g, " ")      //sé
204   cad = cad.replace(/\sser\s{1,}/g, " ")     //ser
205   cad = cad.replace(/\ssi\s{1,}/g, " ")      //si
206   cad = cad.replace(/\ssí\s{1,}/g, " ")      //sí
207   cad = cad.replace(/\ssu\s{1,}/g, " ")      //su
208   cad = cad.replace(/\ssus\s{1,}
208/g, " ")     //sus
209   cad = cad.replace(/\sun\s{1,}/g, " ")      //un
210   cad = cad.replace(/\sson\s{1,}/g, " ")     //son
211   cad = cad.replace(/\stanto\s{1,}/g, " ")   //tanto
212   cad = cad.replace(/\sten\s{1,}/g, " ")     //ten
213   cad = cad.replace(/\stu\s{1,}/g, " ")      //tu
214   cad = cad.replace(/\stú\s{1,}/g, " ")      //tú
215   cad = cad.replace(/\sun\s{1,}/g, " ")      //un
216   cad = cad.replace(/\suna\s{1,}/g, " ")     //una
217   cad = cad.replace(/\sva\s{1,}/g, " ")      //va
218   cad = cad.replace(/\sy\s{1,}/g, " ")       //y
219   cad = cad.replace(/\syo\s{1,}/g, " ")      //yo
220   cad = cad.substr(1,cad.length-2) //quito los dos espacios puestos al principio y al final
221   return cad
222}
223
224/*Filtra búsquedas demasiado costosas y/o maliciosas.
225El parámetro txtarea es el objeto "input type=text" que contiene
226la cadena de búsqueda.*/
227function filtra_palabras0(txtarea) {
228   cad = elimina_palabras_comunes(txtarea.value)
229   txtarea.value=cad
230   //mira si después del filtrado queda alguna palabra
231   if (cad.length==0) {
232      alert("El filtrado de palabras comunes eliminó todas las palabras.")
233      return false
234   }
235   //cuenta el número de palabras que quedan
236   trozos = cad.split(" ")
237   if (trozos.length > 5) {
238      alert("Demasiadas palabras. Intenta acotar tu búsqueda")
239      return false
240   }
241   return true
242}
243
244/*Filtra búsquedas demasiado costosas y/o maliciosas si la búsqueda
245es completa.
246El parámetro txtarea es el objeto "input type=text" que contiene
247la cadena de búsqueda.*/
248function filtra_palabras1(txtarea) {
249   cad = txtarea.value
250   //Paso todo a minúsculas
251   //Quito signos de puntuación
252   cad = cad.replace(/,{1,}/g, " ")       //,
253   cad = cad.replace(/\.{1,}/g, " ")      //.
254   cad = cad.replace(/;{1,}/g, " ")       //;
255   cad = cad.replace(/¿{1,}/g, " ")       //¿
256   cad = cad.replace(/\?{1,}/g, " ")      //?
257   cad = cad.replace(/\*{1,}/g, " ")      //asterisco
258   cad = cad.replace(/\+{1,}/g, " ")      //+
259   cad = cad.replace(/-{1,}/g, " ")       //-
260   cad = cad.replace(/\/{1,}/g, " ")      //barra
261   cad = cad.replace(/\"{1,}/g, " ")      //"
262   cad = cad.replace(/\'{1,}/g, " ")      //'
263
264   //Quito espacios blancos innecesarios, usando una expresión regular
265   cad = cad.replace(/\s{2,}/g, " ") //Adaptado de: http://www.devguru.com/Technologies/ecmascript/quickref/regexp_special_characters.html
266   cad = cad.replace(/^\s/,"") //quito primer espacio blanco si lo hay
267   cad = cad.replace(/\s$/,"") //quito último espacio blanco si lo hay
268
269   //mira si después del filtrado queda alguna palabra
270   if (cad.length<1) {
271      alert("El filtrado eliminó todas las palabras.")
272      return false
273   }
274
275   txtarea.value = cad
276   return true
277}
278
279function fechaOk(f){
280   if(f.length<8 || f.length>10) { alert("La fecha no tiene una longitud correcta");return false; }
281   //Expresión regular que reconoce cualquier caracter que no sea un dígito o "/"
282   rexp = /[^\d\/]/gi
283   if(rexp.test(f)) { alert("La fecha contiene caracteres extraños");return false; }
284   partes = f.split("/")
285   dia = parseInt(partes[0],10);
286   mes = parseInt(partes[1],10);
287   ano = parseInt(partes[2],10);
288   if (dia<1 || dia>31) { alert("Día inválido (" + dia + ")"); return false; }
289   if (mes<1 || mes>12) { alert("Mes inválido (" + mes + ")"); return false; }
290   if (ano<1700 || ano>2100) { alert("Año inválido (" + ano + ")"); return false; }
291   return true;
292}

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.