// Funcio jQuery d'inicialitzacio del document $(document).ready(function() { // Defininim el comportament de l'scroll per a mostrar el menu fixat a una certa altura $(window).scroll(function () { var top_limit = 0; // Mirem de calcular el top limit per mostrar la capcalera reduida // segons si tenim capcalera principal o secundaria if ($('#imatge-principal').length > 0) top_limit = $('#imatge-principal').offset().top; else top_limit = $('#imatge-secundaria').offset().top; // Adaptem la capcalera segons la posicio de l'scroll if ($(window).scrollTop() > top_limit) { $('#capcalera').addClass('scroll'); $('#contenidor-contingut').addClass('scroll'); $('#logo-titol').removeClass('col-lg-4').addClass('col-lg-3'); $('#menus').removeClass('col-lg-8').addClass('col-lg-9'); } else if($(window).scrollTop() <= 47) { $('#capcalera').removeClass('scroll'); $('#contenidor-contingut').removeClass('scroll'); $('#logo-titol').removeClass('col-lg-3').addClass('col-lg-4'); $('#menus').removeClass('col-lg-9').addClass('col-lg-8'); } }); }); // Aplicar el boto de netejar als camps de text amb la classe netejable $(document).on('input', '.netejable', function() { $(this)[mostraAmagaBotoNeteja(this.value)]('x'); }).on('mousemove', '.x', function(e) { $(this)[mostraAmagaBotoNeteja(this.offsetWidth - 35 < e.clientX - this.getBoundingClientRect().left)]('onX'); }).on('touchstart click', '.onX, .x', function(ev) { //ev.preventDefault(); $(this).removeClass('x onX').val('').change(); }); // Funcio que retorna la funcio per mostrar o amagar el boto de netejar un camp de text // valor: Valor que determina si es mostra el boto o no function mostraAmagaBotoNeteja(valor) { return valor ? 'addClass':'removeClass'; } // Funcio que mostra el dialeg de missatge // titol: Titol del missatge // missatge: Text del missatge function missatge(titol, missatge) { $('#missatge #titolMissatge').html(titol); $('#missatge div.modal-body').html(missatge); $('#missatge').modal('show'); } // Funcio que mostra el dialeg de pregunta // titol: Titol del missatge // missatge: Text del missatge // codi: Codi que cal executar en cas de que es respongui ok function pregunta(titol, missatge, codi) { $('#pregunta #titolPregunta').html(titol); $('#pregunta div.modal-body').html(missatge); $('#pregunta .btn-success').unbind('click'); $('#pregunta .btn-success').bind('click', codi); $('#pregunta').modal('show'); } // Funcio que executa el formulari de cerca // id_formulari: Identificador del formulari // on_cercar: On cal executar la cerca function executarFormulariCerca(id_formulari, on_cercar) { // Preparem les dades i executem el formulari corresponent a la seleccio if (on_cercar == 'cataleg') { var res = window.open('https://discovery.upc.edu/discovery/search?query=any,contains,' + encodeURI(jQuery('#' + id_formulari).find('#Text').val()) + '&vid=34CSUC_UPC:VU1&lang=ca'); } else location.href = 'http://bibliotecnica.upc.edu/search/node/' + encodeURI($('#' + id_formulari).find('#Text').val()); } // Funcio que canvia la seleccio del formulari de cerca // selector: Objecte HTML que ha executat l'accio function seleccionaFormulariCerca(selector) { var cercador = $(selector).parent().parent().parent(); var valor = $(selector).val(); // Posem el text de placeholder if ($(selector).val() == 'cataleg') $(cercador).find('input[type="text"]').eq(0).attr('placeholder', 'Llibres, revistes, articles, ...'); else $(cercador).find('input[type="text"]').eq(0).attr('placeholder', 'Continguts a la web'); // Posem la funcio que executara el cercador $(cercador).attr('action', 'javascript:executarFormulariCerca(\'' + $(cercador).attr('name') + '\', \'' + valor + '\');'); } // Funcio que comprova les dades del cercador // formulari: Objecte HTML del formulari function comprovarDadesCercador(formulari) { // Treiem la marca d'error de tots els controls $('.form-group').removeClass('has-error'); // Comprovem les dades de cada control i donem error en cas de detectar // algun error if (jQuery.trim($(formulari).find('#Text').val()) == '') { missatge('Error', 'Cal que introdueixis un text de cerca.'); $(formulari).find('#Text').parent().addClass('has-error'); $(formulari).find('#Text').focus(); return false; } return true; } // Mostra el menu per a dispositius mobils function mostrarAmagarMenuMobil() { $('#menu-mobil').toggleClass('obert'); } // Funcio que mostra la informacio de la cerca function mostrarInformacioCerca() { $('#informacio-cerca').modal('show'); } // Funcio que recarrega la pagina en el nou idioma seleccionat // idioma: Idioma que cal posar function canviarIdioma(idioma) { // Sobreescrivim la cookie de l'idioma document.cookie='Login[Idioma]=' + idioma + ';; path=/'; // Recarreguem la pagina window.location.reload(); } // Funcio que comprova les dades del formulari de login function comprovarDadesUsuariLocal() { // Treiem la marca d'error de tots els controls $('.form-group').removeClass('has-error'); // Comprovem les dades de cada control i donem error en cas de detectar // algun error if ($.trim($('#Nom_usuari').val()) == '') { missatge('Error', 'Cal que introdueixis el teu nom d\'usuari.'); $('#Nom_usuari').parent().addClass('has-error'); $('#Nom_usuari').focus(); return false; } else if ($.trim($('#Contrasenya').val()) == '') { missatge('Error', 'Cal que introdueixis la teva contrasenya.'); $('#Contrasenya').parent().addClass('has-error'); $('#Contrasenya').focus(); return false; } return true; } // Funcio que comprova les dades del formulari d'alta d'un usuari function comprovarDadesAltaUsuariLocal() { // Expressio regular per comprovar el mail var mail_exp = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/; // Treiem la marca d'error de tots els controls $('.form-group').removeClass('has-error'); // Comprovem les dades de cada control i donem error en cas de detectar // algun error if ($.trim($('#Nom').val()) == '') { missatge('Error', 'Cal que introdueixis el teu nom'); $('#Nom').parent().addClass('has-error'); $('#Nom').focus(); return false; } else if ($.trim($('#Cognoms').val()) == '') { missatge('Error', 'Cal que introdueixis el/s teu/s cognom/s.'); $('#Cognoms').parent().addClass('has-error'); $('#Cognoms').focus(); return false; } else if ($.trim($('#Mail').val()) == '') { missatge('Error', 'Cal que introdueixis el teu coreu electrònic.'); $('#Mail').parent().addClass('has-error'); $('#Mail').focus(); return false; } else if (!mail_exp.test($.trim($('#Mail').val()))) { missatge('Error', 'El correu electrònic introduit és incorrecte.'); $('#Mail').parent().addClass('has-error'); $('#Mail').focus(); return false; } else if ($.trim($('#Nom_usuari').val()) == '') { missatge('Error', 'Cal que introdueixis el teu nom d\'usuari.'); $('#Nom_usuari').parent().addClass('has-error'); $('#Nom_usuari').focus(); return false; } else if ($.trim($('#Contrasenya').val()) == '') { missatge('Error', 'Cal que introdueixis la teva contrasenya.'); $('#Contrasenya').parent().addClass('has-error'); $('#Contrasenya').focus(); return false; } else if ($.trim($('#Contrasenya').val()).length < 8) { missatge('Error', 'La contrasenya ha de tenir un mínim de 8 dígits.'); $('#Contrasenya').parent().addClass('has-error'); $('#Contrasenya').focus(); return false; } else if ($.trim($('#Sigles_biblioteca').val()) == '') { missatge('Error', 'Cal que seleccionis la teva biblioteca.'); $('#Sigles_biblioteca').parent().addClass('has-error'); $('#Sigles_biblioteca').focus(); return false; } return true; } // Funcio que genera el nom d'usuari a partir del nom i cognoms function generarNomUsuari() { var nom, cognoms; // Recuperem el nom i cognoms nom = $.trim($('#Nom').val()); cognoms = $.trim($('#Cognoms').val()); // Si tenim nom i cognoms, mirem de demanar el nom d'usuari if (nom != '' && cognoms != '') { // Fem la peticio AJAX per generar el nom d'usuari $.ajax({ type: 'POST', url: './nom_usuari.php', data: {Nom: nom, Cognoms: cognoms}, dataType: 'text' }).done( function(data) { // Posem el nom d'usuari rebut al input corresponent $('#Nom_usuari').val(data); }); } } // Funcio per generar una contrasenya function generarContrasenya() { var vector_seleccio = new Array(62); var longitud_vector = 55; var longitud_contrasenya = 8; var i, index; var contrasenya; vector_seleccio[1] = 'A'; vector_seleccio[2] = 'B'; vector_seleccio[3] = 'C'; vector_seleccio[4] = 'D'; vector_seleccio[5] = 'E'; vector_seleccio[6] = 'F'; vector_seleccio[7] = 'G'; vector_seleccio[8] = 'H'; vector_seleccio[9] = 'J'; vector_seleccio[10] = 'K'; vector_seleccio[11] = 'M'; vector_seleccio[12] = 'N'; vector_seleccio[13] = 'P'; vector_seleccio[14] = 'Q'; vector_seleccio[15] = 'R'; vector_seleccio[16] = 'S'; vector_seleccio[17] = 'T'; vector_seleccio[18] = 'U'; vector_seleccio[19] = 'V'; vector_seleccio[20] = 'W'; vector_seleccio[21] = 'X'; vector_seleccio[22] = 'Y'; vector_seleccio[23] = 'Z'; vector_seleccio[24] = '1'; vector_seleccio[25] = '2'; vector_seleccio[26] = '3'; vector_seleccio[27] = '4'; vector_seleccio[28] = '5'; vector_seleccio[29] = '6'; vector_seleccio[30] = '7'; vector_seleccio[31] = '8'; vector_seleccio[32] = '9'; vector_seleccio[33] = 'a'; vector_seleccio[34] = 'b'; vector_seleccio[35] = 'c'; vector_seleccio[36] = 'd'; vector_seleccio[37] = 'e'; vector_seleccio[38] = 'f'; vector_seleccio[39] = 'g'; vector_seleccio[40] = 'h'; vector_seleccio[41] = 'j'; vector_seleccio[42] = 'k'; vector_seleccio[43] = 'm'; vector_seleccio[44] = 'n'; vector_seleccio[45] = 'p'; vector_seleccio[46] = 'q'; vector_seleccio[47] = 'r'; vector_seleccio[48] = 's'; vector_seleccio[49] = 't'; vector_seleccio[50] = 'u'; vector_seleccio[51] = 'v'; vector_seleccio[52] = 'w'; vector_seleccio[53] = 'x'; vector_seleccio[54] = 'y'; vector_seleccio[55] = 'z'; contrasenya = ''; i = 0; do { var index = -1; while (index < 1 || index > longitud_vector || isNaN(index)) index = parseInt(Math.random() * (longitud_vector)); contrasenya = contrasenya + vector_seleccio[index]; i++; } while (i < longitud_contrasenya) $('#Contrasenya').val(contrasenya); }