// source --> https://fotopress.hu/wp-content/plugins/simple-cloudflare-turnstile/js/integrations/woocommerce.js?ver=1.3 
/* Woo Checkout */
jQuery( document ).ready(function() {
    var cfturnstileWooCheckoutAttempted = false;

    // Track actual submission attempts so we don't reset on every checkout refresh.
    jQuery( document.body ).on( 'submit', 'form.checkout', function() {
        cfturnstileWooCheckoutAttempted = true;
    });

    // If the page loads with an existing checkout error force a reset so the next submission has a fresh token.
    if ( jQuery('.woocommerce-error, .woocommerce-NoticeGroup-checkout .woocommerce-error').length ) {
        setTimeout( turnstileWooCheckoutReset, 50 );
    }

    jQuery( document.body ).on( 'update_checkout updated_checkout applied_coupon_in_checkout removed_coupon_in_checkout', function() {
        // Re-render if the widget container was replaced/emptied.
        if ( jQuery('#cf-turnstile-woo-checkout').is(':empty') ) {
            turnstileWooCheckoutReset();
            return;
        }

        // After a failed submit, Woo will typically refresh the checkout fragments.
        // Reset here (only after an attempted submit) to avoid the stale/used token issue.
        if ( cfturnstileWooCheckoutAttempted && jQuery('.woocommerce-error, .woocommerce-NoticeGroup-checkout .woocommerce-error').length ) {
            setTimeout( turnstileWooCheckoutReset, 50 );
            cfturnstileWooCheckoutAttempted = false;
        }
    });

    // Woo triggers this when the AJAX checkout submission returns an error.
    jQuery( document.body ).on( 'checkout_error', function() {
        setTimeout( turnstileWooCheckoutReset, 50 );
        cfturnstileWooCheckoutAttempted = false;
    });
});
function turnstileWooCheckoutReset() {
    if ( typeof turnstile === 'undefined' ) {
        return;
    }

    var el = document.getElementById('cf-turnstile-woo-checkout');
    if ( !el ) {
        return;
    }

    // If Woo replaced the container and it's now empty, render a fresh widget.
    if ( !el.innerHTML || el.innerHTML.trim() === '' ) {
        try {
            turnstile.render(el);
        } catch (e) {
            try { turnstile.render('#cf-turnstile-woo-checkout'); } catch (e2) {}
        }
        return;
    }

    // Preferred: reset the existing widget (clears the used/expired token).
    try {
        if ( typeof turnstile.reset === 'function' ) {
            turnstile.reset(el);
            return;
        }
    } catch (e) {}

    // Fallback: remove + render.
    try {
        turnstile.remove(el);
    } catch (e) {
        try { turnstile.remove('#cf-turnstile-woo-checkout'); } catch (e2) {}
    }
    try {
        turnstile.render(el);
    } catch (e) {
        try { turnstile.render('#cf-turnstile-woo-checkout'); } catch (e2) {}
    }
}
/* On click ".checkout .showlogin" link re-render */
jQuery('.showlogin').on('click', function() {
    turnstile.remove('.sct-woocommerce-login');
    turnstile.render('.sct-woocommerce-login');
});

/* Woo Checkout Block */
document.addEventListener('DOMContentLoaded', function() {
    if (typeof wp !== 'undefined' && wp.data && typeof turnstile !== 'undefined') {
        
        function setTurnstileExtensionData(token) {
            var dispatch = wp.data.dispatch('wc/store/checkout');
            if (typeof dispatch.setExtensionData === 'function') {
                dispatch.setExtensionData('simple-cloudflare-turnstile', { token: token });
            } else if (typeof dispatch.__internalSetExtensionData === 'function') {
                dispatch.__internalSetExtensionData('simple-cloudflare-turnstile', { token: token });
            }
        }

        function cfturnstileWooBlockCheckoutRender() {
            var turnstileItem = document.getElementById('cf-turnstile-woo-checkout');
            if (!turnstileItem) return;

            // If already initialized by us, try reset to preserve state but clear token
            if (turnstileItem.getAttribute('data-sct-init') === 'true' && turnstileItem.hasChildNodes()) {
                try {
                    turnstile.reset(turnstileItem);
                    setTurnstileExtensionData('');
                    return;
                } catch (e) {}
            }

            // Ensure any existing widget (auto-rendered or otherwise) is removed
            try { turnstile.remove(turnstileItem); } catch (e) {}

            try {
                turnstile.render(turnstileItem, {
                    sitekey: turnstileItem.dataset.sitekey,
                    callback: setTurnstileExtensionData,
                    'expired-callback': function() { setTurnstileExtensionData(''); }
                });
                turnstileItem.setAttribute('data-sct-init', 'true');
            } catch (e) {}
        }

        // Re-render Turnstile after the Place order button is clicked
        var cfturnstileWooBlockClickTimer = null;
        jQuery(document.body).on('click', '.wc-block-components-checkout-place-order-button', function() {
            if (cfturnstileWooBlockClickTimer) {
                clearTimeout(cfturnstileWooBlockClickTimer);
            }
            cfturnstileWooBlockClickTimer = setTimeout(function() {
                cfturnstileWooBlockCheckoutRender();
            }, 1250);
        });

        // Render Turnstile when the checkout data is updated and the widget is not present or not initialized
        var unsubscribe = wp.data.subscribe(function() {
            const turnstileItem = document.getElementById('cf-turnstile-woo-checkout');
            if (turnstileItem && (turnstileItem.innerHTML.trim() === '' || turnstileItem.getAttribute('data-sct-init') !== 'true')) {
                cfturnstileWooBlockCheckoutRender();
            }
        }, 'wc/store/cart');
    }
});
// source --> https://fotopress.hu/wp-content/plugins/elementor-pro/assets/js/webpack-pro.runtime.min.js?ver=3.34.4 
/*! elementor-pro - v3.34.0 - 29-01-2026 */
(()=>{"use strict";var e,r,a,n={},b={};function __webpack_require__(e){var r=b[e];if(void 0!==r)return r.exports;var a=b[e]={exports:{}};return n[e](a,a.exports,__webpack_require__),a.exports}__webpack_require__.m=n,e=[],__webpack_require__.O=(r,a,n,b)=>{if(!a){var i=1/0;for(o=0;o<e.length;o++){for(var[a,n,b]=e[o],c=!0,t=0;t<a.length;t++)(!1&b||i>=b)&&Object.keys(__webpack_require__.O).every((e=>__webpack_require__.O[e](a[t])))?a.splice(t--,1):(c=!1,b<i&&(i=b));if(c){e.splice(o--,1);var _=n();void 0!==_&&(r=_)}}return r}b=b||0;for(var o=e.length;o>0&&e[o-1][2]>b;o--)e[o]=e[o-1];e[o]=[a,n,b]},__webpack_require__.f={},__webpack_require__.e=e=>Promise.all(Object.keys(__webpack_require__.f).reduce(((r,a)=>(__webpack_require__.f[a](e,r),r)),[])),__webpack_require__.u=e=>635===e?"code-highlight.b9addbc842a50347c9ab.bundle.min.js":519===e?"video-playlist.909c41acbc73cb741e9d.bundle.min.js":375===e?"paypal-button.f4f64e46173f50701949.bundle.min.js":786===e?"0726b2d81686a5392236.bundle.min.js":857===e?"stripe-button.49130d6eecb5ebc8afbd.bundle.min.js":581===e?"progress-tracker.8cccdda9737c272489fc.bundle.min.js":961===e?"animated-headline.c009d6fa482515df23f8.bundle.min.js":692===e?"media-carousel.8d26e5df1a1527329fde.bundle.min.js":897===e?"carousel.3620fca501cb18163600.bundle.min.js":416===e?"countdown.0e9e688751d29d07a8d3.bundle.min.js":292===e?"hotspot.5033ed75928eff79cb95.bundle.min.js":325===e?"form.71055747203b48a65a24.bundle.min.js":543===e?"gallery.06be1c07b9901f53d709.bundle.min.js":970===e?"lottie.a287ccfe024bea61e651.bundle.min.js":334===e?"nav-menu.8521a0597c50611efdc6.bundle.min.js":887===e?"popup.f7b15b2ca565b152bf98.bundle.min.js":535===e?"load-more.8b46f464e573feab5dd7.bundle.min.js":396===e?"posts.aec59265318492b89cb5.bundle.min.js":726===e?"portfolio.4cd5da34009c30cb5d70.bundle.min.js":316===e?"share-buttons.63d984f8c96d1e053bc0.bundle.min.js":829===e?"slides.c0029640cbdb48199471.bundle.min.js":158===e?"social.d71d263bd937f0906192.bundle.min.js":404===e?"table-of-contents.3be1ab725f562d10dd86.bundle.min.js":345===e?"archive-posts.16a93245d08246e5e540.bundle.min.js":798===e?"search-form.b7065999d77832a1b764.bundle.min.js":6===e?"woocommerce-menu-cart.54f2e75f6769dce707e2.bundle.min.js":80===e?"woocommerce-purchase-summary.88a2d8ca449739e34f9f.bundle.min.js":354===e?"woocommerce-checkout-page.6ba1f1f2aa99210fa1cf.bundle.min.js":4===e?"woocommerce-cart.480d117b95956d1f28a5.bundle.min.js":662===e?"woocommerce-my-account.d54826f355f9822b0ec0.bundle.min.js":621===e?"woocommerce-notices.00f9132bbbd683277a27.bundle.min.js":787===e?"product-add-to-cart.c32f5d5e404511d68720.bundle.min.js":993===e?"loop.89cc81d2188312a17a17.bundle.min.js":932===e?"loop-carousel.cd9a95b2e4dd2a239b81.bundle.min.js":550===e?"ajax-pagination.2090b5f4906bcda1dcc2.bundle.min.js":727===e?"mega-menu.82093824ddb3f5531ab4.bundle.min.js":87===e?"mega-menu-stretch-content.480e081cebe071d683e8.bundle.min.js":912===e?"menu-title-keyboard-handler.f0362773c21105d2c65c.bundle.min.js":33===e?"nested-carousel.db797a097fdc5532ef4a.bundle.min.js":225===e?"taxonomy-filter.a32526f3e4a201b5fce1.bundle.min.js":579===e?"off-canvas.137463f629e2b7cbaf02.bundle.min.js":1===e?"contact-buttons.99a987d66bcc2ade0ee6.bundle.min.js":61===e?"contact-buttons-var-10.16cf733dc3d3b250fef4.bundle.min.js":249===e?"floating-bars-var-2.75c36e8b0bacbac6105e.bundle.min.js":440===e?"floating-bars-var-3.cdf99fd0b063a0032d53.bundle.min.js":187===e?"search.5d88e65c03029f91931d.bundle.min.js":void 0,__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),r={},a="elementor-pro:",__webpack_require__.l=(e,n,b,i)=>{if(r[e])r[e].push(n);else{var c,t;if(void 0!==b)for(var _=document.getElementsByTagName("script"),o=0;o<_.length;o++){var d=_[o];if(d.getAttribute("src")==e||d.getAttribute("data-webpack")==a+b){c=d;break}}c||(t=!0,(c=document.createElement("script")).charset="utf-8",c.timeout=120,__webpack_require__.nc&&c.setAttribute("nonce",__webpack_require__.nc),c.setAttribute("data-webpack",a+b),c.src=e),r[e]=[n];var onScriptComplete=(a,n)=>{c.onerror=c.onload=null,clearTimeout(u);var b=r[e];if(delete r[e],c.parentNode&&c.parentNode.removeChild(c),b&&b.forEach((e=>e(n))),a)return a(n)},u=setTimeout(onScriptComplete.bind(null,void 0,{type:"timeout",target:c}),12e4);c.onerror=onScriptComplete.bind(null,c.onerror),c.onload=onScriptComplete.bind(null,c.onload),t&&document.head.appendChild(c)}},(()=>{var e;__webpack_require__.g.importScripts&&(e=__webpack_require__.g.location+"");var r=__webpack_require__.g.document;if(!e&&r&&(r.currentScript&&"SCRIPT"===r.currentScript.tagName.toUpperCase()&&(e=r.currentScript.src),!e)){var a=r.getElementsByTagName("script");if(a.length)for(var n=a.length-1;n>-1&&(!e||!/^http(s?):/.test(e));)e=a[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),__webpack_require__.p=e})(),(()=>{var e={978:0};__webpack_require__.f.j=(r,a)=>{var n=__webpack_require__.o(e,r)?e[r]:void 0;if(0!==n)if(n)a.push(n[2]);else if(978!=r){var b=new Promise(((a,b)=>n=e[r]=[a,b]));a.push(n[2]=b);var i=__webpack_require__.p+__webpack_require__.u(r),c=new Error;__webpack_require__.l(i,(a=>{if(__webpack_require__.o(e,r)&&(0!==(n=e[r])&&(e[r]=void 0),n)){var b=a&&("load"===a.type?"missing":a.type),i=a&&a.target&&a.target.src;c.message="Loading chunk "+r+" failed.\n("+b+": "+i+")",c.name="ChunkLoadError",c.type=b,c.request=i,n[1](c)}}),"chunk-"+r,r)}else e[r]=0},__webpack_require__.O.j=r=>0===e[r];var webpackJsonpCallback=(r,a)=>{var n,b,[i,c,t]=a,_=0;if(i.some((r=>0!==e[r]))){for(n in c)__webpack_require__.o(c,n)&&(__webpack_require__.m[n]=c[n]);if(t)var o=t(__webpack_require__)}for(r&&r(a);_<i.length;_++)b=i[_],__webpack_require__.o(e,b)&&e[b]&&e[b][0](),e[b]=0;return __webpack_require__.O(o)},r=self.webpackChunkelementor_pro=self.webpackChunkelementor_pro||[];r.forEach(webpackJsonpCallback.bind(null,0)),r.push=webpackJsonpCallback.bind(null,r.push.bind(r))})()})();