1if (typeof window.iniettaCss == 'undefined') 2 window.iniettaCss = function(url){ 3 if (typeof url == 'string') 4 url = [ url ]; 5 6 var link = document.createElement('link'); 7 8 link.setAttribute('rel', 'stylesheet'); 9 link.setAttribute('href', url[0]); 10 11 document.head.appendChild(link); 12 13 if (url.length > 1) 14 iniettaCss(url.slice(1)); 15 }; 16 17if (typeof window.iniettaScript == 'undefined') 18 window.iniettaScript = function(url, callback){ 19 if (typeof url == 'string') 20 url = [ url ]; 21 22 var s = document.createElement('script'); 23 24 s.setAttribute('src', url[0]); 25 s.async = true; 26 27 if (url.length > 1) 28 s.onload = function(){ iniettaScript(url.slice(1), callback); }; 29 else if (typeof callback == 'function') 30 s.onload = callback; 31 32 document.body.appendChild(s); 33 }; 34 35function setPaywallCookie(name, value, seconds){ 36 var expires = ''; 37 38 if (seconds){ 39 var date = new Date(); 40 date.setTime(date.getTime() + (seconds * 1000)); 41 expires = '; expires=' + date.toUTCString(); 42 } 43 44 document.cookie = name + '=' + (value || '') + expires + '; path=/'; 45} 46 47function getPaywallCookie(name){ 48 var nameEQ = name + '='; 49 var ca = document.cookie.split(';'); 50 51 for (var i = 0; i < ca.length; i++){ 52 var c = ca[i]; 53 54 while (c.charAt(0) == ' ') 55 c = c.substring(1, c.length); 56 57 if (c.indexOf(nameEQ) == 0) 58 return c.substring(nameEQ.length, c.length); 59 } 60 61 return null; 62} 63 64function erasePaywallCookie(name){ 65 document.cookie = name + '=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;'; 66} 67 68window.toQueryString = function(obj, prefix){ 69 var str = [ ], k, v; 70 71 for (var p in obj){ 72 if (!obj.hasOwnProperty(p)) // skip things from the prototype 73 continue; 74 75 if (~p.indexOf('[')) // only put whatever is before the bracket into new brackets; append the rest 76 k = prefix ? prefix + '[' + p.substring(0, p.indexOf('[')) + ']' + p.substring(p.indexOf('[')) : p; 77 else k = prefix ? prefix + '[' + p + ']' : p; 78 79 v = obj[p]; 80 81 str.push(typeof v == 'object' ? toQueryString(v, k) : encodeURIComponent(k) + '=' + encodeURIComponent(v)); 82 } 83 84 return str.join('&'); 85}; 86 87window.paywallLogin = function(data, redirect){ 88 var xhr = new XMLHttpRequest(); 89 90 xhr.open('GET', paywall_info.site_url + 'wonder-get-sso-data?' + toQueryString({ 91 data:data, 92 redirect:redirect 93 }, ''), true); 94 95 xhr.onreadystatechange = function(){ 96 if (xhr.readyState === 4){ 97 var content = JSON.parse(xhr.responseText); 98 99 if (content.status) 100 window.location.href = paywall_info.system_url + 'oauth/sso-login?' + toQueryString({ 101 client_id:paywall_info.client_id, 102 a:content.a, 103 b:content.b 104 }, ''); 105 }; 106 }; 107 108 xhr.send(); 109}; 110 111window.paywallLogout = function(redirect){ 112 var xhr = new XMLHttpRequest(); 113 114 xhr.open('GET', paywall_info.site_url + 'wonder-get-sso-data?' + toQueryString({ 115 data:{ }, 116 redirect:redirect 117 }, ''), true); 118 119 xhr.onreadystatechange = function(){ 120 if (xhr.readyState === 4){ 121 var content = JSON.parse(xhr.responseText); 122 123 if (content.status){ 124 erasePaywallCookie('wonder_paywall'); 125 erasePaywallCookie('wonder_paywall_public'); 126 127 window.location.href = paywall_info.system_url + 'oauth/sso-logout?' + toQueryString({ 128 client_id:paywall_info.client_id, 129 a:content.a, 130 b:content.b 131 }, ''); 132 } 133 }; 134 }; 135 136 xhr.send(); 137}; 138 139window.paywallCallbacks = window.paywallCallbacks || [ ]; 140window.paywallXhttpRequest = false; 141 142function getPaywallSession(callback){ 143 window.paywallCallbacks.push(callback); 144 145 var wonder_paywall_public = getPaywallCookie('wonder_paywall_public'), 146 wonder_paywall_public = wonder_paywall_public ? JSON.parse(decodeURIComponent(wonder_paywall_public)) : false; 147 148 if (wonder_paywall_public){ 149 for (var i = 0; i < window.paywallCallbacks.length; ++i) 150 window.paywallCallbacks[i](wonder_paywall_public); 151 152 window.paywallCallbacks = [ ]; 153 154 return; 155 } 156 157 if (window.paywallXhttpRequest) 158 return; 159 160 window.paywallXhttpRequest = true; 161 162 var xhr = new XMLHttpRequest(); 163 164 xhr.open('GET', paywall_info.site_url + 'wonder-get-access-token'); 165 166 xhr.onreadystatechange = function(mcallback){ 167 if (xhr.readyState === 4){ 168 var content = JSON.parse(xhr.responseText); 169 170 if (content.status){ 171 var wonder_paywall_public = content.data; 172 173 if (wonder_paywall_public){ 174 setPaywallCookie('wonder_paywall_public', JSON.stringify(wonder_paywall_public), (5 * 60)); 175 176 for (var i = 0; i < window.paywallCallbacks.length; ++i) 177 window.paywallCallbacks[i](wonder_paywall_public); 178 179 window.paywallCallbacks = [ ]; 180 181 return; 182 } 183 } 184 185 erasePaywallCookie('wonder_paywall_public'); 186 187 for (var i = 0; i < window.paywallCallbacks.length; ++i) 188 window.paywallCallbacks[i](false); 189 190 window.paywallCallbacks = [ ]; 191 192 window.paywallXhttpRequest = false;
193 }; 194 }.bind(this, callback); 195 196 xhr.send(); 197}; 198 199document.addEventListener('DOMContentLoaded', function(){ 200 getPaywallSession(function(wonder_paywall_public){ 201 var hidden_logged = document.querySelectorAll('.button-paywall-hidden-logged'), 202 hidden_not_logged = document.querySelectorAll('.button-paywall-hidden-not-logged'), 203 user_info = document.querySelectorAll('.paywall-user-info'), 204 abbonamenti = document.querySelectorAll('.paywall-abbonamenti'), 205 html_abbonamenti = ''; 206 207 if (wonder_paywall_public){ 208 for (var i = 0; i < hidden_logged.length; ++i) 209 hidden_logged[i].remove(); 210 211 for (var i = 0; i < hidden_not_logged.length; ++i) 212 hidden_not_logged[i].classList.remove('button-paywall-hidden-not-logged'); 213 214 for (var i = 0; i < user_info.length; ++i) 215 user_info[i].innerHTML = 'Ciao ' + wonder_paywall_public.nome + ' ' + wonder_paywall_public.cognome; 216 217 for (var i = 0; i < wonder_paywall_public.abbonamenti.length; ++i) 218 html_abbonamenti += '<div class="row" style="font-size:14px;">' + 219 '<div class="col-md-3" style="margin-bottom:10px;">' + 220 'Tipo acquisto<br />' + 221 '<strong>' + wonder_paywall_public.abbonamenti[i].nome_piano + '</strong>' + 222 '</div>' + 223 '<div class="col-md-2" style="margin-bottom:10px;">' + 224 'Data acquisto<br />' + 225 '<strong>' + wonder_paywall_public.abbonamenti[i].data_acquisto.substr(0, 10).split('-').reverse().join('/') + '</strong>' + 226 '</div>' + 227 '<div class="' + (wonder_paywall_public.abbonamenti[i].data_fine != '2999-12-31' ? 'col-md-4' : 'col-md-3') + '" style="margin-bottom:10px;">' + 228 'Validità <br />' + 229 'dal <strong>' + wonder_paywall_public.abbonamenti[i].data_inizio.split('-').reverse().join('/') + '</strong>' + 230 (wonder_paywall_public.abbonamenti[i].data_fine != '2999-12-31' ? (' al <strong>' + wonder_paywall_public.abbonamenti[i].data_fine.split('-').reverse().join('/') + '</strong>') : '') + 231 '</div>' + 232 '<div class="col-md-3" style="margin-bottom:10px;">' + 233 'Costo<br />' + 234 '<strong>' + wonder_paywall_public.abbonamenti[i].prezzo + ' € / ' + wonder_paywall_public.abbonamenti[i].text_durata + '</strong>' + 235 '</div>' + 236 '</div>' + 237 '<hr />'; 238 }else{ 239 for (var i = 0; i < hidden_logged.length; ++i) 240 hidden_logged[i].classList.remove('button-paywall-hidden-logged'); 241 242 for (var i = 0; i < hidden_not_logged.length; ++i) 243 hidden_not_logged[i].remove(); 244 } 245 246 for (var i = 0; i < abbonamenti.length; ++i) 247 abbonamenti[i].innerHTML = html_abbonamenti; 248 }); 249}); 250 251var maps = new Array(); 252var category_filter = new Array(); 253var current_url = window.location.origin.concat(window.location.pathname); 254var init_scroll = 0; 255 256function onLocationFound(e){ 257 var radius = e.accuracy / 2; 258 259 for (var i = 0; i < maps.length; ++i){ 260 var yellowIcon = new L.Icon({ 261 iconUrl:wonder_paywall.url + 'img/marker-icon-2x-yellow.png', 262 shadowUrl:wonder_paywall.url + 'img/marker-shadow.png', 263 iconSize:[ 25, 41 ], 264 iconAnchor:[ 12, 41 ], 265 popupAnchor:[ 1, -34 ], 266 shadowSize:[ 41, 41 ] 267 }); 268 269 markerCenter = L.marker(e.latlng, { icon:yellowIcon }).addTo(maps[i]); 270 L.circle(e.latlng, radius).addTo(maps[i]); 271 272 var min_dst = { 273 node:'', 274 dst:99999999 275 }; 276 277 var popup = L.popup(); 278 279 markerCenter.bindPopup('<b>La tua posizione</b>').openPopup(); 280 } 281} 282 283function removeElementFromArrayWithValue(array, value){ 284 for (var i = 0; i < array.length; i++) 285 if (array[i] == value){ 286 array.splice(i, 1); 287 break; 288 } 289} 290 291function filter_shops(id){ 292 if (category_filter[0] == id){ 293 jQuery('.categoria-wonder-store.category-selected').toggleClass('category-selected'); 294 jQuery('.wonder-plugin-elenco-stores .evento').css({ 'display':'initial' }).removeClass('disabled'); 295 jQuery('.wonder-plugin-elenco-stores-e-mappa .evento').css({ 'display':'initial' }).removeClass('disabled'); 296 jQuery('.leaflet-marker-icon').css({ 'display':'initial' }).removeClass('disabled'); 297 jQuery('.wonder-plugin-elenco-stores').css({ 'grid-template-columns':'auto '.repeat(3) }); 298 299 category_filter = new Array(); 300 301 return; 302 } 303 304 if (jQuery('.categoria-wonder-store.category-selected').length > 0){ 305 jQuery('.categoria-wonder-store.category-selected').toggleClass('category-selected'); 306 jQuery('.wonder-plugin-elenco-stores .evento').css({ 'display':'initial' }).removeClass('disabled'); 307 jQuery('.wonder-plugin-elenco-stores-e-mappa .evento').css({ 'display':'initial' }).removeClass('disabled'); 308 jQuery('.leaflet-marker-icon').css({ 'display':'initial' }).removeClass('disabled'); 309 jQuery('.wonder-plugin-elenco-stores').css({ 'grid-template-columns':'auto '.repeat(3) }); 310 311 category_filter = new Array(); 312 } 313 314 var touched_category = jQuery('.categoria-wonder-store[data-category-id="' + id + '"]'), active_class = 'category-selected'; 315 touched_category.toggleClass(active_class); 316 317 if (touched_category.hasClass(active_class)) 318 category_filter.push(id); 319 else removeElementFromArrayWithValue(category_filter, id); 320 321 if (category_filter.length > 0){ 322 jQuery('.wonder-plugin-elenco-stores .evento').css({ 'display':'none' }).addClass('disabled'); 323 jQuery('.wonder-plugin-elenco-stores-e-mappa .evento').css({ 'display':'none' }).addClass('disabled'); 324 jQuery('.leaflet-marker-icon').css({ 'display':'none' }).addClass('disabled'); 325 326 for (var i = 0; i < category_filter.length; i++){ 327 jQuery('.wonder-plugin-elenco-stores .evento[data-category-id="' + category_filter[i] + '"]').css({ 'display':'initial' }).removeClass('disabled'); 328 jQuery('.wonder-plugin-elenco-stores-e-mappa .evento.category_' + category_filter[i]).css({ 'display':'initial' }).removeClass('disabled'); 329 jQuery('.leaflet-marker-icon[alt~="' + category_filter[i] + '"]').css({ 'display':'initial' }).removeClass('disabled'); 330 } 331 332 var repeat = jQuery('.evento').not('.disabled').length > 3 ? 3 : window.innerWidth < 570 ? 1 : jQuery('.evento').not('.disabled').length; 333 334 jQuery('.wonder-plugin-elenco-stores').css({ 'grid-template-columns':'auto '.repeat(repeat) }); 335 }else{ 336 jQuery('.wonder-plugin-elenco-stores .evento').css({ 'display':'initial' }).removeClass('disabled'); 337 jQuery('.wonder-plugin-elenco-stores-e-mappa .evento').css({ 'display':'initial' }).removeClass('disabled'); 338 jQuery('.leaflet-marker-icon').css({ 'display':'initial' }).removeClass('disabled'); 339 jQuery('.wonder-plugin-elenco-stores').css({ 'grid-template-columns':'auto '.repeat(3) }); 340 } 341} 342 343function onLocationError(e){ } 344 345(function($){ 346 'use strict'; 347 348 function resizeMap(className){ 349 $(className).each(function(){ 350 var elem = $(this); 351 elem.height(elem.width() / 2); 352 353 var mappa = elem.data('mappa'); 354 355 if (typeof mappa != 'undefined') 356 mappa.invalidateSize(); 357 }); 358 } 359 360 $(function(){ 361 var ridimensionaMappaEventi = resizeMap('.wonder-plugin-mappa-eventi'); 362 var ridimensionaMappaStores = resizeMap('.wonder-plugin-mappa-stores'); 363 364 $('.wonder-plugin-elenco-stores').each(function(){ 365 var elem = $(this), 366 url = elem.data('url'); 367 368 $.ajax({ 369 url:url + 'api/frontend/store/get-elenco-store', 370 data:{ }, 371 dataType:'json', 372 method:'POST', 373 success:function(data){ 374 var status = data.status, 375 data = data.data; 376 377 /* 378 * Stores Interface 379 * address 380 * id 381 * id_comune 382 * id_provincia 383 * id_regione 384 * image 385 * lat 386 * lng 387 * slug 388 * zoom 389 */ 390 391 var html = ''; 392 393 if (parseInt(status)) 394 for (var i = 0; i < data.length; ++i){ 395 html += '<div class="evento" data-category-id="' + JSON.parse(data[i].category_id)[0] + '">'; 396 html += '<a href="' + current_url.concat(data[i].slug) + '">'; 397 html += '<div class="interno">'; 398 html += '<div class="immagine" style="' + (data[i].image != '' ? ('background-image:url(' + data[i].image + ')') : '') + '"></div>'; 399 html += '<h5 class="nome">' + data[i].name + '</h5>'; 400 html += '</div>'; 401 html += '</a>'; 402 html += '</div>'; 403 } 404 405 elem.html(html); 406 } 407 }); 408 }); 409 410 $('.wonder-plugin-elenco-categorie-stores').each(function(){ 411 var elem = $(this), 412 url = elem.data('url'); 413 414 $.ajax({ 415 url:url + 'api/frontend/store/get-categorie-store', 416 data:{ }, 417 dataType:'json', 418 method:'POST', 419 success:function(data){ 420 var status = data.status, 421 data = data.data; 422 423 /* 424 * Stores Category Interface 425 * id 426 * img 427 * name 428 */ 429 430 var html = ''; 431 432 if (parseInt(status)) 433 for (var i = 0; i < data.length; ++i){ 434 html += '<li class="categoria-wonder-store" data-category-id="' + data[i].id + '" onclick="filter_shops(' + data[i].id + ')">'; 435 html += '<div class="interno">'; 436 html += '<div class="immagine" style="' + (data[i].img != '' ? ('background-image:url(' + data[i].img + ')') : '') + '"></div>'; 437 html += '<h5 class="nome">' + data[i].name + '</h5>'; 438 html += '</div>'; 439 html += '</li>'; 440 } 441 442 elem.html(html); 443 } 444 }); 445 }); 446 447 if ($('.wonder-plugin-mappa-stores').length){ 448 $('.wonder-plugin-mappa-stores').each(function(){ 449 var elem = $(this), 450 url = elem.data('url'); 451 452 $.ajax({ 453 url:url + 'api/frontend/store/get-elenco-store', 454 data:{ }, 455 dataType:'json', 456 method:'POST', 457 success:function(data){ 458 var status = data.status, 459 data = data.data; 460 461 /* 462 * Stores Interface 463 * address 464 * id 465 * id_comune 466 * id_provincia 467 * id_regione 468 * image 469 * lat 470 * lng 471 * slug 472 * zoom 473 */ 474 475 if (parseInt(status)){ 476 var indirizzi = new Array(), lats = new Array(), lngs = new Array(), zooms = new Array(); 477 478 for (var i = 0; i < data.length; ++i){ 479 if (data[i].address != '' && data[i].lat != '' && data[i].lng != '' && data[i].zoom != ''){ 480 indirizzi.push('<strong><a href="' + current_url.concat(data[i].slug) + '"><img style="margin-bottom:10px" src="' + data[i].image + '" alt="' + data[i].name + '" title="' + data[i].name + '" /></a></strong>' + data[i].address); 481 lats.push(parseFloat(data[i].lat)); 482 lngs.push(parseFloat(data[i].lng)); 483 zooms.push(parseInt(data[i].zoom)); 484 } 485 } 486 487 if (indirizzi.length){ 488 var map_div = elem; 489 var avg_lat = lats.reduce((a, b) => a + b) / lats.length; 490 var avg_lng = lngs.reduce((a, b) => a + b) / lngs.length; 491 var avg_zoom = (zooms.reduce((a, b) => a + b) / zooms.length).toFixed(0); 492 493 var center = [ avg_lat, avg_lng ]; 494 495 var map = L.map(map_div[0], { 496 center:center, 497 zoom:avg_zoom, 498 maxZoom:18, 499 gestureHandling:true 500 }); 501 502 var tile_layer = L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', { 503 attribution:'', 504 maxZoom:18 505 }).addTo(map); 506 507 map.locate({ setView:false }); 508 map.on('locationfound', onLocationFound); 509 map.on('locationerror', onLocationError); 510 511 var blueIcon = new L.Icon({ 512 iconUrl:wonder_paywall.url + 'img/marker-icon-2x-blue.png', 513 iconSize:[ 25, 41 ], 514 iconAnchor:[ 12, 41 ], 515 popupAnchor:[ 1, -34 ], 516 shadowSize:[ 41, 41 ] 517 }); 518 519 var markers = new Array(); 520 521 for (var i = 0; i < indirizzi.length; ++i){ 522 markers[i] = L.marker([ lats[i], lngs[i] ], { 523 icon:blueIcon, 524 alt:JSON.parse(data[i].category_id).toString().split(',').join(' ') 525 }).addTo(map); 526 527 markers[i].bindPopup(indirizzi[i]); 528 } 529 530 maps.push(map); 531 map_div.data('mappa', map); 532 } 533 } 534 } 535 }); 536 }); 537 538 setTimeout(ridimensionaMappaEventi, 100); 539 $(window).resize(ridimensionaMappaEventi); 540 } 541 542 $('.wonder-plugin-elenco-eventi').each(function(){ 543 var elem = $(this), 544 url = elem.data('url'), 545 slug = elem.data('slug'); 546 547 $.ajax({ 548 url:url + 'api/frontend/ordini-eventi/get-elenco-eventi/' + slug, 549 data:{ }, 550 dataType:'json', 551 method:'POST', 552 success:function(data){ 553 var html = ''; 554 555 if (parseInt(data.status)) 556 for (var i = 0; i < data.eventi.length; ++i){ 557 html += '<div class="evento">'; 558 html += '<a href="' + url + 'prenotazione-eventi/index/' + slug + '?e=' + data.eventi[i].id + '">'; 559 html += '<div class="interno">'; 560 html += '<div class="immagine" style="' + (data.eventi[i].img != '' ? ('background-image:url(' + data.eventi[i].img + ')') : '') + '"></div>'; 561 html += '<h5 class="nome">' + data.eventi[i].nome + '</h5>'; 562 html += '</div>'; 563 html += '</a>'; 564 html += '</div>'; 565 } 566 567 elem.html(html); 568 } 569 }); 570 }); 571 572 $('.wonder-plugin-singolo-evento').each(function(){ 573 var elem = $(this), 574 id = elem.data('id'), 575 url = elem.data('url'), 576 slug = elem.data('slug'); 577 578 $.ajax({ 579 url:url + 'api/frontend/ordini-eventi/get-evento-data-from-id/' + slug, 580 data:{ id_evento:id }, 581 dataType:'json', 582 method:'GET', 583 success:function(data){ 584 if (parseInt(data.status)){ 585 var lat = parseFloat(data.dati_evento.lat), 586 lng = parseFloat(data.dati_evento.lng), 587 zoom = parseInt(data.dati_evento.zoom); 588 589 var html = '<h2 class="nome">' + data.dati_evento.nome + '</h2>'; 590 html += '<div class="descrizione">' + data.dati_evento.descrizione + '</div>'; 591 592 html += '<div class="dettagli' + ((lat != 0 || lng != 0 || zoom != 0) ? ' con-mappa' : '') + (data.dati_evento.img != '' ? ' con-immagine' : '') + '">'; 593 594 if (data.dati_evento.img != '') 595 html += '<div class="immagine" style="background-image:url(' + data.dati_evento.img + ');"></div>'; 596 597 if (lat != 0 || lng != 0 || zoom != 0) 598 html += '<div class="mappa"></div>'; 599 600 html += '</div>'; 601 html += '<div class="pulsanti-azioni">'; 602 html += '<a href="' + url + 'prenotazione-eventi/checkout/' + slug + '/' + id + '" class="pulsante"><i class="dashicons dashicons-cart"></i> Acquista</a>'; 603 604 if (data.dati_audioguide.length) 605 html += '<a href="' + url + 'prenotazione-eventi/apri-audioguida/' + slug + '/' + id + '" class="pulsante"><i class="dashicons dashicons-controls-volumeon"></i> Ascolta l\'audioguida.</a>'; 606 607 if (lat != 0 || lng != 0 || zoom != 0) 608 html += '<a href="https://www.google.com/maps?q=' + lat + ',' + lng + '" class="pulsante"><i class="dashicons dashicons-location"></i> Portami lì</a>'; 609 610 html += '</div>'; 611 612 var e = $(html); 613 614 e.appendTo(elem); 615 616 if (lat != 0 || lng != 0 || zoom != 0){ 617 var center = [ lat, lng ]; 618 619 var map = L.map(elem.find('.mappa')[0], { 620 center:center, 621 zoom:zoom, 622 maxZoom:18, 623 gestureHandling:true 624 }); 625 626 var tile_layer = L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', { 627 attribution:'', 628 maxZoom:18 629 }).addTo(map); 630 631 map.locate({ setView:false }); 632 map.on('locationfound', onLocationFound); 633 map.on('locationerror', onLocationError); 634 635 var blueIcon = new L.Icon({ 636 iconUrl:wonder_paywall.url + 'img/marker-icon-2x-blue.png', 637 shadowUrl:wonder_paywall.url + 'img/marker-shadow.png', 638 iconSize:[ 25, 41 ], 639 iconAnchor:[ 12, 41 ], 640 popupAnchor:[ 1, -34 ], 641 shadowSize:[ 41, 41 ] 642 }); 643 644 var marker = L.marker(center, { icon:blueIcon }).addTo(map); 645 marker.bindPopup(data.dati_evento.indirizzo).openPopup(); 646 647 maps.push(map); 648 } 649 } 650 } 651 }); 652 }); 653 654 if ($('.wonder-plugin-mappa-eventi').length){ 655 $('.wonder-plugin-mappa-eventi').each(function(){ 656 var elem = $(this), 657 url = elem.data('url'), 658 slug = elem.data('slug'); 659 660 $.ajax({ 661 url:url + 'api/frontend/ordini-eventi/get-elenco-eventi/' + slug, 662 data:{ }, 663 dataType:'json', 664 method:'POST', 665 success:function(data){ 666 if (parseInt(data.status)){ 667 var indirizzi = new Array(), 668 lats = new Array(), 669 lngs = new Array(), 670 zooms = new Array(); 671 672 for (var i = 0; i < data.eventi.length; ++i){ 673 if (data.eventi[i].indirizzo != '' && data.eventi[i].lat != '' && data.eventi[i].lng != '' && data.eventi[i].zoom != ''){ 674 indirizzi.push('<strong><a href="' + url + 'prenotazione-eventi/index/' + slug + '?e=' + data.eventi[i].id + '">' + data.eventi[i].nom
674e + '</a></strong><br />' + data.eventi[i].indirizzo); 675 lats.push(parseFloat(data.eventi[i].lat)); 676 lngs.push(parseFloat(data.eventi[i].lng)); 677 zooms.push(parseInt(data.eventi[i].zoom)); 678 } 679 } 680 681 if (indirizzi.length){ 682 var map_div = elem; 683 var avg_lat = lats.reduce((a, b) => a + b) / lats.length; 684 var avg_lng = lngs.reduce((a, b) => a + b) / lngs.length; 685 var avg_zoom = (zooms.reduce((a, b) => a + b) / zooms.length).toFixed(0); 686 687 var center = [avg_lat, avg_lng ]; 688 689 var map = L.map(map_div[0], { 690 center:center, 691 zoom:avg_zoom, 692 maxZoom:18, 693 gestureHandling:true 694 }); 695 696 var tile_layer = L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', { 697 attribution:'', 698 maxZoom:18 699 }).addTo(map); 700 701 map.locate({ setView:false }); 702 map.on('locationfound', onLocationFound); 703 map.on('locationerror', onLocationError); 704 705 var blueIcon = new L.Icon({ 706 iconUrl:wonder_paywall.url + 'img/marker-icon-2x-blue.png', 707 shadowUrl:wonder_paywall.url + 'img/marker-shadow.png', 708 iconSize:[ 25, 41 ], 709 iconAnchor:[ 12, 41 ], 710 popupAnchor:[ 1, -34 ], 711 shadowSize:[ 41, 41 ] 712 }); 713 714 var markers = new Array(); 715 716 for (var i = 0; i < indirizzi.length; ++i){ 717 markers[i] = L.marker([ lats[i], lngs[i] ], { icon:blueIcon }).addTo(map); 718 markers[i].bindPopup(indirizzi[i]); 719 } 720 721 maps.push(map); 722 map_div.data('mappa', map); 723 } 724 } 725 } 726 }); 727 }); 728 729 setTimeout(ridimensionaMappaStores, 100); 730 $(window).resize(ridimensionaMappaStores); 731 } 732 733 $('.wonder-plugin-elenco-coupon').each(function(){ 734 var elem = $(this), 735 url = elem.data('url'), 736 slug = elem.data('slug'), 737 logo = elem.data('logo-azienda'); 738 739 $.ajax({ 740 url:url + 'api/frontend/coupon/get-elenco-coupon/' + slug, 741 data:{ }, 742 dataType:'json', 743 method:'POST', 744 success:function(data){ 745 var html = ''; 746 747 /* 748 * Coupon Interface 749 * codice 750 * comune 751 * id 752 * image 753 * indirizzo 754 * name 755 * provincia 756 * testo 757 * titolo 758 */ 759 760 if (parseInt(data.status)) 761 for (var i = 0; i < data.coupon.length; ++i){ 762 html += '<div class="cp-wrapper"><div class="wonder-plugin-singolo-coupon 2-col" data-id="' + data.coupon[i].id + '">'; 763 764 if (data.coupon[i].image != '') 765 html += '<div class="dettagli" style="float:left; width:150px; height:150px; background-position:center; background-size:cover; margin:0px 15px 0px 0px; background-image:url(' + data.coupon[i].image + ');"></div>'; 766 767 html += '<h2 class="nome">' + data.coupon[i].codice + (data.coupon[i].titolo != '' ? (' - ' + data.coupon[i].titolo) : '') + '</h2>'; 768 html += '<div class="descrizione">' + data.coupon[i].testo + '</div>'; 769 770 if (data.coupon[i].name != '') 771 html += '<address>Presso ' + data.coupon[i].codice + ' - ' + data.coupon[i].indirizzo + ' - ' + data.coupon[i].comune + ' (' + data.coupon[i].provincia + ')</address>'; 772 773 html += '<button class="download-coupon" onclick="printCouponFromList(event)"> Clicca qui per scaricare il coupon </button>'; 774 html += '</div></div>'; 775 } 776 777 elem.html(html); 778 } 779 }); 780 }); 781 782 $('.wonder-plugin-singolo-coupon').each(function(){ 783 var elem = $(this), 784 id = elem.data('id'), 785 url = elem.data('url'), 786 logo = elem.data('logo-azienda'); 787 788 $.ajax({ 789 url:url + 'api/frontend/coupon/get-dettaglio-coupon/' + id, 790 data:{ }, 791 dataType:'json', 792 method:'GET', 793 success:function(data){ 794 if (parseInt(data.status)){ 795 var html = ''; 796 var wrapperclass = ''; 797 798 if (logo){ 799 html += '<div class="cp-logo"><img class="img-responsive" src="' + data.coupon.shop_image + '"></div>'; 800 wrapperclass = ' small'; 801 } 802 803 html += '<div class="cp-wrapper' + wrapperclass + '">'; 804 805 if (data.coupon.image != '') 806 html += '<div class="dettagli" style="float:left; width:150px; height:150px; background-position:center; background-size:cover; margin:0px 15px 0px 0px; background-image:url(' + data.coupon.image + ');"></div>'; 807 808 html += '<h2 class="nome">' + data.coupon.codice + (data.coupon.titolo != '' ? (' - ' + data.coupon.titolo) : '') + '</h2>'; 809 810 html += '<div class="descrizione">' + data.coupon.testo + '</div>'; 811 812 if (data.coupon.name != '') 813 html += '<address>Presso ' + data.coupon.name + ' - ' + data.coupon.indirizzo + ' - ' + data.coupon.comune + ' (' + data.coupon.provincia + ')</address>'; 814 815 html += '<button class="download-coupon" onclick="printCoupon(event)"> Clicca qui per scaricare il coupon </button></div>'; 816 817 var e = $(html); 818 819 e.appendTo(elem); 820 } 821 } 822 }); 823 }); 824 825 if ($('.wonder-plugin-elenco-stores-e-mappa').length > 0){ 826 $('.wonder-plugin-elenco-stores-e-mappa').each(function(){ 827 var elem = $(this), 828 url = elem.data('url'); 829 830 var indirizzi = new Array(), 831 lats = new Array(), 832 lngs = new Array(), 833 zooms = new Array(), 834 store_name = new Array(); 835 836 $.ajax({ 837 url: url + 'api/frontend/store/get-elenco-store', 838 data:{ }, 839 dataType:'json', 840 method:'POST', 841 success:function(data){ 842 var status = data.status, 843 data = data.data; 844 845 /* 846 * Stores Interface 847 * address 848 * id 849 * comune 850 * provincia 851 * regione 852 * image 853 * lat 854 * lng 855 * slug 856 * zoom 857 */ 858 var html = ''; 859 860 if (parseInt(status)){ 861 html += '<div class="stores-list"><input type="text" id="filter-store-list" onkeyup="filter_store_list(event)" placeholder="Cerca uno store per nome." />'; 862 863 for (var i = 0; i < data.length; ++i){ 864 var class_category = ''; 865 866 for (var g = 0; g < JSON.parse(data[i].category_id).length; g++) 867 class_category += ' category_' + JSON.parse(data[i].category_id)[g]; 868 869 html += '<div class="evento ' + class_category + '" data-category="' + JSON.parse(data[i].category_id).toString().split(',').join(' ') + '" data-category-name="' + data[i].name + '">'; 870 html += '<a href="' + current_url.concat(data[i].slug) + '">'; 871 html += '<div class="interno">'; 872 html += '<div class="immagine" style="' + (data[i].image != '' ? ('background-image:url(' + data[i].image + ')') : '') + '"></div>'; 873 html += '<h5 class="nome">' + data[i].name + '</h5>'; 874 html += '<h5 class="place-address">' + data[i].address + '</h5>'; 875 html += '<h5 class="place-address">' + data[i].comune + ' (' + data[i].provincia + ')' + '</h5>'; 876 html += '</div>'; 877 html += '</a>'; 878 html += '</div>'; 879 880 if (data[i].address != '' && data[i].lat != '' && data[i].lng != '' && data[i].zoom != ''){ 881 indirizzi.push('<strong><a href="' + current_url.concat(data[i].slug) + '"><img style="margin-bottom:10px" src="' + data[i].image + '" alt="' + data[i].name + '" title="' + data[i].name + '"/></a></strong>' + data[i].address); 882 lats.push(parseFloat(data[i].lat)); 883 lngs.push(parseFloat(data[i].lng)); 884 zooms.push(parseInt(data[i].zoom)); 885 store_name.push(data[i].name.split(' ').join('-').toLowerCase().replace(/^-+|-+(?=-|$)/g, '').replace(/[&\/\\#,+()$~%.'":*?<>{}]/g, '_')); 886 } 887 } 888 889 html += '</div><div class="mappa"></div>'; 890 891 elem.html(html); 892 } 893 894 if (indirizzi.length){ 895 var map_div = jQuery('.wonder-plugin-elenco-stores-e-mappa .mappa'); 896 var avg_lat = lats.reduce((a, b) => a + b) / lats.length; 897 var avg_lng = lngs.reduce((a, b) => a + b) / lngs.length; 898 var avg_zoom = (zooms.reduce((a, b) => a + b) / zooms.length).toFixed(0); 899 900 var center = [avg_lat, avg_lng ]; 901 902 var map = L.map(map_div[0], { 903 center:center, 904 zoom:avg_zoom, 905 maxZoom:18, 906 gestureHandling:true 907 }); 908 909 var tile_layer = L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', { 910 attribution:'', 911 maxZoom:18 912 }).addTo(map); 913 914 map.locate({ setView:false }); 915 map.on('locationfound', onLocationFound); 916 map.on('locationerror', onLocationError); 917 918 var markers = new Array(); 919 920 for (var i = 0; i < indirizzi.length; ++i){ 921 markers[i] = L.marker([ lats[i], lngs[i] ], { 922 icon:new L.Icon({ 923 iconUrl:wonder_paywall.url + 'img/marker-icon-2x-blue.png', 924 className:store_name[i], 925 iconSize:[ 25, 41 ], 926 iconAnchor:[ 12, 41 ], 927 popupAnchor:[ 1, -34 ], 928 shadowSize:[ 41, 41 ] 929 }), 930 alt:JSON.parse(data[i].category_id).toString().split(',').join(' ') 931 }).addTo(map); 932 933 markers[i].bindPopup(indirizzi[i]); 934 } 935 936 maps.push(map); 937 map_div.data('mappa', map); 938 } 939 } 940 }); 941 942 setInterval(function(){ 943 $('.wonder-plugin-elenco-stores-e-mappa .mappa').each(function(){ 944 var elem = $(this); 945 elem.height(elem.width()); 946 947 var mappa = elem.data('mappa'); 948 949 if (typeof mappa != 'undefined') 950 mappa.invalidateSize(); 951 }); 952 }, 100); 953 954 $(window).resize($('.wonder-plugin-elenco-stores-e-mappa .mappa')); 955 }); 956 } 957 }); 958})(jQuery); 959 960function filter_store_list(e){ 961 e.preventDefault(); 962 963 var search_text = jQuery('#filter-store-list').val(); 964 965 if (search_text != ''){ 966 jQuery('.leaflet-marker-icon').css({ 'display':'none' }); 967 968 jQuery('.stores-list .evento').each(function(index, element){ 969 var celement = jQuery(element); 970 971 if (celement.data('category-name').toLowerCase().indexOf(search_text.toLowerCase()) > -1){ 972 celement.css({ 'display':'initial' }); 973 974 jQuery('.' + celement.data('category-name') 975 .split(' ') 976 .join('-') 977 .toLowerCase(). 978 replace(/^-+|-+(?=-|$)/g, '') 979 .replace(/[&\/\\#,+()$~%.'":*?<>{}]/g, '_') 980 ).css({'display' : 'initial'}); 981 } else { 982 celement.css({ 'display':'none' }); 983 984 jQuery('.' + celement.data('category-name') 985 .split(' ') 986 .join('-') 987 .toLowerCase() 988 .replace(/^-+|-+(?=-|$)/g, '') 989 .replace(/[&\/\\#,+()$~%.'":*?<>{}]/g, '_') 990 ).css({ 'display':'none' }); 991 } 992 }) 993 }else{ 994 jQuery('.stores-list .evento').css({ 'display':'initial' }); 995 jQuery('.leaflet-marker-icon').css({ 'display':'initial' }); 996 } 997} 998 999function slide_category_left(){ 1000 jQuery('.wonder-plugin-elenco-categorie-stores').animate({ scrollLeft:'-=' + (jQuery('.wonder-plugin-elenco-categorie-stores').width() - 70) }, 500); 1001} 1002 1003function slide_category_right(){ 1004 jQuery('.wonder-plugin-elenco-categorie-stores').animate({ scrollLeft:'+=' + (jQuery('.wonder-plugin-elenco-categorie-stores').width() - 70) }, 500); 1005} 1006 1007function printCoupon(e){ 1008 e.preventDefault(); 1009 1010 jQuery(e.target).closest('.wonder-plugin-singolo-coupon').addClass('click'); 1011 1012 getPaywallSession(function(wonder_paywall_public){ 1013 if (wonder_paywall_public && wonder_paywall_public.email != '') 1014 jQuery('.wonder-plugin-singolo-coupon.click').each(function(){ 1015 var elem = jQuery(this), 1016 id = elem.data('id'); 1017 1018 elem.removeClass('click'); 1019 1020 ga('send', { 1021 hitType:'event', 1022 eventCategory:'Download Coupon', 1023 eventAction:'Coupon id: ' + id,
1024 eventLabel:'Email: ' + wonder_paywall_public.email 1025 }); 1026 1027 window.open(wonder_paywall.wonder_paywall_system_url + 'stampa-coupon?id=' + id + '&id_utente=' + wonder_paywall_public.email, '_blank'); 1028 }); 1029 }); 1030} 1031 1032function printCouponFromList(e){ 1033 e.preventDefault(); 1034 1035 jQuery(e.target).closest('.wonder-plugin-elenco-coupon').addClass('click'); 1036 1037 getPaywallSession(function(wonder_paywall_public){ 1038 if (wonder_paywall_public && wonder_paywall_public.email != '') 1039 jQuery('.wonder-plugin-elenco-coupon.click').each(function(){ 1040 var elem = jQuery(this), 1041 id = elem.data('id'); 1042 1043 elem.removeClass('click'); 1044 1045 ga('send', { 1046 hitType:'event', 1047 eventCategory:'Download Coupon', 1048 eventAction:'Coupon id: ' + id, 1049 eventLabel:'Email: ' + wonder_paywall_public.email 1050 }); 1051 1052 window.open(wonder_paywall.wonder_paywall_system_url + 'stampa-coupon?id=' + id + '&id_utente=' + wonder_paywall_public.email, '_blank'); 1053 }); 1054 }); 1055} 1056 1057function printCouponFromShop(e){ 1058 e.preventDefault(); 1059 1060 jQuery(e.target).addClass('coupon-from-shop-click'); 1061 1062 getPaywallSession(function(wonder_paywall_public){ 1063 if (wonder_paywall_public && wonder_paywall_public.email != '') 1064 jQuery('.coupon-from-shop-click').each(function(){ 1065 var elem = jQuery(this), 1066 id = elem.data('id'); 1067 1068 elem.removeClass('coupon-from-shop-click'); 1069 1070 ga('send', { 1071 hitType:'event', 1072 eventCategory:'Download Coupon', 1073 eventAction:'Coupon id: ' + id, 1074 eventLabel:'Email: ' + wonder_paywall_public.email 1075 }); 1076 1077 window.open(wonder_paywall.wonder_paywall_system_url + 'stampa-coupon?id=' + id + '&id_utente=' + wonder_paywall_public.email, '_blank'); 1078 }); 1079 }); 1080}
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.