/***************************************************************/ /******************** VARIABLES GLOBALES ***********************/ /***************************************************************/ var weekday=new Array(7); weekday[0]="Domingo"; weekday[1]="Lunes"; weekday[2]="Martes"; weekday[3]="Mi\u00e9rcoles"; weekday[4]="Jueves"; weekday[5]="Viernes"; weekday[6]="S\u00e1bado"; var monthName = new Array(12); monthName[0]="Enero"; monthName[1]="Febrero"; monthName[2]="Marzo"; monthName[3]="Abril"; monthName[4]="Mayo"; monthName[5]="Junio"; monthName[6]="Julio"; monthName[7]="Agosto"; monthName[8]="Septiembre"; monthName[9]="Octubre"; monthName[10]="Noviembre"; monthName[11]="Diciembre"; jQuery.fn.serializeObject = function() { var arrayData, objectData; arrayData = this.serializeArray(); objectData = {}; $.each(arrayData, function() { var value; if (this.value != null) { value = this.value; } else { value = ''; } if (objectData[this.name] != null) { if (!objectData[this.name].push) { objectData[this.name] = [objectData[this.name]]; } objectData[this.name].push(value); } else { objectData[this.name] = value; } }); return objectData; }; /***************************************************************/ /******************** FIN VARIABLES GLOBALES *******************/ /***************************************************************/ /***************************************************************/ /************************ CSS MULTIBROWSER *********************/ /***************************************************************/ /** * Variable para verificar que navegador y version esta utilizando el usuario. * Hay que inicializarla en la página con la llamada BrowserDetect.init(); */ var BrowserDetect = { init: function () { this.browser = this.searchString(this.dataBrowser) || "An unknown browser"; this.version = this.searchVersion(navigator.userAgent) || this.searchVersion(navigator.appVersion) || "an unknown version"; this.OS = this.searchString(this.dataOS) || "an unknown OS"; }, searchString: function (data) { for (var i=0;i"); } else if (BrowserDetect.browser == "Explorer") { if (BrowserDetect.version==9) { //css para ie9 document.write(""); } else if (BrowserDetect.version==8) { //css para ie8 document.write(""); } else { //css para ie7 y resto de ie's document.write(""); } } else if (BrowserDetect.browser == "Chrome") { //pintamos la de chrome document.write(""); } else { //pintamos una css para el resto de navegadores } } else if (modulo == "mainmenu") { if (BrowserDetect.browser == "Explorer" && BrowserDetect.version <= 7) { //css para ie7 y resto de ie's document.write(""); } } else if ("agenda_ttss") { if (BrowserDetect.browser == "Firefox") { //pintamos la css de firefox } else if (BrowserDetect.browser == "Explorer") { if (BrowserDetect.version==9) { //css para ie9 document.write(""); } else if (BrowserDetect.version==8) { //css para ie8 document.write(""); } else { //css para ie7 y resto de ie's document.write(""); } } else if (BrowserDetect.browser == "Chrome") { //pintamos la de chrome } else { //pintamos una css para el resto de navegadores } } } /***************************************************************/ /******************** FIN CSS MULTIBROWSER *********************/ /***************************************************************/ /***************************************************************/ /************************ ARRAYS *******************************/ /***************************************************************/ /** * Elimina un elemento de un array * * @param value - valor del elemento en el array * @param arr - array * @return */ function arrayPopByValue(value, arr) { var pos = getPositionInArray(value, arr); if (pos == -1) { return; } else { if (pos == 0) { arr.shift(); } else if (pos == (arr.length - 1)) { arr.pop(); } else { arr.splice(pos, 1); } } } /** * Devuelve la posicion de un elemento en un array * * @param value - valor del elemento en el array * @param arr - array * @return */ function getPositionInArray(value, arr) { for (var i=0; ifecha2, ambas fechas en formato dd/MM/yyyy * * @param fecha1, fecha2 * @return true si fecha1>fecha2 , false en cualquier otro caso */ function isFecha1GTFecha2(fecha1,fecha2){ var tempFecha1=fecha1.split("/"); var tempFecha2=fecha2.split("/"); var dia1=Number (tempFecha1[0]); // el number es para eliminar 0 a la izquierda var mes1=Number (tempFecha1[1]); var year1=tempFecha1[2]; var dia2=Number (tempFecha2[0]); var mes2=Number (tempFecha2[1]); var year2=tempFecha2[2]; //quitamos cero inicial del dia y el mes if(dia1.length==2 && dia1.charAt(0)=='0'){ dia1=dia1.substr(1,1); } if(dia2.length==2 && dia2.charAt(0)=='0'){ dia2=dia2.substr(1,1); } if(mes1.length==2 && mes1.charAt(0)=='0'){ mes1=mes1.substr(1,1); } if(mes2.length==2 && mes2.charAt(0)=='0'){ mes2=mes2.substr(1,1); } if(year1>year2){ return true; } else if( year1==year2){ if(mes1>mes2){ return true; } else if(mes1==mes2){ if(dia1>dia2){ return true; } else{ return false; } } } return false; } /** * Calcula el dia de hoy en formato Miercoles, 25 de Septiembre del 2013 y lo introduce * en un objeto jQuery con el id remitido * * @param idCont */ function setTodayDate(idCont) { var today = new Date(); var currentDay = (today.getDate() < 10 ? "0" : "") + today.getDate(); var currentMonth = today.getMonth(); var currentYear = today.getFullYear(); var currentDayWeek = today.getDay(); var currenDateString = weekday[currentDayWeek] + ", " + currentDay + " de " + monthName[currentMonth] + " del " + currentYear; $('#' + idCont).html(currenDateString); } /** * Comprueba si el campo 1 es menor que el campo 2 (int) parseandolos a entero * * @param field1 * @param field2 * @returns {Boolean} */ function isF1LessThanF2(field1,field2){ if(parseInt(field1)parseInt(field2)){ return true; } return false; } /** * Comprueba si el campo 1 y el 2 son iguales parseandolos a entero * * @param field1 * @param field2 * @returns {Boolean} */ function isF1EqualF2(field1,field2){ if(parseInt(field1)==parseInt(field2)){ return true; } return false; } /***************************************************************/ /************************ FIN FECHAS ***************************/ /***************************************************************/ /***************************************************************/ /************************ DIALOGOS *****************************/ /***************************************************************/ /** * Abre un Dialog de jQuery con el id dialogId. * Si dialogPClass y dialogMsg no es blank, setea en el hijo del dialog con * dicha clase el mensaje remitido * * @param dialogId - el id del dialogo * @param dialogClass - la clase del hijo del elemento dialogo donde se quiere insertar el texto * @param dialogMsg - el texto a insertar */ function abreDialogoJquery(dialogId, dialogClass, dialogMsg) { if (isNotBlankString(dialogClass) && isNotBlankString(dialogMsg)) { $('#' + dialogId).find('.' + dialogClass).text(dialogMsg); } $('#' + dialogId).dialog('open'); } /** * Cierra el dialog de jQuery con el id indicado * * @param dialogId - id del dialog */ function cierraDialogoJquery(dialogId) { $('#' + dialogId).dialog('close'); } /***************************************************************/ /************************ FIN DIALOGOS *************************/ /***************************************************************/ /***************************************************************/ /************************ VALIDACIONES *************************/ /***************************************************************/ /** * Comprueba si un objeto de jQuery es vacio o no * * @param obj * @returns {Boolean} */ function isNotBlank(obj) { if (obj.val() != null && obj.val()!= "" && obj.val() != " ") { return true; } else { return false; } } /** * Comprueba si una cadena es vacia o no * * @param str * @returns {Boolean} */ function isNotBlankString(str) { if (str != null && str != "" && str != " ") { return true; } else { return false; } } /** * * @param obj */ function validaCampo(obj) { if (obj.hasClass('hora')) { if (isNotBlank(obj)) { if (obj.val().length < 5) obj.val(obj.val().substring(0, 2) + ":" + obj.val().substring(2)); var er_fh = /^(0[0-9]|1\d|2[0-3]):([0-5]\d)$/; if ( !(er_fh.test( obj.val() )) ) { alert("La hora introducida debe estar en formato HH:MM"); obj.val(''); } } } } /** * Recibe el 'id' del elemento HTML para proceder a la validación, * si es correcta devuelve 'true' y sino saca un alert y devuelve 'false' * * @param a * @returns {Boolean} */ function compruebaNIF(a) { var resul = true; var temp = $.trim($('#' + a).val()).toUpperCase(); var cadenadni = "TRWAGMYFPDXBNJZSQVHLCKE"; if (temp !== '') { if (/^[0-9]{8}[A-Z]{1}$/.test(temp)) { var posicion = temp.substring(8, 0) % 23; var letra = cadenadni.charAt(posicion); var letradni = temp.charAt(8); if (letra == letradni) { return true; } else if (letra != letradni) { resul = false; } } //comprobacion de NIFs especiales (se calculan como CIFs) else if (/^[KLM]{1}/.test(temp)) { if (temp[8] == String.fromCharCode(64 + n)) { return true; } else if (temp[8] != String.fromCharCode(64 + n)) { resul = false; } } } } /***************************************************************/ /************************ FIN VALIDACIONES *********************/ /***************************************************************/ /** * Se encarga de lanzar los eventos generales para todas las paginas de la aplicacion */ function generaEventosGenerales() { $('#avisos_dialog').dialog({ autoOpen: false, height: 300, width: 350, modal: true, resizable: false, draggable: false, buttons: { 'Ok': function() { $(this).dialog('close'); } } }); $('#img_waiting').dialog({ autoOpen: false, height: 175, width: 200, modal: true, draggable: false, resizable: false }); $("#enlaceContacto").click(function() { $(this).next().toggle(); }); $("#comboProvincias").change(function() { $("#formContacto").attr("action", "mailto:"+$(this).val()); }); }