const getNLField = (e,t,r={isRequired:!0,fieldType:"input"})=>{try{let s=e.find(`[name="${t}"]${"radio"===r.fieldType?":checked":""}`);if(r.isRequired&&(!s||"string"!=typeof s.val()))throw Error(`couldn't find ${t}`);return s?.val()}catch(e){return console.error(`Couldn't find ${t}`,e),""}} const getNewsletter = (e,t)=>{let r=$(`form#${e}`);if(r)return{firstname:getNLField(r,"first_name"),lastname:getNLField(r,"last_name"),email:getNLField(r,"email"),country:getNLField(r,"country"),lang:t}} const addNLRecaptcha = e=>{if($(`#${e} button[type=submit]`)){var t=document.createElement("script");t.type="text/javascript",t.src="https://www.google.com/recaptcha/api.js?render=6LfFz_ApAAAAALLXkeBQ-YNHWDXMTxpXGvKxn30z",$("body").append(t)}} let initNewsletterFormHandler = (e,t)=>{$(`#${e}`).off("submit"),addNLRecaptcha(e),$(`#${e}`).on("submit",async r=>{let s=r.target.querySelector("input[type=submit]"),a=s?.parentElement&&$(s.parentElement);try{s?.setAttribute("disabled","disabled"),s?.classList.add("is-disabled"),s?.classList.add("is-loading"),a?.addClass("is-loading"),r.stopPropagation(),r.preventDefault(),window.grecaptcha.ready(async()=>{let r=await window.grecaptcha.execute("6LfFz_ApAAAAALLXkeBQ-YNHWDXMTxpXGvKxn30z",{action:"submit"}),i={...getNewsletter(e,t),recaptchaToken:r};console.log("form: ",JSON.stringify(i,null,2));let o=await fetch(`https://customers.coteries.com/medair/newsletter-subscription`,{method:"post",body:JSON.stringify(i),referrerPolicy:"no-referrer",headers:{"Content-Type":"application/json"}});if(200===o.status)window.location.href=`${"en"!==t?`/${t}`:""}/newsletter-success`,setTimeout(()=>{s?.removeAttribute("disabled"),s?.classList.remove("is-disabled"),s?.classList.remove("is-loading"),a?.removeClass("is-loading")},2e3);else{if(400===o.status){let e=await o.json();console.error("error: ",e),alert(e.error?.error_message??"An error occurred")}else 504===o.status?alert("timeout, please try again"):alert("An error occurred");s?.removeAttribute("disabled"),s?.classList.remove("is-disabled"),s?.classList.remove("is-loading"),a?.removeClass("is-loading")}})}catch(e){s?.removeAttribute("disabled"),s?.classList.remove("is-disabled"),s?.classList.remove("is-loading"),a?.removeClass("is-loading")}})}