jQuery(document).ready(function($){setShippingAddressNoticeVisibility(true);$(document).on('change','.woocommerce_subscription_gifting_checkbox[type="checkbox"]',function(e,eventContext){if($(this).is(':checked')){$(this).closest('.wcsg_add_recipient_fields_container').find('.wcsg_add_recipient_fields').slideDown(250,function(){if(typeof eventContext==='undefined'||eventContext!=='pageload'){$(this).find('.recipient_email').trigger('focus');}});const shipToDifferentAddressCheckbox=$(document).find('#ship-to-different-address-checkbox');if(!shipToDifferentAddressCheckbox.is(':checked')){shipToDifferentAddressCheckbox.click();} setShippingAddressNoticeVisibility(false);}else{$(this).closest('.wcsg_add_recipient_fields_container').find('.wcsg_add_recipient_fields').slideUp(250);const recipientEmailElement=$(this).closest('.wcsg_add_recipient_fields_container').find('.recipient_email');recipientEmailElement.val('');setShippingAddressNoticeVisibility(true);if($('form.checkout').length!==0){updateCheckout();}}});function hideGiftingCheckbox(){$('.woocommerce_subscription_gifting_checkbox[type="checkbox"]').prop('checked',false).trigger('change');$('.wcsg_add_recipient_fields_container').hide();} $(document).on('found_variation',function(event,variationData){if(variationData.gifting){$('.wcsg_add_recipient_fields_container').show();return;} hideGiftingCheckbox();});$(document).on('reset_data',hideGiftingCheckbox);const cart={init:function(){$(document).on('submit','div.woocommerce > form',this.set_update_cart_as_clicked);const handlers=$._data(document,'events');if(typeof handlers.submit!=='undefined'){handlers.submit.unshift(handlers.submit.pop());}},set_update_cart_as_clicked:function(evt){const $form=$(evt.target);const $submit=$(document.activeElement);if($form.find('table.shop_table.cart').length===0){return;} if($submit.is('input.recipient_email')){$(':input[type="submit"][name="update_cart"]').attr('clicked','true');}},};cart.init();function isValidEmail(email){const emailRegex=/^[^\s@]+@[^\s@]+\.[^\s@]+$/;return emailRegex.test(email);} function validateAllRecipientEmails(showErrors=true){const $allEmailFields=$('.recipient_email');let allValid=true;$allEmailFields.each(function(){const $emailField=$(this);const $giftingCheckbox=$(this).closest('.wcsg_add_recipient_fields_container').find('.woocommerce_subscription_gifting_checkbox');const email=$emailField.val().trim();if(!$giftingCheckbox.is(':checked')){return;} if(!isValidEmail(email)){if(showErrors){showValidationErrorForEmailField($emailField);} allValid=false;}});const $updateCartButton=$('.woocommerce-cart-form :input[type="submit"][name="update_cart"]');if($updateCartButton.length){$updateCartButton.prop('disabled',!allValid);} return allValid;} function validateRecipientEmail($emailField){const email=$emailField.val().trim();hideValidationErrorForEmailField($emailField);if(!isValidEmail(email)){showValidationErrorForEmailField($emailField);if(isShortcodeCartOrCheckoutPage()){validateAllRecipientEmails();} return false;} if(isShortcodeCartOrCheckoutPage()){validateAllRecipientEmails();} return true;} $(document).on('click','.single_add_to_cart_button, .add_to_cart_button',function(e){const $giftingContainer=$('.wcsg_add_recipient_fields_container');if($giftingContainer.length===0){return;} const $giftingCheckbox=$giftingContainer.find('.woocommerce_subscription_gifting_checkbox');if(!$giftingCheckbox.is(':checked')){return;} const $emailField=$giftingContainer.find('.recipient_email');if($emailField.length===0){return;} if(!validateRecipientEmail($emailField)){e.preventDefault();e.stopPropagation();$emailField.focus();return false;}});$(document).on('blur','.recipient_email',function(){const $emailField=$(this);validateRecipientEmail($emailField);});$(document).on('input','.recipient_email',function(){const $emailField=$(this);hideValidationErrorForEmailField($emailField);});let updateTimer;$(document).on('change','.recipient_email',function(){if($('form.checkout').length===0){return;} if(validateAllRecipientEmails()){updateCheckout();}});$(document).on('keyup','.recipient_email',function(e){const code=e.keyCode||e.which||0;if($('form.checkout').length===0||code===9){return true;} const currentRecipient=$(this).val();const originalRecipient=$(this).attr('data-recipient');resetCheckoutUpdateTimer();if(currentRecipient!==originalRecipient){$(this).addClass('wcsg_needs_update');if(validateAllRecipientEmails(false)){updateTimer=setTimeout(updateCheckout,1500);}}else{$(this).removeClass('wcsg_needs_update');}});function updateCheckout(){resetCheckoutUpdateTimer();$('.recipient_email').removeClass('wcsg_needs_update');$(document.body).trigger('update_checkout');} function resetCheckoutUpdateTimer(){clearTimeout(updateTimer);} function setShippingAddressNoticeVisibility(hide=true){const notice=$('form.checkout').find('.woocommerce-shipping-fields').find('.woocommerce-info');if(!notice.length){return;} if(hide){notice.css({display:'none'});}else{notice.css({display:''});}} function isShortcodeCartOrCheckoutPage(){return($('form.woocommerce-cart-form').length>0||$('form.woocommerce-checkout').length>0);} function showValidationErrorForEmailField($emailField){$emailField.addClass('wcsg-email-error');$emailField.closest('.wcsg_add_recipient_fields').find('.wc-shortcode-components-validation-error').show();} function hideValidationErrorForEmailField($emailField){$emailField.removeClass('wcsg-email-error');$emailField.closest('.wcsg_add_recipient_fields').find('.wc-shortcode-components-validation-error').hide();} $('.woocommerce_subscription_gifting_checkbox[type="checkbox"]').trigger('change','pageload');$(document).ready(function(){setTimeout(function(){if(isShortcodeCartOrCheckoutPage()){validateAllRecipientEmails();}},1000);});});