/**
* @copyright Copyright (c) 2016-2019 Università degli Studi di Perugia. All rights reserved.
* @license GNU/GPL 2 or later - http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
*/
jQuery(document).ready(function ($) {
$('html').addClass('unipg-ready');
// BEAUTIFY
// tabelle
$('#main-content table').addClass('table table-striped table-condensed');
$('#main-content table').wrap('
');
// pulsanti articoli con pagebreak
$('.pager li:not(:has(a))').wrapInner('');
$('.pager li:not(:has(a))').addClass('disabled');
$('.pager li a').addClass('btn btn-default');
// form
//$('input.invalid').parent('form-group').addClass('has-error');
$('form label').addClass('control-label');
// calendar datepicker
$('.up-calendar').parent().removeClass().addClass('input-group');
$('.up-calendar').parent().find('button').addClass('btn-default form-control').wrap('');
$('.up-calendar').parent().find('.icon-calendar').removeClass().addClass('glyphicon glyphicon-calendar');
// validation: se un campo diventa invalid (via js) adegua la classe del form-group
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
if ($(mutation.target).hasClass('invalid')) {
//console.log($(mutation.target).parent('.form-group'));
$(mutation.target).closest('.form-group').addClass('has-error');
}
});
});
$('.form-control').each(function(){
observer.observe($(this)[0], {
attributes:true,
attributeFilter:['class']
});
});
// MAIN CONTENT TOOLS
// piazza la barra dopo il titolo della pagina ma solo se è unico
// la barra è inizialmente nascosta via css
if ($('#main-content h2').length == 1) {
$('#tools').insertAfter('#main-content h2');
$('#tools').slideDown();
// SOMMARIO
// se c'è un sommario crea la tendina sia nei tools che nel gotop
if ($('#main-2 h3').length > 0) {
// crea l'ancora per il titolo principale
$('').insertBefore($('#main-content h2'));
// per ogni h3
$('#main-2 h3').each(function(index){
id = 'up-index-anchor-' + index;
// crea l'ancora nel contenuto
$('').insertBefore($(this));
// crea il link nella dropdown tools-index
$('#tools-index ul').append('' + ellipsa($(this).text(),45) + '');
// crea il link nella dropdown gotop-index
$('#gotop-list ul').append('' + ellipsa($(this).text(),45) + '');
});
// evento click che fa scorrere la pagina fino all'ancora
$('#tools-index .dropdown-menu a').click(function(){
//attende che la dropdown sia chiusa altrimenti su mobile calcola male l'offset
$('#tools-index .dropdown-menu').on('hidden.bs.dropdown', function (){
var a = $($(this).attr('href')).offset();
$('html,body').animate({scrollTop:a.top},800);
})
});
// mostra il tool
$('#tools-index').show();
// nasconde il link gotop
$('#gotop-link').hide();
// mostra il link dropup nel gotop
$('#gotop-list').show();
} else {
// niente sommario
// nasconde il tool
$('#tools-index').hide();
// mostra il link gotop
$('#gotop-link').show();
// nasconde il link dropup nel gotop
$('#gotop-list').hide();
}
// ARTICLE INDEX
if ($('#main-content .article-index').length){
// accorcia il testo dei link per evitare tendine troppo lunghe
$('#main-content .article-index a').each(function(index){
$(this).html(ellipsa($(this).text(),45));
});
// clona i link nella dropdown
$('#main-content .article-index li').clone().appendTo($('#tools-browse ul'));
// mostra il contapagine
var contapagine = $('#main-content .pagenavcounter').text().match(/\d+/g);
$('#tools-browse-pagenavcounter').text(contapagine[0] + '/' + contapagine[1]);
$('#tools-browse').show();
} else {
$('#tools-browse').hide();
}
// ARTICLE INFO
if ($('.article-info').length) {
$('#tools-info .dropdown-menu').html($('.article-info').html());
$('#tools-info .article-info-term').hide();
} else {
$('#tools-info').hide();
}
} else {
$('#tools').hide();
// nasconde il link dropup nel gotop
$('#gotop-list').hide();
}
// CAROUSEL (MooTools conflict)
if (typeof jQuery != 'undefined' && typeof MooTools != 'undefined') {
Element.implement({slide: function(how, mode){return this;}});
}
!function ($) {$(function(){$('.carousel').carousel()})}(window.jQuery)
// MMENU - init
if ($('#mainmenu').length) {
$('#mainmenu').mmenu({
'searchfield':{'resultsPanel':true,'showSubPanels':false,'panel':true,'placeholder':'Cerca','noResults':'Nessun risultato'},
'navbars':[{'position': 'top','content': ['searchfield']}],
'dropdown':true,
'content':['searchfield'],
'extensions':['pagedim-black','theme-white'],
'navbars':[{'position':'top','content':['searchfield']}],
screenReader:{aria:true}
},{
clone:true
});
}
// HEADER SITE NAME RESIZE
function resizeSitename() {
var max = 32;
var min = 14;
while(($('#header-2 a').height() > $('#header-2 h1').height()) && (parseInt($('#header-2 h1').css('font-size')) < max)) {
$('#header-2 h1').css('font-size', (parseInt($('#header-2 h1').css('font-size')) + 1) + 'px');
}
while(($('#header-2 h1').height() > $('#header-2 a').height()) && (parseInt($('#header-2 h1').css('font-size')) > min)) {
$('#header-2 h1').css('font-size', (parseInt($('#header-2 h1').css('font-size')) - 1) + 'px');
}
}
resizeSitename();
$(window).resize(resizeSitename);
// TOPBAR
// sugli smartphone quando apro la topbar e clicco su un field per inserire il testo
// l'apertura del tastierino causa altrimenti un resize che fa scomparire la topbar
// quindi memorizzo la larghezza della finestra per determinare i resize in sola larghezza
var global_window_width = 0;
$(window).load(function(){
global_window_width = $(window).width();
});
function setTopbar() {
// check resize in larghezza
if (global_window_width != $(window).width()) {
global_window_width = $(window).width();
if (window.matchMedia('(max-width: 991px)').matches) {
// mobile
$('#topbar-content').hide();
$('#topbar-toggle button').removeClass('active');
} else {
// desktop
$('#topbar-content').show();
}
}
}
// init
$(window).resize(setTopbar);
// toggle
$('#topbar-toggle-button').click(function(){
$('#topbar-content').slideToggle();
});
// UNIPG TEXT RESIZER
if (readCookie('unipg-textsize')==='y') {
$('#unipg-textsize-button span').text($('#unipg-textsize-button').data('labeldisable'));
} else {
$('#unipg-textsize-button span').text($('#unipg-textsize-button').data('labelenable'));
}
$('#unipg-textsize-button').click(function(e){
e.preventDefault();
if (readCookie('unipg-textsize')==='y') {
eraseCookie('unipg-textsize');
$('html').removeClass('unipg-textsize');
$('#unipg-textsize-button span').text($('#unipg-textsize-button').data('labelenable'));
} else {
createCookie('unipg-textsize','y',365);
$('html').addClass('unipg-textsize');
$('#unipg-textsize-button span').text($('#unipg-textsize-button').data('labeldisable'));
}
});
// UNIPG OPENDYSLEXIC
if (readCookie('unipg-dyslexic')==='y') {
$('#unipg-dyslexic-button span').text($('#unipg-dyslexic-button').data('labeldisable'));
} else {
$('#unipg-dyslexic-button span').text($('#unipg-dyslexic-button').data('labelenable'));
}
$('#unipg-dyslexic-button').click(function(e){
e.preventDefault();
if (readCookie('unipg-dyslexic')==='y') {
eraseCookie('unipg-dyslexic');
$('html').removeClass('unipg-dyslexic');
$('#unipg-dyslexic-button span').text($('#unipg-dyslexic-button').data('labelenable'));
} else {
createCookie('unipg-dyslexic','y',365);
$('html').addClass('unipg-dyslexic');
$('#unipg-dyslexic-button span').text($('#unipg-dyslexic-button').data('labeldisable'));
}
});
// COOKIE
// banner
/* if (readCookie('unipg-cookieconsent')==='n' || readCookie('unipg-cookieconsent')==cookielist) {
$('#unipg-cookiechoice').remove();
} else {
$('#unipg-cookiechoice').addClass('show');
}
*/ // button toolbar
/* if (readCookie('unipg-cookieconsent')==cookielist) {
$('#unipg-cookie-button span').text($('#unipg-cookie-button').data('labeldisable'));
} else {
$('#unipg-cookie-button span').text($('#unipg-cookie-button').data('labelenable'));
}
*/ $('#unipg-cookie-button-enable').click(function(e){
createCookie('unipg-cookieconsent',$('html').data('cookielist'),365);
// ora il link fa ricarcare automaticamente la pagina
});
$('#unipg-cookie-button-disable').click(function(e){
createCookie('unipg-cookieconsent','n',365);
// ora il link fa ricarcare automaticamente la pagina
});
// buttons banner
$('#unipg-cookieaccept').click(function(){
createCookie('unipg-cookieconsent',$('html').data('cookielist'),365);
if (($('[data-cookiecheck]').length > 0) || ($('#topbar-content-cercasito').length > 0)) {
// ricarica la pagina se ci sono placeholder oltre a quello 'matrice' o se c'è la ricerca nel sito (>1)
location.reload(true);
} else {
// toggle pulsanti topbar
$('#unipg-cookie-button-enable').parent().addClass('hidden');
$('#unipg-cookie-button-disable').parent().removeClass('hidden');
}
});
$('#unipg-cookiedeny').click(function(){
createCookie('unipg-cookieconsent','n',365);
// toggle pulsanti topbar
$('#unipg-cookie-button-disable').parent().addClass('hidden');
$('#unipg-cookie-button-enable').parent().removeClass('hidden');
});
// button placeholder
$('.unipg-cookieplaceholderaccept').click(function(){
createCookie('unipg-cookieconsent',$('html').data('cookielist'),365);
// ora il link fa ricarcare automaticamente la pagina
});
// GO TOP
// visualizza il pulsante gotop in base allo scroll
$(window).scroll(function(){
if ($(this).scrollTop() > 100) {
$('#gotop').fadeIn();
} else {
$('#gotop').fadeOut();
// chiude la gotop-list se aperta
$('#gotop-list.open .dropdown-toggle').dropdown('toggle');
}
});
// click gotop-link
$('#gotop-link').click(function(){
$('html, body').animate({scrollTop:0},800);
return false;
});
// click gotop-list e tools-index
$('#gotop-list li a').add('#tools-index li a').click(function(){
$('html, body').animate({scrollTop:$($.attr(this,'href')).offset().top},800);
return false;
});
// TOPBAR SEARCH FORMS
$('#topbar form').submit(function(){
// blocca il submit se il campo è vuoto (non funziona con google search)
return ($.trim($(this).find('input').val()) !== "");
});
// FIXED MENU
var menubar_position = $('#menubar').offset();
if (typeof menubar_position !== "undefined") {
$(window).on('scroll',function(){
$('body').toggleClass('fixedmenu', $(window).scrollTop() > menubar_position.top);
});
}
// BOTTOMBAR TOGGLE
$('.bottombar-title').click(function(){
if (window.matchMedia('(max-width: 767px)').matches){
// apre o chiude la tendina, e se la chiude rimuove l'attributo style per evitare che rimanga a none,
// nascondendo il contenuto qualora si torni in visualizzazione desktop
$(this).next('ul').slideToggle(function(){if($(this).is(":hidden")){$(this).removeAttr('style')}});
$(this).toggleClass('active');
}
});
// TOOLTIP and POPOVER INIT
$(function () {
$('[data-toggle="tooltip"]').tooltip()
})
$(function () {
$('[data-toggle="popover"]').popover()
})
// FUNCTIONS
function ellipsa(text,length){
if (text.length > length){
text = text.substring(0,length-2) + "…";
}
return text;
}
// gestisce il toggle di elementi in un gruppo (tipo accordion ma "a distanza")
$('.togglaingruppo-link').click(function(){
if ($(this).data('togglaingruppo-item')) {
// l'elemento cliccato indica un item da visualizzare all'interno del gruppo
$($(this).data('togglaingruppo-gruppo')).find('.togglaingruppo-item').hide();
$($(this).data('togglaingruppo-item')).show();
} else {
// l'elemento cliccato non indica un item quindi mostra tutti gli item
$($(this).data('togglaingruppo-gruppo')).find('.togglaingruppo-item').show();
}
});
function createCookie(name,value,days){
var expires;
if(days) {
var date=new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
expires="; expires="+date.toGMTString();
} else {
expires="";
}
document.cookie=encodeURIComponent(name)+"="+encodeURIComponent(value)+expires+"; path=/";
}
function readCookie(name){
var nameEQ=encodeURIComponent(name)+"=";
var ca=document.cookie.split(';');
for(var i=0;i