1/* 2========== init 3*/ 4 5var body, 6 swup, 7 audioInit = false, 8 audioID = 0, 9 audioObj, 10 audioDuration, 11 audioIsPlaying = false, 12 headerHeight = 0, 13 playerHeight = 0, 14 deltaScroll = 0, 15 responsiveVoice, 16 autocompleteEventAddress, 17 enableSwup = false, 18 siteUrl = 'https://ortobene.net'; 19 20document.addEventListener('DOMContentLoaded', function () { 21 body = document.querySelector('body'); 22 document.querySelectorAll('[target="_blank"]').forEach((el) => { 23 el.setAttribute('data-no-swup', ''); 24 }); 25 document.querySelectorAll('.ihc-locker-wrap ~ *').forEach((el) => { 26 el.remove(); 27 }); 28 /* 29 ========== swup 30 */ 31 if (enableSwup) { 32 swup = new Swup({ 33 containers: ['#swup-contents'], 34 animateHistoryBrowsing: true, 35 cache: false, 36 plugins: [new SwupGtagPlugin({ 37 gaMeasurementId: "UA-62815676-41" 38 })] 39 }); 40 swup.on('clickLink', function () { 41 body.classList.add('preload'); 42 document.querySelector('html').classList.remove('smooth'); 43 document.querySelector('#loader').classList.add('show'); 44 menuMobileInfo(false); 45 menuMobile(false); 46 if (document.getElementById('text-reader')) { 47 textReaderAudio.pause(); 48 } 49 }); 50 swup.on('popState', function () { 51 body.classList.add('preload'); 52 document.querySelector('html').classList.remove('smooth'); 53 document.querySelector('#loader').classList.add('show'); 54 menuMobileInfo(false); 55 menuMobile(false); 56 }); 57 swup.on('samePage', function () { 58 body.classList.remove('preload'); 59 document.querySelector('html').classList.add('smooth'); 60 document.querySelector('#loader').classList.remove('show'); 61 menuMobileInfo(false); 62 menuMobile(false); 63 }); 64 swup.on('samePageWithHash', function () { 65 body.classList.remove('preload'); 66 document.querySelector('html').classList.add('smooth'); 67 document.querySelector('#loader').classList.remove('show'); 68 menuMobileInfo(false); 69 menuMobile(false); 70 }); 71 swup.on('contentReplaced', function () { 72 window.scrollTo(0, 0); 73 document.querySelector('body').classList.remove('header-up'); 74 document.querySelector('body').classList.remove('logo-resize'); 75 document.querySelector('#loader').classList.remove('show'); 76 pageInit(); 77 }); 78 } 79 /* 80 ========== page init 81 */ 82 recalcDOM(); 83 pageInit(); 84 setTimeout(() => { 85 if (document.querySelector('.adsbygoogle.adsbygoogle-noablate')) { 86 document.querySelector('.adsbygoogle.adsbygoogle-noablate').remove(); 87 } 88 }, 1000); 89}); 90 91window.addEventListener('resize', function () { 92 recalcDOM(); 93}); 94 95window.addEventListener('scroll', function () { 96 recalcDOM(); 97}); 98 99window.onscroll = function () { 100 if (this.oldScroll > this.scrollY) { 101 // up 102 deltaScroll += Math.abs(this.oldScroll - this.scrollY); 103 if (deltaScroll > window.outerHeight) { 104 document.querySelector('body').classList.remove('header-up'); 105 } 106 } else { 107 //down 108 deltaScroll = 0; 109 if (this.scrollY > headerHeight) { 110 document.querySelector('body').classList.add('header-up'); 111 } 112 } 113 if (this.scrollY > headerHeight * 1.5) { 114 document.querySelector('body').classList.add('logo-resize'); 115 } else { 116 document.querySelector('body').classList.remove('header-up'); 117 document.querySelector('body').classList.remove('logo-resize'); 118 } 119 this.oldScroll = this.scrollY; 120} 121
122/* 123========== DOM 124*/ 125 126function recalcDOM() { 127 'use strict'; 128 headerHeight = document.querySelector('header').clientHeight; 129 if (document.querySelector('#audio-player')) { 130 playerHeight = document.querySelector('#audio-player').clientHeight; 131 } 132 document.documentElement.style.setProperty('--header-height', headerHeight + 'px'); 133 document.documentElement.style.setProperty('--player-height', playerHeight + 'px'); 134} 135 136/* 137========== page init 138*/ 139 140function pageInit() { 141 'use strict'; 142 //gapi.load('client'); 143 setTimeout(function () { 144 body.classList.remove('preload'); 145 document.querySelector('html').classList.add('smooth'); 146 }, 1000); 147 document.querySelectorAll('a[href="#"]').forEach(link => { 148 link.href = 'javascript:;'; 149 }); 150 if (document.querySelector('.heateor_sss_button_facebook_messenger')) { 151 document.querySelector('.heateor_sss_button_facebook_messenger').setAttribute('title', 'Messenger'); 152 } 153 gpsPosition(); 154 if (audioInit) { 155 var percent = audioObj.currentTime / audioObj.duration * 100; 156 if (document.querySelector('.widget-podcast')) { 157 document.querySelector('#song-' + audioID + ' span.progress').style.width = percent + '%'; 158 if (audioIsPlaying) { 159 document.querySelector('#song-' + audioID + ' a.song-play').style.display = 'none'; 160 document.querySelector('#song-' + audioID + ' a.song-pause').style.display = 'block'; 161 } 162 } 163 } 164 var menuItemActive = document.querySelector('#swup-contents>div.contents').getAttribute('data-menu-active'); 165 if (menuItemActive !== null) { 166 document.querySelector(menuItemActive).classList.add('current-menu-item'); 167 } 168 if (document.querySelector('#paypal-button-container')) { 169 initPayPalButton(); 170 } 171 /* 172 ========== widget podcast 173 */ 174 if (document.querySelector('.widget-podcast')) { 175 document.querySelectorAll('.widget-podcast .item').forEach(function (item) { 176 var url = item.getAttribute('data-url'); 177 var audio = new Audio(url); 178 audio.addEventListener('canplay', function () { 179 var duration = audio.duration; 180 item.querySelector('div.status div.timer div.total').innerHTML = audioTimeTransform(duration); 181 }); 182 item.querySelector('.bar').onmousemove = function (e) { 183 var rect = e.target.getBoundingClientRect(); 184 var x = e.clientX - rect.left; 185 var y = e.clientY - rect.top; 186 var p = x / rect.width * 100; 187 item.querySelector('.cursor').style.left = p + '%'; 188 } 189 item.querySelector('.bar').onclick = function (e) { 190 var rect = e.target.getBoundingClientRect(); 191 var x = e.clientX - rect.left; 192 var seek = x / rect.width * 100; 193 var id = parseInt(item.getAttribute('data-id')); 194 var url = item.getAttribute('data-url'); 195 if (audioInit) { 196 if (id !== audioID) { 197 audioObj.pause(); 198 audioPlay(id, url, seek); 199 } else { 200 audioObj.currentTime = audioDuration * seek / 100; 201 } 202 } else { 203 audioPlay(id, url, seek); 204 } 205 } 206 }) 207 } 208 /* 209 ========== audio player 210 */ 211 if (document.querySelector('div#audio-player')) { 212 document.querySelector('div#audio-player div.bar').onmousemove = function (e) { 213 var rect = e.target.getBoundingClientRect(); 214 var x = e.clientX - rect.left; 215 var y = e.clientY - rect.top; 216 var p = x / rect.width * 100; 217 document.querySelector('div#audio-player div.bar span.cursor').style.left = p + '%'; 218 } 219 document.querySelector('div#audio-player div.bar').onclick = function (e) { 220 var rect = e.target.getBoundingClientRect(); 221 var x = e.clientX - rect.left; 222 var seek = x / rect.width * 100; 223 audioObj.currentTime = audioDuration * seek / 100; 224 audioObj.play(); 225 document.querySelector('div#audio-player div.btns a.play').style.display = 'none'; 226 document.querySelector('div#audio-player div.btns a.pause').style.display = 'block'; 227 } 228 } 229 /* 230 ========== marquee 231 */ 232 if (document.querySelector('.home-fe-lastnews')) { 233 Marquee('.home-fe-lastnews', .35); 234 } 235 /* 236 ========== text to speach 237 */ 238 if (document.getElementById('text-to-speak-txt')) { 239 setTimeout(() => { 240 //txtSpeachLoadClient(); 241 }, 2500); 242 setTimeout(() => { 243 //txtSpeachLoadSound(); 244 }, 5000); 245 } 246 /* 247 ========== slider vita ecclesiale 248 */ 249 if (document.querySelector('.home-ve')) { 250 new Swiper('.home-ve .swiper', { 251 breakpoints: { 252 0: { 253 speed: 1000, 254 slidesPerView: 1.25, 255 spaceBetween: 20, 256 enabled: true 257 }, 258 768: { 259 speed: 1250, 260 slidesPerView: 2.25, 261 spaceBetween: 20, 262 enabled: true 263 }, 264 1023: { 265 speed: 1250, 266 slidesPerView: 2.25, 267 spaceBetween: 20, 268 enabled: true 269 }, 270 1024: { 271 speed: 0, 272 slidesPerView: 4, 273 spaceBetween: 20, 274 enabled: false 275 } 276 } 277 }); 278 } 279 /* 280 ========== slider eventi 281 */ 282 if (document.querySelector('.home-events')) { 283 new Swiper('.home-events .swiper', { 284 pagination: { 285 el: '.swiper-pagination', 286 type: 'bullets', 287 }, 288 breakpoints: { 289 0: { 290 speed: 1000, 291 slidesPerView: 1.25, 292 spaceBetween: 20, 293 enabled: true 294 }, 295 768: { 296 speed: 1250, 297 slidesPerView: 2.25, 298 spaceBetween: 20, 299 enabled: true 300 }, 301 1023: { 302 speed: 1250, 303 slidesPerView: 2.25, 304 spaceBetween: 20, 305 enabled: true 306 }, 307 1024: { 308 speed: 0, 309 slidesPerView: 4, 310 spaceBetween: 20, 311 enabled: false 312 } 313 } 314 }); 315 } 316 /* 317 ========== necrologi 318 */ 319 if (document.querySelector('#necro-city-button')) { 320 document.querySelector('#necro-city-button').onclick = function () { 321 var m = document.querySelector('.top-city-list'); 322 if (m.classList.contains('show')) { 323 m.classList.remove('show'); 324 } else { 325 m.classList.add('show'); 326 } 327 }; 328 //necroMassonery(); 329 } 330 /* 331 ========== mega calendario 332 */ 333 if (document.querySelector('#mega-calendar')) { 334 $.getJSON('/wp-json/wp/v2/eventi/?per_page=100', function (events) { 335 var eventsList = []; 336 if (events.length > 0) {
337 events.forEach((item) => { 338 eventsList.push({ 339 title: htmlentities.decode(item.title.rendered), 340 start: item.acf.data_ora, 341 end: item.acf.data_ora_fine, 342 url: `javascript: showEvent(${item.id})` 343 }); 344 }); 345 } 346 var calendar = new FullCalendar.Calendar(document.getElementById('mega-calendar'), { 347 initialView: 'dayGridWeek', 348 locale: 'it', 349 firstDay: 1, 350 customButtons: { 351 myCloseButton: { 352 text: 'Chiudi', 353 click: function () { 354 eventCalendarClose(); 355 } 356 } 357 }, 358 headerToolbar: { 359 start: 'title', 360 center: '', 361 end: 'today dayGridMonth,dayGridWeek prev,next myCloseButton' 362 }, 363 titleFormat: { 364 year: 'numeric', 365 month: 'long' 366 }, 367 events: eventsList 368 }); 369 calendar.render(); 370 }); 371 } 372 /* 373 ========== bacheca eventi utente 374 */ 375 if (document.querySelector('#ee-google-address')) { 376 autocompleteEventAddressInit(); 377 } 378 /* 379 ========== archivio generale 380 */ 381 if (document.querySelector('.archive-filters')) { 382 var firstYear = $('.archive-filters-year a.active').parent().index(); 383 new Swiper('.archive-filters-year .list', { 384 centeredSlides: true, 385 slidesPerView: 7, 386 initialSlide: firstYear, 387 breakpoints: { 388 640: { 389 centeredSlides: false, 390 slidesPerView: 12, 391 initialSlide: firstYear, 392 } 393 } 394 }); 395 var firstMonth = $('.archive-filters-month a.active').parent().index(); 396 new Swiper('.archive-filters-month .list', { 397 centeredSlides: true, 398 slidesPerView: 3.5, 399 initialSlide: firstMonth, 400 breakpoints: { 401 640: { 402 centeredSlides: false, 403 slidesPerView: 8, 404 initialSlide: firstMonth, 405 }, 406 1440: { 407 centeredSlides: false, 408 slidesPerView: 12, 409 initialSlide: firstMonth, 410 } 411 } 412 }); 413 } 414 /* 415 ========== iubenda 416 */ 417 (function (w, d) { 418 var loader = function () { 419 var s = d.createElement("script"), 420 tag = d.getElementsByTagName("script")[0]; 421 s.src = "https://cdn.iubenda.com/iubenda.js"; 422 tag.parentNode.insertBefore(s, tag); 423 }; 424 if (w.addEventListener) { 425 w.addEventListener("load", loader, false); 426 } else if (w.attachEvent) { 427 w.attachEvent("onload", loader); 428 } else { 429 w.onload = loader; 430 } 431 })(window, document); 432} 433 434/* 435========== email validation 436*/ 437 438function validateEmail(email) { 439 'use strict'; 440 var re = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; 441 return re.test(email); 442} 443 444/* 445========== player audio 446*/ 447 448function audioPlay(id, url, start) { 449 'use strict'; 450 if (!start) { 451 start = 0; 452 } else { 453 document.querySelector('#song-' + id + ' span.progress').style.width = start + '%'; 454 } 455 if (audioInit) { 456 audioObj.pause(); 457 audioIsPlaying = false; 458 } 459 if (audioID !== id) { 460 var seek = 0; 461 document.querySelector('div#audio-player div.title').innerHTML = document.querySelector('div.widget-podcast div.item#song-' + id).getAttribute('data-title'); 462 audioID = id; 463 audioObj = new Audio(url); 464 audioObj.addEventListener('canplay', function () { 465 audioDuration = audioObj.duration; 466 if (document.querySelector('.widget-podcast')) {
467 seek = document.querySelector('#song-' + audioID + ' span.progress').style.width; 468 seek = parseFloat(seek.replace('%', '')) / 100; 469 if (seek === undefined) { 470 seek = 0; 471 } 472 } else { 473 seek = 0; 474 } 475 audioObj.play(); 476 if (!audioIsPlaying) { 477 audioObj.currentTime = audioDuration * seek; 478 } 479 audioIsPlaying = true; 480 }); 481 audioObj.addEventListener('timeupdate', function () { 482 var percent = audioObj.currentTime / audioObj.duration * 100; 483 document.querySelector('div#audio-player div.bar span.progress').style.width = percent + '%'; 484 document.querySelector('#audio-player-current-time').innerHTML = audioTimeTransform(audioObj.currentTime); 485 document.querySelector('#audio-player-total-time').innerHTML = audioTimeTransform(audioDuration); 486 if (document.querySelector('.widget-podcast')) { 487 document.querySelector('#song-' + audioID + ' span.progress').style.width = percent + '%'; 488 document.querySelector('#song-' + audioID + ' div.status div.timer div.current').innerHTML = audioTimeTransform(audioObj.currentTime); 489 document.querySelector('#song-' + audioID + ' div.status div.timer div.total').innerHTML = audioTimeTransform(audioDuration); 490 } 491 }); 492 audioObj.addEventListener('playing', function () { 493 document.querySelector('body').classList.add('player-on'); 494 document.querySelector('#audio-player').classList.add('show'); 495 }); 496 audioObj.addEventListener('ended', function () { 497 document.querySelector('div#audio-player div.bar span.progress').style.width = '0%'; 498 if (document.querySelector('.widget-podcast')) { 499 document.querySelector('#song-' + audioID + ' span.progress').style.width = '0%'; 500 } 501 audioPause(audioID); 502 //audioPlayerClose(); 503 }); 504 } else { 505 audioObj.play(); 506 audioIsPlaying = true; 507 } 508 document.querySelectorAll('a.song-play').forEach(function (el) { 509 el.style.display = 'block'; 510 }); 511 document.querySelectorAll('a.song-pause').forEach(function (el) { 512 el.style.display = 'none'; 513 }); 514 if (document.querySelector('.widget-podcast')) { 515 document.querySelector('#song-' + id + ' a.song-play').style.display = 'none'; 516 document.querySelector('#song-' + id + ' a.song-pause').style.display = 'block'; 517 } 518 document.querySelector('div#audio-player div.btns a.play').style.display = 'none'; 519 document.querySelector('div#audio-player div.btns a.pause').style.display = 'block'; 520 audioInit = true; 521} 522 523function audioPause(id) { 524 'use strict'; 525 if (audioInit) { 526 audioObj.pause(); 527 } 528 if (document.querySelector('.widget-podcast')) { 529 document.querySelector('#song-' + id + ' a.song-play').style.display = 'block'; 530 document.querySelector('#song-' + id + ' a.song-pause').style.display = 'none'; 531 } 532 document.querySelector('div#audio-player div.btns a.play').style.display = 'block'; 533 document.querySelector('div#audio-player div.btns a.pause').style.display = 'none'; 534 audioIsPlaying = false; 535} 536 537function audioSeek(id, seek) { 538 'use strict'; 539 if (audioInit && audioID === id) { 540 audioObj.currentTime = audioObj.currentTime + seek; 541 if (document.querySelector('.widget-podcast')) { 542 document.querySelector('#song-' + id + ' a.song-play').style.display = 'none'; 543 document.querySelector('#song-' + id + ' a.song-pause').style.display = 'block'; 544 } 545 document.querySelector('div#audio-player div.btns a.play').style.display = 'none'; 546 document.querySelector('div#audio-player div.btns a.pause').style.display = 'block'; 547 } else { 548 if (audioInit) { 549 audioPause(audioID); 550 } 551 var url = document.querySelector('.item#song-' + id).getAttribute('data-url'); 552 audioPlay(id, url); 553 } 554} 555 556function audioPlayerClose() { 557 'use strict'; 558 audioPause(audioID); 559 document.querySelector('body').classList.remove('player-on'); 560 document.querySelector('#audio-player').classList.remove('show'); 561} 562 563function audioTimeTransform(time) { 564 'use strict';
565 time = Math.ceil(time); 566 var minutes = Math.floor(time / 60); 567 var seconds = time - (minutes * 60); 568 if (seconds < 10) { 569 seconds = '0' + seconds; 570 } 571 return minutes + ':' + seconds; 572} 573 574/* 575========== light/dark mode 576*/ 577 578function lightDarkMode() { 579 menuMobile(false); 580 if (body.classList.contains('dark-mode')) { 581 body.classList.remove('dark-mode'); 582 setCookie('site-mode', '', 365); 583 } else { 584 body.classList.add('dark-mode'); 585 setCookie('site-mode', 'dark-mode', 365); 586 } 587} 588 589/* 590========== cookies 591*/ 592 593// create 594function setCookie(name, value, days) { 595 'use strict'; 596 var exdate = new Date(); 597 exdate.setDate(exdate.getDate() + days); 598 document.cookie = name + '=' + value + '; expires=' + exdate + '; path=/'; 599} 600 601// read 602function getCookie(name) { 603 'use strict'; 604 var i, x, y, ARRcookies = document.cookie.split(";"); 605 for (i = 0; i < ARRcookies.length; i++) { 606 x = ARRcookies[i].substr(0, ARRcookies[i].indexOf("=")); 607 y = ARRcookies[i].substr(ARRcookies[i].indexOf("=") + 1); 608 x = x.replace(/^\s+|\s+$/g, ""); 609 if (x === name) { 610 return decodeURI(y); 611 } 612 } 613 return ''; 614} 615 616// delete 617function deleteCookie(name) { 618 'use strict'; 619 document.cookie = name + '=; path=/; expires=Thu, 01 Jan 1970 00:00:01 GMT;'; 620} 621 622/* 623========== gps 624*/ 625 626function gpsPosition() { 627 var city = 'Nuoro'; 628 setupMeteo(city); 629 return; 630 if (navigator.geolocation) { 631 navigator.geolocation.getCurrentPosition(function (location) { 632 if (location.coords.accuracy <= 5000) { 633 var xmlhttp = new XMLHttpRequest(); 634 xmlhttp.onreadystatechange = function () { 635 if (xmlhttp.readyState == XMLHttpRequest.DONE) { 636 if (xmlhttp.status == 200) { 637 var geolocal = JSON.parse(xmlhttp.responseText); 638 if (geolocal.address.city) { 639 city = geolocal.address.city; 640 } else if (geolocal.address.village) { 641 city = geolocal.address.village; 642 } 643 setupMeteo(city); 644 } else if (xmlhttp.status == 400) { 645 setupMeteo(city); 646 } else { 647 setupMeteo(city); 648 } 649 } 650 }; 651 xmlhttp.open('GET', 'https://nominatim.openstreetmap.org/reverse?format=json&lat=' + location.coords.latitude + '&lon=' + location.coords.longitude + '&zoom=27&addressdetails=1', true); 652 xmlhttp.send(); 653 } else { 654 setupMeteo(city); 655 } 656 }); 657 } else { 658 setupMeteo(city); 659 } 660} 661 662/* 663========== meteo 664*/ 665 666function setupMeteo(city) { 667 'use strict'; 668 document.querySelector('#meteo-city').innerHTML = city; 669 var xmlhttp = new XMLHttpRequest(); 670 xmlhttp.onreadystatechange = function () { 671 if (xmlhttp.readyState == XMLHttpRequest.DONE) { 672 if (xmlhttp.status == 200) { 673 var geolocal = JSON.parse(xmlhttp.responseText); 674 if (geolocal.description !== null) { 675 document.querySelector('#meteo-temp').innerHTML = `${geolocal.max}° / ${geolocal.min}°`; 676 document.querySelector('#meteo-icon img').setAttribute('src', `${siteUrl}/meteo/${geolocal.icon}.png`); 677 document.querySelector('#meteo-icon img').setAttribute('alt', geolocal.description); 678 document.querySelector('#meteo-icon img').setAttribute('title', geolocal.description); 679 setTimeout(() => { 680 document.querySelector('#meteo-city').style.display = 'block'; 681 document.querySelector('#meteo-temp').style.display = 'block'; 682 document.querySelector('#meteo-icon').style.display = 'block'; 683 }, 1000); 684 } 685 } else if (xmlhttp.status == 400) { 686 //console.log(geolocal); 687 } else { 688 //console.log(geolocal); 689 } 690 } 691 }; 692 xmlhttp.open('GET', `${siteUrl}/ajax/meteo.php?city=${city}`, true); 693 xmlhttp.send(); 694} 695 696/* 697========== marquee 698*/ 699 700function Marquee(selector, speed) { 701 const parentSelector = document.querySelector(selector); 702 const clone = parentSelector.innerHTML; 703 const firstElement = parentSelector.children[0]; 704 var i = 0; 705 parentSelector.insertAdjacentHTML('beforeend', clone); 706 parentSelector.insertAdjacentHTML('beforeend', clone); 707 setInterval(function () { 708 firstElement.style.marginLeft = `-${i}px`; 709 if (i > firstElement.clientWidth) { 710 i = 0; 711 } 712 i = i + speed; 713 }, 0); 714} 715 716/* 717========== scroll to 718*/ 719 720function scrollToElement(selector, yOffset) { 721 'use strict'; 722 if (!yOffset) { 723 yOffset = 0; 724 } 725 var el = document.querySelector(selector); 726 var y = el.getBoundingClientRect().top + window.pageYOffset + yOffset; 727 window.scrollTo({ 728 top: y, 729 behavior: 'smooth' 730 }); 731} 732 733/* 734========== share popup 735*/ 736 737function sharePopup(status) { 738 'use strict'; 739 if (status) { 740 body.classList.add('scroll-lock'); 741 document.querySelector('div#sss-popup').classList.add('show'); 742 } else { 743 body.classList.remove('scroll-lock'); 744 document.querySelector('div#sss-popup').classList.remove('show'); 745 } 746} 747 748/* 749========== menu mobile 750*/ 751 752function menuMobile(status) { 753 'use strict'; 754 if (status) { 755 body.classList.add('scroll-lock'); 756 document.querySelector('div#menu-mobile').classList.add('show'); 757 } else { 758 body.classList.remove('scroll-lock'); 759 document.querySelector('div#menu-mobile').classList.remove('show'); 760 } 761} 762 763function menuMobileInfo(status) { 764 'use strict'; 765 if (status) { 766 document.querySelector('div#menu-mobile').classList.add('show'); 767 document.querySelector('div#menu-mobile').classList.add('info'); 768 } else { 769 document.querySelector('div#menu-mobile').classList.remove('info'); 770 } 771} 772 773/* 774========== strip html 775*/ 776 777function stripHtml(html) { 778 'use strict'; 779 var tmp = document.createElement("DIV"); 780 tmp.innerHTML = html; 781 return tmp.textContent || tmp.innerText || ""; 782} 783 784/* 785========== text to speach 786*/ 787 788function txtSpeachLoadClient() { 789 'use strict'; 790 return; 791 //gapi.client.setApiKey("AIzaSyAT8NGuWIg91klX42Va1e-miuH58IYO0KI"); 792 gapi.client.setApiKey("000"); 793 return gapi.client.load("https://texttospeech.googleapis.com/$discovery/rest?version=v1") 794 .then(function () { 795 console.log("GAPI client loaded for API"); 796 }, 797 function (err) { 798 console.error("Error loading GAPI client for API", err); 799 }); 800} 801 802function txtSpeachLoadSound() { 803 'use strict'; 804 return; 805 let text = document.getElementById('text-to-speak-txt').value; 806 //console.log(text); 807 return gapi.client.texttospeech.text.synthesize({ 808 "resource": { 809 "audioConfig": { 810 "audioEncoding": "MP3", 811 "pitch": 1, 812 "speakingRate": 1.1, 813 "volumeGainDb": 10 814 }, 815 "input": { 816 "text": text 817 }, 818 "voice": { 819 "languageCode": "it-IT", 820 //"name": "Google italiano", 821 "ssmlGender": "FEMALE" 822 } 823 } 824 }) 825 .then( 826 function (response) { 827 audioObj = new Audio("data:audio/wav;base64," + response.result.audioContent); 828 document.getElementById('player').setAttribute('src', "data:audio/wav;base64," + response.result.audioContent); 829 document.getElementById('player').style.display = 'block'; 830 document.querySelector('p.speak').classList.add('ready'); 831 $.ajax({ 832 type: "POST", 833 url: `/ajax/mp3save.php`, 834 data: { 835 id: document.querySelector('#post-id').value, 836 sound: response.result.audioContent 837 } 838 }); 839 }, 840 function (err) { 841 console.error("Execute error", err); 842 } 843 ); 844} 845 846/* 847========== archives goto page 848*/ 849 850function archiveGotoPage(root, section, slug) { 851 'use strict'; 852 var page = parseInt(document.getElementById('page-goto').value); 853 var url = root + '/' + section + '/'; 854 if (slug) { 855 url = url + slug + '/'; 856 } 857 if (page > 1) { 858 url = url + 'page/' + page + '/'; 859 } 860 window.location.href = url; 861} 862
863/* 864========== search goto page 865*/ 866 867function searchGotoPage(root, search) { 868 'use strict'; 869 var page = parseInt(document.getElementById('page-goto').value); 870 var url = root + '/'; 871 if (page > 1) { 872 url = url + 'page/' + page + '/'; 873 } 874 url = url + '?s=' + search; 875 window.location.href = url; 876} 877 878/* 879========== necro city filter 880*/ 881 882function necroCity(city) { 883 'use strict'; 884 document.querySelectorAll('div.contents div.list div.item').forEach((el) => { 885 if (el.getAttribute('data-city') === city) { 886 el.classList.remove('hide'); 887 } else { 888 el.classList.add('hide'); 889 } 890 }); 891 /*document.querySelectorAll('div.contents div.list').forEach((el) => { 892 var count = 0; 893 el.querySelectorAll('.item').forEach((item) => { 894 if (!item.classList.contains('hide')) { 895 count++; 896 } 897 }); 898 if (count == 0) { 899 el.style.display = 'none'; 900 } else { 901 el.style.display = 'gtid'; 902 } 903 });*/ 904 document.querySelector('.top-city-list').classList.remove('show'); 905} 906 907function necroCityReset() { 908 'use strict'; 909 document.querySelectorAll('div.contents div.list div.item').forEach((el) => { 910 el.classList.remove('hide'); 911 }); 912 /*document.querySelectorAll('div.contents div.list').forEach((el) => { 913 el.style.display = 'grid'; 914 });*/ 915 document.querySelector('.top-city-list').classList.remove('show'); 916 //necroMassonery(); 917} 918 919/* 920========== necro massonery 921*/ 922 923function necroMassonery() { 924 /*$('div.contents div.list.single').masonry({ 925 itemSelector: 'div.contents div.list.single div.item:not(.hide)', 926 gutter: 40, 927 horizontalOrder: true, 928 });*/ 929} 930 931/* 932========== show/hide event detail 933*/ 934 935function showEvent(id) { 936 'use strict'; 937 moment.locale('it'); 938 document.querySelector('body').classList.add('scroll-lock'); 939 document.querySelector('div#event-detail').classList.add('show'); 940 $.getJSON('/wp-json/wp/v2/eventi/' + id, function (event) { 941 var data = event.acf.data_ora.split(' '); 942 var data_fine = event.acf.data_ora_fine.split(' '); 943 var info = `<span class="artist">${event.acf.artisti}</span><span class="local">${event.acf.locale}</span><span class="city">${event.acf.paese}</span>` 944 var address = `<a href="${event.acf.posizione}" target="_blank" data-no-swup>${event.acf.indirizzo}</a>`; 945 var prezzo_biglietto = ''; 946 if (event.acf.prezzo_biglietto !== '' && event.acf.prezzo_biglietto !== undefined) { 947 prezzo_biglietto = event.acf.prezzo_biglietto; 948 } 949 /*var download = ''; 950 if (event.acf.allegati.length > 0) { 951 download = `<a href="${event.acf.allegati[0].file}" target="_blank" data-no-swup>${event.acf.allegati[0].nome}</a>` 952 }*/ 953 var website = ''; 954 if (event.acf.sito_web !== '') { 955 website = `<a href="${event.acf.sito_web}" target="_blank" data-no-swup>Sito web</a>` 956 } 957 document.querySelector('div#event-detail div.box div.date span.day').innerHTML = moment(data[0]).format('dddd D MMMM'); 958 document.querySelector('div#event-detail div.box div.date span.time').innerHTML = data[1]; 959 document.querySelector('div#event-detail div.box div.category').innerHTML = event.acf.tipologia_evento; 960 document.querySelector('div#event-detail div.box div.title').innerHTML = event.title.rendered; 961 document.querySelector('div#event-detail div.box div.info').innerHTML = info; 962 document.querySelector('div#event-detail div.box li.address').innerHTML = address; 963 document.querySelector('div#event-detail div.box li.entrance span.type span').innerHTML = event.acf.ingresso; 964 document.querySelector('div#event-detail div.box li.entrance span.price').innerHTML = prezzo_biglietto; 965 document.querySelector('div#event-detail div.box li.booking').innerHTML = event.acf.prenotazione; 966 document.querySelector('div#event-detail div.box li.detail').innerHTML = event.acf.informazioni; 967 document.querySelector('div#event-detail div.box li.website').innerHTML = website; 968 //document.querySelector('div#event-detail div.box li.download').innerHTML = download; 969 document.querySelector('div#event-detail div.box').classList.add('show'); 970 var old_element = document.querySelector('div#event-detail div.box div.tools div.add-to-calendar a'); 971 var new_element = old_element.cloneNode(true); 972 old_element.parentNode.replaceChild(new_element, old_element); 973 document.querySelector('div#event-detail div.box div.tools div.add-to-calendar a').addEventListener('click', () => { 974 atcb_action({ 975 name: event.title.rendered, 976 description: event.acf.informazioni, 977 location: `${event.acf.posizione.lat},${event.acf.posizione.lng}`, 978 startDate: data[0], 979 endDate: data_fine[0], 980 startTime: data[1], 981 endTime: data_fine[1], 982 options: ["Apple", "Google", "iCal", "Microsoft365", "Outlook.com", "MicrosoftTeams", "Yahoo"], 983 timeZone: "Europe/Berlin", 984 trigger: "click", 985 iCalFileName: "Ortobene-Eventi" 986 }); 987 }); 988 }); 989} 990 991function closeEvent() { 992 'use strict'; 993 document.querySelector('div#event-detail').classList.remove('show'); 994 document.querySelector('div#event-detail div.box').classList.remove('show'); 995 if (!document.querySelector('div.events-calendar').classList.contains('show')) { 996 document.querySelector('body').classList.remove('scroll-lock'); 997 } 998} 999 1000/* 1001========== events filter 1002*/ 1003 1004var event_filters = { 1005 month: '', 1006 city: '' 1007} 1008 1009function eventsFilter() { 1010 'use strict'; 1011 var divMonth = document.querySelectorAll('div.events-archive div.month'); 1012 var divItem = document.querySelectorAll('div.events-archive div.list div.item'); 1013 divMonth.forEach((item) => { 1014 item.classList.remove('event-hide'); 1015 }); 1016 divItem.forEach((item) => { 1017 item.classList.remove('event-hide'); 1018 }); 1019 if (event_filters.month !== '' && event_filters.city !== '') { 1020 divMonth.forEach((el) => { 1021 if (el.getAttribute('data-month') === event_filters.month && el.getAttribute('data-city').includes(event_filters.city)) { 1022 el.classList.remove('event-hide'); 1023 } else { 1024 el.classList.add('event-hide'); 1025 } 1026 }); 1027 divItem.forEach((el) => { 1028 if (el.getAttribute('data-month') === event_filters.month && el.getAttribute('data-city').includes(event_filters.city)) { 1029 el.classList.remove('event-hide'); 1030 } else { 1031 el.classList.add('event-hide'); 1032 } 1033 }); 1034 } 1035 if (event_filters.month !== '' && event_filters.city === '') { 1036 divMonth.forEach((el) => { 1037 if (el.getAttribute('data-month') === event_filters.month) { 1038 el.classList.remove('event-hide'); 1039 } else { 1040 el.classList.add('event-hide'); 1041 } 1042 }); 1043 divItem.forEach((el) => { 1044 if (el.getAttribute('data-month') === event_filters.month) { 1045 el.classList.remove('event-hide'); 1046 } else { 1047 el.classList.add('event-hide'); 1048 } 1049 }); 1050 }
1051 if (event_filters.month === '' && event_filters.city !== '') { 1052 divMonth.forEach((el) => { 1053 if (el.getAttribute('data-city').includes(event_filters.city)) { 1054 el.classList.remove('event-hide'); 1055 } else { 1056 el.classList.add('event-hide'); 1057 } 1058 }); 1059 divItem.forEach((el) => { 1060 if (el.getAttribute('data-city').includes(event_filters.city)) { 1061 el.classList.remove('event-hide'); 1062 } else { 1063 el.classList.add('event-hide'); 1064 } 1065 }); 1066 } 1067 if (document.querySelectorAll('div.events-archive div.list div.item:not(.event-hide)').length === 0) { 1068 document.querySelector('div.no-events').style.display = 'block'; 1069 } else { 1070 document.querySelector('div.no-events').style.display = 'none'; 1071 } 1072 if (event_filters.month === '') { 1073 document.querySelector('#filter-date span.all').style.display = 'block'; 1074 document.querySelector('#filter-date span.active').style.display = 'none'; 1075 } else { 1076 document.querySelector('#filter-date span.all').style.display = 'none'; 1077 document.querySelector('#filter-date span.active').innerHTML = moment(`1900-${event_filters.month}-01`).format('MMMM'); 1078 document.querySelector('#filter-date span.active').style.display = 'block'; 1079 } 1080 if (event_filters.city === '') { 1081 document.querySelector('#filter-city span.all').style.display = 'block'; 1082 document.querySelector('#filter-city span.active').style.display = 'none'; 1083 } else { 1084 document.querySelector('#filter-city span.all').style.display = 'none'; 1085 document.querySelector('#filter-city span.active').innerHTML = event_filters.city; 1086 document.querySelector('#filter-city span.active').style.display = 'block'; 1087 } 1088 document.querySelectorAll('div.events-archive div.tools div.filters span.dropdown a').forEach((el) => { 1089 el.blur(); 1090 }); 1091} 1092 1093/* 1094========== show/hide event calendar 1095*/ 1096 1097function eventCalendarShow() { 1098 'use strict'; 1099 document.querySelector('body').classList.add('scroll-lock'); 1100 document.querySelector('div.events-calendar').classList.add('show'); 1101 document.querySelector('div.events-calendar div#mega-calendar').classList.add('show'); 1102} 1103 1104function eventCalendarClose() { 1105 'use strict'; 1106 document.querySelector('body').classList.remove('scroll-lock'); 1107 document.querySelector('div.events-calendar').classList.remove('show'); 1108 document.querySelector('div.events-calendar div#mega-calendar').classList.remove('show'); 1109} 1110 1111/* 1112========== event form 1113*/ 1114 1115var eventsFormSection = 'login'; 1116var eventsFormSend = false; 1117 1118function eventsUserFormOpen() { 1119 'use strict'; 1120 eventsUserFormSwitch('login'); 1121 document.querySelector('div#events-form').classList.add('show'); 1122} 1123 1124function eventsUserFormClose() { 1125 'use strict'; 1126 document.querySelector('div#events-form').classList.remove('show'); 1127 setTimeout(() => { 1128 eventsUserFormReset(); 1129 }, 500); 1130} 1131 1132function eventsUserFormSwitch(section) { 1133 'use strict'; 1134 document.querySelectorAll('div#events-form div.registration div.col').forEach((el) => { 1135 el.classList.add('hide'); 1136 }); 1137 document.querySelectorAll('div#events-form div.registration div.msg').forEach((el) => { 1138 el.innerHTML = ''; 1139 }); 1140 document.querySelector(`div#events-form div.registration div.col-${section}`).classList.remove('hide'); 1141 if (section === 'new') { 1142 document.querySelector('div#events-form div.registration').classList.add('wide'); 1143 } else { 1144 document.querySelector('div#events-form div.registration').classList.remove('wide'); 1145 } 1146 eventsFormSection = section; 1147} 1148 1149function eventsUserNew() { 1150 'use strict'; 1151 if (!eventsFormSend) { 1152 var name = document.querySelector('#new-name'); 1153 var surname = document.querySelector('#new-surname'); 1154 var mail = document.querySelector('#new-mail'); 1155 var phone = document.querySelector('#new-phone'); 1156 var pwd = document.querySelector('#new-pwd'); 1157 var privacy = document.querySelector('#new-privacy'); 1158 var msg = document.querySelector(`div#events-form div.registration div.col-${eventsFormSection} div.msg`); 1159 msg.innerHTML = ''; 1160 msg.classList.remove('success'); 1161 msg.classList.remove('error'); 1162 var errors = 0; 1163 if (name.value === '') { 1164 name.classList.add('error'); 1165 errors++; 1166 } else { 1167 name.classList.remove('error'); 1168 } 1169 if (surname.value === '') { 1170 surname.classList.add('error'); 1171 errors++; 1172 } else { 1173 surname.classList.remove('error'); 1174 } 1175 if (mail.value === '') { 1176 mail.classList.add('error'); 1177 errors++; 1178 } else { 1179 mail.classList.remove('error'); 1180 } 1181 if (phone.value === '') { 1182 phone.classList.add('error'); 1183 errors++; 1184 } else { 1185 phone.classList.remove('error'); 1186 } 1187 if (pwd.value === '') { 1188 pwd.classList.add('error'); 1189 errors++; 1190 } else { 1191 pwd.classList.remove('error'); 1192 } 1193 if (errors > 0) { 1194 msg.innerHTML = 'Compilare tutti i campi obbligatori'; 1195 msg.classList.add('error'); 1196 return; 1197 } 1198 if (!validateEmail(mail.value)) { 1199 msg.innerHTML = 'Indirizzo mail non valido'; 1200 msg.classList.add('error'); 1201 return; 1202 } 1203 if (!privacy.checked) { 1204 msg.innerHTML = `à necessario accettare l'informativa sulla privacy.`; 1205 msg.classList.add('error'); 1206 return; 1207 } 1208 eventsFormSend = true; 1209 msg.innerHTML = 'Registrazione in corso...'; 1210 msg.classList.remove('error'); 1211 var postData = { 1212 action: eventsFormSection, 1213 name: name.value, 1214 surname: surname.value, 1215 mail: mail.value, 1216 phone: phone.value, 1217 pwd: pwd.value 1218 1219 }; 1220 $.post({ 1221 url: '/ajax/events.php', 1222 data: postData, 1223 success: function (response) { 1224 setTimeout(() => { 1225 switch (response) { 1226 case 'exist': 1227 msg.innerHTML = `L'indirizzo mail inserito è già registrato.<br />Puoi <a href="javascript:;" onclick="eventsUserFormSwitch('recover')">recuperare la tua password</a> nel caso sia stata smarrita o dimenticata.`; 1228 msg.classList.remove('success'); 1229 msg.classList.add('error'); 1230 eventsFormSend = false;
1231 break; 1232 case 'success': 1233 eventsUserFormReset(); 1234 msg.innerHTML = `La registrazione è andata a buon fine.<br />Controlla la tua casella di posta per attivare il nuovo account e iniziare a pubblicare gli eventi.`; 1235 msg.classList.add('success'); 1236 msg.classList.remove('error'); 1237 eventsFormSend = false; 1238 break; 1239 default: 1240 msg.innerHTML = `Si è verifica un errore.<br/>Si prega di riprovare più tardi.`; 1241 msg.classList.remove('success'); 1242 msg.classList.add('error'); 1243 eventsFormSend = false; 1244 break; 1245 } 1246 }, 2000); 1247 }, 1248 }); 1249 } 1250} 1251 1252function eventsUserRecover() { 1253 'use strict'; 1254 if (!eventsFormSend) { 1255 var user = document.querySelector('#recover-usr'); 1256 var msg = document.querySelector(`div#events-form div.registration div.col-${eventsFormSection} div.msg`); 1257 msg.innerHTML = ''; 1258 msg.classList.remove('success'); 1259 msg.classList.remove('error'); 1260 var errors = 0; 1261 if (user.value === '') { 1262 user.classList.add('error'); 1263 errors++; 1264 } else { 1265 user.classList.remove('error'); 1266 } 1267 if (errors > 0) { 1268 msg.innerHTML = 'Compilare tutti i campi obbligatori'; 1269 msg.classList.add('error'); 1270 return; 1271 } 1272 if (!validateEmail(user.value)) { 1273 user.innerHTML = 'Indirizzo mail non valido'; 1274 user.classList.add('error'); 1275 return; 1276 } 1277 eventsFormSend = true; 1278 msg.innerHTML = 'Invio richiesta in corso...'; 1279 msg.classList.remove('error'); 1280 var postData = { 1281 action: eventsFormSection, 1282 user: user.value 1283 1284 }; 1285 $.post({ 1286 url: '/ajax/events.php', 1287 data: postData, 1288 success: function (response) { 1289 setTimeout(() => { 1290 switch (response) { 1291 case 'unknow': 1292 eventsUserFormReset(); 1293 msg.innerHTML = `La mail digitata non è registrata.`; 1294 msg.classList.remove('success'); 1295 msg.classList.add('error'); 1296 eventsFormSend = false; 1297 break; 1298 case 'success': 1299 eventsUserFormReset(); 1300 msg.innerHTML = `La password è stata correttamente inviata alla tua casella di posta elettronica.`; 1301 msg.classList.add('success'); 1302 msg.classList.remove('error'); 1303 eventsFormSend = false; 1304 break; 1305 default: 1306 msg.innerHTML = `Si è verifica un errore.<br/>Si prega di riprovare più tardi.`; 1307 msg.classList.remove('success'); 1308 msg.classList.add('error'); 1309 eventsFormSend = false; 1310 break; 1311 } 1312 }, 2000); 1313 }, 1314 }); 1315 } 1316} 1317 1318function eventsUserLogin() { 1319 'use strict'; 1320 if (!eventsFormSend) { 1321 var user = document.querySelector('#login-usr'); 1322 var pwd = document.querySelector('#login-pwd'); 1323 var msg = document.querySelector(`div#events-form div.registration div.col-${eventsFormSection} div.msg`); 1324 msg.innerHTML = ''; 1325 msg.classList.remove('success'); 1326 msg.classList.remove('error'); 1327 var errors = 0; 1328 if (user.value === '') { 1329 user.classList.add('error'); 1330 errors++; 1331 } else { 1332 user.classList.remove('error'); 1333 } 1334 if (pwd.value === '') { 1335 pwd.classList.add('error'); 1336 errors++; 1337 } else { 1338 pwd.classList.remove('error'); 1339 } 1340 if (errors > 0) { 1341 msg.innerHTML = 'Compilare tutti i campi obbligatori'; 1342 msg.classList.add('error'); 1343 return; 1344 } 1345 if (!validateEmail(user.value)) { 1346 msg.innerHTML = 'Indirizzo mail non valido'; 1347 user.classList.add('error'); 1348 return; 1349 } 1350 eventsFormSend = true; 1351 msg.innerHTML = 'Richiesta di accesso in corso...'; 1352 msg.classList.remove('error'); 1353 var postData = { 1354 action: eventsFormSection, 1355 user: user.value, 1356 pwd: pwd.value 1357 1358 }; 1359 $.post({ 1360 url: '/ajax/events.php', 1361 data: postData, 1362 success: function (response) { 1363 setTimeout(() => { 1364 switch (response) { 1365 case 'unknow': 1366 eventsUserFormReset(); 1367 msg.innerHTML = `Le credenziali digitate non sono corrette.`; 1368 msg.classList.remove('success'); 1369 msg.classList.add('error'); 1370 eventsFormSend = false;
1371 break; 1372 case 'inactive': 1373 eventsUserFormReset(); 1374 msg.innerHTML = `L'account non è ancora attivo.<br/>à necessario utilizzare il link di attivazione ricevuto via mail. Per richiedere nuovamente il link utilizza la funzione di recupero password.`; 1375 msg.classList.remove('success'); 1376 msg.classList.add('error'); 1377 eventsFormSend = false; 1378 break; 1379 case 'success': 1380 eventsUserFormReset(); 1381 msg.innerHTML = `Accesso eseguito.<br/>Stai per essere reindirizzato al pannello eventi...`; 1382 msg.classList.add('success'); 1383 msg.classList.remove('error'); 1384 setTimeout(() => { 1385 document.location.href = '/eventi/bacheca/'; 1386 }, 1000); 1387 break; 1388 default: 1389 msg.innerHTML = `Si è verifica un errore.<br/>Si prega di riprovare più tardi.`; 1390 msg.classList.remove('success'); 1391 msg.classList.add('error'); 1392 eventsFormSend = false; 1393 break; 1394 } 1395 eventsFormSend = false; 1396 }, 500); 1397 }, 1398 }); 1399 } 1400} 1401 1402function eventsUserFormReset() { 1403 'use strict'; 1404 document.querySelector('#new-name').value = ''; 1405 document.querySelector('#new-surname').value = ''; 1406 document.querySelector('#new-mail').value = ''; 1407 document.querySelector('#new-phone').value = ''; 1408 document.querySelector('#new-pwd').value = ''; 1409 document.querySelector('#login-usr').value = ''; 1410 document.querySelector('#login-pwd').value = ''; 1411 document.querySelector('#recover-usr').value = ''; 1412 document.querySelector('#new-privacy').checked = false; 1413 document.querySelectorAll('div#events-form div.registration div.col div.msg').forEach((item) => { 1414 item.innerHTML = ''; 1415 item.classList.remove('error'); 1416 item.classList.remove('success'); 1417 }); 1418} 1419 1420var user_event_edit_model = { 1421 id: 0, 1422 post_title: '', 1423 pubblica: true, 1424 annulla_evento: false, 1425 data_ora: '', 1426 data_ora_fine: '', 1427 paese: '', 1428 indirizzo: '', 1429 locale: '', 1430 sito_web: '', 1431 artisti: '', 1432 prenotazione: '', 1433 ingresso: '', 1434 prezzo_biglietto: '', 1435 informazioni: '', 1436 allegati: '', 1437 indirizzo_google_maps: '', 1438 posizione: '', 1439 informazioni: '', 1440 tipologia_evento: '', 1441 action: '', 1442 utente: '' 1443} 1444 1445var user_event_edit; 1446var user_event_send = false; 1447 1448function eventsEdit(id) { 1449 'use strict'; 1450 user_event_edit = JSON.parse(JSON.stringify(user_event_edit_model)); 1451 document.querySelector('body').classList.add('scroll-lock'); 1452 document.querySelector('div#ee').classList.add('show'); 1453 user_event_edit.utente = parseInt(document.querySelector('#user_id').value); 1454 if (id === 0) { 1455 eventsEditReset(); 1456 user_event_edit.action = 'new_event'; 1457 document.querySelector('div.ee-box').classList.add('show'); 1458 document.querySelector('div.ee-box-title').innerHTML = 'Inserisci un nuovo evento'; 1459 document.querySelector('div.ee-box').classList.add('show'); 1460 } else { 1461 document.querySelector('div.ee-box-title').innerHTML = 'Modifica il tuo evento'; 1462 $.getJSON(`/wp-json/wp/v2/eventi/${id}`, function (event) { 1463 var start = moment(event.acf.data_ora).format('YYYY-MM-DDTHH:mm'); 1464 var end = moment(event.acf.data_ora_fine).format('YYYY-MM-DDTHH:mm'); 1465 // 1466 document.querySelector('#ee-title').value = event.title.rendered; 1467 document.querySelector('#ee-type').value = event.acf.tipologia_evento; 1468 document.querySelector('#ee-date-start').value = start; 1469 document.querySelector('#ee-date-end').value = end; 1470 document.querySelector('#ee-description').value = event.acf.informazioni; 1471 document.querySelector('#ee-local').value = event.acf.locale; 1472 document.querySelector('#ee-artists').value = event.acf.artisti; 1473 document.querySelector('#ee-website').value = event.acf.sito_web; 1474 document.querySelector('#ee-booking').value = event.acf.prenotazione; 1475 document.querySelector('#ee-entrance').value = event.acf.ingresso; 1476 document.querySelector('#ee-price').value = event.acf.prezzo_biglietto; 1477 document.querySelector('#ee-google-address').value = event.acf.indirizzo_google_maps; 1478 document.querySelector('div.ee-box').classList.add('show'); 1479 // 1480 user_event_edit.id = id; 1481 user_event_edit.action = 'update_event'; 1482 user_event_edit.post_title = event.title.rendered; 1483 user_event_edit.data_ora = event.acf.data_ora 1484 user_event_edit.data_ora_fine = event.acf.data_ora_fine 1485 user_event_edit.paese = event.acf.paese; 1486 user_event_edit.indirizzo = event.acf.indirizzo; 1487 user_event_edit.locale = event.acf.locale; 1488 user_event_edit.sito_web = event.acf.sito_web; 1489 user_event_edit.artisti = event.acf.artisti; 1490 user_event_edit.prenotazione = event.acf.prenotazione; 1491 user_event_edit.ingresso = event.acf.ingresso; 1492 user_event_edit.prezzo_biglietto = event.acf.prezzo_biglietto; 1493 user_event_edit.informazioni = event.acf.informazioni; 1494 user_event_edit.allegati = event.acf.allegati; 1495 user_event_edit.indirizzo_google_maps = event.acf.indirizzo_google_maps; 1496 user_event_edit.posizione = event.acf.posizione; 1497 user_event_edit.informazioni = event.acf.informazioni; 1498 user_event_edit.tipologia_evento = event.acf.tipologia_evento; 1499 user_event_edit.annulla_evento = event.acf.annulla_evento; 1500 // 1501 eventsEditEntrance(); 1502 }); 1503 } 1504} 1505 1506function eventsEditEntrance() { 1507 'use strict'; 1508 switch (document.querySelector('#ee-entrance').value) { 1509 case 'A pagamento': 1510 document.querySelector('div.price').classList.add('show'); 1511 document.querySelector('#ee-price').setAttribute('required', ''); 1512 break; 1513 default: 1514 document.querySelector('div.price').value = ''; 1515 document.querySelector('div.price').classList.remove('show'); 1516 document.querySelector('#ee-price').removeAttribute('required'); 1517 break; 1518 } 1519} 1520 1521function eventsEditClose() { 1522 'use strict'; 1523 document.querySelector('body').classList.remove('scroll-lock'); 1524 document.querySelector('div#ee').classList.remove('show'); 1525 document.querySelector('div.ee-box').classList.remove('show'); 1526 setTimeout(() => { 1527 eventsEditReset(); 1528 document.querySelector('div#ee').classList.remove('ok'); 1529 }, 500); 1530} 1531 1532function eventsEditReset() { 1533 'use strict'; 1534 user_event_edit = JSON.parse(JSON.stringify(user_event_edit_model)); 1535 var msg = document.querySelector('span.ee-box-send-msg'); 1536 msg.classList.remove('error'); 1537 msg.classList.remove('success'); 1538 msg.innerHTML = '* campi obbligatori'; 1539 document.querySelectorAll('div#ee input').forEach((el) => { 1540 el.classList.remove('error'); 1541 el.value = ''; 1542 }); 1543 document.querySelectorAll('div#ee select').forEach((el) => { 1544 el.classList.remove('error'); 1545 el.value = ''; 1546 }); 1547 document.querySelectorAll('div#ee textarea').forEach((el) => { 1548 el.classList.remove('error'); 1549 el.value = ''; 1550 }); 1551 eventsEditEntrance(); 1552} 1553 1554function eventsEditSend() { 1555 'use strict'; 1556 if (!user_event_send) { 1557 user_event_send = true; 1558 var errors = 0; 1559 var msg = document.querySelector('span.ee-box-send-msg'); 1560 msg.classList.remove('error'); 1561 msg.innerHTML = ''; 1562 document.querySelectorAll('div#ee input').forEach((el) => { 1563 if (el.required && el.value === '') { 1564 el.classList.add('error'); 1565 errors++; 1566 } else { 1567 el.classList.remove('error'); 1568 } 1569 }); 1570 document.querySelectorAll('div#ee select').forEach((el) => { 1571 if (el.required && el.value === '') { 1572 el.classList.add('error'); 1573 errors++; 1574 } else { 1575 el.classList.remove('error'); 1576 } 1577 }); 1578 document.querySelectorAll('div#ee textarea').forEach((el) => { 1579 if (el.required && el.value === '') { 1580 el.classList.add('error'); 1581 errors++; 1582 } else { 1583 el.classList.remove('error'); 1584 } 1585 }); 1586 if (errors > 0) { 1587 msg.classList.add('error'); 1588 msg.innerHTML = 'Compilare i campi obbligatori'; 1589 user_event_send = false;
1590 return; 1591 } 1592 user_event_edit.data_ora = user_event_edit.data_ora.replace('T', ' '); 1593 user_event_edit.data_ora_fine = user_event_edit.data_ora_fine.replace('T', ' '); 1594 user_event_edit.utente = parseInt(document.querySelector('#user_id').value); 1595 msg.innerHTML = 'Invio in corso...'; 1596 $.post({ 1597 url: '/ajax/events.php', 1598 data: user_event_edit, 1599 success: function (response) { 1600 setTimeout(() => { 1601 switch (response) { 1602 case 'success': 1603 switch (user_event_edit.action) { 1604 case 'new_event': 1605 msg.innerHTML = `Evento inviato correttamente.`; 1606 break; 1607 case 'update_event': 1608 msg.innerHTML = `Evento aggiornato correttamente.`; 1609 break; 1610 } 1611 msg.classList.add('success'); 1612 document.querySelector('div#ee').classList.add('ok'); 1613 setTimeout(() => { 1614 document.location.href = '/eventi/bacheca/'; 1615 }, 2000); 1616 break; 1617 default: 1618 msg.innerHTML = `Si è verifica un errore. Si prega di riprovare più tardi.`; 1619 msg.classList.add('error'); 1620 break; 1621 } 1622 user_event_send = false; 1623 }, 500); 1624 }, 1625 }); 1626 } 1627} 1628 1629var event_cancel_popup = { 1630 action: 'cancel_event', 1631 id: false 1632}; 1633 1634function eventsCancelPopup(id) { 1635 'use strict'; 1636 event_cancel_popup.id = id; 1637 document.querySelector('#event-cancel').classList.remove('execute'); 1638 document.querySelector('#event-cancel').classList.remove('success'); 1639 document.querySelector('#event-cancel').classList.remove('error'); 1640 document.querySelector('#event-cancel').classList.add('show'); 1641} 1642 1643function eventsCancelPopupClose() { 1644 'use strict'; 1645 event_cancel_popup.id = false; 1646 document.querySelector('#event-cancel').classList.remove('show'); 1647 setTimeout(() => { 1648 document.querySelector('#event-cancel').classList.remove('execute'); 1649 document.querySelector('#event-cancel').classList.remove('success'); 1650 document.querySelector('#event-cancel').classList.remove('error'); 1651 }, 500); 1652} 1653 1654function eventsCancelConfirm() { 1655 'use strict'; 1656 document.querySelector('#event-cancel').classList.add('execute'); 1657 $.post({ 1658 url: '/ajax/events.php', 1659 data: event_cancel_popup, 1660 success: function (response) { 1661 setTimeout(() => { 1662 switch (response) { 1663 case 'success': 1664 document.querySelector('#event-cancel').classList.remove('execute'); 1665 document.querySelector('#event-cancel').classList.add('success'); 1666 setTimeout(() => { 1667 document.location.href = '/eventi/bacheca/'; 1668 }, 2000); 1669 break; 1670 default: 1671 document.querySelector('#event-cancel').classList.remove('execute'); 1672 document.querySelector('#event-cancel').classList.add('error'); 1673 setTimeout(() => { 1674 document.location.href = '/eventi/bacheca/'; 1675 }, 2000); 1676 break; 1677 } 1678 user_event_send = false; 1679 }, 500); 1680 }, 1681 }); 1682} 1683 1684var event_restore_popup = { 1685 action: 'restore_event', 1686 id: false 1687}; 1688 1689function eventsRestorePopup(id) { 1690 'use strict'; 1691 event_restore_popup.id = id; 1692 document.querySelector('#event-restore').classList.remove('execute'); 1693 document.querySelector('#event-restore').classList.remove('success'); 1694 document.querySelector('#event-restore').classList.remove('error'); 1695 document.querySelector('#event-restore').classList.add('show'); 1696} 1697 1698function eventsRestorePopupClose() { 1699 'use strict'; 1700 event_restore_popup.id = false;
1701 document.querySelector('#event-restore').classList.remove('show'); 1702 setTimeout(() => { 1703 document.querySelector('#event-restore').classList.remove('execute'); 1704 document.querySelector('#event-restore').classList.remove('success'); 1705 document.querySelector('#event-restore').classList.remove('error'); 1706 }, 500); 1707} 1708 1709function eventsRestoreConfirm() { 1710 'use strict'; 1711 document.querySelector('#event-restore').classList.add('execute'); 1712 $.post({ 1713 url: '/ajax/events.php', 1714 data: event_restore_popup, 1715 success: function (response) { 1716 setTimeout(() => { 1717 switch (response) { 1718 case 'success': 1719 document.querySelector('#event-restore').classList.remove('execute'); 1720 document.querySelector('#event-restore').classList.add('success'); 1721 setTimeout(() => { 1722 document.location.href = '/eventi/bacheca/'; 1723 }, 2000); 1724 break; 1725 default: 1726 document.querySelector('#event-restore').classList.remove('execute'); 1727 document.querySelector('#event-restore').classList.add('error'); 1728 setTimeout(() => { 1729 document.location.href = '/eventi/bacheca/'; 1730 }, 2000); 1731 break; 1732 } 1733 user_event_send = false; 1734 }, 500); 1735 }, 1736 }); 1737} 1738 1739 1740function autocompleteEventAddressInit() { 1741 setTimeout(function () { 1742 autocompleteEventAddress = new google.maps.places.Autocomplete(document.getElementById('ee-google-address')); 1743 autocompleteEventAddress.addListener('place_changed', autocompleteEventAddressPlaceChanged); 1744 document.querySelector('#ee-google-address').attributes.autocomplete = false; 1745 }, 1000); 1746} 1747 1748function autocompleteEventAddressPlaceChanged() { 1749 var place = autocompleteEventAddress.getPlace(); 1750 //console.log(place); 1751 var paese = ''; 1752 var indirizzo = ''; 1753 var civico = ''; 1754 place['address_components'].forEach(element => { 1755 let type = element['types'][0]; 1756 switch (type) { 1757 case 'administrative_area_level_3': 1758 paese = element['long_name']; 1759 break; 1760 case 'route': 1761 indirizzo = element['long_name']; 1762 break; 1763 case 'street_number': 1764 civico = element['long_name']; 1765 break; 1766 } 1767 }); 1768 user_event_edit.paese = paese; 1769 user_event_edit.indirizzo = `${indirizzo}, ${civico}`; 1770 user_event_edit.indirizzo_google_maps = place.formatted_address; 1771 user_event_edit.posizione = place.url; 1772} 1773 1774/* archive */ 1775 1776function archiveOpenFilters() { 1777 'use strict'; 1778 document.querySelector('div.archive-filters-checks').classList.add('open'); 1779} 1780 1781function archiveCloseFilters() { 1782 'use strict'; 1783 document.querySelector('div.archive-filters-checks').classList.remove('open'); 1784} 1785 1786function archiveCategoriesAll() { 1787 'use strict'; 1788 if (document.querySelector('input#tutte').checked) { 1789 document.querySelectorAll('.category-check').forEach((el) => { 1790 el.checked = true; 1791 }); 1792 } else { 1793 document.querySelectorAll('.category-check').forEach((el) => { 1794 el.checked = false; 1795 }); 1796 } 1797} 1798 1799function archiveCategoriesCheck() { 1800 'use strict'; 1801 var checks = document.querySelectorAll('.category-check'); 1802 var count = 0; 1803 checks.forEach((el) => { 1804 if (el.checked) { 1805 count++; 1806 } 1807 }); 1808 if (count === checks.length) { 1809 document.querySelector('input#tutte').checked = true; 1810 } else { 1811 document.querySelector('input#tutte').checked = false; 1812 } 1813} 1814 1815function archiveCheckDates() { 1816 var now = moment(); 1817 var date_start = moment(document.getElementById('date-start').value); 1818 var date_end = moment(document.getElementById('date-end').value); 1819 if (date_start > now) { 1820 document.getElementById('date-start').value = moment().format('YYYY-MM-DD'); 1821 } 1822 if (date_end > now) { 1823 document.getElementById('date-end').value = moment().format('YYYY-MM-DD'); 1824 } 1825 if (date_start > date_end) { 1826 document.getElementById('date-start').value = moment(date_end).format('YYYY-MM-DD'); 1827 } 1828 document.getElementById('date-start').setAttribute('max', moment(date_end).format('YYYY-MM-DD')); 1829} 1830 1831function archiveSearch() { 1832 'use strict'; 1833 var date_start = document.getElementById('date-start').value; 1834 var date_end = document.getElementById('date-end').value; 1835 var checks = document.querySelectorAll('.category-check'); 1836 var categories = []; 1837 checks.forEach((el) => { 1838 if (el.checked) { 1839 categories.push(el.value); 1840 } 1841 }); 1842 var url = '/archivio/?dal=' + date_start + '&al=' + date_end; 1843 if (categories.length > 0 && categories.length < checks.length) { 1844 url = url + '&cat=' + categories; 1845 } 1846 document.location.href = url; 1847} 1848
1849/* htmlentities */ 1850 1851(function (window) { 1852 window.htmlentities = { 1853 encode: function (str) { 1854 var buf = []; 1855 for (var i = str.length - 1; i >= 0; i--) { 1856 buf.unshift(['&#', str[i].charCodeAt(), ';'].join('')); 1857 } 1858 return buf.join(''); 1859 }, 1860 decode: function (str) { 1861 return str.replace(/&#(\d+);/g, function (match, dec) { 1862 return String.fromCharCode(dec); 1863 }); 1864 } 1865 }; 1866})(window); 1867 1868/* 1869========== PAYPAL BUTTON 1870*/ 1871 1872function initPayPalButton() { 1873 paypal.Buttons({ 1874 style: { 1875 shape: 'pill', 1876 color: 'gold', 1877 layout: 'horizontal', 1878 label: 'pay', 1879 1880 }, 1881 createOrder: function (data, actions) { 1882 return actions.order.create({ 1883 purchase_units: [{ 1884 "description": "L'Ortobene - Abbonamento Cartaceo - 1 anno", 1885 "amount": { 1886 "currency_code": "EUR", 1887 "value": 30 1888 } 1889 }] 1890 }); 1891 }, 1892 onApprove: function (data, actions) { 1893 return actions.order.capture().then(function (orderData) { 1894 console.log('Capture result', orderData, JSON.stringify(orderData, null, 2)); 1895 const element = document.getElementById('paypal-button-container'); 1896 element.innerHTML = ''; 1897 element.innerHTML = '<h3>Grazie per aver sottoscritto l\'abbonamento annaule.</h3>'; 1898 }); 1899 }, 1900 onError: function (err) { 1901 console.log(err); 1902 } 1903 }).render('#paypal-button-container'); 1904} 1905 1906/* 1907========== EDIZIONI DIGITALI 1908*/ 1909 1910function edArchiveYears(year) { 1911 document.querySelector('div.de-years a.active').classList.remove('active'); 1912 document.querySelector('div.de-years a.y-' + year).classList.add('active'); 1913 document.querySelectorAll('div.de-list div.de-item').forEach((item) => { 1914 item.classList.remove('active'); 1915 }); 1916 document.querySelectorAll('div.de-list div.de-item.y-' + year).forEach((item) => { 1917 item.classList.add('active'); 1918 }); 1919} 1920 1921function yumpuShow() { 1922 document.querySelector('body').classList.add('scroll-lock'); 1923 document.querySelector('div#yumpu').classList.add('show'); 1924} 1925 1926function yumpuClose() { 1927 document.querySelector('body').classList.remove('scroll-lock'); 1928 document.querySelector('div#yumpu').classList.remove('show'); 1929}
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.