PageSourceSearch

https://www.pozuelodecalatrava.es/js/funLib.js?1790320520

js pozuelodecalatrava.es collected 2026-09-25 07:20:17 UTC 22,277 bytes, 487 lines download raw bytes

1
2// LIBRERÍA DE FUNCIONES 01.04.2021 -------------------------------------------------------------------------------------------------------------------------------------
3
4// C O N S T A N T E S --------------------------------------------------------------------------------------------------------------------------------------------------
5
6const URL = 1;
7
8
9// M A N I P U L A C I Ó N   D E   T E X T O S  -------------------------------------------------------------------------------------------------------------------------
10
11// ------------------------------------------------------------------------------------------------------------------
12// Nombre: fncPonerCeros()											
13// Resultado: Cadena												
14// Comentarios: Rellena ceros a la izquierda hasta completar la longitud indicada	
15// ------------------------------------------------------------------------------------------------------------------
16function fncPonerCeros(intNumero, intLongitud) {
17	intNumero = intNumero.toString();
18	while (intNumero.length < intLongitud)
19	intNumero = "0" + intNumero;
20	return intNumero;
21}
22
23
24// ------------------------------------------------------------------------------------------------------------------
25// Nombre: fncTamArchivo()											
26// Resultado: Cadena												
27// Comentarios: Convierte bytes en unidades de 1 decimal				
28// ------------------------------------------------------------------------------------------------------------------
29function fncTamArchivo(intBytes) {
30	var sizes = ['intBytes', 'KB', 'MB', 'GB', 'TB'];
31	if (intBytes == 0) return 'n/a';
32	var i = parseInt(Math.floor(Math.log(intBytes) / Math.log(1024)));
33	if (i == 0) return intBytes + ' ' + sizes[i];
34	return (intBytes / Math.pow(1024, i)).toFixed(1) + ' ' + sizes[i];
35};
36
37
38// ------------------------------------------------------------------------------------------------------------------
39// Nombre: fncEuros()												
40// Argumentos: decNumero (Decimal)									
41// Descripción: Devuelve el número formateado en euros				
42// ------------------------------------------------------------------------------------------------------------------
43function fncEuros(decNumero) {
44	strEuros = decNumero.toFixed(2) + " €";
45	return strEuros;
46}
47
48
49// ------------------------------------------------------------------------------------------------------------------
50// Nombre: fncFormateaLink()											
51// Argumentos: objCaja												
52// Descripción: Formatea la dirección web o email                         	
53// ------------------------------------------------------------------------------------------------------------------
54function fncFormateaLink(objCaja) {
55	objCaja.val($.trim(objCaja.val()));
56	if (objCaja.val() != "" && objCaja.val().toLowerCase().indexOf("mailto:") == -1) {
57        if (objCaja.val().match(/^.+\@.+\..+$/)) {
58            objCaja.val("mailto:" + objCaja.val().toLowerCase());
59        }
60        else if (objCaja.val().substring(0,7) != "http://" && objCaja.val().substring(0,8) != "https://") {
61			objCaja.val("https://" + objCaja.val());
62		}
63    }
64    else objCaja.val(objCaja.val().toLowerCase());
65}
66
67
68// ------------------------------------------------------------------------------------------------------------------
69// Nombre: fncTitulo()											
70// Argumentos: strTexto (Cadena)											
71// Descripción: Devuelve el texto formateado con la primera letra de cada palabra en mayúsculas, excepto artículos                         	
72// ------------------------------------------------------------------------------------------------------------------
73function fncTitulo(strTexto) {
74	var strReservadas = 'el la los las un una unos unas lo al del de en';
75	$arrTexto = strTexto.split(" ");
76	var $arrAux = new Array();
77	for (var i = 0; i < $arrTexto.length; ++i) {
78		if (strReservadas.indexOf($arrTexto[i]) === -1) {
79			$arrAux.push($arrTexto[i].charAt(0).toUpperCase() + $arrTexto[i].slice(1));
80		}
81		else {
82			$arrAux.push($arrTexto[i].toLowerCase());
83		}
84	}
85	return $arrAux.join(" ");
86}
87
88
89// ------------------------------------------------------------------------------------------------------------------
90// Nombre: fncPrepararCadena()											
91// Argumentos: intTipo (Entero) --> Tipo de preparacion para la cadena		
92//			   strCadena (Cadena) --> Cadena con el texto a preparar												
93// Descripción: Cadena con el texto formateado para el formato elegido                        	
94// ------------------------------------------------------------------------------------------------------------------
95function fncPrepararCadena(intTipo, strCadena) {
96	if (strCadena) {
97		switch (intTipo) {
98			case URL:
99				strCadena = strCadena.toLowerCase().trim().replace(/[ñ]/g,"n").replace(/[á]/g,"a").replace(/[é]/g,"e").replace(/[í]/g,"i").replace(/[ó]/g,"o").replace(/[ú]/g,"u").replace(/[ä]/g,"a").replace(/[ë]/g,"e").replace(/[ï]/g,"i").replace(/[ö]/g,"o").replace(/[ü]/g,"u").replace(/[â]/g,"a").replace(/[ê]/g,"e").replace(/[î]/g,"i").replace(/[ô]/g,"o").replace(/[û]/g,"u").replace(/[º]/g,"").replace(/[ª]/g,"").replace(/[\\]/g,"").replace(/[¡]/g,"").replace(/[!]/g,"").replace(/[|]/g,"").replace(/[·]/g,"").replace(/[~]/g,"").replace(/[¬]/g,"").replace(/[%]/g,"").replace(/[(]/g,"").replace(/[)]/g,"").replace(/[=]/g,"").replace(/[?]/g,"").replace(/[¿]/g,"").replace(/[€]/g,"e").replace(/[*]/g,"").replace(/[,]/g,"").replace(/[[]/g,"").replace(/[]]/g,"").replace(/[{]/g,"").replace(/[}]/g,"").replace(/[<]/g,"").replace(/[>]/g,"").replace(/[ - ]/g,"-").replace(/[ ]/g,"-").replace(/[_]/g,"-").replace(/[.]/g,"").replace(/[,]/g,"").replace(/[;]/g,"").replace(/[:]/g,"").replace(/[\"]/g,"").replace(/[“]/g,"").replace(/[”]/g,"").replace(/[`]/g,"").replace(/[´]/g,"").replace(/[‘]/g,"").replace(/[’]/g,"").replace(/[']/g,"").replace(/[†]/g,"").replace(/[#]/g,"");
100				break;
101		}
102	}
103	else strCadena = "";
104	return strCadena;
105}
106
107
108// ------------------------------------------------------------------------------------------------------------------
109// Nombre: fncRestringirCaracteres()								
110// Argumentos: objEvento,strTipoPermitido							
111// Descripción: Restringe el uso de ciertos caracteres				
112// ------------------------------------------------------------------------------------------------------------------
113function fncRestringirCaracteres(objEvento, strTipoPermitido) {
114	
115	// Variables que definen los caracteres permitidos
116	var strEnteros = "0123456789";
117	var strNumeros = "0123456789.-";
118	var strDecimales = "0123456789.";
119	var strCaracteres = " abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ";
120	var strAlfanumericos = " abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ0123456789";
121	var strFiles = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_";
122	var strTags = " áéíóúabcdefghijklmnñopqrstuvwxyzÁÉÍÓÚABCDEFGHIJKLMNÑOPQRSTUVWXYZ0123456789,";
123	var strFTP = "0123456789_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
124	var strLogin = "0123456789_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
125	var teclas_especiales = [9, 8, 37, 39];
126
127	// Seleccionar los caracteres a partir del parámetro de la función
128	switch(strTipoPermitido) {
129		case 'ent':
130			strCaracteresPermitidos = strEnteros;
131			break;
132		case 'num':
133			strCaracteresPermitidos = strNumeros;
134			break;
135		case 'dec':
136			strCaracteresPermitidos = strDecimales;
137			break;
138		case 'car':
139			strCaracteresPermitidos = strCaracteres;
140			break;
141		case 'an':
142			strCaracteresPermitidos = strAlfanumericos;
143			break;
144		case 'files':
145			strCaracteresPermitidos = strFiles;
146			break;
147		case 'tags':
148			strCaracteresPermitidos = strTags;
149			break;
150		case 'ftp':
151			strCaracteresPermitidos = strFTP;
152			break;
153		case 'login':
154			strCaracteresPermitidos = strLogin;
155			break;
156	}
157
158	// Obtener la tecla pulsada
159	var evento = objEvento || window.event;
160	var codigoCaracter = evento.charCode || evento.keyCode;
161	var caracter = String.fromCharCode(codigoCaracter);
162
163	// Comprobar si la tecla pulsada es alguna de las teclas especiales
164	// (teclas de borrado y flechas horizontales)
165	var tecla_especial = false;
166	for (var i in teclas_especiales) {
167		if (codigoCaracter == teclas_especiales[i]) {
168			tecla_especial = true;
169			break;
170		}
171	}
172
173	// Comprobar si la tecla pulsada se encuentra en los caracteres permitidos
174	// o si es una tecla especial
175	return strCaracteresPermitidos.indexOf(caracter) != -1 || tecla_especial;
176}
177
178
179// F U N C I O N E S   P A R A   F E C H A S   Y   H O R A S  -----------------------------------------------------------------------------------------------------------
180
181// ------------------------------------------------------------------------------------------------------------------
182// Nombre: fncConvertirFechaBD()										
183// Descripción: Convierte la fecha de aaaa-mm-dd a aaaammdd		
184// ------------------------------------------------------------------------------------------------------------------
185function fncConvertirFechaBD(strFecha) {
186	return strFecha.replace(/\-/g,'');
187}
188
189
190// ------------------------------------------------------------------------------------------------------------------
191// Nombre: fncConvertirFechaInput()									
192// Descripción: Convierte la fecha de aaaammdd a aaaa-mm-dd			
193// ------------------------------------------------------------------------------------------------------------------
194function fncConvertirFechaInput(strFecha) {
195	return strFecha.substring(0,4) + "-" + strFecha.substring(4,6) + "-" + strFecha.substring(6,8);
196}
197
198
199// ------------------------------------------------------------------------------------------------------------------
200// Nombre: fncConvertirHoraBD()														
201// Descripción: Convierte la hora de hh:mm a hhmm										
202// ------------------------------------------------------------------------------------------------------------------
203function fncConvertirHoraBD(strHora) {
204	return strHora.substring(0,2) + strHora.substring(3,5);
205}
206
207
208// ------------------------------------------------------------------------------------------------------------------
209// Nombre: fncConvertirFechaTime()                                          
210// Descripción: Convierte la fecha dd/mm/aaaa a time						
211// ------------------------------------------------------------------------------------------------------------------
212function fncConvertirFechaTime(strFecha) {
213	var fecha = new Date(strFecha.substring(6,10),(strFecha.substring(3,5)-1),strFecha.substring(0,2));
214	return (fecha.getTime()/1000);
215}
216
217
218// ------------------------------------------------------------------------------------------------------------------
219// Nombre: fncComprobarRangoFechas()									
220// Argumentos: strFecha1 (Cadena) --> Fecha inicial en formato Web	
221//			  strFecha2 (Cadena) --> Fecha final en formato Web		
222// Resultado: Boolean												
223// Descripción: Comprueba que 'strFecha1' sea menor que 'strFecha2'	
224// ------------------------------------------------------------------------------------------------------------------
225function fncComprobarRangoFechas(strFecha1, strFecha2) {
226	var strAux1 = "";
227	var strAux2 = "";
228	strAux1 = fncConvertirFechaBD(strFecha1);
229	strAux2 = fncConvertirFechaBD(strFecha2);
230	return (parseInt(strAux2) - parseInt(strAux1) < 0)? false: true;
231}
232
233
234// ------------------------------------------------------------------------------------------------------------------
235// Nombre: fncComprobarRangoHoras()									
236// Argumentos: strHora1 (Cadena) --> Hora inicial en formato Web	
237//			   strHora2 (Cadena) --> Hora final en formato Web		
238// Resultado: Boolean												
239// Descripción: Comprueba que 'strHora1' sea menor que 'strHora2'	
240// ------------------------------------------------------------------------------------------------------------------
241function fncComprobarRangoHoras(strHora1, strHora2) {
242	var strAux1 = "";
243	var strAux2 = "";
244	strAux1 = fncConvertirHoraBD(strHora1);
245	strAux2 = fncConvertirHoraBD(strHora2);
246	return (parseInt(strAux2) - parseInt(strAux1) < 0)? false: true;
247}
248
249
250// V A L I D A C I Ó N   D E   D A T O S  -------------------------------------------------------------------------------------------------------------------------------
251
252// ------------------------------------------------------------------------------------------------------------------
253// Nombre: fncValidarEmail()											
254// ------------------------------------------------------------------------------------------------------------------
255function fncValidarEmail(strEmail) {
256	return strEmail.match(/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/);
257}
258
259
260// ------------------------------------------------------------------------------------------------------------------
261// Nombre: fncValidarURL()											
262// ------------------------------------------------------------------------------------------------------------------
263function fncValidarURL(s) {
264    if (!fncValidarURL.rx_url) {
265        fncValidarURL.rx_url=/^(?:(?:https?|ftp):\/\/)?(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,}))\.?)(?::\d{2,5})?(?:[/?#]\S*)?$/i;
266        fncValidarURL.prefixes=['http:\/\/', 'https:\/\/', 'ftp:\/\/', 'www.'];
267        // taken from https://w3techs.com/technologies/overview/top_level_domain/all
268        fncValidarURL.domains=['com','ru','net','org','de','jp','uk','br','pl','in','it','fr','au','info','nl','ir','cn','es','cz','kr','ua','ca','eu','biz','za','gr','co','ro','se','tw','mx','vn','tr','ch','hu','at','be','dk','tv','me','ar','no','us','sk','xyz','fi','id','cl','by','nz','il','ie','pt','kz','io','my','lt','hk','cc','sg','edu','pk','su','bg','th','top','lv','hr','pe','club','rs','ae','az','si','ph','pro','ng','tk','ee','asia','mobi'];
269    }
270    if (!fncValidarURL.rx_url.test(s)) return false;
271    for (i=0; i<fncValidarURL.prefixes.length; i++) if (s.startsWith(fncValidarURL.prefixes[i])) return true;
272    for (i=0; i<fncValidarURL.domains.length; i++) if (s.endsWith('.'+fncValidarURL.domains[i]) || s.includes('.'+fncValidarURL.domains[i]+'\/') ||s.includes('.'+fncValidarURL.domains[i]+'?')) return true;
273    return false;
274}
275
276
277// ------------------------------------------------------------------------------------------------------------------
278// Nombre: fncValidarTelefono()                                      
279// ------------------------------------------------------------------------------------------------------------------
280function fncValidarTelefono(strTelefono) {
281    return strTelefono.match(/^[6789][0-9]{8}$/);
282}
283
284
285// ------------------------------------------------------------------------------------------------------------------
286// Nombre: fncValidarCP()                                            
287// ------------------------------------------------------------------------------------------------------------------
288function fncValidarCP(strCP) {
289    return strCP.match(/^[0-9]{5}$/);
290}
291
292
293// ------------------------------------------------------------------------------------------------------------------
294// Nombre: fncValidarDNI()                                         
295// Resultado:	 1 -> OK                                       
296//				-1 -> Formato incorrecto                       
297//				-2 -> La letra es incorrecta                   
298// ------------------------------------------------------------------------------------------------------------------
299function fncValidarDNI (strCadenaDNI) {
300    var strLetras = 'TRWAGMYFPDXBNJZSQVHLCKE';
301
302    strCadenaDNI = strCadenaDNI.toUpperCase();
303    if (!strCadenaDNI.match(/^[0-9]{8}[A-Z]{1}$/))
304        return -1;
305    else {
306        chrLetra = strCadenaDNI.substr(8, 1);
307        strNumeros = strCadenaDNI.substr(0, 8);
308        
309        if (strLetras.charAt(parseInt(strNumeros,10)%23) != chrLetra) 
310            return -2;
311        else 
312            return 1;
313    } 
314}
315
316
317// ------------------------------------------------------------------------------------------------------------------
318// Nombre: fncValidarNIE()                                           
319// Resultado:	 1 -> OK                                       
320//				-1 -> Formato incorrecto                       
321//				-2 -> La letra es incorrecta                   
322// ------------------------------------------------------------------------------------------------------------------
323function fncValidarNIE (strCadenaNIE) {
324    var strLetras = 'TRWAGMYFPDXBNJZSQVHLCKE';
325
326    strCadenaNIE = strCadenaNIE.toUpperCase();
327    if (!strCadenaNIE.match(/^[X-Z]{1}[0-9]{7}[A-Z]{1}$/))
328        return -1;
329    else {
330        chrLetra = strCadenaNIE.substr(8, 1);
331        strNumeros = strCadenaNIE.substr(0, 8);
332        
333        strNumeros = strNumeros.replace('X','0');
334        strNumeros = strNumeros.replace('Y','1');
335        strNumeros = strNumeros.replace('Z','2');
336        if (strLetras.charAt(parseInt(strNumeros,10)%23) != chrLetra) 
337            return -2;
338        else 
339            return 1;
340    } 
341}
342
343
344// ------------------------------------------------------------------------------------------------------------------
345// Nombre: fncValidarCIF()                                           
346// Resultado:	 1 -> OK                                       
347//				-1 -> Formato incorrecto                       
348//				-2 -> La letra es incorrecta                   
349//				-3 -> El digito de control es incorrecto       
350// ------------------------------------------------------------------------------------------------------------------
351function fncValidarCIF (strCadenaCIF) {
352var intControl = 0; 
353var arrComprobacion = new Array(0,2,4,6,8,1,3,5,7,9); 
354var arrLetras = new Array("J","A","B","C","D","E","F","G","H","I");
355
356    strCadenaCIF = strCadenaCIF.toUpperCase();
357    if (!strCadenaCIF.match(/^[A-Z]{1}[0-9]{7}[A-Z0-9]{1}$/))
358        return -1;
359    else {
360        if (!strCadenaCIF.match(/^[ABCDEFGHKLMNPQS]{1}/))
361            return -2;
362        else {
363            strLetraCIF = strCadenaCIF.substring(0,1);
364            strNumerosCIF = strCadenaCIF.substring(1,8);
365            strControlCIF = strCadenaCIF.substring(8,9);
366            
367            for(i=2; i<=6; i+=2) {
368              intControl += arrComprobacion[parseInt(strCadenaCIF.substr(i-1,1))];
369              intControl += parseInt(strCadenaCIF.substr(i,1));
370            }
371            intControl += arrComprobacion[parseInt(strCadenaCIF.substr(i-1,1))];
372            intControl = (10-(intControl%10));
373            if(intControl == 10) {
374                intControl = 0;
375            }
376        
377            if ((strControlCIF != intControl) && (strControlCIF != arrLetras[intControl])) {
378                return -3;
379            }
380        }
381    }
382    
383    return 1;
384}
385
386
387// ------------------------------------------------------------------------------------------------------------------
388// Nombre: fncValidarIBAN()                                            
389// ------------------------------------------------------------------------------------------------------------------
390function fncValidarIBAN(IBAN) {
391
392    IBAN = IBAN.toUpperCase();
393    IBAN = IBAN.trim();
394    IBAN = IBAN.replace(/\s/g, "");
395
396    var letra1,letra2,num1,num2;
397    var isbanaux;
398    var numeroSustitucion;
399    //La longitud debe ser siempre de 24 caracteres
400    if (IBAN.length != 24) return false;
401
402    // Se coge las primeras dos letras y se pasan a números
403    letra1 = IBAN.substring(0, 1);
404    letra2 = IBAN.substring(1, 2);
405    num1 = getnumIBAN(letra1);
406    num2 = getnumIBAN(letra2);
407    //Se sustituye las letras por números.
408    isbanaux = String(num1) + String(num2) + IBAN.substring(2);
409    // Se mueve los 6 primeros caracteres al final de la cadena.
410    isbanaux = isbanaux.substring(6) + isbanaux.substring(0,6);
411
412    //Se calcula el resto, llamando a la función modulo97, definida más abajo
413    resto = modulo97(isbanaux);
414    if (resto == 1) return true;
415    else return false;
416}
417
418function modulo97(iban) {
419    var parts = Math.ceil(iban.length/7);
420    var remainer = "";
421    for (var i = 1; i <= parts; i++) {
422        remainer = String(parseFloat(remainer+iban.substr((i-1)*7, 7))%97);
423    }
424    return remainer;
425}
426
427function getnumIBAN(letra) {
428    ls_letras = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
429    return ls_letras.search(letra) + 10;
430}
431
432
433// F U N C I O N E S   V A R I A S --------------------------------------------------------------------------------------------------------------------------------------
434
435function fncOrdenarSelect(objSelector) {
436    var tmpAry = new Array();
437    for (var i=0;i<objSelector.options.length;i++) {
438        tmpAry[i] = new Array();
439        tmpAry[i][0] = objSelector.options[i].text;
440        tmpAry[i][1] = objSelector.options[i].value;
441    }
442    tmpAry.sort();
443    while (objSelector.options.length > 0) {
444        objSelector.options[0] = null;
445    }
446    for (var i=0;i<tmpAry.length;i++) {
447        var op = new Option(tmpAry[i][0], tmpAry[i][1]);
448        objSelector.options[i] = op;
449    }
450    return;
451}
452
453
454// C O O K I E S  -------------------------------------------------------------------------------------------------------------------------------------------------------
455
456function fncSetCookie(strNombre, strValor, intSeg) {
457    $.get("setCookie.php", { n: strNombre, v: strValor, s: intSeg } );
458}
459
460function fncGetCookie(strNombre) {
461    let resultado;
462    $.ajax({
463        async: false,
464        type: 'get',
465        url: 'getCookie.php',
466        data: { n: strNombre },
467        success: function (data) {
468            resultado = data;
469        }
470    });
471    return resultado;
472}
473
474/*
475var nameEQ = strNombre + "=";
476var ca = document.cookie.split(';');
477for(var i=0;i < ca.length;i++) {
478    var c = ca[i];
479    while (c.charAt(0)==' ') c = c.substring(1,c.length);
480    if (c.indexOf(nameEQ) == 0) return atob(decodeURIComponent(c.substring(nameEQ.length,c.length)));
481}
482return null;
483*/
484
485function fncDelCookie(strNombre) {
486    $.get("setCookie.php", { n: strNombre, v: '', s: -100 } );
487}

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.