/**
* Product Page Gift Form Minified JavaScript
*
* Handles the gift certificate receiver form on product pages.
* Requires wp_localize_script with object 'wcScProductPageGiftForm'.
*
* @package woocommerce-smart-coupons
*/
!function(){"use strict";function e(){const e=[...document.querySelectorAll(".wc-sc-product-page-gift-form")].find((e=>null!==e.offsetParent));if(!e)return;const t="undefined"!=typeof wcScProductPageGiftForm?wcScProductPageGiftForm:{},n=t.ajaxUrl||"",c=t.ajaxNonce||"",i=t.datepickerOptions||{},s=t.i18n||{},r=JSON.parse(e.getAttribute("data-coupons")||"[]"),a="yes"===e.getAttribute("data-schedule-enabled"),o=e.querySelector("#wc_sc_product_gift_form_accordions"),d=e.getAttribute("data-accordion-state")||"collapsed",l=JSON.parse(e.getAttribute("data-session-data")||"{}"),u=parseInt(e.getAttribute("data-product-id"),10)||0,_=e.getAttribute("data-currency-symbol")||"$",g=e.getAttribute("data-currency-position")||"left",f=parseInt(e.getAttribute("data-price-decimals"),10)||2,m=e.getAttribute("data-price-decimal-sep")||".",p=e.getAttribute("data-price-thousand-sep")||",";let y=null;const v=function(){const e=["input.qty",'input[name="quantity"]','form.cart input[type="number"][name*="quantity"]',"form.cart .quantity input",'.quantity input[type="number"]'];for(const t of e){const e=[...document.querySelectorAll(t)].find((e=>null!==e.offsetParent));if(e)return e}return null};y=v();let h=y&&y.value&&parseInt(y.value,10)||1;const w=()=>{const t={wc_sc_schedule_gift_sending:Array.from(e.querySelectorAll(".wc-sc-person-schedule-toggle")).some((e=>e.checked))?"yes":"no",gift_receiver_email:{},gift_receiver_message:{},gift_sending_date_time:{}};return["gift_receiver_email","gift_receiver_message","gift_sending_date_time"].forEach((n=>{e.querySelectorAll("."+n).forEach((e=>{const c=(e=>{const t=e.match(/\[(\d+)\]\[(\d+)\]/);return t?{couponId:parseInt(t[1],10),personIndex:parseInt(t[2],10)}:null})(e.name);c&&(t[n][c.couponId]||(t[n][c.couponId]={}),t[n][c.couponId][c.personIndex]=e.value?e.value.trim():"")}))})),t};function S(){return new Promise(((e,t)=>{const i=w(),r=new URLSearchParams;r.append("wc_sc_schedule_gift_sending",i.wc_sc_schedule_gift_sending||"no");new Set([...Object.keys(i.gift_receiver_email),...Object.keys(i.gift_receiver_message),...Object.keys(i.gift_sending_date_time)]).forEach((e=>{const t=parseInt(e,10);if(isNaN(t))return;const n=new Set;["gift_receiver_email","gift_receiver_message","gift_sending_date_time"].forEach((t=>{i[t][e]&&Object.keys(i[t][e]).forEach((e=>n.add(parseInt(e,10))))})),n.forEach((n=>{if(isNaN(n))return;const c=(i.gift_receiver_email[e]&&i.gift_receiver_email[e][n]||"").trim(),s=(i.gift_receiver_message[e]&&i.gift_receiver_message[e][n]||"").trim(),a=(i.gift_sending_date_time[e]&&i.gift_sending_date_time[e][n]||"").trim();c&&(r.append(`gift_receiver_email[${t}][${n}]`,c),r.append(`gift_receiver_message[${t}][${n}]`,s),r.append(`gift_sending_date_time[${t}][${n}]`,a))}))}));const a=new URLSearchParams;a.append("action","wc_sc_save_product_page_coupon_receiver_details"),a.append("security",c),a.append("product_id",u),a.append("data",r.toString()),fetch(n,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:a.toString()}).then((e=>{if(!e.ok)throw new Error("HTTP error: "+e.status);return e.json()})).then((n=>{"yes"===n.success?(["gift_receiver_email","gift_receiver_message","gift_sending_date_time"].forEach((e=>{l[e]||(l[e]={}),Object.keys(i[e]).forEach((t=>{l[e][t]||(l[e][t]={}),Object.assign(l[e][t],i[e][t])}))})),i.wc_sc_schedule_gift_sending&&(l.wc_sc_schedule_gift_sending=i.wc_sc_schedule_gift_sending),e(n)):t(new Error((s.sessionSaveFailed||"Session save failed")+": "+(n.message||s.unknownError||"Unknown error")))})).catch(t)}))}const b=e=>e?document.createElement("div").appendChild(document.createTextNode(e)).parentNode.innerHTML:"";function E(e){if(!e||isNaN(e)||e<=0)return"";const t=parseFloat(e).toFixed(f).split(".");t[0]=t[0].replace(/\B(?=(\d{3})+(?!\d))/g,p);const n=t.join(m),c={left:_+n,right:n+_,left_space:_+" "+n,right_space:n+" "+_};return''+b(c[g]||c.left)+""}const q=()=>{const e=document.querySelector("#credit_called")?.value,t=parseFloat(e);return!isNaN(t)&&t>0?t:0};let $=0;jQuery(document).on("found_variation","form.variations_form",(function(e,t){$=parseFloat(t.display_price)||0}));const T=()=>$;function k(){const t=q(),n=t>0?t:T();console.log(n);e.querySelectorAll(".wc-sc-gift-item").forEach((e=>{const t=e.getAttribute("data-coupon-id");if(!t)return;const c=r.find((e=>String(e.id)===String(t)));if(!c)return;if(!c.uses_credit_called)return;let i=e.querySelector(".amount");const a=e.querySelector(".email_amount");if(a)if(n>0){const e=E(n);if(e){const t=(s.send||"Send")+" "+b(c.formatted_text)+" "+(s.of||"of")+" "+e;if(!i){i=document.createElement("div"),i.className="amount";const e=a.querySelector(".email");e?a.insertBefore(i,e):a.appendChild(i)}i.innerHTML=t,i.style.display=""}}else i&&(i.innerHTML="",i.style.display="none")}))}function A(e,t={}){if(!o||!r||0===r.length)return null;const n=document.createElement("div");n.className="wc-sc-gift-accordion",n.setAttribute("data-person-index",e);const c=document.createElement("div");c.className="wc-sc-gift-accordion-header";let i="";const l="yes"===t.wc_sc_schedule_gift_sending;a&&(i=`
\n\t\t\t\t\n\t\t\t
`),c.innerHTML=`${s.giftToPerson||"GIFT to person"} ${e+1}${i}${"expanded"===d?"−":"+"}`;const u=document.createElement("div");return u.className="wc-sc-gift-accordion-content","expanded"===d&&u.classList.add("expanded"),r.forEach((n=>{const c=function(e,t,n={},c=!1){const i=document.createElement("div");i.className="wc-sc-gift-item",i.setAttribute("data-coupon-id",e.id),i.setAttribute("data-person-index",t);const r=`gift_receiver_email[${e.id}][${t}]`,o=`gift_receiver_message[${e.id}][${t}]`,d=`gift_sending_date_time[${e.id}][${t}]`,l=c=>n[c]?.[e.id]?.[t]?b(String(n[c][e.id][t])):"",u=l("gift_receiver_email"),_=l("gift_receiver_message"),g=l("gift_sending_date_time");let f="";if(e.uses_credit_called){const t=q(),n=t>0?t:T();if(n>0){const t=E(n);t&&(f=(s.send||"Send")+" "+b(e.formatted_text)+" "+(s.of||"of")+" "+t)}}else f=(s.send||"Send")+" "+b(e.formatted_text)+" "+(s.of||"of")+" "+e.formatted_amount;const m=`\n\t\t\t\t${f?`
${f}
`:""}\n\t\t\t\t
\n\t\t\t
`,p=``;let y="";a&&(y=`\n\t\t\t\t\t\n\t\t\t\t
`);return i.innerHTML=`${m}${y}${p}
`,i}(n,e,t,l);c&&u.appendChild(c)})),n.appendChild(c),n.appendChild(u),o.appendChild(n),setTimeout((()=>{const e=n.querySelector(".wc-sc-person-schedule-toggle");if(e){n.querySelectorAll(".email_sending_date_time_wrapper").forEach((t=>{t.style.display=e.checked?"block":"none"}))}}),0),n}const L=(e,t)=>{const n=e.querySelector(".wc-sc-gift-accordion-content"),c=e.querySelector(".accordion-toggle");n&&n.classList.toggle("expanded",t),c&&(c.textContent=t?"−":"+")};function x(){if(o&&!(h<=0)){o.innerHTML="";for(let e=0;e{if("undefined"==typeof jQuery||!jQuery.fn.datetimepicker)return void setTimeout(t,100);const n=Object.assign({},i);n.isRTL=!("undefined"==typeof wp||!wp.i18n||!wp.i18n.isRTL)&&wp.i18n.isRTL(),e.querySelectorAll(".gift_sending_date_time:not(.hasDatepicker)").forEach((e=>{jQuery(e).datetimepicker(n)}))};setTimeout(t,300)}(),setTimeout(k,100)}}y||(y=v()),function(){const t=document.querySelector("#credit_called");if(t){let e;const n=()=>{clearTimeout(e),e=setTimeout(k,300)};t.addEventListener("input",n),t.addEventListener("change",n),setTimeout(k,500)}let i;jQuery(document).on("found_variation","form.variations_form",(function(){setTimeout(k,500)}));const s=e=>{(e=parseInt(e,10)||0)<0||e===h||S().then((()=>{const t=h;h=e,y&&y.value!=e&&(y.value=e),x();if(o.querySelectorAll(".wc-sc-gift-accordion").forEach((e=>L(e,!1))),e>t){const t=o.querySelector(`.wc-sc-gift-accordion[data-person-index="${e-1}"]`);t&&L(t,!0)}setTimeout((()=>S().catch((()=>{}))),100)})).catch((()=>{h=e,x()}))},r=()=>{if(y||(y=v()),!y)return;const e=function(){clearTimeout(i),i=setTimeout((()=>s(this.value)),300)};y.addEventListener("change",e),y.addEventListener("input",e),document.querySelectorAll(".quantity .plus, .quantity .minus, .bde-quantity-button, .bde-quantity-button, .qty-button").forEach((e=>{e.addEventListener("click",(()=>{null!==e.offsetParent&&setTimeout((()=>{const e=v();e&&e.value&&(y=e,s(e.value))}),100)}))}))};let a;y?r():setTimeout(r,500),o.addEventListener("change",(t=>{if(!t.target.classList.contains("wc-sc-person-schedule-toggle"))return;const n=t.target.checked;l.wc_sc_schedule_gift_sending=Array.from(e.querySelectorAll(".wc-sc-person-schedule-toggle")).some((e=>e.checked))?"yes":"no";const c=t.target.closest(".wc-sc-gift-accordion");c&&c.querySelectorAll(".email_sending_date_time_wrapper").forEach((e=>{e.style.display=n?"block":"none"})),S().catch((()=>{}))})),o.addEventListener("click",(e=>{if(e.target.closest(".wc-sc-schedule-toggle-wrapper")||e.target.closest(".wc-sc-toggle-check"))return;const t=e.target.closest(".wc-sc-gift-accordion-header");if(t){const e=t.parentElement,n=e.querySelector(".wc-sc-gift-accordion-content").classList.contains("expanded");L(e,!n)}}));const d=()=>{clearTimeout(a),a=setTimeout((()=>S().catch((()=>{}))),500)};e.addEventListener("blur",(e=>{e.target.matches(".gift_receiver_email, .gift_receiver_message, .gift_sending_date_time")&&d()}),!0),e.addEventListener("input",(e=>{e.target.matches(".gift_receiver_email, .gift_receiver_message, .gift_sending_date_time")&&d()}),!0);const _=e.closest("form.cart");if(_){_.addEventListener("submit",(()=>{const e=w();let t="wc_sc_schedule_gift_sending="+encodeURIComponent(e.wc_sc_schedule_gift_sending||"no");["gift_receiver_email","gift_receiver_message","gift_sending_date_time"].forEach((n=>{Object.keys(e[n]).forEach((c=>{Object.keys(e[n][c]).forEach((i=>{const s=e[n][c][i];s&&s.trim()&&(t+="&"+n+"["+c+"]["+i+"]="+encodeURIComponent(s.trim()))}))}))}));const i=new XMLHttpRequest;i.open("POST",n,!1),i.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),i.send("action=wc_sc_save_product_page_coupon_receiver_details&security="+c+"&product_id="+u+"&data="+encodeURIComponent(t))}),!0);let t=!1;const i=()=>{t||(e.querySelectorAll(".gift_receiver_email, .gift_receiver_message, .gift_sending_date_time").forEach((e=>e.value="")),e.querySelectorAll(".wc-sc-person-schedule-toggle").forEach((e=>e.checked=!1)),e.querySelectorAll(".email_sending_date_time_wrapper").forEach((e=>e.style.display="none")),t=!0)};document.body.addEventListener("added_to_cart",i),"undefined"!=typeof jQuery&&jQuery(document.body).on("added_to_cart",i)}}(),x()}"loading"===document.readyState?document.addEventListener("DOMContentLoaded",e):e()}();