1jQuery(document).ready(function($){'use strict';class EscapeFilters{constructor(){this.loopWidget=document.querySelector('.elementor-widget-loop-grid');this.activeFilters=new Set();this.init();this.initFromUrl()} 2init(){document.body.addEventListener('click',this.handleButtonClick.bind(this));window.addEventListener('popstate',()=>this.updateContentFromUrl())} 3handleButtonClick(event){const button=event.target.closest('.escape-filter-btn');if(!button)return;event.preventDefault();const filterValue=button.dataset.filter;if(filterValue===''){this.activeFilters.clear()}else{this.activeFilters.has(filterValue)?this.activeFilters.delete(filterValue):this.activeFilters.add(filterValue)} 4this.updateActiveButtons();this.updateUrl();this.refreshWidget();this.scrollToAnchor()} 5initFromUrl(){const params=new URLSearchParams(window.location.search);const filterParam=params.get('filter');if(filterParam){this.activeFilters=new Set(filterParam.split(','));this.updateActiveButtons()}} 6async refreshWidget(){if(!this.loopWidget||!window.elementorFrontend)return;try{const $widget=$(this.loopWidget);const elementId=$widget.data('id');$widget.addClass('loading');const response=await $.get(window.location.href);const $newContent=$(response).find(`.elementor-element-${elementId}`);if($newContent.length){$widget.fadeOut(200,()=>{$widget.html($newContent.html());this.reinitializeHandlers();if(elementorFrontend.elementsHandler){elementorFrontend.elementsHandler.runReadyTrigger($widget)} 7$widget.fadeIn(200);$widget.removeClass('loading')})}}catch(error){console.error('Erreur lors du rafraîchissement:',error)}} 8updateContentFromUrl(){const params=new URLSearchParams(window.location.search);const filterParam=params.get('filter');this.activeFilters=new Set(filterParam?filterParam.split(','):[]);this.updateActiveButtons();this.refreshWidget();this.scrollToAnchor()} 9updateActiveButtons(){document.querySelectorAll('.escape-filters .escape-filter-btn').forEach(btn=>
9{const filterValue=btn.dataset.filter;if(filterValue===''){btn.classList.toggle('active',this.activeFilters.size===0)}else{btn.classList.toggle('active',this.activeFilters.has(filterValue))}})} 10updateUrl(){const url=new URL(window.location);if(this.activeFilters.size>0){url.searchParams.set('filter',Array.from(this.activeFilters).join(','))}else{url.searchParams.delete('filter')} 11window.history.pushState({filters:Array.from(this.activeFilters)},'',url)} 12scrollToAnchor(){const anchor=document.getElementById('grille-aventures');if(anchor){const yOffset=-115;const y=anchor.getBoundingClientRect().top+window.pageYOffset+yOffset;window.scrollTo({top:y,behavior:'smooth'})}} 13reinitializeHandlers(){initPopupHandlers()}} 14function initFAQHandlers(){$(document).off('click','.post-faq .faq-question').on('click','.post-faq .faq-question',function(){const thisQuestion=$(this);const thisAnswer=thisQuestion.next('.faq-answer');const span=thisQuestion.find('span');$('.post-faq .faq-answer').not(thisAnswer).slideUp();$('.post-faq .faq-question').not(thisQuestion).removeClass('active');$('.post-faq .faq-question span').not(span).text('+');thisAnswer.slideToggle();thisQuestion.toggleClass('active');span.text(thisAnswer.is(':visible')?'-':'+')});$(document).off('click','.event-faq-title').on('click','.event-faq-title',function(){const thisTitle=$(this);const thisContent=thisTitle.next('.event-faq-content');if(!thisTitle.hasClass('active')){$('.event-faq-content').not(thisContent).slideUp();$('.event-faq-title').not(thisTitle).removeClass('active')} 15thisTitle.toggleClass('active');thisContent.slideToggle()});$(document).off('click','.event-faq-content .faq-question').on('click','.event-faq-content .faq-question',function(){const thisQuestion=$(this);const thisAnswer=thisQuestion.next('.faq-answer');const span=thisQuestion.find('span');if(!thisQuestion.hasClass('active')){$(this).closest('.event-faq-content').find('.faq-answer').not(thisAnswer).slideUp();$(this).closest('.event-faq-content').find('.faq-question').not(thisQuestion).removeClass('active');$(this).closest('.event-faq-content').find('.faq-question span').not(span).text('+')} 16thisQuestion.toggleClass('active');thisAnswer.slideToggle();span.text(thisAnswer.is(':visible')?'-':'+')})} 17function initPopupHandlers(){let scrollPosition;let currentPostId=null;$(document).off('click','.popup-faq-button').on('click','.popup-faq-button',function(e){e.preventDefault();scrollPosition=$(window).scrollTop();let postIdElement=$(this).closest('[data-post-id]');let postId=postIdElement.data('post-id')||postIdElement.attr('data-post-id');if(!postId){postIdElement=$(this).closest('article[data-post-id]');postId=postIdElement.data('post-id')||postIdElement.attr('data-post-id')} 18if(!postId){postIdElement=$(this).parents().filter('[data-post-id]').first();postId=postIdElement.data('post-id')||postIdElement.attr('data-post-id')} 19console.log('FAQ - Post ID trouvé:',postId);elementorProFrontend.modules.popup.showPopup({id:12567});$.ajax({url:unifiedEscapeAjax.ajaxurl,type:'POST',data:{action:'get_faq_fields',post_id:postId,nonce:unifiedEscapeAjax.nonce},success:function(response){if(response.success&&response.data.faq){let html='';response.data.faq.forEach(function(item){html+=` 20 <div class="elementor-element elementor-widget"> 21 <div class="faq-item"> 22 <div class="faq-question">${item.question_faq} <span>+</span></div> 23 <div class="faq-answer">${item.reponse_faq}</div> 24 </div> 25 </div>`});$('#elementor-popup-modal-12567 .acf-faq').html(html);$(document).off('click','#elementor-popup-modal-12567 .faq-question').on('click','#elementor-popup-modal-12567 .faq-question',function(){const thisQuestion=$(this);const thisAnswer=thisQuestion.next('.faq-answer');const span=thisQuestion.find('span');$('.faq-answer').not(thisAnswer).slideUp();$('.faq-question').not(thisQuestion).removeClass('active');$('.faq-question span').not(span).text('+');thisAnswer.slideToggle();thisQuestion.toggleClass('active');span.text(thisAnswer.is(':visible')?'-':'+')})}}})});$(document).off('click','[data-post-id] .elementor-button').on('click','[data-post-id] .elementor-button',function(e){if($(this).closest('.elementor-element-2673fc7c').length>0){e.preventDefault();e.stopPropagation();let $loopItem=$(this).closest('[data-elementor-type="loop-item"]');if($loopItem.length>0){const classes=$loopItem[0].className.split(' ');for(let className of classes){if(className.startsWith('e-loop-item-')&&className!=='e-loop-item'){const possibleId=className.replace('e-loop-item-','');if(!isNaN(possibleId)&&possibleId>0){currentPostId=parseInt(possibleId);break}} 26if(!currentPostId&&className.startsWith('post-')&&className!=='post'){const possibleId=className.replace('post-','');if(!isNaN(possibleId)&&possibleId>0){currentPostId=parseInt(possibleId);break}}}}else{let $dataPostId=$(this).closest('[data-post-id]');let rawPostId=$dataPostId.data('post-id');if(rawPostId&&!isNaN(rawPostId)){currentPostId=parseInt(rawPostId)}} 27if(!currentPostId||currentPostId===0){return} 28elementorProFrontend.modules.popup.showPopup({id:9594})}});$(document).off('elementor/popup/show').on('elementor/popup/show',(event,id,instance)=>{if(id!==9594||!currentPostId)return;const popup=$('#elementor-popup-modal-9594');popup.find('[class*="acf-"]').css('visibility','hidden');popup.find('.acf-video .elementor-widget-container').empty();popup.find('.elementor-element-50396df .elementor-widget-image').remove();popup.find('.popup-background-overlay').remove();popup.find('[class*="acf-"] .elementor-widget-container').empty();popup.find('.tarifs-container').hide();$.ajax({url:unifiedEscapeAjax.ajaxurl,type:'POST',data:{action:'get_all_acf_fields',post_id:currentPostId,nonce:unifiedEscapeAjax.nonce},success:function(response){if(!response.success)return;const fields=response.data;if(fields.is_interieur){popup.find('.tarifs-container').show()}else{popup.find('.tarifs-container').hide()} 29if(fields.fond_bandeau){const dialogContent=popup.find('.dialog-widget-content');dialogContent.find('.popup-background-overlay').remove();dialogContent.css('background-color','#2A2A2A');const overlay=$(`<div class="popup-background-overlay" style=" 30 position: absolute; 31 top: 0; 32 left: 0; 33 right: 0; 34 bottom: 0; 35 background-image: url('${fields.fond_bandeau}'); 36 background-size: cover; 37 background-position: center; 38 opacity: 0.15; 39 pointer-events: none; 40 z-index: 0; 41 "></div>`);
41dialogContent.prepend(overlay)} 42const grid=popup.find('.elementor-element-50396df');if(grid.length>0){grid.find('.elementor-widget-image').remove();for(let i=1;i<=3;i++){if(fields[`illustration_${i}`]){grid.append(` 43 <div class="elementor-element elementor-widget elementor-widget-image"> 44 <div class="elementor-widget-container"> 45 <img src="${fields[`illustration_${i}`]}" class="elementor-image" alt="Image ${i}"> 46 </div> 47 </div> 48 `)}}} 49if(fields.video){const videoElement=popup.find('.acf-video');if(videoElement.length>0){let videoUrl=fields.video;if(videoUrl.includes('watch?v=')){videoUrl=videoUrl.replace('watch?v=','embed/')} 50if(videoUrl.includes('youtu.be/')){const videoId=videoUrl.split('youtu.be/')[1].split('?')[0];videoUrl=`https://www.youtube.com/embed/${videoId}`} 51videoElement.find('.elementor-widget-container').html(`<iframe width="100%" height="315" src="${videoUrl}" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>`)}} 52const elements={'titre-principal':fields['titre-principal'],'titre_bis':fields.titre_bis,'sous-titre':fields['sous-titre'],'description-salle':fields.description_salle,'nombre-joueurs':fields.nombre_joueurs,'duree-salle':fields.duree_salle,'prix_etudiant':fields.prix_etudiant,'prix_regulier':fields.prix_regulier,'prix-salle':fields.prix_salle?`${fields['prix_salle']} â¬<br> <span style="font-size: 13px;"></span>`:'','hashtag-salle':fields.hashtag_salle};Object.entries(elements).forEach(([key,value])=>{const element=popup.find(`.acf-${key}`);if(element.length>0){const container=element.find('.elementor-widget-container');if(container.length>0){if(value){container.html(`<p>${value}</p>`)}else{container.empty()}}}});if(fields.post_url){const aventureBtns=popup.find('.page-aventure, .decouvrir-btn, [data-link="aventure"]');aventureBtns.each(function(){const btn=$(this);if(btn.is('a')){btn.attr('href',fields.post_url)}else if(btn.parent('a').length>0){btn.parent('a').attr('href',fields.post_url)}else if(btn.closest('a.elementor-button-link').length>0){btn.closest('a.elementor-button-link').attr('href',fields.post_url)}else if(btn.find('a.elementor-button-link').length>0){btn.find('a.elementor-button-link').attr('href',fields.post_url)}else{btn.off('click.aventureLink').on('click.aventureLink',function(e){e.preventDefault();window.location.href=fields.post_url})}});if(aventureBtns.length>0){console.log('Bouton(s) aventure configuré(s) avec URL:',fields.post_url)}} 53popup.find('[class*="acf-"]').css('visibility','visible')}})});$(document).off('elementor/popup/hide').on('elementor/popup/hide',function(){setTimeout(()=>{$(window).scrollTop(scrollPosition)},100)})} 54function initAnchorHandlers(){function isMobile(){return window.matchMedia("(max-width: 767px)").matches} 55function isExcludedPage(){return window.location.href.includes('https://lessecretsdusablier.com/3-2-1-express/')} 56$(document).off('click','.ancre-reservation-button .elementor-button-link').on('click','.ancre-reservation-button .elementor-button-link',function(e){if(!isMobile()&&!isExcludedPage()){e.preventDefault();const currentHref=$(this).attr('href');if(currentHref){window.location.href=currentHref+'#reservation'}}})} 57function initializeAll(){new EscapeFilters();initFAQHandlers();initPopupHandlers();initAnchorHandlers()} 58initializeAll()}) 59;
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.