// source --> https://yummify.com.au/wp-content/plugins/sumosubscriptions/assets/js/frontend/single-product-page.js?ver=9.8 /* global sumosubscriptions_single_product_page */ jQuery( function ( $ ) { // sumosubscriptions_single_product_page is required to continue, ensure the object exists if ( typeof sumosubscriptions_single_product_page === 'undefined' ) { return false ; } /** * Check if a node is blocked for processing. * * @param {JQuery Object} $node * @return {bool} True if the DOM Element is UI Blocked, false if not. */ var is_blocked = function ( $node ) { return $node.is( '.processing' ) || $node.parents( '.processing' ).length ; } ; /** * Block a node visually for processing. * * @param {JQuery Object} $node */ var block = function ( $node ) { if ( ! is_blocked( $node ) ) { $node.addClass( 'processing' ).block( { message : null , overlayCSS : { background : '#fff' , opacity : 0.6 } } ) ; } } ; /** * Unblock a node after processing is complete. * * @param {JQuery Object} $node */ var unblock = function ( $node ) { $node.removeClass( 'processing' ).unblock() ; } ; var $product_div = $( '.summary, .entry-summary' ).closest( 'div' ) ; var $product_variation_div = $( '.variations_form' ).closest( 'form' ) ; var single_product = { /** * Init single product */ init : function () { this.populate() ; $( document ).on( 'found_variation.wc-variation-form' , { variationForm : this } , this.onFoundVariation ) ; $( document ).on( 'click.wc-variation-form' , '.reset_variations' , { variationForm : this } , this.resetVariationData ) ; $( document ).on( 'change' , '.variations select' , this.toggleVariations ) ; $( document ).on( 'click' , '#sumosubs_subscribe_optional_trial' , this.toggleOptionalPlanSubscribedByUser ) ; $( document ).on( 'click' , '#sumosubs_subscribe_optional_signup' , this.toggleOptionalPlanSubscribedByUser ) ; } , populate : function ( id , type ) { id = id || sumosubscriptions_single_product_page.product_id ; type = type || sumosubscriptions_single_product_page.product_type ; single_product.product_id = id ; single_product.product_type = type ; single_product.block_field = $product_div ; single_product.html_plan_field = 'p.price' ; single_product.default_plan = $( 'p.price' ).html() ; if ( single_product.product_type === 'variation' ) { single_product.block_field = $product_variation_div ; single_product.html_plan_field = 'span.price' ; single_product.default_plan = $( 'div.woocommerce-variation-price, span.price' ).html() ; } } , getSingleAddToCartVariationData : function () { var $hidden_datas = $( 'form' ).find( '#sumosubs_single_variation_data' ).data() ; if ( 'undefined' !== typeof $hidden_datas ) { var beforeVariationData = '' , afterVariationData = '' ; $.each( $hidden_datas , function ( context , data ) { switch ( context ) { case 'add_to_cart_label_' + single_product.variation_id: $( '.single_add_to_cart_button' ).addClass( 'sumosubs_single_variation_subscribe_button' ).text( data ) ; break ; case 'synced_next_payment_date_' + single_product.variation_id: afterVariationData += data ; break ; case 'plan_message_' + single_product.variation_id: case 'subscription_restricted_message_' + single_product.variation_id: case 'optional_plan_fields_for_user_' + single_product.variation_id: beforeVariationData += data ; } } ) ; if ( '' !== beforeVariationData || '' !== afterVariationData ) { if ( '' !== beforeVariationData ) { $( 'span#sumosubs_before_single_variation' ).html( beforeVariationData ) ; } if ( '' !== afterVariationData ) { $( 'span#sumosubs_after_single_variation' ).html( afterVariationData ) ; } } } } , onFoundVariation : function ( evt , variation ) { single_product.variation_id = variation.variation_id ; single_product.resetVariationData() ; if ( '' !== single_product.variation_id ) { single_product.getSingleAddToCartVariationData() ; } } , toggleVariations : function () { single_product.variation_id = $( 'input[name="variation_id"]' ).val() ; if ( '' !== single_product.variation_id ) { $.each( $( 'form' ).find( '#sumosubs_single_variations' ).data( 'variations' ) , function ( index , variation_id ) { if ( variation_id == single_product.variation_id ) { single_product.getSingleAddToCartVariationData() ; } } ) ; } else { single_product.resetVariationData() ; } } , resetVariationData : function ( evt , variation ) { $( 'span#sumosubs_before_single_variation, span#sumosubs_after_single_variation' ).html( '' ) ; $( '.single_add_to_cart_button' ).removeClass( 'sumosubs_single_variation_subscribe_button' ).text( sumosubscriptions_single_product_page.default_add_to_cart_text ) ; } , toggleOptionalPlanSubscribedByUser : function ( evt ) { var $this = $( evt.currentTarget ) ; if ( 'undefined' === typeof $this.data( 'product_id' ) ) { return false ; } single_product.populate( $this.data( 'product_id' ) , $this.data( 'product_type' ) ) ; single_product.saveSubscribedOptionalPlan() ; } , saveSubscribedOptionalPlan : function () { $.blockUI.defaults.overlayCSS.cursor = 'wait' ; block( single_product.block_field ) ; $.ajax( { type : 'POST' , url : sumosubscriptions_single_product_page.wp_ajax_url , dataType : 'json' , data : { action : 'sumosubscription_get_subscribed_optional_plans_by_user' , security : sumosubscriptions_single_product_page.get_product_nonce , product_id : single_product.product_id , selected_plans : Array( $( '#sumosubs_subscribe_optional_trial' ).is( ':checked' ) ? $( '#sumosubs_subscribe_optional_trial' ).data( 'plan' ) : '' , $( '#sumosubs_subscribe_optional_signup' ).is( ':checked' ) ? $( '#sumosubs_subscribe_optional_signup' ).data( 'plan' ) : '' ) } , success : function ( data ) { if ( data === null ) { $( single_product.html_plan_field ).html( single_product.default_plan ) ; } else { if ( data.subscribed_plan !== '' ) { if ( $( 'span#sumosubs_plan_message' ).length > 0 ) { $( 'span#sumosubs_plan_message' ).html( data.subscribed_plan ) ; } } if ( data.next_payment_sync_on !== '' ) { $( 'p#sumosubs_initial_synced_payment_date' ).html( data.next_payment_sync_on ) } } } , complete : function () { unblock( single_product.block_field ) ; } } ) ; } , } ; single_product.init() ; } ) ; // source --> https://yummify.com.au/wp-content/plugins/woocommerce/assets/js/jquery-blockui/jquery.blockUI.min.js?ver=2.70 /*! * jQuery blockUI plugin * Version 2.70.0-2014.11.23 * Requires jQuery v1.7 or later * * Examples at: http://malsup.com/jquery/block/ * Copyright (c) 2007-2013 M. Alsup * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html * * Thanks to Amir-Hossein Sobhi for some excellent contributions! */ !function(){"use strict";function e(e){function t(t,n){var s,h,k=t==window,y=n&&n.message!==undefined?n.message:undefined;if(!(n=e.extend({},e.blockUI.defaults,n||{})).ignoreIfBlocked||!e(t).data("blockUI.isBlocked")){if(n.overlayCSS=e.extend({},e.blockUI.defaults.overlayCSS,n.overlayCSS||{}),s=e.extend({},e.blockUI.defaults.css,n.css||{}),n.onOverlayClick&&(n.overlayCSS.cursor="pointer"),h=e.extend({},e.blockUI.defaults.themedCSS,n.themedCSS||{}),y=y===undefined?n.message:y,k&&p&&o(window,{fadeOut:0}),y&&"string"!=typeof y&&(y.parentNode||y.jquery)){var m=y.jquery?y[0]:y,g={};e(t).data("blockUI.history",g),g.el=m,g.parent=m.parentNode,g.display=m.style.display,g.position=m.style.position,g.parent&&g.parent.removeChild(m)}e(t).data("blockUI.onUnblock",n.onUnblock);var v,I,w,U,x=n.baseZ;v=e(r||n.forceIframe?'':''),I=e(n.theme?'':''),n.theme&&k?(U='"):n.theme?(U='"):U=k?'':'',w=e(U),y&&(n.theme?(w.css(h),w.addClass("ui-widget-content")):w.css(s)),n.theme||I.css(n.overlayCSS),I.css("position",k?"fixed":"absolute"),(r||n.forceIframe)&&v.css("opacity",0);var C=[v,I,w],S=e(k?"body":t);e.each(C,function(){this.appendTo(S)}),n.theme&&n.draggable&&e.fn.draggable&&w.draggable({handle:".ui-dialog-titlebar",cancel:"li"});var O=f&&(!e.support.boxModel||e("object,embed",k?null:t).length>0);if(u||O){if(k&&n.allowBodyStretch&&e.support.boxModel&&e("html,body").css("height","100%"),(u||!e.support.boxModel)&&!k)var E=a(t,"borderTopWidth"),T=a(t,"borderLeftWidth"),M=E?"(0 - "+E+")":0,B=T?"(0 - "+T+")":0;e.each(C,function(e,t){var o=t[0].style;if(o.position="absolute",e<2)k?o.setExpression("height","Math.max(document.body.scrollHeight, document.body.offsetHeight) - (jQuery.support.boxModel?0:"+n.quirksmodeOffsetHack+') + "px"'):o.setExpression("height",'this.parentNode.offsetHeight + "px"'),k?o.setExpression("width",'jQuery.support.boxModel && document.documentElement.clientWidth || document.body.clientWidth + "px"'):o.setExpression("width",'this.parentNode.offsetWidth + "px"'),B&&o.setExpression("left",B),M&&o.setExpression("top",M);else if(n.centerY)k&&o.setExpression("top",'(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"'),o.marginTop=0;else if(!n.centerY&&k){var i="((document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "+(n.css&&n.css.top?parseInt(n.css.top,10):0)+') + "px"';o.setExpression("top",i)}})}if(y&&(n.theme?w.find(".ui-widget-content").append(y):w.append(y),(y.jquery||y.nodeType)&&e(y).show()),(r||n.forceIframe)&&n.showOverlay&&v.show(),n.fadeIn){var j=n.onBlock?n.onBlock:c,H=n.showOverlay&&!y?j:c,z=y?j:c;n.showOverlay&&I._fadeIn(n.fadeIn,H),y&&w._fadeIn(n.fadeIn,z)}else n.showOverlay&&I.show(),y&&w.show(),n.onBlock&&n.onBlock.bind(w)();if(i(1,t,n),k?(p=w[0],b=e(n.focusableElements,p),n.focusInput&&setTimeout(l,20)):d(w[0],n.centerX,n.centerY),n.timeout){var W=setTimeout(function(){k?e.unblockUI(n):e(t).unblock(n)},n.timeout);e(t).data("blockUI.timeout",W)}}}function o(t,o){var s,l=t==window,d=e(t),a=d.data("blockUI.history"),c=d.data("blockUI.timeout");c&&(clearTimeout(c),d.removeData("blockUI.timeout")),o=e.extend({},e.blockUI.defaults,o||{}),i(0,t,o),null===o.onUnblock&&(o.onUnblock=d.data("blockUI.onUnblock"),d.removeData("blockUI.onUnblock"));var r;r=l?e(document.body).children().filter(".blockUI").add("body > .blockUI"):d.find(">.blockUI"),o.cursorReset&&(r.length>1&&(r[1].style.cursor=o.cursorReset),r.length>2&&(r[2].style.cursor=o.cursorReset)),l&&(p=b=null),o.fadeOut?(s=r.length,r.stop().fadeOut(o.fadeOut,function(){0==--s&&n(r,a,o,t)})):n(r,a,o,t)}function n(t,o,n,i){var s=e(i);if(!s.data("blockUI.isBlocked")){t.each(function(e,t){this.parentNode&&this.parentNode.removeChild(this)}),o&&o.el&&(o.el.style.display=o.display,o.el.style.position=o.position,o.el.style.cursor="default",o.parent&&o.parent.appendChild(o.el),s.removeData("blockUI.history")),s.data("blockUI.static")&&s.css("position","static"),"function"==typeof n.onUnblock&&n.onUnblock(i,n);var l=e(document.body),d=l.width(),a=l[0].style.width;l.width(d-1).width(d),l[0].style.width=a}}function i(t,o,n){var i=o==window,l=e(o);if((t||(!i||p)&&(i||l.data("blockUI.isBlocked")))&&(l.data("blockUI.isBlocked",t),i&&n.bindEvents&&(!t||n.showOverlay))){var d="mousedown mouseup keydown keypress keyup touchstart touchend touchmove";t?e(document).bind(d,n,s):e(document).unbind(d,s)}}function s(t){if("keydown"===t.type&&t.keyCode&&9==t.keyCode&&p&&t.data.constrainTabKey){var o=b,n=!t.shiftKey&&t.target===o[o.length-1],i=t.shiftKey&&t.target===o[0];if(n||i)return setTimeout(function(){l(i)},10),!1}var s=t.data,d=e(t.target);return d.hasClass("blockOverlay")&&s.onOverlayClick&&s.onOverlayClick(t),d.parents("div."+s.blockMsgClass).length>0||0===d.parents().children().filter("div.blockUI").length}function l(e){if(b){var t=b[!0===e?b.length-1:0];t&&t.focus()}}function d(e,t,o){var n=e.parentNode,i=e.style,s=(n.offsetWidth-e.offsetWidth)/2-a(n,"borderLeftWidth"),l=(n.offsetHeight-e.offsetHeight)/2-a(n,"borderTopWidth");t&&(i.left=s>0?s+"px":"0"),o&&(i.top=l>0?l+"px":"0")}function a(t,o){return parseInt(e.css(t,o),10)||0}e.fn._fadeIn=e.fn.fadeIn;var c=e.noop||function(){},r=/MSIE/.test(navigator.userAgent),u=/MSIE 6.0/.test(navigator.userAgent)&&!/MSIE 8.0/.test(navigator.userAgent),f=(document.documentMode,e.isFunction(document.createElement("div").style.setExpression));e.blockUI=function(e){t(window,e)},e.unblockUI=function(e){o(window,e)},e.growlUI=function(t,o,n,i){var s=e('
');t&&s.append("

"+t+"

"),o&&s.append("

"+o+"

"),n===undefined&&(n=3e3);var l=function(t){t=t||{},e.blockUI({message:s,fadeIn:"undefined"!=typeof t.fadeIn?t.fadeIn:700,fadeOut:"undefined"!=typeof t.fadeOut?t.fadeOut:1e3,timeout:"undefined"!=typeof t.timeout?t.timeout:n,centerY:!1,showOverlay:!1,onUnblock:i,css:e.blockUI.defaults.growlCSS})};l();s.css("opacity");s.mouseover(function(){l({fadeIn:0,timeout:3e4});var t=e(".blockMsg");t.stop(),t.fadeTo(300,1)}).mouseout(function(){e(".blockMsg").fadeOut(1e3)})},e.fn.block=function(o){if(this[0]===window)return e.blockUI(o),this;var n=e.extend({},e.blockUI.defaults,o||{});return this.each(function(){var t=e(this);n.ignoreIfBlocked&&t.data("blockUI.isBlocked")||t.unblock({fadeOut:0})}),this.each(function(){"static"==e.css(this,"position")&&(this.style.position="relative",e(this).data("blockUI.static",!0)),this.style.zoom=1,t(this,o)})},e.fn.unblock=function(t){return this[0]===window?(e.unblockUI(t),this):this.each(function(){o(this,t)})},e.blockUI.version=2.7,e.blockUI.defaults={message:"

Please wait...

",title:null,draggable:!0,theme:!1,css:{padding:0,margin:0,width:"30%",top:"40%",left:"35%",textAlign:"center",color:"#000",border:"3px solid #aaa",backgroundColor:"#fff",cursor:"wait"},themedCSS:{width:"30%",top:"40%",left:"35%"},overlayCSS:{backgroundColor:"#000",opacity:.6,cursor:"wait"},cursorReset:"default",growlCSS:{width:"350px",top:"10px",left:"",right:"10px",border:"none",padding:"5px",opacity:.6,cursor:"default",color:"#fff",backgroundColor:"#000","-webkit-border-radius":"10px","-moz-border-radius":"10px","border-radius":"10px"},iframeSrc:/^https/i.test(window.location.href||"")?"javascript:false":"about:blank",forceIframe:!1,baseZ:1e3,centerX:!0,centerY:!0,allowBodyStretch:!0,bindEvents:!0,constrainTabKey:!0,fadeIn:200,fadeOut:400,timeout:0,showOverlay:!0,focusInput:!0,focusableElements:":input:enabled:visible",onBlock:null,onUnblock:null,onOverlayClick:null,quirksmodeOffsetHack:4,blockMsgClass:"blockMsg",ignoreIfBlocked:!1};var p=null,b=[]}"function"==typeof define&&define.amd&&define.amd.jQuery?define(["jquery"],e):e(jQuery)}();