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.