class SubscriptionManager{constructor(){var t;this.form=document.getElementById("subscription-form"),this.submitButton=this.form?.querySelector('button[type="submit"]'),this.recaptchaSiteKey="6LenqkskAAAAAAjKBV51eKoTpeyg24Lkw_zzr9Oz",this.recaptchaLoaded=!1,this.recaptchaReady=!1,this.recaptchaContainer=document.createElement("div"),this.recaptchaContainer.id="captcha-div",this.recaptchaContainer.className="g-recaptcha",this.recaptchaContainer.setAttribute("data-sitekey",this.recaptchaSiteKey),this.recaptchaContainer.style.display="none",this.recaptchaContainer.style.marginTop="6px",this.recaptchaContainer.style.justifyContent="center",this.form&&(this.form.appendChild(this.recaptchaContainer),t=this.form.querySelector('input[type="email"]'))&&t.addEventListener("input",this.handleEmailInput.bind(this)),this.init()}loadRecaptcha(){var t;this.recaptchaLoaded||((t=document.createElement("script")).src="https://www.google.com/recaptcha/api.js",t.async=!0,t.defer=!0,t.onload=()=>{window.grecaptcha&&window.grecaptcha.ready(()=>{this.recaptchaReady=!0,console.log("reCAPTCHA is ready")})},document.head.appendChild(t),this.recaptchaLoaded=!0)}init(){this.form&&this.form.addEventListener("submit",this.handleSubmit.bind(this))}handleEmailInput(t){t=t.target,t=this.validateEmail(t.value);this.recaptchaContainer.style.display=t?"flex":"none",t&&!this.recaptchaLoaded&&this.loadRecaptcha()}startButtonLoader(){var t;this.submitButton&&(this.submitButton.originalText=this.submitButton.innerHTML,this.submitButton.innerHTML=` Subscribing... `,this.submitButton.style.pointerEvents="none",this.submitButton.style.opacity="0.7",document.getElementById("loader-animation")||((t=document.createElement("style")).id="loader-animation",t.textContent="@keyframes button-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}",document.head.appendChild(t)))}stopButtonLoader(){this.submitButton&&this.submitButton.originalText&&(this.submitButton.innerHTML=this.submitButton.originalText,this.submitButton.style.pointerEvents="auto",this.submitButton.style.opacity="1")}validateEmail(t){return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t)}async handleSubmit(t){t.preventDefault();const e=this.form.querySelector('input[type="email"]');if(e&&this.validateEmail(e.value))if(window.grecaptcha&&this.recaptchaReady)if(grecaptcha.getResponse())try{this.startButtonLoader(),KitsuneSubscribe(e.value,t=>{this.stopButtonLoader(),utils.snackbar.success(t||"Successfully subscribed!"),e.value="",grecaptcha.reset(),this.recaptchaContainer.style.display="none"},t=>{this.stopButtonLoader(),utils.snackbar.error(t||"Subscription failed. Please try again."),e.value="",grecaptcha.reset(),this.recaptchaContainer.style.display="none"})}catch(t){this.stopButtonLoader(),utils.snackbar.error(t.message||"Subscription failed. Please try again."),e.value="",grecaptcha.reset(),this.recaptchaContainer.style.display="none"}else utils.snackbar.error("Please verify that you are not a robot");else utils.snackbar.error("reCAPTCHA is not ready yet. Please wait a moment...");else utils.snackbar.error("Please enter a valid email address")}}function initSubscriptionWhenFooterVisible(){var t=document.querySelector(".site-footer");t&&new IntersectionObserver((t,e)=>{t.forEach(t=>{t.isIntersecting&&(new SubscriptionManager,e.disconnect())})},{rootMargin:"100px",threshold:.1}).observe(t)}document.addEventListener("DOMContentLoaded",initSubscriptionWhenFooterVisible);