!function($){"use strict";(new function(){var e=this;this.init=function(){window.ppFormRecaptchaLoadCallback=this.recaptcha_processing,$(".pp-del-profile-avatar").on("click",this.delete_avatar),$(".pp-del-cover-image").on("click",this.delete_profile_image_cover),$(document).on("click",".has-password-visibility-icon .pp-form-material-icons",this.toggle_password_visibility),$(document.body).on("click","a.showlogin",(function(){$(".pp_wc_login").slideToggle()})),$(window).on("load resize ppress_updated_checkout",(function(){e.defaultUserProfileResponsive()})),$(document).on("click",".ppress-confirm-delete",(function(e){e.preventDefault(),confirm(pp_ajax_form.confirm_delete)&&(window.location.href=$(this).attr("href"))})),"true"!==pp_ajax_form.disable_ajax_form&&($(document).on("submit",'form[data-pp-form-submit="login"]',this.ajax_login),$(document).on("submit",'form[data-pp-form-submit="signup"]',this.ajax_registration),$(document).on("submit",'form[data-pp-form-submit="passwordreset"]',this.ajax_password_reset),$(document).on("submit",'form[data-pp-form-submit="editprofile"]',this.ajax_edit_profile))},this.recaptcha_processing=function(){$(".pp-g-recaptcha").each((function(s,t){var r=$(t).attr("data-sitekey"),o=$(this).parents(".pp-form-container").find("form");if("v3"===$(t).attr("data-type"))o.find("input.pp-submit-form").on("click",(function(s){s.preventDefault(),e._add_processing_label(o),grecaptcha.ready((function(){grecaptcha.execute(r,{action:"form"}).then((function(e){o.find('[name="g-recaptcha-response"]').remove(),o.append($("",{type:"hidden",value:e,name:"g-recaptcha-response"})),o.submit()}))}))}));else{var p=grecaptcha.render(t,{sitekey:r,theme:$(t).attr("data-theme"),size:$(t).attr("data-size")});o.on("pp_form_submitted",(function(){grecaptcha.reset(p)})),$(document).on("ppress_process_checkout_success_callback ppress_process_checkout_error_callback",(function(){grecaptcha.reset(p)}))}}))},this.toggle_password_visibility=function(e){e.preventDefault();var s=$(this).parents(".pp-form-field-input-textarea-wrap").find(".pp-form-field");"password"===s.attr("type")?(s.attr("type","text"),$(this).text("visibility_off")):(s.attr("type","password"),$(this).text("visibility"))},this.ajax_edit_profile=function(s){if(void 0!==window.FormData&&window.FormData){s.preventDefault();var t=$('form[data-pp-form-submit="editprofile"]'),r=e.get_melange_id(t),o=new FormData(this);o.append("action","pp_ajax_editprofile"),o.append("nonce",pp_ajax_form.nonce),o.append("melange_id",r),$(".profilepress-edit-profile-status").remove(),$(".profilepress-edit-profile-success").remove(),""!==window.edit_profile_msg_class&&$("."+window.edit_profile_msg_class).remove(),e._add_processing_label(t),$.post({url:pp_ajax_form.ajaxurl,data:o,cache:!1,contentType:!1,enctype:"multipart/form-data",processData:!1,dataType:"json",success:function(s){t.trigger("pp_form_submitted"),t.trigger("pp_form_edit_profile_success",[t]),"avatar_url"in s&&""!==s.avatar_url&&($("img[data-del='avatar'], img.pp-user-avatar").attr("src",s.avatar_url),$("input[name=eup_avatar]",t).val("")),"cover_image_url"in s&&""!==s.cover_image_url&&($("img[data-del='cover-image'], img.pp-user-cover-image").attr("src",s.cover_image_url),$("input[name=eup_cover_image]",t).val(""),$(".profilepress-myaccount-has-cover-image",t).show(),$(".profilepress-myaccount-cover-image-empty",t).hide()),"message"in s&&(window.edit_profile_msg_class=$(s.message).attr("class"),t.before(s.message)),"redirect"in s&&(t.trigger("pp_edit_profile_success_before_redirect"),window.location.assign(s.redirect)),e._remove_processing_label(t)}},"json")}},this.ajax_password_reset=function(s){s.preventDefault();var t=$(this),r=e.get_melange_id(t),o="true"===t.find('input[name="is-pp-tab-widget"]').val(),p={action:"pp_ajax_passwordreset",data:$(this).serialize()+"&melange_id="+r};e._remove_status_notice(),t.parents(".pp-tab-widget-form").prev(".pp-tab-status").remove(),e._add_processing_label(t),$.post(pp_ajax_form.ajaxurl,p,(function(s){if(t.trigger("pp_form_submitted"),"object"!=typeof s)return e._remove_processing_label(t);if("message"in s){if(t.trigger("pp_password_reset_status"),o){var r=s.message.replace("profilepress-reset-status","pp-tab-status");t.parents(".pp-tab-widget-form").before(r)}else t.parents(".lucidContainer").length>0?t.parents(".lucidContainer").before(s.message):t.before(s.message);"status"in s&&!0===s.status&&t.hide(),$('input[name="user_login"]',t).val("")}e._remove_processing_label(t)}),"json")},this.ajax_registration=function(s){if(void 0!==window.FormData&&window.FormData){s.preventDefault();var t=$(this),r=e.get_melange_id(t),o=new FormData(this),p="true"===t.find('input[name="is-pp-tab-widget"]').val();o.append("action","pp_ajax_signup"),o.append("melange_id",r),e._remove_status_notice(),t.parents(".pp-tab-widget-form").prev(".pp-tab-status").remove(),e._add_processing_label(t),$.post({url:pp_ajax_form.ajaxurl,data:o,cache:!1,contentType:!1,enctype:"multipart/form-data",processData:!1,dataType:"json",success:function(s){if(t.trigger("pp_form_submitted"),"object"!=typeof s)return e._remove_processing_label(t);if("message"in s)if(t.trigger("pp_registration_error",[s]),t.trigger("pp_registration_ajax_response",[s]),p){var r=s.message.replace("profilepress-reg-status","pp-tab-status");t.parents(".pp-tab-widget-form").before(r)}else t.parents(".lucidContainer").length>0?t.parents(".lucidContainer").before(s.message):t.before(s.message);else"redirect"in s&&(t.trigger("pp_registration_success",[s]),window.location.assign(s.redirect));e._remove_processing_label(t)}})}},this.ajax_login=function(s){s.preventDefault();var t=$(this),r={action:"pp_ajax_login",data:$(this).serialize()},o="true"===t.find('input[name="is-pp-tab-widget"]').val();e._remove_status_notice(),e._add_processing_label(t),$.post(pp_ajax_form.ajaxurl,r,(function(s){if(t.trigger("pp_form_submitted"),null===s||"object"!=typeof s)return e._remove_processing_label(t);if("success"in s&&!0===s.success&&"redirect"in s)t.trigger("pp_login_form_success"),window.location.assign(s.redirect);else if(t.trigger("pp_login_form_error"),"code"in s&&"pp2fa_auth_code_invalid"==s.code&&t.find(".pp-2fa").show(),o){var r=s.message.replace("profilepress-login-status","pp-tab-status");t.parents(".pp-tab-widget-form").before(r)}else t.parents(".lucidContainer").length>0?t.parents(".lucidContainer").before(s.message):t.before(s.message);e._remove_processing_label(t)}),"json")},this.delete_avatar=function(e){e.preventDefault();var s=$(this).text(),t=$(this);e.preventDefault(),confirm(pp_ajax_form.confirm_delete)&&(t.is("button")&&t.text(pp_ajax_form.deleting_text),$.post(pp_ajax_form.ajaxurl,{action:"pp_del_avatar",nonce:pp_ajax_form.nonce}).done((function(e){"error"in e&&"nonce_failed"===e.error?(t.text(s),alert(pp_ajax_form.deleting_error)):"success"in e&&($("img[data-del='avatar']").attr("src",e.default),t.remove())})))},this.delete_profile_image_cover=function(e){e.preventDefault();var s=$(this).text(),t=$(this);e.preventDefault(),confirm(pp_ajax_form.confirm_delete)&&(t.is("button")&&t.text(pp_ajax_form.deleting_text),$.post(pp_ajax_form.ajaxurl,{action:"pp_del_cover_image",nonce:pp_ajax_form.nonce}).done((function(e){"error"in e&&"nonce_failed"===e.error&&(t.text(s),alert(pp_ajax_form.deleting_error)),"success"in e&&(""!==e.default?($("img[data-del='cover-image']").attr("src",e.default),t.parent().find(".profilepress-myaccount-has-cover-image").show(),t.parent().find(".profilepress-myaccount-cover-image-empty").hide()):(t.parent().find(".profilepress-myaccount-has-cover-image").hide(),t.parent().find(".profilepress-myaccount-cover-image-empty").show()),t.remove())})))},this.get_melange_id=function(e){var s=$("input.pp_melange_id",e).val();return void 0===s?"":s},this._add_processing_label=function(e){var s=e.find("input[data-pp-submit-label]");s.attr({value:s.data("pp-processing-label"),disabled:"disabled"}).css("opacity",".4")},this._remove_processing_label=function(e){var s=e.find("input[data-pp-submit-label]");s.attr("value",s.data("pp-submit-label")),s.attr({value:s.data("pp-submit-label"),disabled:null}).css("opacity","")},this._remove_status_notice=function(){$(".profilepress-login-status,.pp-tab-status,.profilepress-edit-profile-success,.profilepress-edit-profile-status,.pp-reset-success,.profilepress-reset-status,.profilepress-reg-status").remove()},this.defaultUserProfileResponsive=function(){$(".ppress-default-profile, .pp-member-directory, .ppress-checkout__form").each((function(){var e=$(this),s=e.width();s<=340?(e.removeClass("ppressui340"),e.removeClass("ppressui500"),e.removeClass("ppressui800"),e.removeClass("ppressui768"),e.removeClass("ppressui960"),e.addClass("ppressui340")):s<=500?(e.removeClass("ppressui340"),e.removeClass("ppressui500"),e.removeClass("ppressui768"),e.removeClass("ppressui800"),e.removeClass("ppressui960"),e.addClass("ppressui500")):s<=768?(e.removeClass("ppressui340"),e.removeClass("ppressui500"),e.removeClass("ppressui768"),e.removeClass("ppressui800"),e.removeClass("ppressui960"),e.addClass("ppressui768")):s<=800?(e.removeClass("ppressui340"),e.removeClass("ppressui500"),e.removeClass("ppressui768"),e.removeClass("ppressui800"),e.removeClass("ppressui960"),e.addClass("ppressui800")):s<=960?(e.removeClass("ppressui340"),e.removeClass("ppressui500"),e.removeClass("ppressui768"),e.removeClass("ppressui800"),e.removeClass("ppressui960"),e.addClass("ppressui960")):s>960&&(e.removeClass("ppressui340"),e.removeClass("ppressui500"),e.removeClass("ppressui768"),e.removeClass("ppressui800"),e.removeClass("ppressui960")),e.css("opacity",1)})),$(".ppress-default-profile-cover, .ppress-default-profile-cover-e").each((function(){var e=$(this),s=Math.round(e.width()/e.data("ratio"))+"px";e.height(s),e.find(".ppress-dpf-cover-add").height(s)}))}}).init(),(new function(){let e=this;window.ppressCheckoutForm=this,this.init=function(){"0"!==pp_ajax_form.is_checkout&&0!==$("#ppress_checkout_main_form").length&&($(document).on("click",".ppress-checkout-show-login-form",this.toggle_login_form),$(document).on("click",'.ppress-login-submit-btn input[type="submit"]',this.process_login),$(document).on("click",".ppress-coupon-code-link",this.toggle_discount_code_reveal),$(document).on("click",".ppress-apply-discount-btn",this.apply_discount_code),$(document).on("click","#ppress-remove-applied-coupon",this.remove_applied_discount_code),$(document).on("submit","#ppress_mb_checkout_form",this.process_checkout),$(document).on("click",".ppress-terms-and-conditions-link",(function(e){var s=$(".ppress-checkout-form__terms_condition__content");s.length>0&&(e.preventDefault(),s.slideToggle())})),$(document).on("ppress_update_checkout",this.update_checkout),"1"===pp_ajax_form.is_checkout_tax_enabled?$(document).on("change","#ppress_mb_checkout_form .ppress_billing_country, #ppress_mb_checkout_form .ppress_billing_state, #ppress_mb_checkout_form .ppress_vat_number",e.debounce((function(){$(document.body).trigger("ppress_update_checkout")}),200)):$(document).on("change","#ppress_mb_checkout_form .ppress_billing_country",e.contextual_state_field),$(document.body).on("change","#ppress_checkout_payment_methods [name=ppress_payment_method]",(function(){$(document.body).trigger("ppress_update_checkout")})),$(document.body).on("change","#ppress_mb_checkout_form [name=group_selector]",(function(){e.update_checkout(!0)})),$(document.body).trigger("ppress_update_checkout"),$(document).ajaxError((function(){e.remove_spinner()})))},this.debounce=function(e,s){let t;return s=s||600,function(){clearTimeout(t),t=setTimeout((function(){e()}),s)}},this.contextual_state_field=function(){let e=$(".ppress_billing_state"),s={action:"ppress_contextual_state_field",country:$(this).val(),name:e.prop("name"),id:e.prop("id"),class:e.prop("class"),csrf:$("#ppress_checkout_nonce").val()};$.post(pp_ajax_form.ajaxurl,s,(function(s){e.replaceWith(s.data)}))},this.scroll_to_notices=function(e){(e=e||$(".ppress-checkout-alert")).length&&$("html, body").animate({scrollTop:e.offset().top-100},1e3)},this.update_checkout=function(s){s=s||!1,e.removeAllAlerts(),e.add_spinner();let t={action:"ppress_update_order_review",plan_id:$("#ppress-checkout-plan-id").val(),ppress_payment_method:$("#ppress_checkout_payment_methods [name=ppress_payment_method]:checked").val(),csrf:$("#ppress_checkout_nonce").val(),address:$(".ppress-checkout-form__payment_method.ppress-active .ppress_billing_address").val(),city:$(".ppress-checkout-form__payment_method.ppress-active .ppress_billing_city").val(),country:$(".ppress-checkout-form__payment_method.ppress-active .ppress_billing_country").val(),state:$(".ppress-checkout-form__payment_method.ppress-active .ppress_billing_state").val(),postcode:$(".ppress-checkout-form__payment_method.ppress-active .ppress_billing_postcode").val(),phone:$(".ppress-checkout-form__payment_method.ppress-active .ppress_billing_phone").val(),vat_number:$("#ppress_checkout_main_form .ppress_vat_number").val(),post_data:$("#ppress_mb_checkout_form").serialize()};!0===s&&(t.isChangePlanUpdate="true"),$.post(pp_ajax_form.ajaxurl,t,(function(s){let r={};if($(".ppress-checkout-form__payment_method :input").each((function(){let e=$(this).attr("id");e&&(-1!==$.inArray($(this).attr("type"),["checkbox","radio"])?r[e]=$(this).prop("checked"):r[e]=$(this).val())})),"data"in s&&void 0!==s.data.fragments&&($.each(s.data.fragments,(function(s,t){e.fragments&&e.fragments[s]===t||$(s).replaceWith(t)})),e.fragments=t.fragments),$.isEmptyObject(r)||$(".ppress-checkout-form__payment_method :input").each((function(){let e=$(this).attr("id");e&&(-1!==$.inArray($(this).attr("type"),["checkbox","radio"])?$(this).prop("checked",r[e]):($.inArray($(this).attr("type"),["select"]),$(this).val(r[e])))})),"success"in s&&!1===s.success){let e=$("#ppress_checkout_main_form");s.data&&e.prepend(s.data),e.find(".input-text, select, input:checkbox").trigger("blur")}$(document.body).trigger("ppress_updated_checkout",[s]);let o,p=$(".ppress-checkout_order_summary__bottom_details");(o=$(".ppress-checkout-alert")).length>0&&(p=o),e.scroll_to_notices(p),e.remove_spinner()}))},this.toggle_login_form=function(e){e.preventDefault(),$("#ppress_checkout_account_info .ppress-main-checkout-form__login_form_wrap").slideToggle()},this.toggle_discount_code_reveal=function(e){e.preventDefault(),$("#ppress-checkout-coupon-code-wrap").slideToggle()},this.apply_discount_code=function(s){s.preventDefault(),e.removeAllAlerts(),e.add_spinner();let t={action:"ppress_checkout_apply_discount",plan_id:$("#ppress-checkout-plan-id").val(),coupon_code:$("#apply-discount").val(),ppress_checkout_nonce:$("#ppress_checkout_nonce").val()};$.post(pp_ajax_form.ajaxurl,t,(function(s){"success"in s&&!0===s.success?$(document.body).trigger("ppress_update_checkout"):($(".ppress-checkout_order_summary-wrap").before(s.data),e.remove_spinner())}))},this.remove_applied_discount_code=function(s){s.preventDefault(),e.removeAllAlerts(),e.add_spinner();let t={action:"ppress_checkout_remove_discount",plan_id:$("#ppress-checkout-plan-id").val(),ppress_checkout_nonce:$("#ppress_checkout_nonce").val()};$.post(pp_ajax_form.ajaxurl,t,(function(s){"success"in s&&!0===s.success?$(document.body).trigger("ppress_update_checkout"):($(".ppress-checkout_order_summary-wrap").before(s.data),e.remove_spinner())}))},this.process_login=function(s){s.preventDefault(),e.removeAllAlerts(),e.add_spinner();let t={action:"ppress_process_checkout_login",ppmb_user_login:$("#ppress_mb_checkout_form #ppmb_user_login").val(),ppmb_user_pass:$("#ppress_mb_checkout_form #ppmb_user_pass").val(),ppress_checkout_nonce:$("#ppress_checkout_nonce").val()};$.post(pp_ajax_form.ajaxurl,t,(function(s){"success"in s&&(!0===s.success?window.location.reload():"data"in s&&$("#ppress_mb_checkout_form .ppress-login-submit-btn").prepend(s.data)),e.remove_spinner()}))},this.process_checkout=function(s){if("function"!=typeof this.checkValidity||!1!==this.checkValidity()){s.preventDefault(),e.removeAllAlerts(),e.add_spinner();var t=$(this),r=e.get_payment_method();if(!1!==t.triggerHandler("ppress_checkout_place_order_"+r)){let s=new FormData(this);s.append("action","ppress_process_checkout"),s.append("ppress_checkout_nonce",$("#ppress_checkout_nonce").val()),$.post({url:pp_ajax_form.ajaxurl,data:s,cache:!1,contentType:!1,enctype:"multipart/form-data",processData:!1,dataType:"json",success:function(s){if($(document.body).trigger("ppress_process_checkout_success_callback",[s]),"success"in s)return!0===s.success?void(!1!==t.triggerHandler("ppress_process_checkout_"+r,[s,r])&&("redirect_url"in s&&void 0!==s.redirect_url&&s.redirect_url.length>0?window.location.assign(s.redirect_url):($(document.body).trigger("ppress_checkout_success",[s,r]),window.location.assign(s.order_success_url)))):"error_message"in s?e.createAlertMessage(s.error_message):"data"in s&&"string"==typeof s.data?e.createAlertMessage(s.data):void 0;e.remove_spinner()},error:function(s,t,r){$(document.body).trigger("ppress_process_checkout_error_callback",[s,t,r]),e.createAlertMessage(r)}},"json")}}},this.get_payment_method=function(){return $("#ppress_mb_checkout_form").find('input[name="ppress_payment_method"]:checked').val()},this.createAlertMessage=function(e,s){s=s||"error";var t=void 0!==e.indexOf&&-1!==e.indexOf("ppress-checkout-alert"),r="";t||(r='

'),r+=e,t||(r+="

"),$("#ppress_checkout_main_form").prepend(r),ppressCheckoutForm.scroll_to_notices(),ppressCheckoutForm.remove_spinner(),$(document.body).trigger("ppress_checkout_error",[e])},this.removeAllAlerts=function(){$(".ppress-checkout-alert").remove()},this.add_spinner=function(){e.remove_spinner(),$(".ppress-checkout__form").prepend('
')},this.remove_spinner=function(){$(".ppress-checkout__form .ppress-checkout__form__preloader").remove()},this.is_var_defined=function(e){return null!=e},this.get_obj_val=function(e,s){return this.is_var_defined(e)&&""!==e?e:s}}).init()}(jQuery);; document.addEventListener("DOMContentLoaded", function () { var lazyEmbeds = [].slice.call( document.querySelectorAll(".lazy-loaded-embed, .lazy-social-embed"), ); if ("IntersectionObserver" in window) { let lazyEmbedObserver = new IntersectionObserver( function (entries, observer) { entries.forEach(function (entry) { if (entry.isIntersecting) { let lazyEmbed = entry.target; loadEmbed(lazyEmbed); observer.unobserve(lazyEmbed); } }); }, { root: null, rootMargin: "0px 0px 200px 0px", // Load embeds when they're 200px below the viewport threshold: 0, }, ); lazyEmbeds.forEach(function (lazyEmbed) { lazyEmbedObserver.observe(lazyEmbed); }); } else { // Fallback for browsers that don't support IntersectionObserver window.addEventListener( "scroll", throttle(function () { lazyEmbeds.forEach(function (lazyEmbed) { if (isElementInViewport(lazyEmbed)) { loadEmbed(lazyEmbed); lazyEmbeds = lazyEmbeds.filter(function (embed) { return embed !== lazyEmbed; }); } }); }, 250), ); } function loadEmbed(embed) { if (embed.tagName.toLowerCase() === "iframe") { embed.src = embed.dataset.src; } else if (embed.classList.contains("lazy-social-embed")) { let script = document.createElement("script"); script.src = embed.dataset.src; script.async = true; embed.parentNode.insertBefore(script, embed.nextSibling); embed.remove(); } embed.classList.remove("lazy-loaded-embed"); } // Helper function to check if an element is in the viewport function isElementInViewport(el) { var rect = el.getBoundingClientRect(); return ( rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && rect.right <= (window.innerWidth || document.documentElement.clientWidth) ); } // Helper function to throttle scroll events function throttle(func, limit) { let inThrottle; return function () { const args = arguments; const context = this; if (!inThrottle) { func.apply(context, args); inThrottle = true; setTimeout(() => (inThrottle = false), limit); } }; } }); ; /*! * JavaScript Cookie v2.1.4 * https://github.com/js-cookie/js-cookie * * Copyright 2006, 2015 Klaus Hartl & Fagner Brack * Released under the MIT license */ !function(e){var n,o,t=!1;"function"==typeof define&&define.amd&&(define(e),t=!0),"object"==typeof exports&&(module.exports=e(),t=!0),t||(n=window.Cookies,(o=window.Cookies=e()).noConflict=function(){return window.Cookies=n,o})}(function(){function m(){for(var e=0,n={};e1?c:d}var f=[],g=[],h={precision:100,elapse:!1,defer:!1};g.push(/^[0-9]*$/.source),g.push(/([0-9]{1,2}\/){2}[0-9]{4}( [0-9]{1,2}(:[0-9]{2}){2})?/.source),g.push(/[0-9]{4}([\/\-][0-9]{1,2}){2}( [0-9]{1,2}(:[0-9]{2}){2})?/.source),g=new RegExp(g.join("|"));var i={Y:"years",m:"months",n:"daysToMonth",d:"daysToWeek",w:"weeks",W:"weeksToMonth",H:"hours",M:"minutes",S:"seconds",D:"totalDays",I:"totalHours",N:"totalMinutes",T:"totalSeconds"},j=function(b,c,d){this.el=b,this.$el=a(b),this.interval=null,this.offset={},this.options=a.extend({},h),this.instanceNumber=f.length,f.push(this),this.$el.data("countdown-instance",this.instanceNumber),d&&("function"==typeof d?(this.$el.on("update.countdown",d),this.$el.on("stoped.countdown",d),this.$el.on("finish.countdown",d)):this.options=a.extend({},h,d)),this.setFinalDate(c),this.options.defer===!1&&this.start()};a.extend(j.prototype,{start:function(){null!==this.interval&&clearInterval(this.interval);var a=this;this.update(),this.interval=setInterval(function(){a.update.call(a)},this.options.precision)},stop:function(){clearInterval(this.interval),this.interval=null,this.dispatchEvent("stoped")},toggle:function(){this.interval?this.stop():this.start()},pause:function(){this.stop()},resume:function(){this.start()},remove:function(){this.stop.call(this),f[this.instanceNumber]=null,delete this.$el.data().countdownInstance},setFinalDate:function(a){this.finalDate=b(a)},update:function(){if(0===this.$el.closest("html").length)return void this.remove();var b,c=void 0!==a._data(this.el,"events"),d=new Date;b=this.finalDate.getTime()-d.getTime(),b=Math.ceil(b/1e3),b=!this.options.elapse&&b<0?0:Math.abs(b),this.totalSecsLeft!==b&&c&&(this.totalSecsLeft=b,this.elapsed=d>=this.finalDate,this.offset={seconds:this.totalSecsLeft%60,minutes:Math.floor(this.totalSecsLeft/60)%60,hours:Math.floor(this.totalSecsLeft/60/60)%24,days:Math.floor(this.totalSecsLeft/60/60/24)%7,daysToWeek:Math.floor(this.totalSecsLeft/60/60/24)%7,daysToMonth:Math.floor(this.totalSecsLeft/60/60/24%30.4368),weeks:Math.floor(this.totalSecsLeft/60/60/24/7),weeksToMonth:Math.floor(this.totalSecsLeft/60/60/24/7)%4,months:Math.floor(this.totalSecsLeft/60/60/24/30.4368),years:Math.abs(this.finalDate.getFullYear()-d.getFullYear()),totalDays:Math.floor(this.totalSecsLeft/60/60/24),totalHours:Math.floor(this.totalSecsLeft/60/60),totalMinutes:Math.floor(this.totalSecsLeft/60),totalSeconds:this.totalSecsLeft},this.options.elapse||0!==this.totalSecsLeft?this.dispatchEvent("update"):(this.stop(),this.dispatchEvent("finish")))},dispatchEvent:function(b){var c=a.Event(b+".countdown");c.finalDate=this.finalDate,c.elapsed=this.elapsed,c.offset=a.extend({},this.offset),c.strftime=d(this.offset),this.$el.trigger(c)}}),a.fn.countdown=function(){var b=Array.prototype.slice.call(arguments,0);return this.each(function(){var c=a(this).data("countdown-instance");if(void 0!==c){var d=f[c],e=b[0];j.prototype.hasOwnProperty(e)?d[e].apply(d,b.slice(1)):null===String(e).match(/^[$A-Z_][0-9A-Z_$]*$/i)?(d.setFinalDate.call(d,e),d.start()):a.error("Method %s does not exist on jQuery.countdown".replace(/\%s/gi,e))}else new j(this,b[0],b[1])})}});; "use strict"; (function ($) { "use strict"; var combinators = [" ", ">", "+", "~"]; var fraternisers = ["+", "~"]; var complexTypes = ["ATTR", "PSEUDO", "ID", "CLASS"]; function grok(msobserver) { if (!$.find.tokenize) { msobserver.isCombinatorial = true; msobserver.isFraternal = true; msobserver.isComplex = true; return; } msobserver.isCombinatorial = false; msobserver.isFraternal = false; msobserver.isComplex = false; var token = $.find.tokenize(msobserver.selector); for (var i = 0; i < token.length; i++) { for (var j = 0; j < token[i].length; j++) { if (combinators.indexOf(token[i][j].type) != -1) msobserver.isCombinatorial = true; if (fraternisers.indexOf(token[i][j].type) != -1) msobserver.isFraternal = true; if (complexTypes.indexOf(token[i][j].type) != -1) msobserver.isComplex = true; } } } var MutationSelectorObserver = function MutationSelectorObserver(selector, callback, options) { this.selector = selector.trim(); this.callback = callback; this.options = options; grok(this); }; var msobservers = []; msobservers.initialize = function (selector, callback, options) { var seen = []; var callbackOnce = function callbackOnce() { if (seen.indexOf(this) == -1) { seen.push(this); $(this).each(callback); } }; $(options.target).find(selector).each(callbackOnce); var msobserver = new MutationSelectorObserver(selector, callbackOnce, options); this.push(msobserver); var observer = new MutationObserver(function (mutations) { var matches = []; for (var m = 0; m < mutations.length; m++) { if (mutations[m].type == "attributes") { if (mutations[m].target.matches(msobserver.selector)) matches.push(mutations[m].target); if (msobserver.isFraternal) matches.push.apply(matches, mutations[m].target.parentElement.querySelectorAll(msobserver.selector));else matches.push.apply(matches, mutations[m].target.querySelectorAll(msobserver.selector)); } if (mutations[m].type == "childList") { for (var n = 0; n < mutations[m].addedNodes.length; n++) { if (!(mutations[m].addedNodes[n] instanceof Element)) continue; if (mutations[m].addedNodes[n].matches(msobserver.selector)) matches.push(mutations[m].addedNodes[n]); if (msobserver.isFraternal) matches.push.apply(matches, mutations[m].addedNodes[n].parentElement.querySelectorAll(msobserver.selector));else matches.push.apply(matches, mutations[m].addedNodes[n].querySelectorAll(msobserver.selector)); } } } for (var i = 0; i < matches.length; i++) { $(matches[i]).each(msobserver.callback); } }); var defaultObeserverOpts = { childList: true, subtree: true, attributes: msobserver.isComplex }; observer.observe(options.target, options.observer || defaultObeserverOpts); return observer; }; $.fn.initialize = function (callback, options) { return msobservers.initialize(this.selector, callback, $.extend({}, $.initialize.defaults, options)); }; $.initialize = function (selector, callback, options) { return msobservers.initialize(selector, callback, $.extend({}, $.initialize.defaults, options)); }; $.initialize.defaults = { target: document.documentElement, observer: null }; })(jQuery); 'use strict'; function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } var HurrytimerAction = /*#__PURE__*/function () { function HurrytimerAction(elementRef, config) { _classCallCheck(this, HurrytimerAction); this.elementRef = elementRef; this.config = config; } _createClass(HurrytimerAction, [{ key: "changeStockStatus", value: function changeStockStatus(campaignId, status) { if (!jQuery.post) return; jQuery.post(hurrytimer_ajax_object.ajax_url, { nonce: hurrytimer_ajax_object.ajax_nonce, action: 'change_stock_status', status: status, campaign_id: campaignId }); } }, { key: "hasMessageAction", value: function hasMessageAction() { var _iterator = _createForOfIteratorHelper(this.config.actions), _step; try { for (_iterator.s(); !(_step = _iterator.n()).done;) { var action = _step.value; if (action['id'] == hurrytimer_ajax_object.actionsOptions.displayMessage) { return true; } } } catch (err) { _iterator.e(err); } finally { _iterator.f(); } return false; } /** * Hide campaign. */ }, { key: "hide", value: function hide() { // We don't hide campaign if there is a message to display. if (this.hasMessageAction()) { return; } var stickyBar = this.elementRef.closest('.hurrytimer-sticky'); if (stickyBar.length) { stickyBar.addClass('hurryt-loading'); } else { this.elementRef.addClass('hurryt-loading'); } } /** * Redirect to the given url. * @param url */ }, { key: "hideAddToCartButton", value: /** * Hide "Add to cart" button. * @return void */ function hideAddToCartButton() { var $addToCartForm = jQuery('.single_add_to_cart_button').closest('form.cart'); if ($addToCartForm.length) { $addToCartForm.remove(); } } /** * Display message by replacing campaign content with the given message. * @param message */ }, { key: "displayMessage", value: function displayMessage(message) { var messageHtml = "
").concat(message, "
"); this.elementRef.find('.hurrytimer-campaign-message').remove(); var stickyBar = this.elementRef.closest('.hurrytimer-sticky'); if (stickyBar.length) { this.elementRef.addClass('hurryt-loading'); stickyBar.find('.hurrytimer-sticky-inner').append(messageHtml); } else { this.elementRef.addClass('hurryt-loading'); this.elementRef.after(messageHtml); } } }, { key: "expireCoupon", value: function expireCoupon(code, message) { // Remove coupon if applied but expired and the checkout form has not been placed yet. jQuery('form.checkout').on('checkout_place_order', function (event) { validate_expired_coupon_checkout(event); }); document.addEventListener("DOMContentLoaded", function () { validate_expired_coupon_checkout(); }); function validate_expired_coupon_checkout(event) { // Get applied coupons var appliedCoupons = jQuery('.woocommerce-checkout-review-order-table').find('.cart-discount'); var isCouponExpired = false; appliedCoupons.each(function () { var couponCode = jQuery(this).find('.woocommerce-remove-coupon').data('coupon'); if (couponCode.toLowerCase() === code.toLowerCase()) { isCouponExpired = true; return false; } }); if (isCouponExpired) { var errorHtml = ''; var noticeGroup = jQuery('.woocommerce-NoticeGroup-checkout'); if (noticeGroup.length) { noticeGroup.html(errorHtml); } else { var noticeGroupHtml = "
".concat(errorHtml, "
"); jQuery('form.checkout').before(noticeGroupHtml); jQuery('html, body').animate({ scrollTop: jQuery('.woocommerce-NoticeGroup-checkout').offset().top - 100 }); } var container = jQuery('.woocommerce-checkout-review-order'); container.addClass('processing').block({ message: null, overlayCSS: { background: '#fff', opacity: 0.6 } }); jQuery.ajax({ type: 'POST', url: wc_checkout_params.wc_ajax_url.toString().replace('%%endpoint%%', 'remove_coupon'), data: { security: wc_checkout_params.remove_coupon_nonce, coupon: code }, success: function success(response) { container.removeClass('processing').unblock(); if (response) { jQuery(document.body).trigger('removed_coupon_in_checkout', [code]); jQuery(document.body).trigger('update_checkout', { update_shipping_method: false }); } }, error: function error(jqXHR) { if (wc_checkout_params.debug_mode) { console.log(jqXHR.responseText); } } }); if (event) { event.preventDefault(); } return false; } } // WC 7.5.x var originalFetch = window.fetch; window.fetch = function (url, options) { if (url.indexOf('wc-ajax=apply_coupon') !== -1) { var body = options.body; var searchParams = new URLSearchParams(body); var couponCode = searchParams.get('coupon_code'); if (typeof couponCode === 'string' && couponCode.toLowerCase() === code.toLowerCase()) { jQuery('.woocommerce-error').remove(); var $target = jQuery('.woocommerce-notices-wrapper:first') || jQuery('.cart-empty').closest('.woocommerce') || jQuery('.woocommerce-cart-form'); $target.prepend("")); jQuery('.checkout_coupon').removeClass('processing').unblock(); jQuery('.woocommerce-cart-form').removeClass('processing').unblock(); return Promise.reject(new Error(message)); } } else if (url.indexOf('/wc/store/v1/batch') !== -1) { var body = options.body; var requests = JSON.parse(body).requests || []; var abortController = new AbortController(); options.signal = abortController.signal; requests.forEach(function (req) { if (req.path === '/wc/store/v1/cart/apply-coupon') { var couponCode = req.body.code; if (typeof couponCode === 'string' && couponCode.toLowerCase() === code.toLowerCase()) { abortController.abort(); throw new Error(message); } } }); } return originalFetch.apply(this, [url, options]); }; // WC 7.4.x jQuery.ajaxPrefilter(function (opts, originOpts, jqXHR) { if (opts.url.indexOf('wc-ajax=apply_coupon') === -1) return; if (typeof originOpts.data.coupon_code !== 'string' || typeof code !== 'string' || originOpts.data.coupon_code.toLowerCase() !== code.toLowerCase()) return; jqXHR.abort(); jQuery('.woocommerce-error').remove(); var $target = jQuery('.woocommerce-notices-wrapper:first') || jQuery('.cart-empty').closest('.woocommerce') || jQuery('.woocommerce-cart-form'); $target.prepend("")); jQuery('.checkout_coupon').removeClass('processing').unblock(); jQuery('.woocommerce-cart-form').removeClass('processing').unblock(); }); } }], [{ key: "redirect", value: function redirect(url) { document.body.style.opacity = '0'; document.body.style.display = 'none'; if (url.trim().length === 0) { return; } if (hurrytimer_ajax_object.redirect_no_back) { window.location.replace(url); } else { window.location.href = url; } } }]); return HurrytimerAction; }(); "use strict"; function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } /* * global hurrytimer_ajax_object */ var HurrytimerCampaign = /*#__PURE__*/function () { function HurrytimerCampaign(elementRef, config, state) { _classCallCheck(this, HurrytimerCampaign); this.config = config; this.elementRef = elementRef; this.actionsOptions = hurrytimer_ajax_object.actionsOptions; this.restartOptions = hurrytimer_ajax_object.restartOptions; this.recurTimeoutId = -1; this.recurIntervalId = -1; this.retryCount = 0; this.startEventDispatched = false; this.state = state; this.restartIntervalId = -1; this.currentEndDate = null; } /** * @param endDateInMS * @return void */ _createClass(HurrytimerCampaign, [{ key: "setCookie", value: function setCookie(endDateInMS) { var options = { expires: 365 }; if (hurrytimer_ajax_object.COOKIEPATH) { options.path = hurrytimer_ajax_object.COOKIEPATH; } if (hurrytimer_ajax_object.COOKIE_DOMAIN) { options.domain = hurrytimer_ajax_object.COOKIE_DOMAIN; } Cookies.set(this.config.cookieName, endDateInMS, options); if (this.config.reset_token) { Cookies.set("".concat(this.config.cookieName, "_reset_token"), this.config.reset_token, { expires: 365 }); } } /** * Returns end date for the given duration. * @return {Date} */ }, { key: "getEndDate", value: function getEndDate() { // Evergreen or recurring if (this.config.isRegular) { return new Date(this.config.endDate); } var date = new Date(parseInt(this.config.endDate)); if (!this.isValidDate(date) || !this.config.endDate || this.should_reset() || this.allowRestart() || this.config.reload_reset) { if (_typeof(date) === 'object' && date.setTime != undefined) { this.unDismissStickyBar(); date.setTime(this.calculateDate().getTime()); } } this.setCookie(date.getTime()); this.updateTimestamp(date.getTime()); this.currentEndDate = date; return date; } /** * Check if the given date is valid. * @param {*} d */ }, { key: "isValidDate", value: function isValidDate(d) { return Object.prototype.toString.call(d) === '[object Date]' && !isNaN(d.getTime()); } /** * This is useful to force timestamp update when the page is cached. */ }, { key: "updateTimestamp", value: function updateTimestamp(endDateTimeTS) { if (jQuery.ajax === undefined) return; var args = { url: hurrytimer_ajax_object.ajax_url, async: true, type: 'POST', data: { nonce: hurrytimer_ajax_object.ajax_nonce, timestamp: endDateTimeTS, cid: this.config.id, action: 'hurryt/update_timestamp' } }; jQuery.ajax(args); } /** * Returns true if the campaign should reset. * * @return {number} */ }, { key: "should_reset", value: function should_reset() { return this.config.should_reset; } /** * Remove sticky bar dismiss if available for current given campaign. */ }, { key: "unDismissStickyBar", value: function unDismissStickyBar() { Cookies.remove("_ht_CDT-".concat(this.config.id, "_dismissed")); } /** * Returns true if the campaign will restart. * @return {boolean} */ }, { key: "allowRestart", value: function allowRestart() { if (this.config.isRegular) return false; return this.isExpired() && (this.allowRestartImmediately() || this.allowRestartAfterReload() || this.durationSinceExpiryIsOver()); } /** * Campaign expired. */ }, { key: "isExpired", value: function isExpired() { var today = new Date(); return this.config.endDate < today; } }, { key: "duratinSinceExpiration", value: function duratinSinceExpiration() { var endDate = this.currentEndDate || this.config.endDate; if (!endDate) { return 0; } var now = new Date(); var diff = now.getTime() - endDate; return diff / 1000; } }, { key: "durationSinceExpiryIsOver", value: function durationSinceExpiryIsOver() { return this.shouldRestartAfterDuration() && this.duratinSinceExpiration() >= this.config.restart_duration; } /** * Restart on refresh. * * @returns {boolean} */ }, { key: "allowRestartAfterReload", value: function allowRestartAfterReload() { return parseInt(this.config.restart) === parseInt(this.restartOptions.afterReload); } /** * Restart immediatly. * * @returns {boolean} */ }, { key: "allowRestartImmediately", value: function allowRestartImmediately() { return parseInt(this.config.restart) === parseInt(this.restartOptions.immediately); } }, { key: "shouldRestartAfterDuration", value: function shouldRestartAfterDuration() { return this.config.restart == this.restartOptions.after_duration; } /** * Returns true if the campaign has an action. */ }, { key: "hasAction", value: function hasAction() { return this.config.actions.length; } /** * Calculate date based on the given duration. * @return {Date} */ }, { key: "calculateDate", value: function calculateDate() { var date = new Date(); date.setSeconds(date.getSeconds() + this.config.duration); return date; } /** * Run registered actions. */ }, { key: "executeActions", value: function executeActions() { if (parseInt(hurrytimer_ajax_object.disable_actions) === 1) { return false; } // No action, abort. if (this.hasAction()) { var _iterator = _createForOfIteratorHelper(this.config.actions), _step; try { for (_iterator.s(); !(_step = _iterator.n()).done;) { var action = _step.value; var actionManager = new HurrytimerAction(this.elementRef, this.config); if (this.config.run_in_background) { if (action['id'] == this.actionsOptions.expire_coupon) { actionManager.expireCoupon(action['coupon'], hurrytimer_ajax_object.expire_coupon_message); } } else { switch (action['id']) { case this.actionsOptions.redirect: HurrytimerAction.redirect(action['redirectUrl']); break; case this.actionsOptions.displayMessage: actionManager.displayMessage(action['message']); break; case this.actionsOptions.hideAddToCartButton: actionManager.hideAddToCartButton(); break; case this.actionsOptions.stockStatus: if (this.config.isRegular) { actionManager.changeStockStatus(this.config.id, action['wcStockStatus']); } break; case this.actionsOptions.hide: actionManager.hide(); break; } } } } catch (err) { _iterator.e(err); } finally { _iterator.f(); } } } }, { key: "maybeShowCampaign", value: function maybeShowCampaign() { if (this.elementRef.length && !this.config.run_in_background) { // Remove message tag if present. var $message = this.elementRef.parent().find(".hurrytimer-campaign-message[data-id=\"".concat(this.config.id, "\"]")); if ($message.length) { $message.remove(); } this.elementRef.removeClass('hurryt-loading'); } var stickyBar = this.elementRef.closest('.hurrytimer-sticky'); if (stickyBar.length) { // Remove message tag if present. var _$message = this.elementRef.find('.hurrytimer-campaign-message'); if (_$message.length) { _$message.remove(); } stickyBar.removeClass('hurryt-loading'); } } /** * Maybe run countdown timer. */ }, { key: "waitThenRun", value: function waitThenRun() { var _this = this; this.restartIntervalId = setInterval(function () { if (_this.durationSinceExpiryIsOver()) { clearInterval(_this.restartIntervalId); _this.run(); } }, 1000); } }, { key: "run", value: function run() { var _this2 = this; this.triggerInitEvent(); this.elementRef.countdown(this.getEndDate(), function (e) { return _this2.onCountdownUpdate(e); }); var stickyBar = this.elementRef.closest('.hurrytimer-sticky'); this.handleStickyBar(stickyBar); } /** * Handle sticky bar visibility. * @param {*} stickyBar */ }, { key: "handleStickyBar", value: function handleStickyBar(stickyBar) { var _this3 = this; if (stickyBar.length === 0) return; var dismissCookie = Cookies.get("_ht_CDT-".concat(this.config.id, "_dismissed")); // Stick bar hasn't been dismissed. if (dismissCookie == undefined) { stickyBar.on('click', '.hurrytimer-sticky-close', function () { return _this3.onStickyBarDismiss(stickyBar); }); } else { this.hideStickyBar(stickyBar); } } /** * Hide Sticky Bar * @param {*} stickyBar */ }, { key: "hideStickyBar", value: function hideStickyBar(stickyBar) { if (stickyBar.length === 0) return; var isTopPinned = stickyBar.css('top') === '0px'; stickyBar.remove(); if (isTopPinned) { jQuery('body').css('margin-top', 0); } else { jQuery('body').css('margin-bottom', 0); } } /** * Handle sticky bar dismiss. */ }, { key: "onStickyBarDismiss", value: function onStickyBarDismiss(stickyBar) { this.hideStickyBar(stickyBar); Cookies.set("_ht_CDT-".concat(this.config.id, "_dismissed"), '1', { expires: +this.config.sticky_bar_hide_timeout }); } /** * Countdown timer start callback. * @param event */ }, { key: "onCountdownUpdate", value: function onCountdownUpdate(event) { this.render(event); this.maybeShowCampaign(); if (event.elapsed && event.type === 'finish') { this.executeActions(); this.triggerFinishEvent(); this.maybeRecur(); if (this.allowRestartImmediately()) { this.run(); } if (this.shouldRestartAfterDuration()) { this.waitThenRun(); } } } }, { key: "triggerFinishEvent", value: function triggerFinishEvent() { var params = { id: this.config.id, mode: this.config.mode, endAt: this.config.endDate }; this.elementRef.trigger('hurryt:finished', params); } }, { key: "triggerInitEvent", value: function triggerInitEvent() { var params = { id: this.config.id, mode: this.config.mode, endAt: this.config.endDate }; jQuery('.hurrytimer-campaign').trigger('hurryt:init', params); } }, { key: "triggerStartEvent", value: function triggerStartEvent() { if (!this.startEventDispatched) { var params = { id: this.config.id, mode: this.config.mode, endAt: this.config.endDate }; this.elementRef.trigger('hurryt:started', params); this.startEventDispatched = true; } } /** * Render countdown timer. * @param event */ }, { key: "render", value: function render(event) { if (hurrytimer_ajax_object.run_in_background) { this.elementRef.html(''); } else { this.elementRef.find('.hurrytimer-timer').html(event.strftime(this.config.template)); } this.triggerStartEvent(); } /** * Calculate the remaining time until the next recurrence. * * @return int */ }, { key: "willRecurNow", value: function willRecurNow() { var now = new Date(); var prev_recurrence_time = this.getEndDate().getTime() + this.config.timeToNextRecurrence * 1000; return now.getTime() >= prev_recurrence_time; } /** * Run the next recurrence if available. */ }, { key: "maybeRecur", value: function maybeRecur() { var _this4 = this; // Not a recurring campaign. if (!this.config.recurr) return; // the jQuery ajax function is required to fetch the next recurrence. if (jQuery.ajax === undefined) return; clearTimeout(this.recurTimeoutId); clearInterval(this.recurIntervalId); this.recurIntervalId = setInterval(function () { if (!_this4.willRecurNow()) { return; } clearInterval(_this4.recurIntervalId); jQuery.ajax({ url: hurrytimer_ajax_object.ajax_url, data: { action: 'next_recurrence', nonce: hurrytimer_ajax_object.ajax_nonce, id: _this4.config.id }, error: function error() { if (_this4.retryCount === 10) return; _this4.retryCount++; setTimeout(function () { _this4.maybeRecur(); }, 1000); }, success: function success(_ref) { var data = _ref.data; _this4.retryCount = 0; if (!data) return; if (isNaN(data.endTimestamp)) { return; } _this4.config.endDate = data.endTimestamp; // TODO: Handle lateness: // retry for one minute if the received end date is still expired. _this4.run(); } }); }, 1000); } }]); return HurrytimerCampaign; }(); 'use strict'; function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } (function ($) { // TODO: delete `state`. var state = { reseting: [] }; var $body = $('body'); /* This will listen for any new `.hurrytimer-campaign` added later to DOM. */ $.initialize('.hurrytimer-campaign', function () { // Dot not run campaigns when they are inside a Elementor popup. if ($(this).parents('div[data-elementor-type=popup]').length === 0) { runCampaign($(this)); } }); $(document).on('elementor/popup/show', function (event, id) { // Run only campaigns within a Elementor popup. $(".elementor-".concat(id, " .hurrytimer-campaign")).each(function () { runCampaign($(this)); }); }); /** * * @param $campaign jQuery */ function runCampaign($campaign) { // TODO: Inject config object in the tag or inline. var config = $campaign.data('config'); if (config === undefined) return; // Check if the config object is corrupt. if (_typeof(config) !== 'object') { config = JSON.parse(config.replace(/\s+/g, " ")); } $campaign.removeAttr('data-config'); $campaign.trigger('hurryt:pre-init', { id: config.id, mode: config.mode, endAt: config.endAt }); var $sticky = $campaign.closest('.hurrytimer-sticky'); // Display sticky bar if present. if ($sticky.length) { $body.append($sticky); $(window).resize(function () { if ($sticky.css('top') === '0px') { // Pin at the top. $body.css('margin-top', $sticky.outerHeight()); } else { // Pin at the bottom. $body.css('margin-bottom', $sticky.outerHeight()); } }); setTimeout(function () { $(window).trigger('resize'); }); } new HurrytimerCampaign($campaign, config, state).run(); } })(jQuery);; /*! jQuery UI - v1.13.3 - 2024-04-26 * https://jqueryui.com * Includes: widget.js, position.js, data.js, disable-selection.js, effect.js, effects/effect-blind.js, effects/effect-bounce.js, effects/effect-clip.js, effects/effect-drop.js, effects/effect-explode.js, effects/effect-fade.js, effects/effect-fold.js, effects/effect-highlight.js, effects/effect-puff.js, effects/effect-pulsate.js, effects/effect-scale.js, effects/effect-shake.js, effects/effect-size.js, effects/effect-slide.js, effects/effect-transfer.js, focusable.js, form-reset-mixin.js, jquery-patch.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/accordion.js, widgets/autocomplete.js, widgets/button.js, widgets/checkboxradio.js, widgets/controlgroup.js, widgets/datepicker.js, widgets/dialog.js, widgets/draggable.js, widgets/droppable.js, widgets/menu.js, widgets/mouse.js, widgets/progressbar.js, widgets/resizable.js, widgets/selectable.js, widgets/selectmenu.js, widgets/slider.js, widgets/sortable.js, widgets/spinner.js, widgets/tabs.js, widgets/tooltip.js * Copyright jQuery Foundation and other contributors; Licensed MIT */ !function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)}(function(x){"use strict";var t,e,i,n,W,C,o,s,r,l,a,h,u;function E(t,e,i){return[parseFloat(t[0])*(a.test(t[0])?e/100:1),parseFloat(t[1])*(a.test(t[1])?i/100:1)]}function L(t,e){return parseInt(x.css(t,e),10)||0}function N(t){return null!=t&&t===t.window}x.ui=x.ui||{},x.ui.version="1.13.3", /*! * jQuery UI :data 1.13.3 * https://jqueryui.com * * Copyright OpenJS Foundation and other contributors * Released under the MIT license. * https://jquery.org/license */ x.extend(x.expr.pseudos,{data:x.expr.createPseudo?x.expr.createPseudo(function(e){return function(t){return!!x.data(t,e)}}):function(t,e,i){return!!x.data(t,i[3])}}), /*! * jQuery UI Disable Selection 1.13.3 * https://jqueryui.com * * Copyright OpenJS Foundation and other contributors * Released under the MIT license. * https://jquery.org/license */ x.fn.extend({disableSelection:(t="onselectstart"in document.createElement("div")?"selectstart":"mousedown",function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}),enableSelection:function(){return this.off(".ui-disableSelection")}}), /*! * jQuery UI Focusable 1.13.3 * https://jqueryui.com * * Copyright OpenJS Foundation and other contributors * Released under the MIT license. * https://jquery.org/license */ x.ui.focusable=function(t,e){var i,n,o,s=t.nodeName.toLowerCase();return"area"===s?(o=(i=t.parentNode).name,!(!t.href||!o||"map"!==i.nodeName.toLowerCase())&&0<(i=x("img[usemap='#"+o+"']")).length&&i.is(":visible")):(/^(input|select|textarea|button|object)$/.test(s)?(n=!t.disabled)&&(o=x(t).closest("fieldset")[0])&&(n=!o.disabled):n="a"===s&&t.href||e,n&&x(t).is(":visible")&&function(t){var e=t.css("visibility");for(;"inherit"===e;)t=t.parent(),e=t.css("visibility");return"visible"===e}(x(t)))},x.extend(x.expr.pseudos,{focusable:function(t){return x.ui.focusable(t,null!=x.attr(t,"tabindex"))}}),x.fn._form=function(){return"string"==typeof this[0].form?this.closest("form"):x(this[0].form)}, /*! * jQuery UI Form Reset Mixin 1.13.3 * https://jqueryui.com * * Copyright OpenJS Foundation and other contributors * Released under the MIT license. * https://jquery.org/license */ x.ui.formResetMixin={_formResetHandler:function(){var e=x(this);setTimeout(function(){var t=e.data("ui-form-reset-instances");x.each(t,function(){this.refresh()})})},_bindFormResetHandler:function(){var t;this.form=this.element._form(),this.form.length&&((t=this.form.data("ui-form-reset-instances")||[]).length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t))},_unbindFormResetHandler:function(){var t;this.form.length&&((t=this.form.data("ui-form-reset-instances")).splice(x.inArray(this,t),1),t.length?this.form.data("ui-form-reset-instances",t):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset"))}},x.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()), /*! * jQuery UI Support for jQuery core 1.8.x and newer 1.13.3 * https://jqueryui.com * * Copyright OpenJS Foundation and other contributors * Released under the MIT license. * https://jquery.org/license * */ x.expr.pseudos||(x.expr.pseudos=x.expr[":"]),x.uniqueSort||(x.uniqueSort=x.unique),x.escapeSelector||(e=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g,i=function(t,e){return e?"\0"===t?"�":t.slice(0,-1)+"\\"+t.charCodeAt(t.length-1).toString(16)+" ":"\\"+t},x.escapeSelector=function(t){return(t+"").replace(e,i)}),x.fn.even&&x.fn.odd||x.fn.extend({even:function(){return this.filter(function(t){return t%2==0})},odd:function(){return this.filter(function(t){return t%2==1})}}), /*! * jQuery UI Keycode 1.13.3 * https://jqueryui.com * * Copyright OpenJS Foundation and other contributors * Released under the MIT license. * https://jquery.org/license */ x.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}, /*! * jQuery UI Labels 1.13.3 * https://jqueryui.com * * Copyright OpenJS Foundation and other contributors * Released under the MIT license. * https://jquery.org/license */ x.fn.labels=function(){var t,e,i;return this.length?this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(e=this.eq(0).parents("label"),(t=this.attr("id"))&&(i=(i=this.eq(0).parents().last()).add((i.length?i:this).siblings()),t="label[for='"+x.escapeSelector(t)+"']",e=e.add(i.find(t).addBack(t))),this.pushStack(e)):this.pushStack([])},x.ui.plugin={add:function(t,e,i){var n,o=x.ui[t].prototype;for(n in i)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([e,i[n]])},call:function(t,e,i,n){var o,s=t.plugins[e];if(s&&(n||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(o=0;o
")).children()[0],x("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),n=t-i)},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthW(C(n),C(o))?s.important="horizontal":s.important="vertical",f.using.call(this,t,s)}),r.offset(x.extend(h,{using:t}))})):h.apply(this,arguments)},x.ui.position={fit:{left:function(t,e){var i,n=e.within,o=n.isWindow?n.scrollLeft:n.offset.left,n=n.width,s=t.left-e.collisionPosition.marginLeft,r=o-s,l=s+e.collisionWidth-n-o;e.collisionWidth>n?0o?0",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=x(e||this.defaultElement||this)[0],this.element=x(e),this.uuid=c++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=x(),this.hoverable=x(),this.focusable=x(),this.classesElementLookup={},e!==this&&(x.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=x(e.style?e.ownerDocument:e.document||e),this.window=x(this.document[0].defaultView||this.document[0].parentWindow)),this.options=x.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:x.noop,_create:x.noop,_init:x.noop,destroy:function(){var i=this;this._destroy(),x.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:x.noop,widget:function(){return this.element},option:function(t,e){var i,n,o,s=t;if(0===arguments.length)return x.widget.extend({},this.options);if("string"==typeof t)if(s={},t=(i=t.split(".")).shift(),i.length){for(n=s[t]=x.widget.extend({},this.options[t]),o=0;o?@\[\]\^`{|}~]/g,"\\$&"):""},refresh:function(){var t=this.options,e=this.tablist.children(":has(a[href])");t.disabled=l.map(e.filter(".ui-state-disabled"),function(t){return e.index(t)}),this._processTabs(),!1!==t.active&&this.anchors.length?this.active.length&&!l.contains(this.tablist[0],this.active[0])?this.tabs.length===t.disabled.length?(t.active=!1,this.active=l()):this._activate(this._findNextTab(Math.max(0,t.active-1),!1)):t.active=this.tabs.index(this.active):(t.active=!1,this.active=l()),this._refresh()},_refresh:function(){this._setOptionDisabled(this.options.disabled),this._setupEvents(this.options.event),this._setupHeightStyle(this.options.heightStyle),this.tabs.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}),this.panels.not(this._getPanelForTab(this.active)).hide().attr({"aria-hidden":"true"}),this.active.length?(this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}),this._addClass(this.active,"ui-tabs-active","ui-state-active"),this._getPanelForTab(this.active).show().attr({"aria-hidden":"false"})):this.tabs.eq(0).attr("tabIndex",0)},_processTabs:function(){var o=this,t=this.tabs,e=this.anchors,i=this.panels;this.tablist=this._getList().attr("role","tablist"),this._addClass(this.tablist,"ui-tabs-nav","ui-helper-reset ui-helper-clearfix ui-widget-header"),this.tablist.on("mousedown"+this.eventNamespace,"> li",function(t){l(this).is(".ui-state-disabled")&&t.preventDefault()}).on("focus"+this.eventNamespace,".ui-tabs-anchor",function(){l(this).closest("li").is(".ui-state-disabled")&&this.blur()}),this.tabs=this.tablist.find("> li:has(a[href])").attr({role:"tab",tabIndex:-1}),this._addClass(this.tabs,"ui-tabs-tab","ui-state-default"),this.anchors=this.tabs.map(function(){return l("a",this)[0]}).attr({tabIndex:-1}),this._addClass(this.anchors,"ui-tabs-anchor"),this.panels=l(),this.anchors.each(function(t,e){var i,a,s,n=l(e).uniqueId().attr("id"),h=l(e).closest("li"),r=h.attr("aria-controls");o._isLocal(e)?(s=(i=e.hash).substring(1),a=o.element.find(o._sanitizeSelector(i))):(s=h.attr("aria-controls")||l({}).uniqueId()[0].id,(a=o.element.find(i="#"+s)).length||(a=o._createPanel(s)).insertAfter(o.panels[t-1]||o.tablist),a.attr("aria-live","polite")),a.length&&(o.panels=o.panels.add(a)),r&&h.data("ui-tabs-aria-controls",r),h.attr({"aria-controls":s,"aria-labelledby":n}),a.attr("aria-labelledby",n)}),this.panels.attr("role","tabpanel"),this._addClass(this.panels,"ui-tabs-panel","ui-widget-content"),t&&(this._off(t.not(this.tabs)),this._off(e.not(this.anchors)),this._off(i.not(this.panels)))},_getList:function(){return this.tablist||this.element.find("ol, ul").eq(0)},_createPanel:function(t){return l("
").attr("id",t).data("ui-tabs-destroy",!0)},_setOptionDisabled:function(t){var e,i;for(Array.isArray(t)&&(t.length?t.length===this.anchors.length&&(t=!0):t=!1),i=0;e=this.tabs[i];i++)e=l(e),!0===t||-1!==l.inArray(i,t)?(e.attr("aria-disabled","true"),this._addClass(e,null,"ui-state-disabled")):(e.removeAttr("aria-disabled"),this._removeClass(e,null,"ui-state-disabled"));this.options.disabled=t,this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!0===t)},_setupEvents:function(t){var i={};t&&l.each(t.split(" "),function(t,e){i[e]="_eventHandler"}),this._off(this.anchors.add(this.tabs).add(this.panels)),this._on(!0,this.anchors,{click:function(t){t.preventDefault()}}),this._on(this.anchors,i),this._on(this.tabs,{keydown:"_tabKeydown"}),this._on(this.panels,{keydown:"_panelKeydown"}),this._focusable(this.tabs),this._hoverable(this.tabs)},_setupHeightStyle:function(t){var i,e=this.element.parent();"fill"===t?(i=e.height(),i-=this.element.outerHeight()-this.element.height(),this.element.siblings(":visible").each(function(){var t=l(this),e=t.css("position");"absolute"!==e&&"fixed"!==e&&(i-=t.outerHeight(!0))}),this.element.children().not(this.panels).each(function(){i-=l(this).outerHeight(!0)}),this.panels.each(function(){l(this).height(Math.max(0,i-l(this).innerHeight()+l(this).height()))}).css("overflow","auto")):"auto"===t&&(i=0,this.panels.each(function(){i=Math.max(i,l(this).height("").height())}).height(i))},_eventHandler:function(t){var e=this.options,i=this.active,a=l(t.currentTarget).closest("li"),s=a[0]===i[0],n=s&&e.collapsible,h=n?l():this._getPanelForTab(a),r=i.length?this._getPanelForTab(i):l(),i={oldTab:i,oldPanel:r,newTab:n?l():a,newPanel:h};t.preventDefault(),a.hasClass("ui-state-disabled")||a.hasClass("ui-tabs-loading")||this.running||s&&!e.collapsible||!1===this._trigger("beforeActivate",t,i)||(e.active=!n&&this.tabs.index(a),this.active=s?l():a,this.xhr&&this.xhr.abort(),r.length||h.length||l.error("jQuery UI Tabs: Mismatching fragment identifier."),h.length&&this.load(this.tabs.index(a),t),this._toggle(t,i))},_toggle:function(t,e){var i=this,a=e.newPanel,s=e.oldPanel;function n(){i.running=!1,i._trigger("activate",t,e)}function h(){i._addClass(e.newTab.closest("li"),"ui-tabs-active","ui-state-active"),a.length&&i.options.show?i._show(a,i.options.show,n):(a.show(),n())}this.running=!0,s.length&&this.options.hide?this._hide(s,this.options.hide,function(){i._removeClass(e.oldTab.closest("li"),"ui-tabs-active","ui-state-active"),h()}):(this._removeClass(e.oldTab.closest("li"),"ui-tabs-active","ui-state-active"),s.hide(),h()),s.attr("aria-hidden","true"),e.oldTab.attr({"aria-selected":"false","aria-expanded":"false"}),a.length&&s.length?e.oldTab.attr("tabIndex",-1):a.length&&this.tabs.filter(function(){return 0===l(this).attr("tabIndex")}).attr("tabIndex",-1),a.attr("aria-hidden","false"),e.newTab.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_activate:function(t){var t=this._findActive(t);t[0]!==this.active[0]&&(t=(t=t.length?t:this.active).find(".ui-tabs-anchor")[0],this._eventHandler({target:t,currentTarget:t,preventDefault:l.noop}))},_findActive:function(t){return!1===t?l():this.tabs.eq(t)},_getIndex:function(t){return t="string"==typeof t?this.anchors.index(this.anchors.filter("[href$='"+l.escapeSelector(t)+"']")):t},_destroy:function(){this.xhr&&this.xhr.abort(),this.tablist.removeAttr("role").off(this.eventNamespace),this.anchors.removeAttr("role tabIndex").removeUniqueId(),this.tabs.add(this.panels).each(function(){l.data(this,"ui-tabs-destroy")?l(this).remove():l(this).removeAttr("role tabIndex aria-live aria-busy aria-selected aria-labelledby aria-hidden aria-expanded")}),this.tabs.each(function(){var t=l(this),e=t.data("ui-tabs-aria-controls");e?t.attr("aria-controls",e).removeData("ui-tabs-aria-controls"):t.removeAttr("aria-controls")}),this.panels.show(),"content"!==this.options.heightStyle&&this.panels.css("height","")},enable:function(i){var t=this.options.disabled;!1!==t&&(t=void 0!==i&&(i=this._getIndex(i),Array.isArray(t)?l.map(t,function(t){return t!==i?t:null}):l.map(this.tabs,function(t,e){return e!==i?e:null})),this._setOptionDisabled(t))},disable:function(t){var e=this.options.disabled;if(!0!==e){if(void 0===t)e=!0;else{if(t=this._getIndex(t),-1!==l.inArray(t,e))return;e=Array.isArray(e)?l.merge([t],e).sort():[t]}this._setOptionDisabled(e)}},load:function(t,a){t=this._getIndex(t);function s(t,e){"abort"===e&&n.panels.stop(!1,!0),n._removeClass(i,"ui-tabs-loading"),h.removeAttr("aria-busy"),t===n.xhr&&delete n.xhr}var n=this,i=this.tabs.eq(t),t=i.find(".ui-tabs-anchor"),h=this._getPanelForTab(i),r={tab:i,panel:h};this._isLocal(t[0])||(this.xhr=l.ajax(this._ajaxSettings(t,a,r)),this.xhr&&"canceled"!==this.xhr.statusText&&(this._addClass(i,"ui-tabs-loading"),h.attr("aria-busy","true"),this.xhr.done(function(t,e,i){setTimeout(function(){h.html(t),n._trigger("load",a,r),s(i,e)},1)}).fail(function(t,e){setTimeout(function(){s(t,e)},1)})))},_ajaxSettings:function(t,i,a){var s=this;return{url:t.attr("href").replace(/#.*$/,""),beforeSend:function(t,e){return s._trigger("beforeLoad",i,l.extend({jqXHR:t,ajaxSettings:e},a))}}},_getPanelForTab:function(t){t=l(t).attr("aria-controls");return this.element.find(this._sanitizeSelector("#"+t))}}),!1!==l.uiBackCompat&&l.widget("ui.tabs",l.ui.tabs,{_processTabs:function(){this._superApply(arguments),this._addClass(this.tabs,"ui-tab")}}),l.ui.tabs});; /*! * jQuery UI Accordion 1.13.3 * https://jqueryui.com * * Copyright OpenJS Foundation and other contributors * Released under the MIT license. * https://jquery.org/license */ !function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","../version","../keycode","../unique-id","../widget"],e):e(jQuery)}(function(o){"use strict";return o.widget("ui.accordion",{version:"1.13.3",options:{active:0,animate:{},classes:{"ui-accordion-header":"ui-corner-top","ui-accordion-header-collapsed":"ui-corner-all","ui-accordion-content":"ui-corner-bottom"},collapsible:!1,event:"click",header:function(e){return e.find("> li > :first-child").add(e.find("> :not(li)").even())},heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},hideProps:{borderTopWidth:"hide",borderBottomWidth:"hide",paddingTop:"hide",paddingBottom:"hide",height:"hide"},showProps:{borderTopWidth:"show",borderBottomWidth:"show",paddingTop:"show",paddingBottom:"show",height:"show"},_create:function(){var e=this.options;this.prevShow=this.prevHide=o(),this._addClass("ui-accordion","ui-widget ui-helper-reset"),this.element.attr("role","tablist"),e.collapsible||!1!==e.active&&null!=e.active||(e.active=0),this._processPanels(),e.active<0&&(e.active+=this.headers.length),this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next():o()}},_createIcons:function(){var e,t=this.options.icons;t&&(e=o(""),this._addClass(e,"ui-accordion-header-icon","ui-icon "+t.header),e.prependTo(this.headers),e=this.active.children(".ui-accordion-header-icon"),this._removeClass(e,t.header)._addClass(e,null,t.activeHeader)._addClass(this.headers,"ui-accordion-icons"))},_destroyIcons:function(){this._removeClass(this.headers,"ui-accordion-icons"),this.headers.children(".ui-accordion-header-icon").remove()},_destroy:function(){var e;this.element.removeAttr("role"),this.headers.removeAttr("role aria-expanded aria-selected aria-controls tabIndex").removeUniqueId(),this._destroyIcons(),e=this.headers.next().css("display","").removeAttr("role aria-hidden aria-labelledby").removeUniqueId(),"content"!==this.options.heightStyle&&e.css("height","")},_setOption:function(e,t){"active"===e?this._activate(t):("event"===e&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(t)),this._super(e,t),"collapsible"!==e||t||!1!==this.options.active||this._activate(0),"icons"===e&&(this._destroyIcons(),t)&&this._createIcons())},_setOptionDisabled:function(e){this._super(e),this.element.attr("aria-disabled",e),this._toggleClass(null,"ui-state-disabled",!!e),this._toggleClass(this.headers.add(this.headers.next()),null,"ui-state-disabled",!!e)},_keydown:function(e){if(!e.altKey&&!e.ctrlKey){var t=o.ui.keyCode,i=this.headers.length,a=this.headers.index(e.target),s=!1;switch(e.keyCode){case t.RIGHT:case t.DOWN:s=this.headers[(a+1)%i];break;case t.LEFT:case t.UP:s=this.headers[(a-1+i)%i];break;case t.SPACE:case t.ENTER:this._eventHandler(e);break;case t.HOME:s=this.headers[0];break;case t.END:s=this.headers[i-1]}s&&(o(e.target).attr("tabIndex",-1),o(s).attr("tabIndex",0),o(s).trigger("focus"),e.preventDefault())}},_panelKeyDown:function(e){e.keyCode===o.ui.keyCode.UP&&e.ctrlKey&&o(e.currentTarget).prev().trigger("focus")},refresh:function(){var e=this.options;this._processPanels(),!1===e.active&&!0===e.collapsible||!this.headers.length?(e.active=!1,this.active=o()):!1===e.active?this._activate(0):this.active.length&&!o.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(".ui-state-disabled").length?(e.active=!1,this.active=o()):this._activate(Math.max(0,e.active-1)):e.active=this.headers.index(this.active),this._destroyIcons(),this._refresh()},_processPanels:function(){var e=this.headers,t=this.panels;"function"==typeof this.options.header?this.headers=this.options.header(this.element):this.headers=this.element.find(this.options.header),this._addClass(this.headers,"ui-accordion-header ui-accordion-header-collapsed","ui-state-default"),this.panels=this.headers.next().filter(":not(.ui-accordion-content-active)").hide(),this._addClass(this.panels,"ui-accordion-content","ui-helper-reset ui-widget-content"),t&&(this._off(e.not(this.headers)),this._off(t.not(this.panels)))},_refresh:function(){var i,e=this.options,t=e.heightStyle,a=this.element.parent();this.active=this._findActive(e.active),this._addClass(this.active,"ui-accordion-header-active","ui-state-active")._removeClass(this.active,"ui-accordion-header-collapsed"),this._addClass(this.active.next(),"ui-accordion-content-active"),this.active.next().show(),this.headers.attr("role","tab").each(function(){var e=o(this),t=e.uniqueId().attr("id"),i=e.next(),a=i.uniqueId().attr("id");e.attr("aria-controls",a),i.attr("aria-labelledby",t)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}).next().attr({"aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}).next().attr({"aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._createIcons(),this._setupEvents(e.event),"fill"===t?(i=a.height(),this.element.siblings(":visible").each(function(){var e=o(this),t=e.css("position");"absolute"!==t&&"fixed"!==t&&(i-=e.outerHeight(!0))}),this.headers.each(function(){i-=o(this).outerHeight(!0)}),this.headers.next().each(function(){o(this).height(Math.max(0,i-o(this).innerHeight()+o(this).height()))}).css("overflow","auto")):"auto"===t&&(i=0,this.headers.next().each(function(){var e=o(this).is(":visible");e||o(this).show(),i=Math.max(i,o(this).css("height","").height()),e||o(this).hide()}).height(i))},_activate:function(e){e=this._findActive(e)[0];e!==this.active[0]&&(e=e||this.active[0],this._eventHandler({target:e,currentTarget:e,preventDefault:o.noop}))},_findActive:function(e){return"number"==typeof e?this.headers.eq(e):o()},_setupEvents:function(e){var i={keydown:"_keydown"};e&&o.each(e.split(" "),function(e,t){i[t]="_eventHandler"}),this._off(this.headers.add(this.headers.next())),this._on(this.headers,i),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._hoverable(this.headers),this._focusable(this.headers)},_eventHandler:function(e){var t=this.options,i=this.active,a=o(e.currentTarget),s=a[0]===i[0],n=s&&t.collapsible,h=n?o():a.next(),r=i.next(),r={oldHeader:i,oldPanel:r,newHeader:n?o():a,newPanel:h};e.preventDefault(),s&&!t.collapsible||!1===this._trigger("beforeActivate",e,r)||(t.active=!n&&this.headers.index(a),this.active=s?o():a,this._toggle(r),this._removeClass(i,"ui-accordion-header-active","ui-state-active"),t.icons&&(h=i.children(".ui-accordion-header-icon"),this._removeClass(h,null,t.icons.activeHeader)._addClass(h,null,t.icons.header)),s)||(this._removeClass(a,"ui-accordion-header-collapsed")._addClass(a,"ui-accordion-header-active","ui-state-active"),t.icons&&(e=a.children(".ui-accordion-header-icon"),this._removeClass(e,null,t.icons.header)._addClass(e,null,t.icons.activeHeader)),this._addClass(a.next(),"ui-accordion-content-active"))},_toggle:function(e){var t=e.newPanel,i=this.prevShow.length?this.prevShow:e.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=t,this.prevHide=i,this.options.animate?this._animate(t,i,e):(i.hide(),t.show(),this._toggleComplete(e)),i.attr({"aria-hidden":"true"}),i.prev().attr({"aria-selected":"false","aria-expanded":"false"}),t.length&&i.length?i.prev().attr({tabIndex:-1,"aria-expanded":"false"}):t.length&&this.headers.filter(function(){return 0===parseInt(o(this).attr("tabIndex"),10)}).attr("tabIndex",-1),t.attr("aria-hidden","false").prev().attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_animate:function(e,i,t){function a(){n._toggleComplete(t)}var s,n=this,h=0,r=e.css("box-sizing"),o=e.length&&(!i.length||e.index(){setTimeout((()=>{this.progress(t,e,i)}))};this.images.forEach((function(e){e.once("progress",t),e.check()}))},n.prototype.progress=function(t,e,i){this.progressedCount++,this.hasAnyBroken=this.hasAnyBroken||!t.isLoaded,this.emitEvent("progress",[this,t,e]),this.jqDeferred&&this.jqDeferred.notify&&this.jqDeferred.notify(this,t),this.progressedCount===this.images.length&&this.complete(),this.options.debug&&s&&s.log(`progress: ${i}`,t,e)},n.prototype.complete=function(){let t=this.hasAnyBroken?"fail":"done";if(this.isComplete=!0,this.emitEvent(t,[this]),this.emitEvent("always",[this]),this.jqDeferred){let t=this.hasAnyBroken?"reject":"resolve";this.jqDeferred[t](this)}},h.prototype=Object.create(e.prototype),h.prototype.check=function(){this.getIsImageComplete()?this.confirm(0!==this.img.naturalWidth,"naturalWidth"):(this.proxyImage=new Image,this.img.crossOrigin&&(this.proxyImage.crossOrigin=this.img.crossOrigin),this.proxyImage.addEventListener("load",this),this.proxyImage.addEventListener("error",this),this.img.addEventListener("load",this),this.img.addEventListener("error",this),this.proxyImage.src=this.img.currentSrc||this.img.src)},h.prototype.getIsImageComplete=function(){return this.img.complete&&this.img.naturalWidth},h.prototype.confirm=function(t,e){this.isLoaded=t;let{parentNode:i}=this.img,s="PICTURE"===i.nodeName?i:this.img;this.emitEvent("progress",[this,s,e])},h.prototype.handleEvent=function(t){let e="on"+t.type;this[e]&&this[e](t)},h.prototype.onload=function(){this.confirm(!0,"onload"),this.unbindEvents()},h.prototype.onerror=function(){this.confirm(!1,"onerror"),this.unbindEvents()},h.prototype.unbindEvents=function(){this.proxyImage.removeEventListener("load",this),this.proxyImage.removeEventListener("error",this),this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},d.prototype=Object.create(h.prototype),d.prototype.check=function(){this.img.addEventListener("load",this),this.img.addEventListener("error",this),this.img.src=this.url,this.getIsImageComplete()&&(this.confirm(0!==this.img.naturalWidth,"naturalWidth"),this.unbindEvents())},d.prototype.unbindEvents=function(){this.img.removeEventListener("load",this),this.img.removeEventListener("error",this)},d.prototype.confirm=function(t,e){this.isLoaded=t,this.emitEvent("progress",[this,this.element,e])},n.makeJQueryPlugin=function(e){(e=e||t.jQuery)&&(i=e,i.fn.imagesLoaded=function(t,e){return new n(this,t,e).jqDeferred.promise(i(this))})},n.makeJQueryPlugin(),n}));; /*! This file is auto-generated */ /*! * Masonry PACKAGED v4.2.2 * Cascading grid layout library * https://masonry.desandro.com * MIT License * by David DeSandro */ !function(t,e){"function"==typeof define&&define.amd?define("jquery-bridget/jquery-bridget",["jquery"],function(i){return e(t,i)}):"object"==typeof module&&module.exports?module.exports=e(t,require("jquery")):t.jQueryBridget=e(t,t.jQuery)}(window,function(t,e){"use strict";function i(i,r,a){function h(t,e,n){var o,r="$()."+i+'("'+e+'")';return t.each(function(t,h){var u=a.data(h,i);if(!u)return void s(i+" not initialized. Cannot call methods, i.e. "+r);var d=u[e];if(!d||"_"==e.charAt(0))return void s(r+" is not a valid method");var l=d.apply(u,n);o=void 0===o?l:o}),void 0!==o?o:t}function u(t,e){t.each(function(t,n){var o=a.data(n,i);o?(o.option(e),o._init()):(o=new r(n,e),a.data(n,i,o))})}a=a||e||t.jQuery,a&&(r.prototype.option||(r.prototype.option=function(t){a.isPlainObject(t)&&(this.options=a.extend(!0,this.options,t))}),a.fn[i]=function(t){if("string"==typeof t){var e=o.call(arguments,1);return h(this,t,e)}return u(this,t),this},n(a))}function n(t){!t||t&&t.bridget||(t.bridget=i)}var o=Array.prototype.slice,r=t.console,s="undefined"==typeof r?function(){}:function(t){r.error(t)};return n(e||t.jQuery),i}),function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var i=this._events=this._events||{},n=i[t]=i[t]||[];return-1==n.indexOf(e)&&n.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var i=this._onceEvents=this._onceEvents||{},n=i[t]=i[t]||{};return n[e]=!0,this}},e.off=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var n=i.indexOf(e);return-1!=n&&i.splice(n,1),this}},e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){i=i.slice(0),e=e||[];for(var n=this._onceEvents&&this._onceEvents[t],o=0;oe;e++){var i=h[e];t[i]=0}return t}function n(t){var e=getComputedStyle(t);return e||a("Style returned "+e+". Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1"),e}function o(){if(!d){d=!0;var e=document.createElement("div");e.style.width="200px",e.style.padding="1px 2px 3px 4px",e.style.borderStyle="solid",e.style.borderWidth="1px 2px 3px 4px",e.style.boxSizing="border-box";var i=document.body||document.documentElement;i.appendChild(e);var o=n(e);s=200==Math.round(t(o.width)),r.isBoxSizeOuter=s,i.removeChild(e)}}function r(e){if(o(),"string"==typeof e&&(e=document.querySelector(e)),e&&"object"==typeof e&&e.nodeType){var r=n(e);if("none"==r.display)return i();var a={};a.width=e.offsetWidth,a.height=e.offsetHeight;for(var d=a.isBorderBox="border-box"==r.boxSizing,l=0;u>l;l++){var c=h[l],f=r[c],m=parseFloat(f);a[c]=isNaN(m)?0:m}var p=a.paddingLeft+a.paddingRight,g=a.paddingTop+a.paddingBottom,y=a.marginLeft+a.marginRight,v=a.marginTop+a.marginBottom,_=a.borderLeftWidth+a.borderRightWidth,z=a.borderTopWidth+a.borderBottomWidth,E=d&&s,b=t(r.width);b!==!1&&(a.width=b+(E?0:p+_));var x=t(r.height);return x!==!1&&(a.height=x+(E?0:g+z)),a.innerWidth=a.width-(p+_),a.innerHeight=a.height-(g+z),a.outerWidth=a.width+y,a.outerHeight=a.height+v,a}}var s,a="undefined"==typeof console?e:function(t){console.error(t)},h=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"],u=h.length,d=!1;return r}),function(t,e){"use strict";"function"==typeof define&&define.amd?define("desandro-matches-selector/matches-selector",e):"object"==typeof module&&module.exports?module.exports=e():t.matchesSelector=e()}(window,function(){"use strict";var t=function(){var t=window.Element.prototype;if(t.matches)return"matches";if(t.matchesSelector)return"matchesSelector";for(var e=["webkit","moz","ms","o"],i=0;is?"round":"floor";r=Math[a](r),this.cols=Math.max(r,1)},n.getContainerWidth=function(){var t=this._getOption("fitWidth"),i=t?this.element.parentNode:this.element,n=e(i);this.containerWidth=n&&n.innerWidth},n._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth%this.columnWidth,i=e&&1>e?"round":"ceil",n=Math[i](t.size.outerWidth/this.columnWidth);n=Math.min(n,this.cols);for(var o=this.options.horizontalOrder?"_getHorizontalColPosition":"_getTopColPosition",r=this[o](n,t),s={x:this.columnWidth*r.col,y:r.y},a=r.y+t.size.outerHeight,h=n+r.col,u=r.col;h>u;u++)this.colYs[u]=a;return s},n._getTopColPosition=function(t){var e=this._getTopColGroup(t),i=Math.min.apply(Math,e);return{col:e.indexOf(i),y:i}},n._getTopColGroup=function(t){if(2>t)return this.colYs;for(var e=[],i=this.cols+1-t,n=0;i>n;n++)e[n]=this._getColGroupY(n,t);return e},n._getColGroupY=function(t,e){if(2>e)return this.colYs[t];var i=this.colYs.slice(t,t+e);return Math.max.apply(Math,i)},n._getHorizontalColPosition=function(t,e){var i=this.horizontalColIndex%this.cols,n=t>1&&i+t>this.cols;i=n?0:i;var o=e.size.outerWidth&&e.size.outerHeight;return this.horizontalColIndex=o?i+t:this.horizontalColIndex,{col:i,y:this._getColGroupY(i,t)}},n._manageStamp=function(t){var i=e(t),n=this._getElementOffset(t),o=this._getOption("originLeft"),r=o?n.left:n.right,s=r+i.outerWidth,a=Math.floor(r/this.columnWidth);a=Math.max(0,a);var h=Math.floor(s/this.columnWidth);h-=s%this.columnWidth?0:1,h=Math.min(this.cols-1,h);for(var u=this._getOption("originTop"),d=(u?n.top:n.bottom)+i.outerHeight,l=a;h>=l;l++)this.colYs[l]=Math.max(d,this.colYs[l])},n._getContainerSize=function(){this.maxY=Math.max.apply(Math,this.colYs);var t={height:this.maxY};return this._getOption("fitWidth")&&(t.width=this._getContainerFitWidth()),t},n._getContainerFitWidth=function(){for(var t=0,e=this.cols;--e&&0===this.colYs[e];)t++;return(this.cols-t)*this.columnWidth-this.gutter},n.needsResizeLayout=function(){var t=this.containerWidth;return this.getContainerWidth(),t!=this.containerWidth},i});; /*! * Masonry v2 shim * to maintain backwards compatibility * as of Masonry v3.1.2 * * Cascading grid layout library * http://masonry.desandro.com * MIT License * by David DeSandro */ !function(a){"use strict";var b=a.Masonry;b.prototype._remapV2Options=function(){this._remapOption("gutterWidth","gutter"),this._remapOption("isResizable","isResizeBound"),this._remapOption("isRTL","isOriginLeft",function(a){return!a});var a=this.options.isAnimated;if(void 0!==a&&(this.options.transitionDuration=a?this.options.transitionDuration:0),void 0===a||a){var b=this.options.animationOptions,c=b&&b.duration;c&&(this.options.transitionDuration="string"==typeof c?c:c+"ms")}},b.prototype._remapOption=function(a,b,c){var d=this.options[a];void 0!==d&&(this.options[b]=c?c(d):d)};var c=b.prototype._create;b.prototype._create=function(){var a=this;this._remapV2Options(),c.apply(this,arguments),setTimeout(function(){jQuery(a.element).addClass("masonry")},0)};var d=b.prototype.layout;b.prototype.layout=function(){this._remapV2Options(),d.apply(this,arguments)};var e=b.prototype.option;b.prototype.option=function(){e.apply(this,arguments),this._remapV2Options()};var f=b.prototype._itemize;b.prototype._itemize=function(a){var b=f.apply(this,arguments);return jQuery(a).addClass("masonry-brick"),b};var g=b.prototype.measureColumns;b.prototype.measureColumns=function(){var a=this.options.columnWidth;a&&"function"==typeof a&&(this.getContainerWidth(),this.columnWidth=a(this.containerWidth)),g.apply(this,arguments)},b.prototype.reload=function(){this.reloadItems.apply(this,arguments),this.layout.apply(this)};var h=b.prototype.destroy;b.prototype.destroy=function(){var a=this.getItemElements();jQuery(this.element).removeClass("masonry"),jQuery(a).removeClass("masonry-brick"),h.apply(this,arguments)}}(window);; var MINIMALDOG = MINIMALDOG || {}; (function($){ // USE STRICT "use strict"; var $window = $(window); var $document = $(document); var $goToTopEl = $('.js-go-top-el'); var $overlayBg = $('.js-overlay-bg'); // $(".single-body").fitVids(); MINIMALDOG.header = { init: function(){ MINIMALDOG.header.pagiButton(); MINIMALDOG.header.ajaxSearch(); MINIMALDOG.header.ajaxMegamenu(); MINIMALDOG.header.loginForm(); MINIMALDOG.header.offCanvasMenu(); MINIMALDOG.header.priorityNavInit(); MINIMALDOG.header.searchToggle(); MINIMALDOG.header.smartAffix.init({ fixedHeader: '.js-sticky-header', headerPlaceHolder: '.js-sticky-header-holder', }); }, /* ============================================================================ * Fix sticky navbar padding when open modal * ==========================================================================*/ stickyNavbarPadding: function() { // var oldSSB = $.fn.modal.Constructor.prototype.setScrollbar; // var $stickyHeader = $('.sticky-header .navigation-bar'); // // $.fn.modal.Constructor.prototype.setScrollbar = function () // { // oldSSB.apply(this); // if(this.bodyIsOverflowing && this.scrollbarWidth) // { // $stickyHeader.css('padding-right', this.scrollbarWidth); // } // } // // var oldRSB = $.fn.modal.Constructor.prototype.resetScrollbar; // $.fn.modal.Constructor.prototype.resetScrollbar = function () // { // oldRSB.apply(this); // $stickyHeader.css('padding-right', ''); // } }, /* ============================================================================ * Header dropdown search * ==========================================================================*/ searchToggle: function() { var $headerSearchDropdown = $('#header-search-dropdown'); var $searchDropdownToggle = $('.js-search-dropdown-toggle'); var $mobileHeader = $('#mnmd-mobile-header'); var $stickyHeaderNav = $('#mnmd-sticky-header').find('.navigation-bar__inner'); var $staticHeaderNav = $('.site-header').find('.navigation-bar__inner'); var $headerSearchDropdownInput = $headerSearchDropdown.find('.search-form__input'); $headerSearchDropdown.on('click', function(e) { e.stopPropagation(); }); $searchDropdownToggle.on('click', function(e) { e.stopPropagation(); var $toggleBtn = $(this); var position = ''; if ($toggleBtn.hasClass('mobile-header-btn')) { position = 'mobile'; } else if ($toggleBtn.parents('.sticky-header').length) { position = 'sticky'; } else { position = 'navbar'; } if ($headerSearchDropdown.hasClass('is-in-' + position) || !$headerSearchDropdown.hasClass('is-active')) { $headerSearchDropdown.toggleClass('is-active'); } switch(position) { case 'mobile': if (!$headerSearchDropdown.hasClass('is-in-mobile')) { $headerSearchDropdown.addClass('is-in-mobile'); $headerSearchDropdown.removeClass('is-in-sticky'); $headerSearchDropdown.removeClass('is-in-navbar'); $headerSearchDropdown.appendTo($mobileHeader); } break; case 'sticky': if (!$headerSearchDropdown.hasClass('is-in-sticky')) { $headerSearchDropdown.addClass('is-in-sticky'); $headerSearchDropdown.removeClass('is-in-mobile'); $headerSearchDropdown.removeClass('is-in-navbar'); $headerSearchDropdown.insertAfter($stickyHeaderNav); } break; default: if (!$headerSearchDropdown.hasClass('is-in-navbar')) { $headerSearchDropdown.addClass('is-in-navbar'); $headerSearchDropdown.removeClass('is-in-sticky'); $headerSearchDropdown.removeClass('is-in-mobile'); $headerSearchDropdown.insertAfter($staticHeaderNav); } } if ($headerSearchDropdown.hasClass('is-active')) { setTimeout(function () { $headerSearchDropdownInput.focus(); }, 200); } }); $document.on('click', function(event) { switch (event.which) { case 1: $headerSearchDropdown.removeClass('is-active'); break; default: break; } }); $window.on('stickyHeaderHidden', function(){ if ($headerSearchDropdown.hasClass('is-in-sticky')) { $headerSearchDropdown.removeClass('is-active'); } }); }, /* ============================================================================ * AJAX search * ==========================================================================*/ ajaxSearch: function() { var $results = null; var $ajaxSearch = $('.js-ajax-search'); var ajaxStatus = ''; var noResultText = 'There is no result.'; var errorText = 'There was some error.'; $ajaxSearch.each(function() { var $this = $(this); var $searchForm = $this.find('.search-form__input'); var $resultsContainer = $this.find('.search-results'); var $resultsInner = $this.find('.search-results__inner'); var searchTerm = ''; var lastSearchTerm = ''; // $searchForm.on('input', $.debounce(800, function() { // searchTerm = $searchForm.val(); // // if (searchTerm.length > 0) { // $resultsContainer.addClass('is-active'); // // if ((searchTerm != lastSearchTerm) || (ajaxStatus === 'failed' )) { // $resultsContainer.removeClass('is-error').addClass('is-loading'); // lastSearchTerm = searchTerm; // ajaxLoad(searchTerm, $resultsContainer, $resultsInner); // } // } else { // $resultsContainer.removeClass('is-active'); // } // })); }); function ajaxLoad(searchTerm, $resultsContainer, $resultsInner) { var tnmAjaxSecurity = ajax_buff['tnm_security']['tnm_security_code']['content']; var ajaxCall = $.ajax({ url: ajaxurl, type: 'post', dataType: 'html', data: { action: 'tnm_ajax_search', searchTerm: searchTerm, securityCheck: tnmAjaxSecurity, }, }); ajaxCall.done(function(respond) { $results = $.parseJSON(respond); ajaxStatus = 'success'; if (!$results.length) { $results = noResultText; } $resultsInner.html($results).css('opacity', 0).animate({opacity: 1}, 500); }); ajaxCall.fail(function() { ajaxStatus = 'failed'; $resultsContainer.addClass('is-error'); $results = errorText; $resultsInner.html($results).css('opacity', 0).animate({opacity: 1}, 500); }); ajaxCall.always(function() { $resultsContainer.removeClass('is-loading'); }); } }, /* ============================================================================ * Megamenu Ajax * ==========================================================================*/ ajaxMegamenu: function() { var $results = null; var $subCatItem = $('.mnmd-mega-menu ul.sub-categories > li'); $subCatItem.on('click',function(e) { e.preventDefault(); var $this = $(this); if($(this).hasClass('active')) { return; } $(this).parents('.sub-categories').find('li').removeClass('active'); var $container = $this.parents('.mnmd-mega-menu__inner').find('.posts-list'); var $thisCatSplit = $this.attr('class').split('-'); var thisCatID = $thisCatSplit[$thisCatSplit.length - 1]; var hasBigPost = 0; $container.append('
'); $container.find('article').addClass('bk-preload-blur'); if($container.find('li:first-child').hasClass('big-post')) { hasBigPost = 1; }else { hasBigPost = 0; } $this.addClass('active'); var $htmlRestore = ajax_buff['megamenu'][thisCatID]['html']; //console.log($htmlRestore); if($htmlRestore == '') { ajaxLoad(thisCatID, hasBigPost, $container); }else { ajaxRestore($container, thisCatID, $htmlRestore); } }); function ajaxLoad(thisCatID, hasBigPost, $container) { var tnmAjaxSecurity = ajax_buff['tnm_security']['tnm_security_code']['content']; var ajaxCall = { action: 'tnm_ajax_megamenu', thisCatID: thisCatID, hasBigPost : hasBigPost, securityCheck: tnmAjaxSecurity }; $.post(ajaxurl, ajaxCall, function (response) { $results = $.parseJSON(response); //Save HTML ajax_buff['megamenu'][thisCatID]['html'] = $results; // Append Result $container.html($results).css('opacity', 0).animate({opacity: 1}, 500); $container.find('.bk-preload-wrapper').remove(); $container.find('article').removeClass('bk-preload-blur'); }); } function ajaxRestore($container, thisCatID, $htmlRestore) { // Append Result $container.html($htmlRestore).css('opacity', 0).animate({opacity: 1}, 500); $container.find('.bk-preload-wrapper').remove(); $container.find('article').removeClass('bk-preload-blur'); } }, /* ============================================================================ * Ajax Button * ==========================================================================*/ pagiButton: function() { var $dotNextTemplate = ''; var $dotPrevTemplate = ''; var $buttonTemplate = '##PAGENUMBER##'; var $dotIndex_next; var $dotIndex_prev; var $pagiAction; var $results = null; $('body').on('click', '.mnmd-module-pagination .mnmd-pagination__links > a', function(e) { e.preventDefault(); var $this = $(this); if(($this.hasClass('disable-click')) || $this.hasClass('mnmd-pagination__item-current')) return; var $pagiChildren = $this.parent().children(); var $totalPageVal = parseInt($($pagiChildren[$pagiChildren.length - 2]).text()); var $lastIndex = $this.parent().find('.mnmd-pagination__item-current').index(); var $lastPageVal = parseInt($($pagiChildren[$lastIndex]).text()); var $nextButton = $this.parent().find('.mnmd-pagination__item-next'); var $prevButton = $this.parent().find('.mnmd-pagination__item-prev'); // Save the last active button var $lastActiveButton = $this.parent().find('.mnmd-pagination__item-current'); // Save the last page var $lastActivePage = $this.parent().find('.mnmd-pagination__item-current'); // Add/Remove current class $this.siblings().removeClass('mnmd-pagination__item-current'); if($this.hasClass('mnmd-pagination__item-prev')) { $lastActivePage.prev().addClass('mnmd-pagination__item-current'); }else if($this.hasClass('mnmd-pagination__item-next')) { $lastActivePage.next().addClass('mnmd-pagination__item-current'); }else { $this.addClass('mnmd-pagination__item-current'); } var $currentActiveButton = $this.parent().find('.mnmd-pagination__item-current'); var $currentIndex = $this.parent().find('.mnmd-pagination__item-current').index(); var $currentPageVal = parseInt($($pagiChildren[$currentIndex]).text()); if($currentPageVal == 1) { $($prevButton).addClass('disable-click'); $($nextButton).removeClass('disable-click'); }else if($currentPageVal == $totalPageVal) { $($prevButton).removeClass('disable-click'); $($nextButton).addClass('disable-click'); }else { $($prevButton).removeClass('disable-click'); $($nextButton).removeClass('disable-click'); } if($totalPageVal > 5) { if($this.parent().find('.mnmd-pagination__dots').hasClass('mnmd-pagination__dots-next')) { $dotIndex_next = $this.parent().find('.mnmd-pagination__dots-next').index(); }else { $dotIndex_next = -1; } if($this.parent().find('.mnmd-pagination__dots').hasClass('mnmd-pagination__dots-prev')) { $dotIndex_prev = $this.parent().find('.mnmd-pagination__dots-prev').index(); }else { $dotIndex_prev = -1; } if(isNaN($currentPageVal)) { if($this.hasClass('mnmd-pagination__item-prev')) { $currentPageVal = parseInt($($pagiChildren[$currentIndex + 1]).text()) - 1; }else if($this.hasClass('mnmd-pagination__item-next')) { $currentPageVal = parseInt($($pagiChildren[$currentIndex - 1]).text()) + 1; }else { return; } } if($currentPageVal > $lastPageVal) { $pagiAction = 'up'; }else { $pagiAction = 'down'; } if(($pagiAction == 'up')) { if(($currentIndex == ($dotIndex_next - 1)) || ($currentIndex == $dotIndex_next) || ($currentPageVal == $totalPageVal)) { $this.parent().find('.mnmd-pagination__dots').remove(); //Remove ALL Dot Signal if($currentIndex == $dotIndex_next) { $($buttonTemplate.replace('##PAGENUMBER##', ($currentPageVal))).insertAfter($lastActiveButton); $lastActiveButton.next().addClass('mnmd-pagination__item-current'); $currentActiveButton = $this.parent().find('.mnmd-pagination__item-current'); } while(parseInt(($this.parent().find('a:nth-child(3)')).text()) != $currentPageVal) { $this.parent().find('a:nth-child(3)').remove(); //Remove 1 button before } $($dotPrevTemplate).insertBefore($currentActiveButton); //Insert Dot Next if(($currentPageVal < ($totalPageVal - 3))) { $($dotNextTemplate).insertAfter($currentActiveButton); //Insert Dot Prev $($buttonTemplate.replace('##PAGENUMBER##', ($currentPageVal + 2))).insertAfter($currentActiveButton); $($buttonTemplate.replace('##PAGENUMBER##', ($currentPageVal + 1))).insertAfter($currentActiveButton); }else if(($currentPageVal < ($totalPageVal - 2))) { $($buttonTemplate.replace('##PAGENUMBER##', ($currentPageVal + 2))).insertAfter($currentActiveButton); $($buttonTemplate.replace('##PAGENUMBER##', ($currentPageVal + 1))).insertAfter($currentActiveButton); } else if(($currentPageVal < ($totalPageVal - 1))) { $($buttonTemplate.replace('##PAGENUMBER##', ($currentPageVal + 1))).insertAfter($currentActiveButton); } if($currentPageVal == $totalPageVal) { $($buttonTemplate.replace('##PAGENUMBER##', ($currentPageVal - 3))).insertBefore($currentActiveButton); $($buttonTemplate.replace('##PAGENUMBER##', ($currentPageVal - 2))).insertBefore($currentActiveButton); $($buttonTemplate.replace('##PAGENUMBER##', ($currentPageVal - 1))).insertBefore($currentActiveButton); }else if($currentPageVal == ($totalPageVal - 1)) { $($buttonTemplate.replace('##PAGENUMBER##', ($currentPageVal - 2))).insertBefore($currentActiveButton); $($buttonTemplate.replace('##PAGENUMBER##', ($currentPageVal - 1))).insertBefore($currentActiveButton); }else if($currentPageVal == ($totalPageVal - 2 )) { $($buttonTemplate.replace('##PAGENUMBER##', ($currentPageVal - 1))).insertBefore($currentActiveButton); } } }else if($pagiAction == 'down') { if(($currentIndex == ($dotIndex_prev + 1)) || ($currentIndex == $dotIndex_prev) || (($currentPageVal == 1) && ($currentIndex < $dotIndex_prev))) { $this.parent().find('.mnmd-pagination__dots').remove(); //Remove ALL Dot Signal if($currentIndex == $dotIndex_prev) { $($buttonTemplate.replace('##PAGENUMBER##', ($currentPageVal))).insertBefore($lastActiveButton); $lastActiveButton.prev().addClass('mnmd-pagination__item-current'); $currentActiveButton = $this.parent().find('.mnmd-pagination__item-current'); while(parseInt($this.parent().find('a:nth-child('+($currentIndex + 2)+')').text()) != $totalPageVal) { $this.parent().find('a:nth-child('+($currentIndex + 2)+')').remove(); //Remove 1 button before } }else if(($currentPageVal == 1) && ($currentIndex < $dotIndex_prev)) { while(parseInt($this.parent().find('a:nth-child('+($currentIndex + 2)+')').text()) != $totalPageVal) { $this.parent().find('a:nth-child('+($currentIndex + 2)+')').remove(); //Remove 1 button before } }else { while(parseInt($this.parent().find('a:nth-child('+($currentIndex + 1)+')').text()) != $totalPageVal) { $this.parent().find('a:nth-child('+($currentIndex + 1)+')').remove(); //Remove 1 button before } } $($dotNextTemplate).insertAfter($currentActiveButton); //Insert Dot After if($currentPageVal > 4) { // <- 1 ... 5 6 7 ... 10 -> $($dotPrevTemplate).insertBefore($currentActiveButton); //Insert Dot Prev $($buttonTemplate.replace('##PAGENUMBER##', ($currentPageVal - 2))).insertBefore($currentActiveButton); $($buttonTemplate.replace('##PAGENUMBER##', ($currentPageVal - 1))).insertBefore($currentActiveButton); }else if($currentPageVal > 3) { // <- 1 ... 4 5 6 ... 10 -> $($buttonTemplate.replace('##PAGENUMBER##', ($currentPageVal - 2))).insertBefore($currentActiveButton); $($buttonTemplate.replace('##PAGENUMBER##', ($currentPageVal - 1))).insertBefore($currentActiveButton); } else if($currentPageVal > 2) { // <- 1 ... 3 4 5 ... 10 -> $($buttonTemplate.replace('##PAGENUMBER##', ($currentPageVal - 1))).insertBefore($currentActiveButton); } if($currentPageVal == 1) { $($buttonTemplate.replace('##PAGENUMBER##', 4)).insertAfter($currentActiveButton); $($buttonTemplate.replace('##PAGENUMBER##', 3)).insertAfter($currentActiveButton); $($buttonTemplate.replace('##PAGENUMBER##', 2)).insertAfter($currentActiveButton); }else if($currentPageVal == 2) { $($buttonTemplate.replace('##PAGENUMBER##', 4)).insertAfter($currentActiveButton); $($buttonTemplate.replace('##PAGENUMBER##', 3)).insertAfter($currentActiveButton); }else if($currentPageVal == 3) { $($buttonTemplate.replace('##PAGENUMBER##', 4)).insertAfter($currentActiveButton); } } } } if($currentPageVal != 1) { $this.siblings('.mnmd-pagination__item-prev').css('display', 'inline-block'); }else { if($this.hasClass('mnmd-pagination__item-prev')) { $this.css('display', 'none'); }else { $this.siblings('.mnmd-pagination__item-prev').css('display', 'none'); } } if($currentPageVal == $totalPageVal) { if($this.hasClass('mnmd-pagination__item-next')) { $this.css('display', 'none'); }else { $this.siblings('.mnmd-pagination__item-next').css('display', 'none'); } }else { $this.siblings('.mnmd-pagination__item-next').css('display', 'inline-block'); } ajaxListing($this, $currentPageVal); }); function ajaxListing($this, $currentPageVal) { var $moduleID = $this.closest('.mnmd-block').attr('id'); var moduleName = $moduleID.split("-")[0]; var args = ajax_buff['query'][$moduleID]['args']; if(moduleName == 'tnm_author_results') { var postOffset = ($currentPageVal-1)*args['number'] + parseInt(args['offset']); var $container = $this.closest('.mnmd-block').find('.authors-list'); var moduleInfo = ''; }else { var postOffset = ($currentPageVal-1)*args['posts_per_page'] + parseInt(args['offset']); var $container = $this.closest('.mnmd-block').find('.posts-list'); var moduleInfo = ajax_buff['query'][$moduleID]['moduleInfo']; } var parameters = { moduleName: moduleName, args: args, moduleInfo: moduleInfo, postOffset: postOffset, }; //console.log(parameters); $container.css('height', $container.height()+'px'); $container.append('
'); $container.find('article').addClass('bk-preload-blur'); loadAjax(parameters, $container); var $mainCol = $this.parents('.mnmd-main-col'); if($mainCol.length > 0) { var $subCol = $mainCol.siblings('.mnmd-sub-col'); $subCol.css('min-height', '1px'); } var $scrollTarget = $this.parents('.mnmd-block'); $('body,html').animate({ scrollTop: $scrollTarget.offset().top, }, 1100); setTimeout(function(){ $container.css('height', 'auto'); }, 1100); } function loadAjax(parameters, $container){ //console.log(parameters.moduleName); var tnmAjaxSecurity = ajax_buff['tnm_security']['tnm_security_code']['content']; var ajaxCall = { action: parameters.moduleName, args: parameters.args, moduleInfo: parameters.moduleInfo, postOffset: parameters.postOffset, securityCheck: tnmAjaxSecurity }; //console.log(ajaxCall); $.post(ajaxurl, ajaxCall, function (response) { $results = $.parseJSON(response); //Save HTML // Append Result $container.html($results).css('opacity', 0).animate({opacity: 1}, 500); $container.find('.bk-preload-wrapper').remove(); $container.find('article').removeClass('bk-preload-blur'); }); } function checkStickySidebar($this){ var $subCol = $this.parents('.mnmd-main-col').siblings('.mnmd-sub-col'); if($subCol.hasClass('js-sticky-sidebar')) { return $subCol; }else { return 0; } } }, /* ============================================================================ * Login Form tabs * ==========================================================================*/ loginForm: function() { var $loginFormTabsLinks = $('.js-login-form-tabs').find('a'); $loginFormTabsLinks.on('click', function (e) { e.preventDefault() $(this).tab('show'); }); }, /* ============================================================================ * Offcanvas Menu * ==========================================================================*/ offCanvasMenu: function() { var $backdrop = $('
'); var $offCanvas = $('.js-mnmd-offcanvas'); var $offCanvasToggle = $('.js-mnmd-offcanvas-toggle'); var $offCanvasClose = $('.js-mnmd-offcanvas-close'); var $offCanvasMenuHasChildren = $('.navigation--offcanvas').find('li.menu-item-has-children > a'); var menuExpander = (''); $backdrop.on('click', function(){ $offCanvas.removeClass('is-active'); $(this).fadeOut(200, function(){ $(this).detach(); }); }); $offCanvasToggle.on('click', function(e){ e.preventDefault(); var targetID = $(this).attr('href'); var $target = $(targetID); $target.toggleClass('is-active'); $backdrop.hide().appendTo(document.body).fadeIn(200); }); $offCanvasClose.on('click', function(e){ e.preventDefault(); var targetID = $(this).attr('href'); var $target = $(targetID); $target.removeClass('is-active'); $backdrop.fadeOut(200, function(){ $(this).detach(); }); }); $offCanvasMenuHasChildren.append(function() { return $(menuExpander).on('click', function(e){ e.preventDefault(); var $subMenu = $(this).parent().siblings('.sub-menu'); $subMenu.slideToggle(200); }); }); }, /* ============================================================================ * Prority+ menu init * ==========================================================================*/ priorityNavInit: function() { var $menus = $('.js-priority-nav'); $menus.each(function() { MINIMALDOG.priorityNav($(this)); }) }, /* ============================================================================ * Smart sticky header * ==========================================================================*/ smartAffix: { //settings $headerPlaceHolder: null, //the affix menu (this element will get the mdAffixed) $fixedHeader: null, //the menu wrapper / placeholder isDestroyed: false, isDisabled: false, isFixed: false, //the current state of the menu, true if the menu is affix isShown: false, windowScrollTop: 0, lastWindowScrollTop: 0, //last scrollTop position, used to calculate the scroll direction offCheckpoint: 0, // distance from top where fixed header will be hidden onCheckpoint: 0, // distance from top where fixed header can show up breakpoint: 992, // media breakpoint in px that it will be disabled init : function init (options) { //read the settings this.$fixedHeader = $(options.fixedHeader); this.$headerPlaceHolder = $(options.headerPlaceHolder); // Check if selectors exist. if ( !this.$fixedHeader.length || !this.$headerPlaceHolder.length ) { this.isDestroyed = true; } else if ( !this.$fixedHeader.length || !this.$headerPlaceHolder.length || ( MINIMALDOG.documentOnResize.windowWidth <= MINIMALDOG.header.smartAffix.breakpoint ) ) { // Check if device width is smaller than breakpoint. this.isDisabled = true; } },// end init compute: function compute(){ if (MINIMALDOG.header.smartAffix.isDestroyed || MINIMALDOG.header.smartAffix.isDisabled) { return; } // Set where from top fixed header starts showing up // if( !this.$headerPlaceHolder.length ) { // this.offCheckpoint = 400; // } else { // this.offCheckpoint = $(this.$headerPlaceHolder).offset().top + 400; // } this.onCheckpoint = this.offCheckpoint + 500; // Set menu top offset this.windowScrollTop = MINIMALDOG.documentOnScroll.windowScrollTop; if (this.offCheckpoint < this.windowScrollTop) { this.isFixed = true; } }, updateState: function updateState(){ //update affixed state if (this.isFixed) { this.$fixedHeader.addClass('is-fixed'); } else { this.$fixedHeader.removeClass('is-fixed'); $window.trigger('stickyHeaderHidden'); } if (this.isShown) { this.$fixedHeader.addClass('is-shown'); } else { this.$fixedHeader.removeClass('is-shown'); } }, /** * called by events on scroll */ eventScroll: function eventScroll(scrollTop) { var scrollDirection = ''; var scrollDelta = 0; // check the direction if (scrollTop != this.lastWindowScrollTop) { //compute direction only if we have different last scroll top // compute the direction of the scroll if (scrollTop > this.lastWindowScrollTop) { scrollDirection = 'down'; } else { scrollDirection = 'up'; } //calculate the scroll delta scrollDelta = Math.abs(scrollTop - this.lastWindowScrollTop); this.lastWindowScrollTop = scrollTop; // update affix state if (this.offCheckpoint < scrollTop) { this.isFixed = true; } else { this.isFixed = false; } // check affix state if (this.isFixed) { // We're in affixed state, let's do some check if ((scrollDirection === 'down') && (scrollDelta > 14)) { if (this.isShown) { this.isShown = false; // hide menu } } else { if ((!this.isShown) && (scrollDelta > 14) && (this.onCheckpoint < scrollTop)) { this.isShown = true; // show menu } } } else { this.isShown = false; } this.updateState(); // update state } }, // end eventScroll function /** * called by events on resize */ eventResize: function eventResize(windowWidth) { // Check if device width is smaller than breakpoint. if ( MINIMALDOG.documentOnResize.windowWidth < MINIMALDOG.header.smartAffix.breakpoint ) { this.isDisabled = true; } else { this.isDisabled = false; MINIMALDOG.header.smartAffix.compute(); } } }, }; MINIMALDOG.documentOnScroll = { ticking: false, windowScrollTop: 0, //used to store the scrollTop init: function() { window.addEventListener('scroll', function(e) { if (!MINIMALDOG.documentOnScroll.ticking) { window.requestAnimationFrame(function() { MINIMALDOG.documentOnScroll.windowScrollTop = $window.scrollTop(); // Functions to call here if (!MINIMALDOG.header.smartAffix.isDisabled && !MINIMALDOG.header.smartAffix.isDestroyed) { MINIMALDOG.header.smartAffix.eventScroll(MINIMALDOG.documentOnScroll.windowScrollTop); } MINIMALDOG.documentOnScroll.goToTopScroll(MINIMALDOG.documentOnScroll.windowScrollTop); MINIMALDOG.documentOnScroll.ticking = false; }); } MINIMALDOG.documentOnScroll.ticking = true; }); }, /* ============================================================================ * Go to top scroll event * ==========================================================================*/ goToTopScroll: function(windowScrollTop){ if ($goToTopEl.length) { if(windowScrollTop > 800) { if (!$goToTopEl.hasClass('is-active')) $goToTopEl.addClass('is-active'); } else { $goToTopEl.removeClass('is-active'); } } }, }; MINIMALDOG.documentOnResize = { ticking: false, windowWidth: $window.width(), init: function() { window.addEventListener('resize', function(e) { if (!MINIMALDOG.documentOnResize.ticking) { window.requestAnimationFrame(function() { MINIMALDOG.documentOnResize.windowWidth = $window.width(); // Functions to call here if (!MINIMALDOG.header.smartAffix.isDestroyed) { MINIMALDOG.header.smartAffix.eventResize(MINIMALDOG.documentOnResize.windowWidth); } MINIMALDOG.clippedBackground(); MINIMALDOG.documentOnResize.ticking = false; }); } MINIMALDOG.documentOnResize.ticking = true; }); }, }; MINIMALDOG.documentOnReady = { init: function(){ MINIMALDOG.header.init(); MINIMALDOG.header.smartAffix.compute(); MINIMALDOG.documentOnScroll.init(); MINIMALDOG.documentOnReady.ajaxLoadPost(); MINIMALDOG.documentOnReady.carousel_1i(); MINIMALDOG.documentOnReady.carousel_1i30m(); MINIMALDOG.documentOnReady.carousel_2i4m(); MINIMALDOG.documentOnReady.carousel_2i20m(); MINIMALDOG.documentOnReady.carousel_3i4m(); MINIMALDOG.documentOnReady.carousel_3i4m_small(); MINIMALDOG.documentOnReady.carousel_3i20m(); MINIMALDOG.documentOnReady.carousel_headingAside_3i(); MINIMALDOG.documentOnReady.carousel_4i(); MINIMALDOG.documentOnReady.carousel_4i4m(); MINIMALDOG.documentOnReady.carousel_4i20m(); MINIMALDOG.documentOnReady.carousel_overlap(); // MINIMALDOG.documentOnReady.customCarouselNav(); // MINIMALDOG.documentOnReady.countdown(); // MINIMALDOG.documentOnReady.goToTop(); // MINIMALDOG.documentOnReady.newsTicker(); // MINIMALDOG.documentOnReady.lightBox(); // MINIMALDOG.documentOnReady.perfectScrollbarInit(); // MINIMALDOG.documentOnReady.tooltipInit(); MINIMALDOG.documentOnReady.ATBSNavDetectEdgeBrowser(); }, ATBSNavDetectEdgeBrowser: function(){ $("#main-menu li").on('mouseenter mouseleave', function (e) { if ($('ul', this).length) { var elm = $('ul:first', this); var off = elm.offset(); var l = off.left; var w = elm.width(); var docW = $(".site-wrapper").width(); var isEntirelyVisible = (l + w <= docW); if (!isEntirelyVisible) { $(this).addClass('atbs-submenu-to-left'); } else { $(this).removeClass('atbs-submenu-to-left'); } if(l<0) { $(this).addClass('atbs-submenu-to-right'); } else { $(this).removeClass('atbs-submenu-to-right'); } } }); }, /* ============================================================================ * AJAX load more posts * ==========================================================================*/ ajaxLoadPost: function() { var $loadedPosts = null; var $ajaxLoadPost = $('.js-ajax-load-post'); var $this; function ajaxLoad(parameters, $postContainer) { var tnmAjaxSecurity = ajax_buff['tnm_security']['tnm_security_code']['content']; var ajaxStatus = '', ajaxCall = $.ajax({ url: ajaxurl, type: 'post', dataType: 'html', data: { action: parameters.action, args: parameters.args, postOffset: parameters.postOffset, type: parameters.type, moduleInfo: parameters.moduleInfo, the__lastPost: parameters.the__lastPost, securityCheck: tnmAjaxSecurity // other parameters }, }); //console.log(parameters.action); ajaxCall.done(function(respond) { $loadedPosts = $.parseJSON(respond); ajaxStatus = 'success'; if($loadedPosts == 'no-result') { $postContainer.closest('.js-ajax-load-post').addClass('disable-click'); $postContainer.closest('.js-ajax-load-post').find('.js-ajax-load-post-trigger').addClass('hidden'); $postContainer.closest('.js-ajax-load-post').find('.tnm-no-more-button').removeClass('hidden'); return; } if ($loadedPosts) { $postContainer.append($loadedPosts).css('opacity', 0).animate({opacity: 1}, 500); } $('html, body').animate({ scrollTop: $window.scrollTop() + 1 }, 0).animate({ scrollTop: $window.scrollTop() - 1 }, 0); // for recalculating of sticky sidebar // do stuff like changing parameters }); ajaxCall.fail(function() { ajaxStatus = 'failed'; }); ajaxCall.always(function() { $postContainer.find('.bk-preload-wrapper').remove(); $postContainer.find('article').removeClass('bk-preload-blur'); $this.removeClass('tnm_loading'); }); } $ajaxLoadPost.each(function() { $this = $(this); var $moduleID = $this.closest('.mnmd-block').attr('id'); var moduleName = $moduleID.split("-")[0]; var $triggerBtn = $this.find('.js-ajax-load-post-trigger'); var args = ajax_buff['query'][$moduleID]['args']; if(moduleName == 'tnm_author_results') { var $postContainer = $this.find('.authors-list'); var moduleInfo = ''; }else { var $postContainer = $this.find('.posts-list'); var moduleInfo = ajax_buff['query'][$moduleID]['moduleInfo']; } $triggerBtn.on('click', function() { if($this.hasClass('disable-click')) return; $this.addClass('tnm_loading'); if(moduleName == 'tnm_author_results') { var postOffset = parseInt(args['offset']) + $this.find('.author-box').length; var the__lastPost = ''; }else { var postOffset = parseInt(args['offset']) + $this.find('article').length; if($this.closest('.mnmd-block').hasClass('tnm_latest_blog_posts')) { var stickPostLength = args['post__not_in'].length; postOffset = postOffset - stickPostLength; } var the__lastPost = $this.find('article').length; } $postContainer.append('
'); $postContainer.find('article').addClass('bk-preload-blur'); var parameters = { action: moduleName, args: args, postOffset: postOffset, type: 'loadmore', moduleInfo: moduleInfo, the__lastPost: the__lastPost, }; //console.log(parameters); ajaxLoad(parameters, $postContainer); }); }); }, /* ============================================================================ * Carousel funtions * ==========================================================================*/ carousel_1i: function() { var $carousels = $('.js-mnmd-carousel-1i'); $carousels.each( function() { var carousel_loop = $(this).data('carousel-loop'); $(this).owlCarousel({ items: 1, loop: carousel_loop, margin: 0, nav: true, dots: true, autoHeight: true, navText: ['', ''], smartSpeed: 500, }); }) }, carousel_1i30m: function() { var $carousels = $('.js-carousel-1i30m'); $carousels.each( function() { $(this).owlCarousel({ items: 1, margin: 30, loop: true, nav: true, dots: true, autoHeight: true, navText: ['', ''], smartSpeed: 500, }); }) }, carousel_overlap: function() { var $carousels = $('.js-mnmd-carousel-overlap'); $carousels.each( function() { var $carousel = $(this); $carousel.flickity({ wrapAround: true, }); $carousel.on( 'staticClick.flickity', function( event, pointer, cellElement, cellIndex ) { if ( (typeof cellIndex === 'number') && ($carousel.data('flickity').selectedIndex != cellIndex) ) { $carousel.flickity( 'selectCell', cellIndex ); } }); }) }, carousel_2i4m: function() { var $carousels = $('.js-carousel-2i4m'); $carousels.each( function() { var carousel_loop = $(this).data('carousel-loop'); $(this).owlCarousel({ items: 2, margin: 4, loop: carousel_loop, nav: true, dots: true, navText: ['', ''], responsive: { 0 : { items: 1, }, 768 : { items: 2, }, }, }); }) }, carousel_3i: function() { var $carousels = $('.js-carousel-3i'); $carousels.each( function() { $(this).owlCarousel({ loop: true, nav: true, dots: false, navText: ['', ''], responsive: { 0 : { items: 1, }, 768 : { items: 2, }, 992 : { items: 3, }, }, }); }) }, carousel_3i4m: function() { var $carousels = $('.js-carousel-3i4m'); $carousels.each( function() { var carousel_loop = $(this).data('carousel-loop'); $(this).owlCarousel({ margin: 4, loop: carousel_loop, nav: true, dots: true, navText: ['', ''], responsive: { 0 : { items: 1, }, 768 : { items: 2, }, 992 : { items: 3, }, }, }); }) }, carousel_3i4m_small: function() { var $carousels = $('.js-carousel-3i4m-small'); $carousels.each( function() { $(this).owlCarousel({ margin: 4, loop: false, nav: true, dots: true, navText: ['', ''], autoHeight: true, responsive: { 0 : { items: 1, }, 768 : { items: 2, }, 1200 : { items: 3, }, }, }); }) }, carousel_2i20m: function() { var $carousels = $('.js-carousel-2i20m'); $carousels.each( function() { var carousel_loop = $(this).data('carousel-loop'); $(this).owlCarousel({ margin: 20, loop: carousel_loop, nav: true, dots: true, navText: ['', ''], responsive: { 0 : { items: 1, }, 768 : { items: 2, }, }, }); }) }, carousel_3i20m: function() { var $carousels = $('.js-carousel-3i20m'); $carousels.each( function() { var carousel_loop = $(this).data('carousel-loop'); $(this).owlCarousel({ margin: 20, loop: carousel_loop, nav: true, dots: true, navText: ['', ''], responsive: { 0 : { items: 1, }, 768 : { items: 2, }, 992 : { items: 3, }, }, }); }) }, carousel_headingAside_3i: function() { var $carousels = $('.js-mnmd-carousel-heading-aside-3i'); $carousels.each( function() { var carousel_loop = $(this).data('carousel-loop'); $(this).owlCarousel({ margin: 20, nav: false, dots: false, loop: carousel_loop, navText: ['', ''], responsive: { 0 : { items: 1, margin: 10, stagePadding: 40, loop: false, }, 768 : { items: 2, }, 992 : { items: 3, }, }, }); }) }, customCarouselNav: function() { if ( $.isFunction($.fn.owlCarousel) ) { var $carouselNexts = $('.js-carousel-next'); $carouselNexts.each( function() { var carouselNext = $(this); var carouselID = carouselNext.parent('.mnmd-carousel-nav-custom-holder').attr('data-carouselID'); var $carousel = $('#' + carouselID); carouselNext.on('click', function() { $carousel.trigger('next.owl.carousel'); }); }); var $carouselPrevs = $('.js-carousel-prev'); $carouselPrevs.each( function() { var carouselPrev = $(this); var carouselID = carouselPrev.parent('.mnmd-carousel-nav-custom-holder').attr('data-carouselID'); var $carousel = $('#' + carouselID); carouselPrev.on('click', function() { $carousel.trigger('prev.owl.carousel'); }); }); } }, carousel_4i: function() { var $carousels = $('.js-carousel-4i'); $carousels.each( function() { $(this).owlCarousel({ loop: true, nav: true, dots: false, navText: ['', ''], responsive: { 0 : { items: 1, }, 768 : { items: 2, }, 992 : { items: 4, }, }, }); }) }, carousel_4i4m: function() { var $carousels = $('.js-carousel-4i4m'); $carousels.each( function() { var carousel_loop = $(this).data('carousel-loop'); $(this).owlCarousel({ margin: 4, loop: carousel_loop, nav: true, dots: true, navText: ['', ''], responsive: { 0 : { items: 1, }, 768 : { items: 2, }, 992 : { items: 4, }, }, }); }) }, carousel_4i20m: function() { var $carousels = $('.js-carousel-4i20m'); $carousels.each( function() { var carousel_loop = $(this).data('carousel-loop'); $(this).owlCarousel({ items: 4, margin: 20, loop: carousel_loop, nav: true, dots: true, navText: ['', ''], responsive: { 0 : { items: 1, }, 768 : { items: 2, }, 992 : { items: 3, }, 1199 : { items: 4, }, }, }); }) }, /* ============================================================================ * Countdown timer * ==========================================================================*/ countdown: function() { if ( $.isFunction($.fn.countdown) ) { var $countdown = $('.js-countdown'); $countdown.each(function() { var $this = $(this); var finalDate = $this.data('countdown'); $this.countdown(finalDate, function(event) { $(this).html(event.strftime('' + '
%-Dday%!D
' + '
%Hhr
' + '
%Mmin
' + '
%Ssec
')); }); }); }; }, /* ============================================================================ * Scroll top * ==========================================================================*/ goToTop: function() { if ($goToTopEl.length) { $goToTopEl.on('click', function() { $('html,body').stop(true).animate({scrollTop:0},400); return false; }); } }, /* ============================================================================ * News ticker * ==========================================================================*/ newsTicker: function() { var $tickers = $('.js-mnmd-news-ticker'); $tickers.each( function() { var $ticker = $(this); var $next = $ticker.siblings('.mnmd-news-ticker__control').find('.mnmd-news-ticker__next'); var $prev = $ticker.siblings('.mnmd-news-ticker__control').find('.mnmd-news-ticker__prev'); $ticker.addClass('initialized').vTicker('init', { speed: 300, pause: 3000, showItems: 1, }); $next.on('click', function() { $ticker.vTicker('next', {animate:true}); }); $prev.on('click', function() { $ticker.vTicker('prev', {animate:true}); }); }) }, /* ============================================================================ * Lightbox * ==========================================================================*/ lightBox: function() { if ( $.isFunction($.fn.magnificPopup) ) { var $imageLightbox = $('.js-mnmd-lightbox-image'); var $galleryLightbox = $('.js-mnmd-lightbox-gallery'); $imageLightbox.magnificPopup({ type: 'image', mainClass: 'mfp-zoom-in', removalDelay: 80, }); $galleryLightbox.each(function() { $(this).magnificPopup({ delegate: '.gallery-icon > a', type: 'image', gallery:{ enabled: true, }, mainClass: 'mfp-zoom-in', removalDelay: 80, }); }); } }, /* ============================================================================ * Custom scrollbar * ==========================================================================*/ perfectScrollbarInit: function() { if ( $.isFunction($.fn.perfectScrollbar) ) { var $area = $('.js-perfect-scrollbar'); $area.perfectScrollbar({ wheelPropagation: true, }); } }, /* ============================================================================ * Sticky sidebar * ==========================================================================*/ stickySidebar: function() { setTimeout(function() { var $stickySidebar = $('.js-sticky-sidebar'); var $stickyHeader = $('.js-sticky-header'); var marginTop = ($stickyHeader.length) ? ($stickyHeader.outerHeight() + 20) : 0; // check if there's sticky header if ( $( document.body ).hasClass( 'admin-bar' ) ) // check if admin bar is shown. marginTop += 32; if ( $.isFunction($.fn.theiaStickySidebar) ) { $stickySidebar.theiaStickySidebar({ additionalMarginTop: marginTop, additionalMarginBottom: 20, }); } }, 250); // wait a bit for precise height; }, /* ============================================================================ * Bootstrap tooltip * ==========================================================================*/ tooltipInit: function() { var $element = $('[data-toggle="tooltip"]'); $element.tooltip(); }, }; MINIMALDOG.documentOnLoad = { init: function() { MINIMALDOG.clippedBackground(); MINIMALDOG.header.smartAffix.compute(); //recompute when all the page + logos are loaded MINIMALDOG.header.smartAffix.updateState(); // update state MINIMALDOG.header.stickyNavbarPadding(); // fix bootstrap modal backdrop causes sticky navbar to shift MINIMALDOG.documentOnReady.stickySidebar(); } }; /* ============================================================================ * Blur background mask * ==========================================================================*/ MINIMALDOG.clippedBackground = function() { if ($overlayBg.length) { $overlayBg.each(function() { var $mainArea = $(this).find('.js-overlay-bg-main-area'); if (!$mainArea.length) { $mainArea = $(this); } var $subArea = $(this).find('.js-overlay-bg-sub-area'); var $subBg = $(this).find('.js-overlay-bg-sub'); var leftOffset = $mainArea.offset().left - $subArea.offset().left; var topOffset = $mainArea.offset().top - $subArea.offset().top; $subBg.css('display', 'block'); $subBg.css('position', 'absolute'); $subBg.css('width', $mainArea.outerWidth() + 'px'); $subBg.css('height', $mainArea.outerHeight() + 'px'); $subBg.css('left', leftOffset + 'px'); $subBg.css('top', topOffset + 'px'); }); }; } /* ============================================================================ * Priority+ menu * ==========================================================================*/ MINIMALDOG.priorityNav = function($menu) { var $btn = $menu.find('button'); var $menuWrap = $menu.find('.navigation'); var $menuItem = $menuWrap.children('li'); var hasMore = false; if(!$menuWrap.length) { return; } function calcWidth() { if ($menuWrap[0].getBoundingClientRect().width === 0) return; var navWidth = 0; $menuItem = $menuWrap.children('li'); $menuItem.each(function() { navWidth += $(this)[0].getBoundingClientRect().width; }); if (hasMore) { var $more = $menu.find('.priority-nav__more'); var moreWidth = $more[0].getBoundingClientRect().width; var availableSpace = $menu[0].getBoundingClientRect().width; //Remove the padding width (assumming padding are px values) availableSpace -= (parseInt($menu.css("padding-left"), 10) + parseInt($menu.css("padding-right"), 10)); //Remove the border width availableSpace -= ($menu.outerWidth(false) - $menu.innerWidth()); if (navWidth > availableSpace) { var $menuItems = $menuWrap.children('li:not(.priority-nav__more)'); var itemsToHideCount = 1; $($menuItems.get().reverse()).each(function(index){ navWidth -= $(this)[0].getBoundingClientRect().width; if (navWidth > availableSpace) { itemsToHideCount++; } else { return false; } }); var $itemsToHide = $menuWrap.children('li:not(.priority-nav__more)').slice(-itemsToHideCount); $itemsToHide.each(function(index){ $(this).attr('data-width', $(this)[0].getBoundingClientRect().width); }); $itemsToHide.prependTo($more.children('ul')); } else { var $moreItems = $more.children('ul').children('li'); var itemsToShowCount = 0; if ($moreItems.length === 1) { // if there's only 1 item in "More" dropdown if (availableSpace >= (navWidth - moreWidth + $moreItems.first().data('width'))) { itemsToShowCount = 1; } } else { $moreItems.each(function(index){ navWidth += $(this).data('width'); if (navWidth <= availableSpace) { itemsToShowCount++; } else { return false; } }); } if (itemsToShowCount > 0) { var $itemsToShow = $moreItems.slice(0, itemsToShowCount); $itemsToShow.insertBefore($menuWrap.children('.priority-nav__more')); $moreItems = $more.children('ul').children('li'); if ($moreItems.length <= 0) { $more.remove(); hasMore = false; } } } } else { var $more = $('
  • More
  • '); var availableSpace = $menu[0].getBoundingClientRect().width; //Remove the padding width (assumming padding are px values) availableSpace -= (parseInt($menu.css("padding-left"), 10) + parseInt($menu.css("padding-right"), 10)); //Remove the border width availableSpace -= ($menu.outerWidth(false) - $menu.innerWidth()); if (navWidth > availableSpace) { var $menuItems = $menuWrap.children('li'); var itemsToHideCount = 1; $($menuItems.get().reverse()).each(function(index){ navWidth -= $(this)[0].getBoundingClientRect().width; if (navWidth > availableSpace) { itemsToHideCount++; } else { return false; } }); var $itemsToHide = $menuWrap.children('li:not(.priority-nav__more)').slice(-itemsToHideCount); $itemsToHide.each(function(index){ $(this).attr('data-width', $(this)[0].getBoundingClientRect().width); }); $itemsToHide.prependTo($more.children('ul')); $more.appendTo($menuWrap); hasMore = true; } } } $window.on('load webfontLoaded', calcWidth ); // $window.on('resize', $.throttle( 50, calcWidth )); } $document.ready( MINIMALDOG.documentOnReady.init ); $window.on('load', MINIMALDOG.documentOnLoad.init ); $window.on( 'resize', MINIMALDOG.documentOnResize.init ); })(jQuery); ;