!function(n){"use strict";var o;n(document).ready(function(){var o;3<(o=n("body.woocommerce-cart .cross-sells ul.products")).find("li.product").length&&o.slick({dots:!0,arrows:!1,infinite:!1,speed:300,slidesToShow:parseInt(3),autoplay:!1,slidesToScroll:1,lazyLoad:"ondemand",responsive:[{breakpoint:1024,settings:{slidesToShow:parseInt(3)}},{breakpoint:768,settings:{slidesToShow:parseInt(2)}}]})}),(o=n(".widget_product_categories").find("ul")).length&&o.find("li").each(function(){var t=n(this),o=t.find("> a"),e=t.find("> ul.children");e.length&&(t.hasClass("closed")?(e.hide(),o.before('<i class="icon-plus"></i>')):(t.hasClass("opened")||t.addClass("opened"),o.before('<i class="icon-minus"></i>')),t.find("i").on("click",function(o){e.slideToggle("slow"),t.hasClass("closed")?(t.removeClass("closed").addClass("opened"),t.find(">i").removeClass("icon-plus").addClass("icon-minus")):(t.removeClass("opened").addClass("closed"),t.find(">i").removeClass("icon-minus").addClass("icon-plus")),o.stopImmediatePropagation()}),t.on("click",function(o){n(o.target).filter("a").length||(e.slideToggle("slow"),t.hasClass("closed")?(t.removeClass("closed").addClass("opened"),t.find("i").removeClass("icon-plus").addClass("icon-minus")):(t.removeClass("opened").addClass("closed"),t.find("i").removeClass("icon-minus").addClass("icon-plus")),o.stopImmediatePropagation())}))}),n("body").on("mouseenter",".woosc-btn:not(.tooltipstered), .wooscp-btn:not(.tooltipstered), .woosq-btn:not(.tooltipstered), .woosw-btn:not(.tooltipstered), .group-action .compare-button .compare:not(.tooltipstered),.product-list .compare-button .compare:not(.tooltipstered), .group-action .yith-wcqv-button:not(.tooltipstered),.product-list .yith-wcqv-button:not(.tooltipstered), .group-action .yith-wcwl-add-to-wishlist > div > a:not(.tooltipstered),.product-list .yith-wcwl-add-to-wishlist > div > a:not(.tooltipstered),.group-action .opal-add-to-cart-button:not(.tooltipstered) ,.smartic-color-type:not(.tooltipstered)",function(){var o=n(this);void 0!==n.fn.tooltipster&&o.tooltipster({position:"top",functionBefore:function(o,t){o.content(o._$origin.text())},theme:"opal-product-tooltipster",delay:0,animation:"grow"}).tooltipster("show")}),n(document).on("added_to_wishlist removed_from_wishlist",function(){var t=n(".header-wishlist .count, .footer-wishlist .count, .header-wishlist .wishlist-count-item");n.ajax({url:yith_wcwl_l10n.ajax_url,data:{action:"yith_wcwl_update_wishlist_count"},dataType:"json",success:function(o){t.html(o.count),n(".wishlist-count-text").html(o.text)}})}),n("body").on("woosw_change_count",function(o,t){n(".header-wishlist .count, .footer-wishlist .count").html(t)}),n(document).ready(function(){var e=n(".woocommerce-product-search"),o=n(".woocommerce-product-search .search-field"),s=n(".ajax-search-result"),i=wp.template("ajax-live-search-template");n("body").on("click",function(){s.hide()}),o.length&&o.keyup(function(){2<this.value.length?n.ajax({url:smarticAjax.ajaxurl,type:"post",data:{action:"smartic_ajax_search_products",query:this.value},beforeSend:function(){e.addClass("loading")},success:function(o){e.removeClass("loading");var t=n.parseJSON(o);s.empty(),s.show(),n.each(t,function(o,t){s.append(i({url:t.url,title:t.value,img:t.img,price:t.price}))})}}):s.hide()}).on("click",function(o){o.stopPropagation()}).on("focus",function(o){2<this.value.length&&s.show()})})}(jQuery);
!function(i){"use strict";function t(){var t=i(".single-product .quantity:not(.buttons_added):not(.hidden)").find(".qty");t&&"date"!=t.prop("type")&&(t.parent().addClass("buttons_added").prepend('<button type="button" class="minus" >-</button>'),t.addClass("input-text").after('<button type="button" class="plus">+</button>'),i("input.qty:not(.product-quantity input.qty)").each(function(){var t=parseFloat(i(this).attr("min"));t&&0<t&&parseFloat(i(this).val())<t&&i(this).val(t)}),i(".plus, .minus").unbind("click"),i(".plus, .minus").on("click",function(){var t=i(this).parent().find(".qty"),a=parseFloat(t.val()),n=parseFloat(t.attr("max")),s=parseFloat(t.attr("min")),o=t.attr("step");a&&""!==a&&"NaN"!==a||(a=0),""!==n&&"NaN"!==n||(n=""),""!==s&&"NaN"!==s||(s=0),"any"!==o&&""!==o&&void 0!==o&&"NaN"!==parseFloat(o)||(o=1),i(this).is(".plus")?n&&(n==a||n<a)?t.val(n):t.val(a+parseFloat(o)):s&&(s==a||a<s)?t.val(s):0<a&&t.val(a-parseFloat(o)),t.trigger("change")}))}t(),i(document).on("qv_loader_stop",function(){t()})}(jQuery);
!function(a){"use strict";a(document).ready(function(){var t,e;t=a(".site-header-cart-side"),e=a("body"),t.length&&(e.on("click",".cart-contents",function(e){e.preventDefault(),t.toggleClass("active")}),a(".close-cart-side,.cart-side-overlay").on("click",function(e){e.preventDefault(),t.removeClass("active")}),e.on("added_to_cart",function(){e.hasClass("elementor-editor-active")||t.hasClass("active")||t.addClass("active")}))})}(jQuery),function(e){"use strict";e(document).ready(function(){var t,a;t=e("body .header-group-action .site-header-account a"),a=e("body .header-group-action .site-header-account .account-dropdown"),e(document).mouseup(function(e){0!=t.has(e.target).length||a.is(e.target)||0!=a.has(e.target).length||a.removeClass("active")}),t.on("click",function(e){e.preventDefault(),e.stopPropagation(),a.toggleClass("active")})})}(jQuery);
!function(){"use strict";document.addEventListener("DOMContentLoaded",function(){var t=document.getElementsByClassName("smartic-sticky-add-to-cart");if(t.length&&"undefined"!=typeof smartic_sticky_add_to_cart_params){var s=document.getElementsByClassName(smartic_sticky_add_to_cart_params.trigger_class);if(0<s.length){var e=function(){s[0].getBoundingClientRect().top+s[0].scrollHeight<0?(t[0].classList.add("smartic-sticky-add-to-cart--slideOutUp"),t[0].classList.remove("smartic-sticky-add-to-cart--slideInDown"),window.innerHeight+window.scrollY>=document.body.offsetHeight&&(t[0].classList.add("smartic-sticky-add-to-cart--slideInDown"),t[0].classList.remove("smartic-sticky-add-to-cart--slideOutUp"))):t[0].classList.contains("smartic-sticky-add-to-cart--slideOutUp")&&(t[0].classList.add("smartic-sticky-add-to-cart--slideInDown"),t[0].classList.remove("smartic-sticky-add-to-cart--slideOutUp"))};e(),window.addEventListener("scroll",function(){e()});var c=null;if(document.body.classList.forEach(function(t){"postid-"===t.substring(0,7)&&(c=t.replace(/[^0-9]/g,""))}),c){var a=document.getElementById("product-"+c);if(a)if(!a.classList.contains("product-type-simple")&&!a.classList.contains("product-type-external"))document.getElementsByClassName("smartic-sticky-add-to-cart__content-button")[0].addEventListener("click",function(t){t.preventDefault(),document.getElementById("product-"+c).scrollIntoView()})}}}})}();
(function ($){
'use strict';
var Countdown=function ($countdown, endTime, $){
var timeInterval,
elements={
$daysSpan: $countdown.find('.countdown-days'),
$hoursSpan: $countdown.find('.countdown-hours'),
$minutesSpan: $countdown.find('.countdown-minutes'),
$secondsSpan: $countdown.find('.countdown-seconds')
};
var updateClock=function (){
var timeRemaining=Countdown.getTimeRemaining(endTime);
$.each(timeRemaining.parts, function (timePart){
var $element=elements['$' + timePart + 'Span'],
partValue=this.toString();
if(1===partValue.length){
partValue=0 + partValue;
}
if($element.length){
$element.text(partValue);
}});
if(timeRemaining.total <=0){
clearInterval(timeInterval);
}};
var initializeClock=function (){
updateClock();
timeInterval=setInterval(updateClock, 1000);
};
initializeClock();
};
Countdown.getTimeRemaining=function (endTime){
var timeRemaining=endTime - new Date(),
seconds=Math.floor((timeRemaining / 1000) % 60),
minutes=Math.floor((timeRemaining / 1000 / 60) % 60),
hours=Math.floor((timeRemaining / (1000 * 60 * 60)) % 24),
days=Math.floor(timeRemaining / (1000 * 60 * 60 * 24));
if(days < 0||hours < 0||minutes < 0){
seconds=minutes=hours=days=0;
}
return {
total: timeRemaining,
parts: {
days: days,
hours: hours,
minutes: minutes,
seconds: seconds
}};};
var $element=$('[data-countdown="true"]');
$element.each(function (index, el){
var date=new Date($(this).data('date') * 1000);
new Countdown($(this), date, $);
});
})(jQuery);
!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a("object"==typeof exports?require("jquery"):window.jQuery||window.Zepto)}(function(a){var b,c,d,e,f,g,h="Close",i="BeforeClose",j="AfterClose",k="BeforeAppend",l="MarkupParse",m="Open",n="Change",o="mfp",p="."+o,q="mfp-ready",r="mfp-removing",s="mfp-prevent-close",t=function(){},u=!!window.jQuery,v=a(window),w=function(a,c){b.ev.on(o+a+p,c)},x=function(b,c,d,e){var f=document.createElement("div");return f.className="mfp-"+b,d&&(f.innerHTML=d),e?c&&c.appendChild(f):(f=a(f),c&&f.appendTo(c)),f},y=function(c,d){b.ev.triggerHandler(o+c,d),b.st.callbacks&&(c=c.charAt(0).toLowerCase()+c.slice(1),b.st.callbacks[c]&&b.st.callbacks[c].apply(b,a.isArray(d)?d:[d]))},z=function(c){return c===g&&b.currTemplate.closeBtn||(b.currTemplate.closeBtn=a(b.st.closeMarkup.replace("%title%",b.st.tClose)),g=c),b.currTemplate.closeBtn},A=function(){a.magnificPopup.instance||(b=new t,b.init(),a.magnificPopup.instance=b)},B=function(){var a=document.createElement("p").style,b=["ms","O","Moz","Webkit"];if(void 0!==a.transition)return!0;for(;b.length;)if(b.pop()+"Transition"in a)return!0;return!1};t.prototype={constructor:t,init:function(){var c=navigator.appVersion;b.isLowIE=b.isIE8=document.all&&!document.addEventListener,b.isAndroid=/android/gi.test(c),b.isIOS=/iphone|ipad|ipod/gi.test(c),b.supportsTransition=B(),b.probablyMobile=b.isAndroid||b.isIOS||/(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent),d=a(document),b.popupsCache={}},open:function(c){var e;if(c.isObj===!1){b.items=c.items.toArray(),b.index=0;var g,h=c.items;for(e=0;e<h.length;e++)if(g=h[e],g.parsed&&(g=g.el[0]),g===c.el[0]){b.index=e;break}}else b.items=a.isArray(c.items)?c.items:[c.items],b.index=c.index||0;if(b.isOpen)return void b.updateItemHTML();b.types=[],f="",c.mainEl&&c.mainEl.length?b.ev=c.mainEl.eq(0):b.ev=d,c.key?(b.popupsCache[c.key]||(b.popupsCache[c.key]={}),b.currTemplate=b.popupsCache[c.key]):b.currTemplate={},b.st=a.extend(!0,{},a.magnificPopup.defaults,c),b.fixedContentPos="auto"===b.st.fixedContentPos?!b.probablyMobile:b.st.fixedContentPos,b.st.modal&&(b.st.closeOnContentClick=!1,b.st.closeOnBgClick=!1,b.st.showCloseBtn=!1,b.st.enableEscapeKey=!1),b.bgOverlay||(b.bgOverlay=x("bg").on("click"+p,function(){b.close()}),b.wrap=x("wrap").attr("tabindex",-1).on("click"+p,function(a){b._checkIfClose(a.target)&&b.close()}),b.container=x("container",b.wrap)),b.contentContainer=x("content"),b.st.preloader&&(b.preloader=x("preloader",b.container,b.st.tLoading));var i=a.magnificPopup.modules;for(e=0;e<i.length;e++){var j=i[e];j=j.charAt(0).toUpperCase()+j.slice(1),b["init"+j].call(b)}y("BeforeOpen"),b.st.showCloseBtn&&(b.st.closeBtnInside?(w(l,function(a,b,c,d){c.close_replaceWith=z(d.type)}),f+=" mfp-close-btn-in"):b.wrap.append(z())),b.st.alignTop&&(f+=" mfp-align-top"),b.fixedContentPos?b.wrap.css({overflow:b.st.overflowY,overflowX:"hidden",overflowY:b.st.overflowY}):b.wrap.css({top:v.scrollTop(),position:"absolute"}),(b.st.fixedBgPos===!1||"auto"===b.st.fixedBgPos&&!b.fixedContentPos)&&b.bgOverlay.css({height:d.height(),position:"absolute"}),b.st.enableEscapeKey&&d.on("keyup"+p,function(a){27===a.keyCode&&b.close()}),v.on("resize"+p,function(){b.updateSize()}),b.st.closeOnContentClick||(f+=" mfp-auto-cursor"),f&&b.wrap.addClass(f);var k=b.wH=v.height(),n={};if(b.fixedContentPos&&b._hasScrollBar(k)){var o=b._getScrollbarSize();o&&(n.marginRight=o)}b.fixedContentPos&&(b.isIE7?a("body, html").css("overflow","hidden"):n.overflow="hidden");var r=b.st.mainClass;return b.isIE7&&(r+=" mfp-ie7"),r&&b._addClassToMFP(r),b.updateItemHTML(),y("BuildControls"),a("html").css(n),b.bgOverlay.add(b.wrap).prependTo(b.st.prependTo||a(document.body)),b._lastFocusedEl=document.activeElement,setTimeout(function(){b.content?(b._addClassToMFP(q),b._setFocus()):b.bgOverlay.addClass(q),d.on("focusin"+p,b._onFocusIn)},16),b.isOpen=!0,b.updateSize(k),y(m),c},close:function(){b.isOpen&&(y(i),b.isOpen=!1,b.st.removalDelay&&!b.isLowIE&&b.supportsTransition?(b._addClassToMFP(r),setTimeout(function(){b._close()},b.st.removalDelay)):b._close())},_close:function(){y(h);var c=r+" "+q+" ";if(b.bgOverlay.detach(),b.wrap.detach(),b.container.empty(),b.st.mainClass&&(c+=b.st.mainClass+" "),b._removeClassFromMFP(c),b.fixedContentPos){var e={marginRight:""};b.isIE7?a("body, html").css("overflow",""):e.overflow="",a("html").css(e)}d.off("keyup"+p+" focusin"+p),b.ev.off(p),b.wrap.attr("class","mfp-wrap").removeAttr("style"),b.bgOverlay.attr("class","mfp-bg"),b.container.attr("class","mfp-container"),!b.st.showCloseBtn||b.st.closeBtnInside&&b.currTemplate[b.currItem.type]!==!0||b.currTemplate.closeBtn&&b.currTemplate.closeBtn.detach(),b.st.autoFocusLast&&b._lastFocusedEl&&a(b._lastFocusedEl).focus(),b.currItem=null,b.content=null,b.currTemplate=null,b.prevHeight=0,y(j)},updateSize:function(a){if(b.isIOS){var c=document.documentElement.clientWidth/window.innerWidth,d=window.innerHeight*c;b.wrap.css("height",d),b.wH=d}else b.wH=a||v.height();b.fixedContentPos||b.wrap.css("height",b.wH),y("Resize")},updateItemHTML:function(){var c=b.items[b.index];b.contentContainer.detach(),b.content&&b.content.detach(),c.parsed||(c=b.parseEl(b.index));var d=c.type;if(y("BeforeChange",[b.currItem?b.currItem.type:"",d]),b.currItem=c,!b.currTemplate[d]){var f=b.st[d]?b.st[d].markup:!1;y("FirstMarkupParse",f),f?b.currTemplate[d]=a(f):b.currTemplate[d]=!0}e&&e!==c.type&&b.container.removeClass("mfp-"+e+"-holder");var g=b["get"+d.charAt(0).toUpperCase()+d.slice(1)](c,b.currTemplate[d]);b.appendContent(g,d),c.preloaded=!0,y(n,c),e=c.type,b.container.prepend(b.contentContainer),y("AfterChange")},appendContent:function(a,c){b.content=a,a?b.st.showCloseBtn&&b.st.closeBtnInside&&b.currTemplate[c]===!0?b.content.find(".mfp-close").length||b.content.append(z()):b.content=a:b.content="",y(k),b.container.addClass("mfp-"+c+"-holder"),b.contentContainer.append(b.content)},parseEl:function(c){var d,e=b.items[c];if(e.tagName?e={el:a(e)}:(d=e.type,e={data:e,src:e.src}),e.el){for(var f=b.types,g=0;g<f.length;g++)if(e.el.hasClass("mfp-"+f[g])){d=f[g];break}e.src=e.el.attr("data-mfp-src"),e.src||(e.src=e.el.attr("href"))}return e.type=d||b.st.type||"inline",e.index=c,e.parsed=!0,b.items[c]=e,y("ElementParse",e),b.items[c]},addGroup:function(a,c){var d=function(d){d.mfpEl=this,b._openClick(d,a,c)};c||(c={});var e="click.magnificPopup";c.mainEl=a,c.items?(c.isObj=!0,a.off(e).on(e,d)):(c.isObj=!1,c.delegate?a.off(e).on(e,c.delegate,d):(c.items=a,a.off(e).on(e,d)))},_openClick:function(c,d,e){var f=void 0!==e.midClick?e.midClick:a.magnificPopup.defaults.midClick;if(f||!(2===c.which||c.ctrlKey||c.metaKey||c.altKey||c.shiftKey)){var g=void 0!==e.disableOn?e.disableOn:a.magnificPopup.defaults.disableOn;if(g)if(a.isFunction(g)){if(!g.call(b))return!0}else if(v.width()<g)return!0;c.type&&(c.preventDefault(),b.isOpen&&c.stopPropagation()),e.el=a(c.mfpEl),e.delegate&&(e.items=d.find(e.delegate)),b.open(e)}},updateStatus:function(a,d){if(b.preloader){c!==a&&b.container.removeClass("mfp-s-"+c),d||"loading"!==a||(d=b.st.tLoading);var e={status:a,text:d};y("UpdateStatus",e),a=e.status,d=e.text,b.preloader.html(d),b.preloader.find("a").on("click",function(a){a.stopImmediatePropagation()}),b.container.addClass("mfp-s-"+a),c=a}},_checkIfClose:function(c){if(!a(c).hasClass(s)){var d=b.st.closeOnContentClick,e=b.st.closeOnBgClick;if(d&&e)return!0;if(!b.content||a(c).hasClass("mfp-close")||b.preloader&&c===b.preloader[0])return!0;if(c===b.content[0]||a.contains(b.content[0],c)){if(d)return!0}else if(e&&a.contains(document,c))return!0;return!1}},_addClassToMFP:function(a){b.bgOverlay.addClass(a),b.wrap.addClass(a)},_removeClassFromMFP:function(a){this.bgOverlay.removeClass(a),b.wrap.removeClass(a)},_hasScrollBar:function(a){return(b.isIE7?d.height():document.body.scrollHeight)>(a||v.height())},_setFocus:function(){(b.st.focus?b.content.find(b.st.focus).eq(0):b.wrap).focus()},_onFocusIn:function(c){return c.target===b.wrap[0]||a.contains(b.wrap[0],c.target)?void 0:(b._setFocus(),!1)},_parseMarkup:function(b,c,d){var e;d.data&&(c=a.extend(d.data,c)),y(l,[b,c,d]),a.each(c,function(c,d){if(void 0===d||d===!1)return!0;if(e=c.split("_"),e.length>1){var f=b.find(p+"-"+e[0]);if(f.length>0){var g=e[1];"replaceWith"===g?f[0]!==d[0]&&f.replaceWith(d):"img"===g?f.is("img")?f.attr("src",d):f.replaceWith(a("<img>").attr("src",d).attr("class",f.attr("class"))):f.attr(e[1],d)}}else b.find(p+"-"+c).html(d)})},_getScrollbarSize:function(){if(void 0===b.scrollbarSize){var a=document.createElement("div");a.style.cssText="width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;",document.body.appendChild(a),b.scrollbarSize=a.offsetWidth-a.clientWidth,document.body.removeChild(a)}return b.scrollbarSize}},a.magnificPopup={instance:null,proto:t.prototype,modules:[],open:function(b,c){return A(),b=b?a.extend(!0,{},b):{},b.isObj=!0,b.index=c||0,this.instance.open(b)},close:function(){return a.magnificPopup.instance&&a.magnificPopup.instance.close()},registerModule:function(b,c){c.options&&(a.magnificPopup.defaults[b]=c.options),a.extend(this.proto,c.proto),this.modules.push(b)},defaults:{disableOn:0,key:null,midClick:!1,mainClass:"",preloader:!0,focus:"",closeOnContentClick:!1,closeOnBgClick:!0,closeBtnInside:!0,showCloseBtn:!0,enableEscapeKey:!0,modal:!1,alignTop:!1,removalDelay:0,prependTo:null,fixedContentPos:"auto",fixedBgPos:"auto",overflowY:"auto",closeMarkup:'<button title="%title%" type="button" class="mfp-close">&#215;</button>',tClose:"Close (Esc)",tLoading:"Loading...",autoFocusLast:!0}},a.fn.magnificPopup=function(c){A();var d=a(this);if("string"==typeof c)if("open"===c){var e,f=u?d.data("magnificPopup"):d[0].magnificPopup,g=parseInt(arguments[1],10)||0;f.items?e=f.items[g]:(e=d,f.delegate&&(e=e.find(f.delegate)),e=e.eq(g)),b._openClick({mfpEl:e},d,f)}else b.isOpen&&b[c].apply(b,Array.prototype.slice.call(arguments,1));else c=a.extend(!0,{},c),u?d.data("magnificPopup",c):d[0].magnificPopup=c,b.addGroup(d,c);return d};var C,D,E,F="inline",G=function(){E&&(D.after(E.addClass(C)).detach(),E=null)};a.magnificPopup.registerModule(F,{options:{hiddenClass:"hide",markup:"",tNotFound:"Content not found"},proto:{initInline:function(){b.types.push(F),w(h+"."+F,function(){G()})},getInline:function(c,d){if(G(),c.src){var e=b.st.inline,f=a(c.src);if(f.length){var g=f[0].parentNode;g&&g.tagName&&(D||(C=e.hiddenClass,D=x(C),C="mfp-"+C),E=f.after(D).detach().removeClass(C)),b.updateStatus("ready")}else b.updateStatus("error",e.tNotFound),f=a("<div>");return c.inlineElement=f,f}return b.updateStatus("ready"),b._parseMarkup(d,{},c),d}}});var H,I="ajax",J=function(){H&&a(document.body).removeClass(H)},K=function(){J(),b.req&&b.req.abort()};a.magnificPopup.registerModule(I,{options:{settings:null,cursor:"mfp-ajax-cur",tError:'<a href="%url%">The content</a> could not be loaded.'},proto:{initAjax:function(){b.types.push(I),H=b.st.ajax.cursor,w(h+"."+I,K),w("BeforeChange."+I,K)},getAjax:function(c){H&&a(document.body).addClass(H),b.updateStatus("loading");var d=a.extend({url:c.src,success:function(d,e,f){var g={data:d,xhr:f};y("ParseAjax",g),b.appendContent(a(g.data),I),c.finished=!0,J(),b._setFocus(),setTimeout(function(){b.wrap.addClass(q)},16),b.updateStatus("ready"),y("AjaxContentAdded")},error:function(){J(),c.finished=c.loadError=!0,b.updateStatus("error",b.st.ajax.tError.replace("%url%",c.src))}},b.st.ajax.settings);return b.req=a.ajax(d),""}}});var L,M=function(c){if(c.data&&void 0!==c.data.title)return c.data.title;var d=b.st.image.titleSrc;if(d){if(a.isFunction(d))return d.call(b,c);if(c.el)return c.el.attr(d)||""}return""};a.magnificPopup.registerModule("image",{options:{markup:'<div class="mfp-figure"><div class="mfp-close"></div><figure><div class="mfp-img"></div><figcaption><div class="mfp-bottom-bar"><div class="mfp-title"></div><div class="mfp-counter"></div></div></figcaption></figure></div>',cursor:"mfp-zoom-out-cur",titleSrc:"title",verticalFit:!0,tError:'<a href="%url%">The image</a> could not be loaded.'},proto:{initImage:function(){var c=b.st.image,d=".image";b.types.push("image"),w(m+d,function(){"image"===b.currItem.type&&c.cursor&&a(document.body).addClass(c.cursor)}),w(h+d,function(){c.cursor&&a(document.body).removeClass(c.cursor),v.off("resize"+p)}),w("Resize"+d,b.resizeImage),b.isLowIE&&w("AfterChange",b.resizeImage)},resizeImage:function(){var a=b.currItem;if(a&&a.img&&b.st.image.verticalFit){var c=0;b.isLowIE&&(c=parseInt(a.img.css("padding-top"),10)+parseInt(a.img.css("padding-bottom"),10)),a.img.css("max-height",b.wH-c)}},_onImageHasSize:function(a){a.img&&(a.hasSize=!0,L&&clearInterval(L),a.isCheckingImgSize=!1,y("ImageHasSize",a),a.imgHidden&&(b.content&&b.content.removeClass("mfp-loading"),a.imgHidden=!1))},findImageSize:function(a){var c=0,d=a.img[0],e=function(f){L&&clearInterval(L),L=setInterval(function(){return d.naturalWidth>0?void b._onImageHasSize(a):(c>200&&clearInterval(L),c++,void(3===c?e(10):40===c?e(50):100===c&&e(500)))},f)};e(1)},getImage:function(c,d){var e=0,f=function(){c&&(c.img[0].complete?(c.img.off(".mfploader"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus("ready")),c.hasSize=!0,c.loaded=!0,y("ImageLoadComplete")):(e++,200>e?setTimeout(f,100):g()))},g=function(){c&&(c.img.off(".mfploader"),c===b.currItem&&(b._onImageHasSize(c),b.updateStatus("error",h.tError.replace("%url%",c.src))),c.hasSize=!0,c.loaded=!0,c.loadError=!0)},h=b.st.image,i=d.find(".mfp-img");if(i.length){var j=document.createElement("img");j.className="mfp-img",c.el&&c.el.find("img").length&&(j.alt=c.el.find("img").attr("alt")),c.img=a(j).on("load.mfploader",f).on("error.mfploader",g),j.src=c.src,i.is("img")&&(c.img=c.img.clone()),j=c.img[0],j.naturalWidth>0?c.hasSize=!0:j.width||(c.hasSize=!1)}return b._parseMarkup(d,{title:M(c),img_replaceWith:c.img},c),b.resizeImage(),c.hasSize?(L&&clearInterval(L),c.loadError?(d.addClass("mfp-loading"),b.updateStatus("error",h.tError.replace("%url%",c.src))):(d.removeClass("mfp-loading"),b.updateStatus("ready")),d):(b.updateStatus("loading"),c.loading=!0,c.hasSize||(c.imgHidden=!0,d.addClass("mfp-loading"),b.findImageSize(c)),d)}}});var N,O=function(){return void 0===N&&(N=void 0!==document.createElement("p").style.MozTransform),N};a.magnificPopup.registerModule("zoom",{options:{enabled:!1,easing:"ease-in-out",duration:300,opener:function(a){return a.is("img")?a:a.find("img")}},proto:{initZoom:function(){var a,c=b.st.zoom,d=".zoom";if(c.enabled&&b.supportsTransition){var e,f,g=c.duration,j=function(a){var b=a.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"),d="all "+c.duration/1e3+"s "+c.easing,e={position:"fixed",zIndex:9999,left:0,top:0,"-webkit-backface-visibility":"hidden"},f="transition";return e["-webkit-"+f]=e["-moz-"+f]=e["-o-"+f]=e[f]=d,b.css(e),b},k=function(){b.content.css("visibility","visible")};w("BuildControls"+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.content.css("visibility","hidden"),a=b._getItemToZoom(),!a)return void k();f=j(a),f.css(b._getOffset()),b.wrap.append(f),e=setTimeout(function(){f.css(b._getOffset(!0)),e=setTimeout(function(){k(),setTimeout(function(){f.remove(),a=f=null,y("ZoomAnimationEnded")},16)},g)},16)}}),w(i+d,function(){if(b._allowZoom()){if(clearTimeout(e),b.st.removalDelay=g,!a){if(a=b._getItemToZoom(),!a)return;f=j(a)}f.css(b._getOffset(!0)),b.wrap.append(f),b.content.css("visibility","hidden"),setTimeout(function(){f.css(b._getOffset())},16)}}),w(h+d,function(){b._allowZoom()&&(k(),f&&f.remove(),a=null)})}},_allowZoom:function(){return"image"===b.currItem.type},_getItemToZoom:function(){return b.currItem.hasSize?b.currItem.img:!1},_getOffset:function(c){var d;d=c?b.currItem.img:b.st.zoom.opener(b.currItem.el||b.currItem);var e=d.offset(),f=parseInt(d.css("padding-top"),10),g=parseInt(d.css("padding-bottom"),10);e.top-=a(window).scrollTop()-f;var h={width:d.width(),height:(u?d.innerHeight():d[0].offsetHeight)-g-f};return O()?h["-moz-transform"]=h.transform="translate("+e.left+"px,"+e.top+"px)":(h.left=e.left,h.top=e.top),h}}});var P="iframe",Q="//about:blank",R=function(a){if(b.currTemplate[P]){var c=b.currTemplate[P].find("iframe");c.length&&(a||(c[0].src=Q),b.isIE8&&c.css("display",a?"block":"none"))}};a.magnificPopup.registerModule(P,{options:{markup:'<div class="mfp-iframe-scaler"><div class="mfp-close"></div><iframe class="mfp-iframe" src="//about:blank" frameborder="0" allowfullscreen></iframe></div>',srcAction:"iframe_src",patterns:{youtube:{index:"youtube.com",id:"v=",src:"//www.youtube.com/embed/%id%?autoplay=1"},vimeo:{index:"vimeo.com/",id:"/",src:"//player.vimeo.com/video/%id%?autoplay=1"},gmaps:{index:"//maps.google.",src:"%id%&output=embed"}}},proto:{initIframe:function(){b.types.push(P),w("BeforeChange",function(a,b,c){b!==c&&(b===P?R():c===P&&R(!0))}),w(h+"."+P,function(){R()})},getIframe:function(c,d){var e=c.src,f=b.st.iframe;a.each(f.patterns,function(){return e.indexOf(this.index)>-1?(this.id&&(e="string"==typeof this.id?e.substr(e.lastIndexOf(this.id)+this.id.length,e.length):this.id.call(this,e)),e=this.src.replace("%id%",e),!1):void 0});var g={};return f.srcAction&&(g[f.srcAction]=e),b._parseMarkup(d,g,c),b.updateStatus("ready"),d}}});var S=function(a){var c=b.items.length;return a>c-1?a-c:0>a?c+a:a},T=function(a,b,c){return a.replace(/%curr%/gi,b+1).replace(/%total%/gi,c)};a.magnificPopup.registerModule("gallery",{options:{enabled:!1,arrowMarkup:'<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>',preload:[0,2],navigateByImgClick:!0,arrows:!0,tPrev:"Previous (Left arrow key)",tNext:"Next (Right arrow key)",tCounter:"%curr% of %total%"},proto:{initGallery:function(){var c=b.st.gallery,e=".mfp-gallery";return b.direction=!0,c&&c.enabled?(f+=" mfp-gallery",w(m+e,function(){c.navigateByImgClick&&b.wrap.on("click"+e,".mfp-img",function(){return b.items.length>1?(b.next(),!1):void 0}),d.on("keydown"+e,function(a){37===a.keyCode?b.prev():39===a.keyCode&&b.next()})}),w("UpdateStatus"+e,function(a,c){c.text&&(c.text=T(c.text,b.currItem.index,b.items.length))}),w(l+e,function(a,d,e,f){var g=b.items.length;e.counter=g>1?T(c.tCounter,f.index,g):""}),w("BuildControls"+e,function(){if(b.items.length>1&&c.arrows&&!b.arrowLeft){var d=c.arrowMarkup,e=b.arrowLeft=a(d.replace(/%title%/gi,c.tPrev).replace(/%dir%/gi,"left")).addClass(s),f=b.arrowRight=a(d.replace(/%title%/gi,c.tNext).replace(/%dir%/gi,"right")).addClass(s);e.click(function(){b.prev()}),f.click(function(){b.next()}),b.container.append(e.add(f))}}),w(n+e,function(){b._preloadTimeout&&clearTimeout(b._preloadTimeout),b._preloadTimeout=setTimeout(function(){b.preloadNearbyImages(),b._preloadTimeout=null},16)}),void w(h+e,function(){d.off(e),b.wrap.off("click"+e),b.arrowRight=b.arrowLeft=null})):!1},next:function(){b.direction=!0,b.index=S(b.index+1),b.updateItemHTML()},prev:function(){b.direction=!1,b.index=S(b.index-1),b.updateItemHTML()},goTo:function(a){b.direction=a>=b.index,b.index=a,b.updateItemHTML()},preloadNearbyImages:function(){var a,c=b.st.gallery.preload,d=Math.min(c[0],b.items.length),e=Math.min(c[1],b.items.length);for(a=1;a<=(b.direction?e:d);a++)b._preloadItem(b.index+a);for(a=1;a<=(b.direction?d:e);a++)b._preloadItem(b.index-a)},_preloadItem:function(c){if(c=S(c),!b.items[c].preloaded){var d=b.items[c];d.parsed||(d=b.parseEl(c)),y("LazyLoad",d),"image"===d.type&&(d.img=a('<img class="mfp-img" />').on("load.mfploader",function(){d.hasSize=!0}).on("error.mfploader",function(){d.hasSize=!0,d.loadError=!0,y("LazyLoadError",d)}).attr("src",d.src)),d.preloaded=!0}}}});var U="retina";a.magnificPopup.registerModule(U,{options:{replaceSrc:function(a){return a.src.replace(/\.\w+$/,function(a){return"@2x"+a})},ratio:1},proto:{initRetina:function(){if(window.devicePixelRatio>1){var a=b.st.retina,c=a.ratio;c=isNaN(c)?c():c,c>1&&(w("ImageHasSize."+U,function(a,b){b.img.css({"max-width":b.img[0].naturalWidth/c,width:"100%"})}),w("ElementParse."+U,function(b,d){d.src=a.replaceSrc(d,c)}))}}}}),A()});
(function (global, factory){
typeof exports==='object'&&typeof module!=='undefined' ? factory(exports) :
typeof define==='function'&&define.amd ? define(['exports'], factory) :
(factory((global.SpriteSpin={})));
}(this, (function (exports){ 'use strict';
var Api= (function (){
function Api(data){
this.data=data;
}
return Api;
}());
function extendApi(methods){
var api=Api.prototype;
for (var key in methods){
if(methods.hasOwnProperty(key)){
if(api[key]){
throw new Error('API method is already defined: ' + key);
}else{
api[key]=methods[key];
}}
}
return api;
}
var $$1=window.jQuery||window.$;
function getCursorPosition(event){
var touches=event.touches;
var source=event;
if(event.touches===undefined&&event.originalEvent!==undefined){
touches=event.originalEvent.touches;
}
if(touches!==undefined&&touches.length > 0){
source=touches[0];
}
return {
x: source.clientX||0,
y: source.clientY||0
};}
var canvas;
var context;
function detectionContext(){
if(context){
return context;
}
if(!canvas){
canvas=document.createElement('canvas');
}
if(!canvas||!canvas.getContext){
return null;
}
context=canvas.getContext('2d');
return context;
}
function detectSubsampling(img, width, height){
if(!detectionContext()){
return false;
}
if(width * height <=1024 * 1024){
return false;
}
canvas.width=canvas.height=1;
context.fillStyle='#FF00FF';
context.fillRect(0, 0, 1, 1);
context.drawImage(img, -width + 1, 0);
try {
var dat=context.getImageData(0, 0, 1, 1).data;
return (dat[0]===255)&&(dat[1]===0)&&(dat[2]===255);
}
catch (err){
return false;
}}
function getOuterSize(data){
var width=Math.floor(data.width||data.frameWidth||data.target.innerWidth());
var height=Math.floor(data.height||data.frameHeight||data.target.innerHeight());
return {
aspect: width / height,
height: height,
width: width
};}
function getComputedSize(data){
var size=getOuterSize(data);
if(typeof window.getComputedStyle!=='function'){
return size;
}
var style=window.getComputedStyle(data.target[0]);
if(!style.width){
return size;
}
size.width=Math.floor(Number(style.width.replace('px', '')));
size.height=Math.floor(size.width / size.aspect);
return size;
}
function getInnerSize(data){
var width=Math.floor(data.frameWidth||data.width||data.target.innerWidth());
var height=Math.floor(data.frameHeight||data.height||data.target.innerHeight());
return {
aspect: width / height,
height: height,
width: width
};}
function getInnerLayout(mode, inner, outer){
var isFit=mode==='fit';
var isFill=mode==='fill';
var isMatch=mode==='stretch';
var layout={
width: '100%',
height: '100%',
top: 0,
left: 0,
bottom: 0,
right: 0,
position: 'absolute',
overflow: 'hidden'
};
if(!mode||isMatch){
return layout;
}
var aspectIsGreater=inner.aspect >=outer.aspect;
var width=inner.width;
var height=inner.height;
if(isFit&&aspectIsGreater||isFill&&!aspectIsGreater){
width=outer.width;
height=outer.width / inner.aspect;
}
if(isFill&&aspectIsGreater||isFit&&!aspectIsGreater){
height=outer.height;
width=outer.height * inner.aspect;
}
width=Math.floor(width);
height=Math.floor(height);
layout.width=width;
layout.height=height;
layout.top=Math.floor((outer.height - height) / 2);
layout.left=Math.floor((outer.width - width) / 2);
layout.right=layout.left;
layout.bottom=layout.top;
return layout;
}
var img;
function naturalSize(image){
if(image.naturalWidth){
return {
height: image.naturalHeight,
width: image.naturalWidth
};}
img=img||new Image();
img.src=image.src;
return {
height: img.height,
width: img.width
};}
function measure(images, options){
if(images.length===1){
return [measureSheet(images[0], options)];
}
else if(options.framesX&&options.framesY){
return measureMutipleSheets(images, options);
}else{
return measureFrames(images, options);
}}
function measureSheet(image, options){
var result={ id: 0, sprites: [] };
measureImage(image, options, result);
var frames=options.frames;
var framesX=Number(options.framesX)||frames;
var framesY=Math.ceil(frames / framesX);
var frameWidth=Math.floor(result.width / framesX);
var frameHeight=Math.floor(result.height / framesY);
var divisor=result.isSubsampled ? 2:1;
for (var i=0; i < frames; i++){
var x=(i % framesX) * frameWidth;
var y=Math.floor(i / framesX) * frameHeight;
result.sprites.push({
id: i,
x: x, y: y,
width: frameWidth,
height: frameHeight,
sampledX: x / divisor,
sampledY: y / divisor,
sampledWidth: frameWidth / divisor,
sampledHeight: frameHeight / divisor
});
}
return result;
}
function measureFrames(images, options){
var result=[];
for (var id=0; id < images.length; id++){
var sheet=measureSheet(images[id], { frames: 1, framesX: 1, detectSubsampling: options.detectSubsampling });
sheet.id=id;
result.push(sheet);
}
return result;
}
function measureMutipleSheets(images, options){
var result=[];
for (var id=0; id < images.length; id++){
var sheet=measureSheet(images[id], {
frames: undefined,
framesX: options.framesX,
framesY: options.framesY,
detectSubsampling: options.detectSubsampling
});
sheet.id=id;
result.push(sheet);
}
return result;
}
function measureImage(image, options, result){
var size=naturalSize(image);
result.isSubsampled=options.detectSubsampling&&detectSubsampling(image, size.width, size.height);
result.width=size.width;
result.height=size.height;
result.sampledWidth=size.width / (result.isSubsampled ? 2:1);
result.sampledHeight=size.height / (result.isSubsampled ? 2:1);
return result;
}
function findSpecs(metrics, frames, frame, lane){
var spriteId=lane * frames + frame;
var sheetId=0;
var sprite=null;
var sheet=null;
while (true){
sheet=metrics[sheetId];
if(!sheet){
break;
}
if(spriteId >=sheet.sprites.length){
spriteId -=sheet.sprites.length;
sheetId++;
continue;
}
sprite=sheet.sprites[spriteId];
break;
}
return { sprite: sprite, sheet: sheet };}
function indexOf(element, arr){
for (var i=0; i < arr.length; i++){
if(arr[i]===element){
return i;
}}
}
function noop(){
}
function preload(opts){
var src;
var input=opts.source;
src=typeof input==='string' ? [input]:input;
var images=[];
var targetCount=(opts.preloadCount||src.length);
var onInitiated=opts.initiated||noop;
var onProgress=opts.progress||noop;
var onComplete=opts.complete||noop;
var count=0;
var completed=false;
var firstLoaded=false;
var tick=function (){
count +=1;
onProgress({
index: indexOf(this, images),
loaded: count,
total: src.length,
percent: Math.round((count / src.length) * 100)
});
firstLoaded=firstLoaded||(this===images[0]);
if(firstLoaded&&!completed&&(count >=targetCount)){
completed=true;
onComplete(images);
}};
for (var _i=0, src_1=src; _i < src_1.length; _i++){
var url=src_1[_i];
var img=new Image();
images.push(img);
img.onload=img.onabort=img.onerror=tick;
img.src=url;
}
onInitiated(images);
}
function padNumber(num, length, pad){
var result=String(num);
while (result.length < length){
result=String(pad) + result;
}
return result;
}
function sourceArray(template, opts){
var digits=opts.digits||2;
var lPlacer=opts.lanePlacer||'{lane}';
var fPlacer=opts.framePlacer||'{frame}';
var fStart=0;
var fEnd=0;
if(opts.frame){
fStart=opts.frame[0];
fEnd=opts.frame[1];
}
var lStart=0;
var lEnd=0;
if(opts.lane){
lStart=opts.lane[0];
lEnd=opts.lane[1];
}
var result=[];
for (var lane=lStart; lane <=lEnd; lane +=1){
for (var frame=fStart; frame <=fEnd; frame +=1){
result.push(template
.replace(lPlacer, padNumber(lane, digits, '0'))
.replace(fPlacer, padNumber(frame, digits, '0')));
}}
return result;
}
var namespace='spritespin';
var eventNames=[
'mousedown',
'mousemove',
'mouseup',
'mouseenter',
'mouseover',
'mouseleave',
'mousewheel',
'wheel',
'click',
'dblclick',
'touchstart',
'touchmove',
'touchend',
'touchcancel',
'selectstart',
'gesturestart',
'gesturechange',
'gestureend'
];
var callbackNames=[
'onInit',
'onProgress',
'onLoad',
'onFrameChanged',
'onFrame',
'onDraw',
'onComplete',
'onDestroy'
];
var eventsToPrevent=[
'dragstart'
];
var defaults={
source: undefined,
width: undefined,
height: undefined,
frames: undefined,
framesX: undefined,
lanes: 1,
sizeMode: undefined,
renderer: 'canvas',
lane: 0,
frame: 0,
frameTime: 40,
animate: true,
retainAnimate: false,
reverse: false,
loop: true,
stopFrame: 0,
wrap: true,
wrapLane: false,
sense: 1,
senseLane: undefined,
orientation: 'horizontal',
detectSubsampling: true,
preloadCount: undefined,
responsive: undefined,
plugins: [
'360',
'drag'
]
};
function noop$1(){
}
function wrapConsole(type){
return console&&console[type] ? function (){
var args=[];
for (var _i=0; _i < arguments.length; _i++){
args[_i]=arguments[_i];
}
return console.log.apply(console, args);
}:noop$1;
}
var log=wrapConsole('log');
var warn=wrapConsole('warn');
var error=wrapConsole('error');
function toArray(value){
return Array.isArray(value) ? value:[value];
}
function clamp(value, min, max){
return (value > max ? max:(value < min ? min:value));
}
function wrap(value, min, max, size){
while (value > max){
value -=size;
}
while (value < min){
value +=size;
}
return value;
}
function prevent(e){
e.preventDefault();
return false;
}
function bind(target, event, func){
if(func){
target.bind(event + '.' + namespace, function (e){
func.apply(target, [e, target.spritespin('data')]);
});
}}
function unbind(target){
target.unbind('.' + namespace);
}
function isFunction(fn){
return typeof fn==='function';
}
function pixelRatio(context){
var devicePixelRatio=window.devicePixelRatio||1;
var backingStoreRatio=context.webkitBackingStorePixelRatio ||
context.mozBackingStorePixelRatio ||
context.msBackingStorePixelRatio ||
context.oBackingStorePixelRatio ||
context.backingStorePixelRatio||1;
return devicePixelRatio / backingStoreRatio;
}
var _Utils=Object.freeze({
$: $$1,
getCursorPosition: getCursorPosition,
detectSubsampling: detectSubsampling,
getOuterSize: getOuterSize,
getComputedSize: getComputedSize,
getInnerSize: getInnerSize,
getInnerLayout: getInnerLayout,
measure: measure,
findSpecs: findSpecs,
naturalSize: naturalSize,
preload: preload,
sourceArray: sourceArray,
noop: noop$1,
log: log,
warn: warn,
error: error,
toArray: toArray,
clamp: clamp,
wrap: wrap,
prevent: prevent,
bind: bind,
unbind: unbind,
isFunction: isFunction,
pixelRatio: pixelRatio
});
function applyLayout(data){
data.target
.attr('unselectable', 'on')
.css({
width: '',
height: '',
'-ms-user-select': 'none',
'-moz-user-select': 'none',
'-khtml-user-select': 'none',
'-webkit-user-select': 'none',
'user-select': 'none'
});
var size=data.responsive ? getComputedSize(data):getOuterSize(data);
var layout=getInnerLayout(data.sizeMode, getInnerSize(data), size);
data.target.css({
width: size.width,
height: size.height,
position: 'relative',
overflow: 'hidden'
});
data.stage
.css(layout)
.hide();
if(!data.canvas){
return;
}
data.canvas.css(layout).hide();
data.canvasRatio=data.canvasRatio||pixelRatio(data.context);
if(typeof layout.width==='number'&&typeof layout.height==='number'){
data.canvas[0].width=(layout.width * data.canvasRatio)||size.width;
data.canvas[0].height=(layout.height * data.canvasRatio)||size.height;
}else{
data.canvas[0].width=(size.width * data.canvasRatio);
data.canvas[0].height=(size.height * data.canvasRatio);
}
data.context.scale(data.canvasRatio, data.canvasRatio);
}
function getState(data, name){
data.state=data.state||{};
data.state[name]=data.state[name]||{};
return data.state[name];
}
function getPluginState(data, name){
var state=getState(data, 'plugin');
state[name]=state[name]||{};
return state[name];
}
function is(data, key){
return !!getState(data, 'flags')[key];
}
function flag(data, key, value){
getState(data, 'flags')[key] = !!value;
}
function getPlaybackState(data){
return getState(data, 'playback');
}
function updateLane(data, lane){
data.lane=data.wrapLane
? wrap(lane, 0, data.lanes - 1, data.lanes)
: clamp(lane, 0, data.lanes - 1);
}
function updateAnimationFrame(data){
data.frame +=(data.reverse ? -1:1);
data.frame=wrap(data.frame, 0, data.frames - 1, data.frames);
if(!data.loop&&(data.frame===data.stopFrame)){
stopAnimation(data);
}}
function updateInputFrame(data, frame){
data.frame=Number(frame);
data.frame=data.wrap
? wrap(data.frame, 0, data.frames - 1, data.frames)
: clamp(data.frame, 0, data.frames - 1);
}
function updateAnimation(data){
var state=getPlaybackState(data);
if(state.handler){
updateBefore(data);
updateAnimationFrame(data);
updateAfter(data);
}}
function updateBefore(data){
var state=getPlaybackState(data);
state.lastFrame=data.frame;
state.lastLane=data.lane;
}
function updateAfter(data){
var state=getPlaybackState(data);
if(state.lastFrame!==data.frame||state.lastLane!==data.lane){
data.target.trigger('onFrameChanged.' + namespace, data);
}
data.target.trigger('onFrame.' + namespace, data);
data.target.trigger('onDraw.' + namespace, data);
}
function updateFrame(data, frame, lane){
updateBefore(data);
if(frame!=null){
updateInputFrame(data, frame);
}
if(lane!=null){
updateLane(data, lane);
}
updateAfter(data);
}
function stopAnimation(data){
data.animate=false;
var state=getPlaybackState(data);
if(state.handler!=null){
window.clearInterval(state.handler);
state.handler=null;
}}
function applyAnimation(data){
var state=getPlaybackState(data);
if(state.handler&&(!data.animate||state.frameTime!==data.frameTime)){
stopAnimation(data);
}
if(data.animate&&!state.handler){
state.frameTime=data.frameTime;
state.handler=window.setInterval(function (){ return updateAnimation(data); }, state.frameTime);
}}
function startAnimation(data){
data.animate=true;
applyAnimation(data);
}
var plugins={};
function registerPlugin(name, plugin){
if(plugins[name]){
error("Plugin name \"" + name + "\" is already taken");
return;
}
plugin=plugin||{};
plugins[name]=plugin;
return plugin;
}
function registerModule(name, plugin){
warn('"registerModule" is deprecated, use "registerPlugin" instead');
registerPlugin(name, plugin);
}
function getPlugin(name){
return plugins[name];
}
function applyPlugins(data){
fixPlugins(data);
for (var i=0; i < data.plugins.length; i +=1){
var name_1=data.plugins[i];
if(typeof name_1!=='string'){
continue;
}
var plugin=getPlugin(name_1);
if(!plugin){
error('No plugin found with name ' + name_1);
continue;
}
data.plugins[i]=plugin;
}}
function fixPlugins(data){
if(data['mods']){
warn('"mods" option is deprecated, use "plugins" instead');
data.plugins=data['mods'];
delete data['mods'];
}
if(data['behavior']){
warn('"behavior" option is deprecated, use "plugins" instead');
data.plugins.push(data['behavior']);
delete data['behavior'];
}
if(data['module']){
warn('"module" option is deprecated, use "plugins" instead');
data.plugins.push(data['module']);
delete data['module'];
}}
var $$2=$$1;
var counter=0;
var instances={};
function pushInstance(data){
counter +=1;
data.id=String(counter);
instances[data.id]=data;
}
function popInstance(data){
delete instances[data.id];
}
function eachInstance(cb){
for (var id in instances){
if(instances.hasOwnProperty(id)){
cb(instances[id]);
}}
}
var lazyinit=function (){
lazyinit=function (){ };
function onEvent(eventName, e){
eachInstance(function (data){
for (var _i=0, _a=data.plugins; _i < _a.length; _i++){
var module_1=_a[_i];
if(typeof module_1[eventName]==='function'){
module_1[eventName].apply(data.target, [e, data]);
}}
});
}
function onResize(){
eachInstance(function (data){
if(data.responsive){
boot(data);
}});
}
var _loop_1=function (eventName){
$$2(window.document).bind(eventName + '.' + namespace, function (e){
onEvent('document' + eventName, e);
});
};
for (var _i=0, eventNames_1=eventNames; _i < eventNames_1.length; _i++){
var eventName=eventNames_1[_i];
_loop_1(eventName);
}
var resizeTimeout=null;
$$2(window).on('resize', function (){
window.clearTimeout(resizeTimeout);
resizeTimeout=window.setTimeout(onResize, 100);
});
};
function applyEvents(data){
var target=data.target;
unbind(target);
for (var _i=0, eventsToPrevent_1=eventsToPrevent; _i < eventsToPrevent_1.length; _i++){
var eName=eventsToPrevent_1[_i];
bind(target, eName, prevent);
}
for (var _a=0, _b=data.plugins; _a < _b.length; _a++){
var plugin=_b[_a];
for (var _c=0, eventNames_2=eventNames; _c < eventNames_2.length; _c++){
var eName=eventNames_2[_c];
bind(target, eName, plugin[eName]);
}
for (var _d=0, callbackNames_1=callbackNames; _d < callbackNames_1.length; _d++){
var eName=callbackNames_1[_d];
bind(target, eName, plugin[eName]);
}}
bind(target, 'onLoad', function (e, d){
applyAnimation(d);
});
for (var _e=0, callbackNames_2=callbackNames; _e < callbackNames_2.length; _e++){
var eName=callbackNames_2[_e];
bind(target, eName, data[eName]);
}}
function applyMetrics(data){
if(!data.images){
data.metrics=[];
}
data.metrics=measure(data.images, data);
var spec=findSpecs(data.metrics, data.frames, 0, 0);
if(spec.sprite){
data.frameWidth=spec.sprite.width;
data.frameHeight=spec.sprite.height;
}}
function boot(data){
applyPlugins(data);
applyEvents(data);
applyLayout(data);
data.source=toArray(data.source);
data.loading=true;
data.target
.addClass('loading')
.trigger('onInit.' + namespace, data);
preload({
source: data.source,
preloadCount: data.preloadCount,
progress: function (progress){
data.progress=progress;
data.target.trigger('onProgress.' + namespace, data);
},
complete: function (images){
data.images=images;
data.loading=false;
data.frames=data.frames||images.length;
applyMetrics(data);
applyLayout(data);
data.stage.show();
data.target
.removeClass('loading')
.trigger('onLoad.' + namespace, data)
.trigger('onFrame.' + namespace, data)
.trigger('onDraw.' + namespace, data)
.trigger('onComplete.' + namespace, data);
}});
}
function create(options){
var _this=this;
var target=options.target;
var data=$$2.extend(true, {}, defaults, options);
data.source=data.source||[];
data.plugins=data.plugins||[];
target.find('img').each(function (){
if(!Array.isArray(data.source)){
data.source=[];
}
data.source.push($$2(_this).attr('src'));
});
target
.empty()
.addClass('spritespin-instance')
.append("<div class='spritespin-stage'></div>");
if(data.renderer==='canvas'){
var canvas=document.createElement('canvas');
if(!!(canvas.getContext&&canvas.getContext('2d'))){
data.canvas=$$2(canvas).addClass('spritespin-canvas');
data.context=canvas.getContext('2d');
target.append(data.canvas);
target.addClass('with-canvas');
}else{
data.renderer='image';
}}
data.target=target;
data.stage=target.find('.spritespin-stage');
target.data(namespace, data);
pushInstance(data);
return data;
}
function createOrUpdate(options){
lazyinit();
var data=options.target.data(namespace);
if(!data){
data=create(options);
}else{
$$2.extend(data, options);
}
boot(data);
return data;
}
function destroy(data){
popInstance(data);
stopAnimation(data);
data.target
.trigger('onDestroy', data)
.html(null)
.attr('style', null)
.attr('unselectable', null)
.removeClass(['spritespin-instance', 'with-canvas']);
unbind(data.target);
data.target.removeData(namespace);
}
function getInputState(data){
return getState(data, 'input');
}
function updateInput(e, data){
var cursor=getCursorPosition(e);
var state=getInputState(data);
state.oldX=state.currentX;
state.oldY=state.currentY;
state.currentX=cursor.x;
state.currentY=cursor.y;
if(state.oldX===undefined||state.oldY===undefined){
state.oldX=state.currentX;
state.oldY=state.currentY;
}
if(state.startX===undefined||state.startY===undefined){
state.startX=state.currentX;
state.startY=state.currentY;
state.clickframe=data.frame;
state.clicklane=data.lane;
}
state.dX=state.currentX - state.startX;
state.dY=state.currentY - state.startY;
state.ddX=state.currentX - state.oldX;
state.ddY=state.currentY - state.oldY;
state.ndX=state.dX / data.target.innerWidth();
state.ndY=state.dY / data.target.innerHeight();
state.nddX=state.ddX / data.target.innerWidth();
state.nddY=state.ddY / data.target.innerHeight();
}
function resetInput(data){
var input=getInputState(data);
input.startX=input.startY=undefined;
input.currentX=input.currentY=undefined;
input.oldX=input.oldY=undefined;
input.dX=input.dY=0;
input.ddX=input.ddY=0;
input.ndX=input.ndY=0;
input.nddX=input.nddY=0;
}
function extension(option, value){
var $target=$$1(this);
if(option==='data'){
return $target.data(namespace);
}
if(option==='api'){
var data=$target.data(namespace);
data.api=data.api||new Api(data);
return data.api;
}
if(option==='destroy'){
return $target.each(function (){
var data=$target.data(namespace);
if(data){
destroy(data);
}});
}
if(arguments.length===2&&typeof option==='string'){
option=(_a={}, _a[option]=value, _a);
}
if(typeof option==='object'){
return createOrUpdate($$1.extend(true, { target: $target }, option)).target;
}
throw new Error('Invalid call to spritespin');
var _a;
}
$$1.fn[namespace]=extension;
extendApi({
isPlaying: function (){
return getPlaybackState(this.data).handler!=null;
},
isLooping: function (){
return this.data.loop;
},
toggleAnimation: function (){
if(this.isPlaying()){
this.stopAnimation();
}else{
this.startAnimation();
}},
stopAnimation: function (){
this.data.animate=false;
stopAnimation(this.data);
},
startAnimation: function (){
this.data.animate=true;
applyAnimation(this.data);
},
loop: function (value){
this.data.loop=value;
applyAnimation(this.data);
return this;
},
currentFrame: function (){
return this.data.frame;
},
updateFrame: function (frame){
updateFrame(this.data, frame);
return this;
},
skipFrames: function (step){
var data=this.data;
updateFrame(data, data.frame + (data.reverse ? -step:+step));
return this;
},
nextFrame: function (){
return this.skipFrames(1);
},
prevFrame: function (){
return this.skipFrames(-1);
},
playTo: function (frame, options){
var data=this.data;
options=options||{};
if(!options.force&&data.frame===frame){
return;
}
if(options.nearest){
var a=frame - data.frame;
var b=frame > data.frame ? a - data.frames:a + data.frames;
var c=Math.abs(a) < Math.abs(b) ? a:b;
data.reverse=c < 0;
}
data.animate=true;
data.loop=false;
data.stopFrame=frame;
applyAnimation(data);
return this;
}});
function pick(target, names){
for (var _i=0, names_1=names; _i < names_1.length; _i++){
var name_1=names_1[_i];
if(target[name_1]||name_1 in target){
return name_1;
}}
return names[0];
}
var browser={
requestFullscreen: pick(document.documentElement, [
'requestFullscreen',
'webkitRequestFullScreen',
'mozRequestFullScreen',
'msRequestFullscreen'
]),
exitFullscreen: pick(document, [
'exitFullscreen',
'webkitExitFullscreen',
'webkitCancelFullScreen',
'mozCancelFullScreen',
'msExitFullscreen'
]),
fullscreenElement: pick(document, [
'fullscreenElement',
'webkitFullscreenElement',
'webkitCurrentFullScreenElement',
'mozFullScreenElement',
'msFullscreenElement'
]),
fullscreenEnabled: pick(document, [
'fullscreenEnabled',
'webkitFullscreenEnabled',
'mozFullScreenEnabled',
'msFullscreenEnabled'
]),
fullscreenchange: pick(document, [
'onfullscreenchange',
'onwebkitfullscreenchange',
'onmozfullscreenchange',
'onMSFullscreenChange'
]).replace(/^on/, ''),
fullscreenerror: pick(document, [
'onfullscreenerror',
'onwebkitfullscreenerror',
'onmozfullscreenerror',
'onMSFullscreenError'
]).replace(/^on/, '')
};
var changeEvent=browser.fullscreenchange + '.' + namespace + '-fullscreen';
function unbindChangeEvent(){
$$1(document).unbind(changeEvent);
}
function bindChangeEvent(callback){
unbindChangeEvent();
$$1(document).bind(changeEvent, callback);
}
var orientationEvent='orientationchange.' + namespace + '-fullscreen';
function unbindOrientationEvent(){
$$1(window).unbind(orientationEvent);
}
function bindOrientationEvent(callback){
unbindOrientationEvent();
$$1(window).bind(orientationEvent, callback);
}
function requestFullscreenNative(e){
e=e||document.documentElement;
e[browser.requestFullscreen]();
}
function exitFullscreen(){
return document[browser.exitFullscreen]();
}
function fullscreenEnabled(){
return document[browser.fullscreenEnabled];
}
function fullscreenElement(){
return document[browser.fullscreenElement];
}
function isFullscreen(){
return !!fullscreenElement();
}
function toggleFullscreen(data, opts){
if(isFullscreen()){
this.apiRequestFullscreen(opts);
}else{
this.exitFullscreen();
}}
function requestFullscreen(data, opts){
opts=opts||{};
var oWidth=data.width;
var oHeight=data.height;
var oSource=data.source;
var oSize=data.sizeMode;
var oResponsive=data.responsive;
var enter=function (){
data.width=window.screen.width;
data.height=window.screen.height;
data.source=(opts.source||oSource);
data.sizeMode=opts.sizeMode||'fit';
data.responsive=false;
boot(data);
};
var exit=function (){
data.width=oWidth;
data.height=oHeight;
data.source=oSource;
data.sizeMode=oSize;
data.responsive=oResponsive;
boot(data);
};
bindChangeEvent(function (){
if(isFullscreen()){
enter();
bindOrientationEvent(enter);
}else{
unbindChangeEvent();
unbindOrientationEvent();
exit();
}});
requestFullscreenNative(data.target[0]);
}
extendApi({
fullscreenEnabled: fullscreenEnabled,
fullscreenElement: fullscreenElement,
exitFullscreen: exitFullscreen,
toggleFullscreen: function (opts){
toggleFullscreen(this.data, opts);
},
requestFullscreen: function (opts){
requestFullscreen(this.data, opts);
}});
(function (){
var NAME='click';
function click(e, data){
if(data.loading||!data.stage.is(':visible')){
return;
}
updateInput(e, data);
var input=getInputState(data);
var half, pos;
var target=data.target, offset=target.offset();
if(data.orientation==='horizontal'){
half=target.innerWidth() / 2;
pos=input.currentX - offset.left;
}else{
half=target.innerHeight() / 2;
pos=input.currentY - offset.top;
}
updateFrame(data, data.frame + (pos > half ? 1:-1));
}
registerPlugin(NAME, {
name: NAME,
mouseup: click,
touchend: click
});
})();
(function (){
var NAME='drag';
function getState$$1(data){
return getPluginState(data, NAME);
}
function getAxis(data){
if(typeof data.orientation==='number'){
return data.orientation * Math.PI / 180;
}
if(data.orientation==='horizontal'){
return 0;
}
return Math.PI / 2;
}
function dragStart(e, data){
var state=getState$$1(data);
if(data.loading||is(data, 'dragging')||!data.stage.is(':visible')){
return;
}
var now=new Date().getTime();
if(state.startAt&&(now - state.startAt > 200)){
e.preventDefault();
}
state.startAt=now;
state.wasPlaying = !!getPlaybackState(data).handler;
state.frame=data.frame||0;
state.lane=data.lane||0;
flag(data, 'dragging', true);
updateInput(e, data);
}
function dragEnd(e, data){
if(is(data, 'dragging')){
flag(data, 'dragging', false);
resetInput(data);
if(data.retainAnimate&&getState$$1(data).wasPlaying){
startAnimation(data);
}}
}
function drag(e, data){
var state=getState$$1(data);
var input=getInputState(data);
if(!is(data, 'dragging')){
return;
}
updateInput(e, data);
var rad=getAxis(data);
var sn=Math.sin(rad);
var cs=Math.cos(rad);
var x=((input.nddX * cs - input.nddY * sn) * data.sense)||0;
var y=((input.nddX * sn + input.nddY * cs) * (data.senseLane||data.sense))||0;
state.frame +=data.frames * x;
state.lane +=data.lanes * y;
var oldFrame=data.frame;
var oldLane=data.lane;
updateFrame(data, Math.floor(state.frame), Math.floor(state.lane));
stopAnimation(data);
}
function mousemove(e, data){
dragStart(e, data);
drag(e, data);
}
registerPlugin('drag', {
name: 'drag',
mousedown: dragStart,
mousemove: drag,
mouseup: dragEnd,
documentmousemove: drag,
documentmouseup: dragEnd,
touchstart: dragStart,
touchmove: drag,
touchend: dragEnd,
touchcancel: dragEnd
});
registerPlugin('move', {
name: 'move',
mousemove: mousemove,
mouseleave: dragEnd,
touchstart: dragStart,
touchmove: drag,
touchend: dragEnd,
touchcancel: dragEnd
});
})();
(function (){
var NAME='hold';
function getState$$1(data){
return getPluginState(data, NAME);
}
function rememberOptions(data){
var state=getState$$1(data);
state.frameTime=data.frameTime;
state.animate=data.animate;
state.reverse=data.reverse;
}
function restoreOptions(data){
var state=getState$$1(data);
data.frameTime=state.frameTime;
data.animate=state.animate;
data.reverse=state.reverse;
}
function start(e, data){
if(is(data, 'loading')||is(data, 'dragging')||!data.stage.is(':visible')){
return;
}
rememberOptions(data);
updateInput(e, data);
flag(data, 'dragging', true);
data.animate=true;
applyAnimation(data);
}
function stop(e, data){
flag(data, 'dragging', false);
resetInput(data);
stopAnimation(data);
restoreOptions(data);
applyAnimation(data);
}
function update(e, data){
if(!is(data, 'dragging')){
return;
}
updateInput(e, data);
var input=getInputState(data);
var half, delta;
var target=data.target, offset=target.offset();
if(data.orientation==='horizontal'){
half=target.innerWidth() / 2;
delta=(input.currentX - offset.left - half) / half;
}else{
half=(data.height / 2);
delta=(input.currentY - offset.top - half) / half;
}
data.reverse=delta < 0;
delta=delta < 0 ? -delta:delta;
data.frameTime=80 * (1 - delta) + 20;
if(((data.orientation==='horizontal')&&(input.dX < input.dY)) ||
((data.orientation==='vertical')&&(input.dX < input.dY))){
e.preventDefault();
}}
function onFrame(e, data){
data.animate=true;
applyAnimation(data);
}
registerPlugin(NAME, {
name: NAME,
mousedown: start,
mousemove: update,
mouseup: stop,
mouseleave: stop,
touchstart: start,
touchmove: update,
touchend: stop,
touchcancel: stop,
onFrame: onFrame
});
})();
(function (){
var NAME='swipe';
function getState$$1(data){
return getPluginState(data, NAME);
}
function getOption(data, name, fallback){
return data[name]||fallback;
}
function init(e, data){
var state=getState$$1(data);
state.fling=getOption(data, 'swipeFling', 10);
state.snap=getOption(data, 'swipeSnap', 0.50);
}
function start(e, data){
if(!data.loading&&!is(data, 'dragging')){
updateInput(e, data);
flag(data, 'dragging', true);
}}
function update(e, data){
if(!is(data, 'dragging')){
return;
}
updateInput(e, data);
var frame=data.frame;
var lane=data.lane;
updateFrame(data, frame, lane);
}
function end(e, data){
if(!is(data, 'dragging')){
return;
}
flag(data, 'dragging', false);
var state=getState$$1(data);
var input=getInputState(data);
var frame=data.frame;
var lane=data.lane;
var snap=state.snap;
var fling=state.fling;
var dS, dF;
if(data.orientation==='horizontal'){
dS=input.ndX;
dF=input.ddX;
}else{
dS=input.ndY;
dF=input.ddY;
}
if(dS >=snap||dF >=fling){
frame=data.frame - 1;
}
else if(dS <=-snap||dF <=-fling){
frame=data.frame + 1;
}
resetInput(data);
updateFrame(data, frame, lane);
stopAnimation(data);
}
registerPlugin(NAME, {
name: NAME,
onLoad: init,
mousedown: start,
mousemove: update,
mouseup: end,
mouseleave: end,
touchstart: start,
touchmove: update,
touchend: end,
touchcancel: end
});
})();
(function (){
var NAME='wheel';
function wheel(e, data){
if(!data.loading&&data.stage.is(':visible')){
e.preventDefault();
var we=e.originalEvent;
var signX=we.deltaX===0 ? 0:we.deltaX > 0 ? 1:-1;
var signY=we.deltaY===0 ? 0:we.deltaY > 0 ? 1:-1;
updateFrame(data, data.frame + signY, data.lane + signX);
}}
registerPlugin(NAME, {
name: NAME,
wheel: wheel
});
})();
(function (){
var template="\n<div class='spritespin-progress'>\n  <div class='spritespin-progress-label'></div>\n  <div class='spritespin-progress-bar'></div>\n</div>\n";
function getState$$1(data){
return getPluginState(data, NAME);
}
var NAME='progress';
function onInit(e, data){
var state=getState$$1(data);
if(!state.stage){
state.stage=$$1(template);
state.stage.appendTo(data.target);
}
state.stage.find('.spritespin-progress-label')
.text("0%")
.css({ 'text-align': 'center' });
state.stage.find('.spritespin-progress-bar').css({
width: "0%"
});
state.stage.hide().fadeIn();
}
function onProgress(e, data){
var state=getState$$1(data);
state.stage.find('.spritespin-progress-label')
.text(data.progress.percent + "%")
.css({ 'text-align': 'center' });
state.stage.find('.spritespin-progress-bar').css({
width: data.progress.percent + "%"
});
}
function onLoad(e, data){
$$1(getState$$1(data).stage).fadeOut();
}
function onDestroy(e, data){
$$1(getState$$1(data).stage).remove();
}
registerPlugin(NAME, {
name: NAME,
onInit: onInit,
onProgress: onProgress,
onLoad: onLoad,
onDestroy: onDestroy
});
})();
(function (){
var NAME='360';
function onLoad(e, data){
data.stage.find('.spritespin-frames').detach();
if(data.renderer==='image'){
$(data.images).addClass('spritespin-frames').appendTo(data.stage);
}}
function onDraw(e, data){
var specs=findSpecs(data.metrics, data.frames, data.frame, data.lane);
var sheet=specs.sheet;
var sprite=specs.sprite;
if(!sheet||!sprite){
return;
}
var src=data.source[sheet.id];
var image=data.images[sheet.id];
if(data.renderer==='canvas'){
data.canvas.show();
var w=data.canvas[0].width / data.canvasRatio;
var h=data.canvas[0].height / data.canvasRatio;
data.context.clearRect(0, 0, w, h);
data.context.drawImage(image, sprite.sampledX, sprite.sampledY, sprite.sampledWidth, sprite.sampledHeight, 0, 0, w, h);
return;
}
var scaleX=data.stage.innerWidth() / sprite.sampledWidth;
var scaleY=data.stage.innerHeight() / sprite.sampledHeight;
var top=Math.floor(-sprite.sampledY * scaleY);
var left=Math.floor(-sprite.sampledX * scaleX);
var width=Math.floor(sheet.sampledWidth * scaleX);
var height=Math.floor(sheet.sampledHeight * scaleY);
if(data.renderer==='background'){
data.stage.css({
'background-image': "url('" + src + "')",
'background-position': left + "px " + top + "px",
'background-repeat': 'no-repeat',
'-webkit-background-size': width + "px " + height + "px",
'-moz-background-size': width + "px " + height + "px",
'-o-background-size': width + "px " + height + "px",
'background-size': width + "px " + height + "px" 
});
return;
}
$(data.images).hide();
$(image).show().css({
position: 'absolute',
top: top,
left: left,
'max-width': 'initial',
width: width,
height: height
});
}
registerPlugin(NAME, {
name: NAME,
onLoad: onLoad,
onDraw: onDraw
});
})();
(function (){
var NAME='blur';
function getState$$1(data){
return getPluginState(data, NAME);
}
function getOption(data, name, fallback){
return data[name]||fallback;
}
function init(e, data){
var state=getState$$1(data);
state.canvas=state.canvas||$$1("<canvas class='blur-layer'></canvas>");
state.context=state.context||state.canvas[0].getContext('2d');
state.steps=state.steps||[];
state.fadeTime=Math.max(getOption(data, 'blurFadeTime', 200), 1);
state.frameTime=Math.max(getOption(data, 'blurFrameTime', data.frameTime), 16);
state.trackTime=null;
state.cssBlur = !!getOption(data, 'blurCss', false);
var inner=getInnerSize(data);
var outer=data.responsive ? getComputedSize(data):getOuterSize(data);
var css=getInnerLayout(data.sizeMode, inner, outer);
state.canvas[0].width=data.width * data.canvasRatio;
state.canvas[0].height=data.height * data.canvasRatio;
state.canvas.css(css).show();
state.context.scale(data.canvasRatio, data.canvasRatio);
data.target.append(state.canvas);
}
function onFrame(e, data){
var state=getState$$1(data);
trackFrame(data);
if(state.timeout==null){
loop(data);
}}
function trackFrame(data){
var state=getState$$1(data);
var ani=getPlaybackState(data);
var d=Math.abs(data.frame - ani.lastFrame);
d=d >=data.frames / 2 ? data.frames - d:d;
state.steps.unshift({
frame: data.frame,
lane: data.lane,
live: 1,
step: state.frameTime / state.fadeTime,
d: d,
alpha: 0
});
}
var toRemove=[];
function removeOldFrames(frames){
toRemove.length=0;
for (var i=0; i < frames.length; i +=1){
if(frames[i].alpha <=0){
toRemove.push(i);
}}
for (var _i=0, toRemove_1=toRemove; _i < toRemove_1.length; _i++){
var item=toRemove_1[_i];
frames.splice(item, 1);
}}
function loop(data){
var state=getState$$1(data);
state.timeout=window.setTimeout(function (){ tick(data); }, state.frameTime);
}
function killLoop(data){
var state=getState$$1(data);
window.clearTimeout(state.timeout);
state.timeout=null;
}
function applyCssBlur(canvas, d){
var amount=Math.min(Math.max((d / 2) - 4, 0), 2.5);
var blur="blur(" + amount + "px)";
canvas.css({
'-webkit-filter': blur,
filter: blur
});
}
function clearFrame(data, state){
state.canvas.show();
var w=state.canvas[0].width / data.canvasRatio;
var h=state.canvas[0].height / data.canvasRatio;
}
function drawFrame(data, state, step){
if(step.alpha <=0){
return;
}
var specs=findSpecs(data.metrics, data.frames, step.frame, step.lane);
var sheet=specs.sheet;
var sprite=specs.sprite;
if(!sheet||!sprite){
return;
}
var src=data.source[sheet.id];
var image=data.images[sheet.id];
if(image.complete===false){
return;
}
state.canvas.show();
var w=state.canvas[0].width / data.canvasRatio;
var h=state.canvas[0].height / data.canvasRatio;
state.context.globalAlpha=step.alpha;
state.context.drawImage(image, sprite.sampledX, sprite.sampledY, sprite.sampledWidth, sprite.sampledHeight, 0, 0, w, h);
}
function tick(data){
var state=getState$$1(data);
killLoop(data);
if(!state.context){
return;
}
var d=0;
clearFrame(data, state);
state.context.clearRect(0, 0, data.width, data.height);
for (var _i=0, _a=state.steps; _i < _a.length; _i++){
var step=_a[_i];
step.live=Math.max(step.live - step.step, 0);
step.alpha=Math.max(step.live - 0.25, 0);
drawFrame(data, state, step);
d +=step.alpha + step.d;
}
if(state.cssBlur){
applyCssBlur(state.canvas, d);
}
removeOldFrames(state.steps);
if(state.steps.length){
loop(data);
}}
registerPlugin(NAME, {
name: NAME,
onLoad: init,
onFrameChanged: onFrame
});
})();
(function (){
var max=Math.max;
var min=Math.min;
var NAME='ease';
function getState$$1(data){
return getPluginState(data, NAME);
}
function getOption(data, name, fallback){
return data[name]||fallback;
}
function init(e, data){
var state=getState$$1(data);
state.maxSamples=max(getOption(data, 'easeMaxSamples', 5), 0);
state.damping=max(min(getOption(data, 'easeDamping', 0.9), 0.999), 0);
state.abortTime=max(getOption(data, 'easeAbortTime', 250), 16);
state.updateTime=max(getOption(data, 'easeUpdateTime', data.frameTime), 16);
state.samples=[];
state.steps=[];
}
function update(e, data){
if(is(data, 'dragging')){
killLoop(data);
sampleInput(data);
}}
function end(e, data){
var state=getState$$1(data);
var samples=state.samples;
var last;
var lanes=0;
var frames=0;
var time=0;
for (var _i=0, samples_1=samples; _i < samples_1.length; _i++){
var sample=samples_1[_i];
if(!last){
last=sample;
continue;
}
var dt=sample.time - last.time;
if(dt > state.abortTime){
lanes=frames=time=0;
return killLoop(data);
}
frames +=sample.frame - last.frame;
lanes +=sample.lane - last.lane;
time +=dt;
last=sample;
}
samples.length=0;
if(!time){
return;
}
state.lane=data.lane;
state.lanes=0;
state.laneStep=lanes / time * state.updateTime;
state.frame=data.frame;
state.frames=0;
state.frameStep=frames / time * state.updateTime;
loop(data);
}
function sampleInput(data){
var state=getState$$1(data);
state.samples.push({
time: new Date().getTime(),
frame: data.frame,
lane: data.lane
});
while (state.samples.length > state.maxSamples){
state.samples.shift();
}}
function killLoop(data){
var state=getState$$1(data);
if(state.handler!=null){
window.clearTimeout(state.handler);
state.handler=null;
}}
function loop(data){
var state=getState$$1(data);
state.handler=window.setTimeout(function (){ tick(data); }, state.updateTime);
}
function tick(data){
var state=getState$$1(data);
state.lanes +=state.laneStep;
state.frames +=state.frameStep;
state.laneStep *=state.damping;
state.frameStep *=state.damping;
var frame=Math.floor(state.frame + state.frames);
var lane=Math.floor(state.lane + state.lanes);
updateFrame(data, frame, lane);
if(is(data, 'dragging')){
killLoop(data);
}
else if(Math.abs(state.frameStep) > 0.005||Math.abs(state.laneStep) > 0.005){
loop(data);
}else{
killLoop(data);
}}
registerPlugin(NAME, {
name: NAME,
onLoad: init,
mousemove: update,
mouseup: end,
mouseleave: end,
touchmove: update,
touchend: end,
touchcancel: end
});
})();
(function (){
var NAME='gallery';
function getState$$1(data){
return getPluginState(data, NAME);
}
function getOption(data, name, fallback){
return data[name]||fallback;
}
function load(e, data){
var state=getState$$1(data);
state.images=[];
state.offsets=[];
state.frame=data.frame;
state.speed=getOption(data, 'gallerySpeed', 500);
state.opacity=getOption(data, 'galleryOpacity', 0.25);
state.stage=getOption(data, 'galleryStage', $$1('<div></div>'));
state.stage.empty().addClass('gallery-stage').prependTo(data.stage);
var size=0;
for (var _i=0, _a=data.images; _i < _a.length; _i++){
var image=_a[_i];
var naturalSize$$1=naturalSize(image);
var scale=data.height / naturalSize$$1.height;
var img=$$1(image);
state.stage.append(img);
state.images.push(img);
state.offsets.push(-size + (data.width - image.width * scale) / 2);
size +=data.width;
img.css({
'max-width': 'initial',
opacity: state.opacity,
width: data.width,
height: data.height
});
}
var innerSize=getInnerSize(data);
var outerSize=data.responsive ? getComputedSize(data):getOuterSize(data);
var layout=getInnerLayout(data.sizeMode, innerSize, outerSize);
state.stage.css(layout).css({ width: size, left: state.offsets[state.frame] });
state.images[state.frame].animate({ opacity: 1 }, { duration: state.speed });
}
function draw(e, data){
var state=getState$$1(data);
var input=getInputState(data);
var isDragging=is(data, 'dragging');
if(state.frame!==data.frame&&!isDragging){
state.stage.stop(true, false).animate({ left: state.offsets[data.frame] }, { duration: state.speed });
state.images[state.frame].animate({ opacity: state.opacity }, { duration: state.speed });
state.frame=data.frame;
state.images[state.frame].animate({ opacity: 1 }, { duration: state.speed });
state.stage.animate({ left: state.offsets[state.frame] });
}
else if(isDragging||state.dX!==input.dX){
state.dX=input.dX;
state.ddX=input.ddX;
state.stage.stop(true, true).css({ left: state.offsets[state.frame] + state.dX });
}}
registerPlugin(NAME, {
name: NAME,
onLoad: load,
onDraw: draw
});
})();
(function (){
var NAME='panorama';
function getState$$1(data){
return getPluginState(data, NAME);
}
function onLoad(e, data){
var state=getState$$1(data);
var sprite=data.metrics[0];
if(!sprite){
return;
}
if(data.orientation==='horizontal'){
state.scale=data.target.innerHeight() / sprite.sampledHeight;
data.frames=sprite.sampledWidth;
}else{
state.scale=data.target.innerWidth() / sprite.sampledWidth;
data.frames=sprite.sampledHeight;
}
var width=Math.floor(sprite.sampledWidth * state.scale);
var height=Math.floor(sprite.sampledHeight * state.scale);
data.stage.css({
'background-image': "url(" + data.source[sprite.id] + ")",
'background-repeat': 'repeat-both',
'-webkit-background-size': width + "px " + height + "px",
'-moz-background-size': width + "px " + height + "px",
'-o-background-size': width + "px " + height + "px",
'background-size': width + "px " + height + "px" 
});
}
function onDraw(e, data){
var state=getState$$1(data);
var px=data.orientation==='horizontal' ? 1:0;
var py=px ? 0:1;
var offset=data.frame % data.frames;
var left=Math.round(px * offset * state.scale);
var top=Math.round(py * offset * state.scale);
data.stage.css({ 'background-position': left + "px " + top + "px" });
}
registerPlugin(NAME, {
name: NAME,
onLoad: onLoad,
onDraw: onDraw
});
})();
(function (){
var NAME='zoom';
function getState$$1(data){
return getPluginState(data, NAME);
}
function getOption(data, name, fallback){
return data[name]||fallback;
}
function onInit(e, data){
var state=getState$$1(data);
state.source=getOption(data, 'zoomSource', data.source);
state.doubleClickTime=getOption(data, 'zoomDoubleClickTime', 500);
state.stage=state.stage||$$1("<div class='zoom-stage'></div>");
state.stage.css({
width: '100%',
height: '100%',
top: 0,
left: 0,
bottom: 0,
right: 0,
position: 'absolute'
})
.appendTo(data.target)
.hide();
}
function onDestroy(e, data){
var state=getState$$1(data);
if(state.stage){
state.stage.remove();
delete state.stage;
}}
function updateInput$$1(e, data){
var state=getState$$1(data);
if(!state.stage.is(':visible')){
return;
}
e.preventDefault();
flag(data, 'dragging', false);
var cursor=getCursorPosition(e);
var x=cursor.x / data.width;
var y=cursor.y / data.height;
if(state.oldX==null){
state.oldX=x;
state.oldY=y;
}
if(state.currentX==null){
state.currentX=x;
state.currentY=y;
}
var dx=x - state.oldX;
var dy=y - state.oldY;
state.oldX=x;
state.oldY=y;
if(e.type.match(/touch/)){
dx=-dx;
dy=-dy;
}
state.currentX=clamp(state.currentX + dx, 0, 1);
state.currentY=clamp(state.currentY + dy, 0, 1);
updateFrame(data, data.frame, data.lane);
}
function onClick(e, data){
e.preventDefault();
var state=getState$$1(data);
var clickTime=new Date().getTime();
if(!state.clickTime){
state.clickTime=clickTime;
return;
}
var timeDelta=clickTime - state.clickTime;
if(timeDelta > state.doubleClickTime){
state.clickTime=clickTime;
return;
}
state.clickTime=undefined;
if(toggleZoom(data)){
updateInput$$1(e, data);
}}
function onMove(e, data){
var state=getState$$1(data);
if(state.stage.is(':visible')){
updateInput$$1(e, data);
}}
function onDraw(e, data){
var state=getState$$1(data);
var index=data.lane * data.frames + data.frame;
var source=state.source[index];
var spec=findSpecs(data.metrics, data.frames, data.frame, data.lane);
var x=state.currentX;
var y=state.currentY;
if(x==null){
x=state.currentX=0.5;
y=state.currentY=0.5;
}
if(source){
x=Math.floor(x * 100);
y=Math.floor(y * 100);
state.stage.css({
'background-repeat': 'no-repeat',
'background-image': "url('" + source + "')",
'background-position': x + "% " + y + "%"
});
}
else if(spec.sheet&&spec.sprite){
var sprite=spec.sprite;
var sheet=spec.sheet;
var src=data.source[sheet.id];
var left=-Math.floor(sprite.sampledX + x * (sprite.sampledWidth - data.width));
var top_1=-Math.floor(sprite.sampledY + y * (sprite.sampledHeight - data.height));
var width=sheet.sampledWidth;
var height=sheet.sampledHeight;
state.stage.css({
'background-image': "url('" + src + "')",
'background-position': left + "px " + top_1 + "px",
'background-repeat': 'no-repeat',
'-webkit-background-size': width + "px " + height + "px",
'-moz-background-size': width + "px " + height + "px",
'-o-background-size': width + "px " + height + "px",
'background-size': width + "px " + height + "px" 
});
}}
function toggleZoom(data){
var state=getState$$1(data);
if(!state.stage){
throw new Error('zoom module is not initialized or is not available.');
}
if(state.stage.is(':visible')){
state.stage.fadeOut();
data.stage.fadeIn();
}else{
state.stage.fadeIn();
data.stage.fadeOut();
return true;
}
return false;
}
registerPlugin(NAME, {
name: NAME,
mousedown: onClick,
touchstart: onClick,
mousemove: onMove,
touchmove: onMove,
onInit: onInit,
onDestroy: onDestroy,
onDraw: onDraw
});
extendApi({
toggleZoom: function (){ toggleZoom(this.data); }});
})();
var Utils=_Utils;
exports.Utils=Utils;
exports.sourceArray=sourceArray;
exports.Api=Api;
exports.extendApi=extendApi;
exports.instances=instances;
exports.applyEvents=applyEvents;
exports.boot=boot;
exports.create=create;
exports.createOrUpdate=createOrUpdate;
exports.destroy=destroy;
exports.namespace=namespace;
exports.eventNames=eventNames;
exports.callbackNames=callbackNames;
exports.eventsToPrevent=eventsToPrevent;
exports.defaults=defaults;
exports.getInputState=getInputState;
exports.updateInput=updateInput;
exports.resetInput=resetInput;
exports.applyLayout=applyLayout;
exports.getPlaybackState=getPlaybackState;
exports.updateFrame=updateFrame;
exports.stopAnimation=stopAnimation;
exports.applyAnimation=applyAnimation;
exports.startAnimation=startAnimation;
exports.registerPlugin=registerPlugin;
exports.registerModule=registerModule;
exports.getPlugin=getPlugin;
exports.applyPlugins=applyPlugins;
exports.getState=getState;
exports.getPluginState=getPluginState;
exports.is=is;
exports.flag=flag;
Object.defineProperty(exports, '__esModule', { value: true });
})));
(function(){var c,f;c=window.jQuery;f=c(window);c.fn.stick_in_parent=function(b){var A,w,J,n,B,K,p,q,L,k,E,t;null==b&&(b={});t=b.sticky_class;B=b.inner_scrolling;E=b.recalc_every;k=b.parent;q=b.offset_top;p=b.spacer;w=b.bottoming;null==q&&(q=0);null==k&&(k=void 0);null==B&&(B=!0);null==t&&(t="is_stuck");A=c(document);null==w&&(w=!0);L=function(a){var b;return window.getComputedStyle?(a=window.getComputedStyle(a[0]),b=parseFloat(a.getPropertyValue("width"))+parseFloat(a.getPropertyValue("margin-left"))+
parseFloat(a.getPropertyValue("margin-right")),"border-box"!==a.getPropertyValue("box-sizing")&&(b+=parseFloat(a.getPropertyValue("border-left-width"))+parseFloat(a.getPropertyValue("border-right-width"))+parseFloat(a.getPropertyValue("padding-left"))+parseFloat(a.getPropertyValue("padding-right"))),b):a.outerWidth(!0)};J=function(a,b,n,C,F,u,r,G){var v,H,m,D,I,d,g,x,y,z,h,l;if(!a.data("sticky_kit")){a.data("sticky_kit",!0);I=A.height();g=a.parent();null!=k&&(g=g.closest(k));if(!g.length)throw"failed to find stick parent";
v=m=!1;(h=null!=p?p&&a.closest(p):c("<div />"))&&h.css("position",a.css("position"));x=function(){var d,f,e;if(!G&&(I=A.height(),d=parseInt(g.css("border-top-width"),10),f=parseInt(g.css("padding-top"),10),b=parseInt(g.css("padding-bottom"),10),n=g.offset().top+d+f,C=g.height(),m&&(v=m=!1,null==p&&(a.insertAfter(h),h.detach()),a.css({position:"",top:"",width:"",bottom:""}).removeClass(t),e=!0),F=a.offset().top-(parseInt(a.css("margin-top"),10)||0)-q,u=a.outerHeight(!0),r=a.css("float"),h&&h.css({width:L(a),
height:u,display:a.css("display"),"vertical-align":a.css("vertical-align"),"float":r}),e))return l()};x();if(u!==C)return D=void 0,d=q,z=E,l=function(){var c,l,e,k;if(!G&&(e=!1,null!=z&&(--z,0>=z&&(z=E,x(),e=!0)),e||A.height()===I||x(),e=f.scrollTop(),null!=D&&(l=e-D),D=e,m?(w&&(k=e+u+d>C+n,v&&!k&&(v=!1,a.css({position:"fixed",bottom:"",top:d}).trigger("sticky_kit:unbottom"))),e<F&&(m=!1,d=q,null==p&&("left"!==r&&"right"!==r||a.insertAfter(h),h.detach()),c={position:"",width:"",top:""},a.css(c).removeClass(t).trigger("sticky_kit:unstick")),
B&&(c=f.height(),u+q>c&&!v&&(d-=l,d=Math.max(c-u,d),d=Math.min(q,d),m&&a.css({top:d+"px"})))):e>F&&(m=!0,c={position:"fixed",top:d},c.width="border-box"===a.css("box-sizing")?a.outerWidth()+"px":a.width()+"px",a.css(c).addClass(t),null==p&&(a.after(h),"left"!==r&&"right"!==r||h.append(a)),a.trigger("sticky_kit:stick")),m&&w&&(null==k&&(k=e+u+d>C+n),!v&&k)))return v=!0,"static"===g.css("position")&&g.css({position:"relative"}),a.css({position:"absolute",bottom:b,top:"auto"}).trigger("sticky_kit:bottom")},
y=function(){x();return l()},H=function(){G=!0;f.off("touchmove",l);f.off("scroll",l);f.off("resize",y);c(document.body).off("sticky_kit:recalc",y);a.off("sticky_kit:detach",H);a.removeData("sticky_kit");a.css({position:"",bottom:"",top:"",width:""});g.position("position","");if(m)return null==p&&("left"!==r&&"right"!==r||a.insertAfter(h),h.remove()),a.removeClass(t)},f.on("touchmove",l),f.on("scroll",l),f.on("resize",y),c(document.body).on("sticky_kit:recalc",y),a.on("sticky_kit:detach",H),setTimeout(l,
0)}};n=0;for(K=this.length;n<K;n++)b=this[n],J(c(b));return this}}).call(this);
!function(i){"use strict";var a=i("body");function e(){var e=20,t=i("#wpadminbar");0<t.length&&(e+=t.height()),window.innerWidth<992?i(".product-sticky-layout").trigger("sticky_kit:detach"):i(".product-sticky-layout").stick_in_parent({offset_top:e})}i(".woocommerce-product-gallery").on("wc-product-gallery-after-init",function(){!function(){var e=!!a.hasClass("rtl"),t=i(".single-product .woocommerce-product-gallery__image > a"),o=i(".flex-control-thumbs img",".woocommerce-product-gallery");t.length&&t.attr("data-elementor-open-lightbox","no"),4<i(".flex-control-thumbs",".woocommerce-product-gallery").children().length&&(i(".woocommerce-product-gallery.woocommerce-product-gallery-horizontal .flex-control-thumbs").css({display:"block","max-width":430,"padding-right":30}).slick({rtl:e,infinite:!1,slidesToShow:4}),i(".woocommerce-product-gallery.woocommerce-product-gallery-vertical .flex-control-thumbs").slick({infinite:!1,slidesToShow:4,vertical:!0,verticalSwiping:!0}));var c=i(".woocommerce-product-gallery.woocommerce-product-gallery-vertical .flex-control-thumbs").outerWidth();c&&i(".product-video-360").css("left",c+40),i(".woocommerce-product-gallery .flex-control-thumbs li").each(function(){i(this).has(".flex-active").addClass("active")}),o.click(function(){o.parent().removeClass("active"),i(this).parent().addClass("active")})}()}),a.on("click",".wc-tabs li a, ul.tabs li a",function(e){e.preventDefault();var t=i(this),o=t.closest(".wc-tabs-wrapper, .woocommerce-tabs"),c=t.closest("li").attr("aria-controls");o.find(".resp-accordion").removeClass("active"),i("."+c).addClass("active")}).on("click","h2.resp-accordion",function(e){e.preventDefault();var t=i(this),o=t.closest(".wc-tabs-wrapper, .woocommerce-tabs"),c=o.find(".wc-tabs, ul.tabs");t.hasClass("active")||(o.find(".resp-accordion").removeClass("active"),t.addClass("active"),c.find("li").removeClass("active"),c.find(t.data("control")).addClass("active"),o.find(".wc-tab, .panel:not(.panel .panel)").hide(300),o.find(t.attr("aria-controls")).show(300))}).on("click","a.woocommerce-review-link",function(){return i(".reviews_tab:not(.active) h2.accordion-title").trigger("click"),!0}),i(document).ready(function(){i(".sizechart-button").on("click",function(e){e.preventDefault(),i(".sizechart-popup").toggleClass("active")}),i(".sizechart-close,.sizechart-overlay").on("click",function(e){e.preventDefault(),i(".sizechart-popup").removeClass("active")}),i(".woocommerce-product-gallery.woocommerce-product-gallery-vertical:not(:has(.flex-control-thumbs))").css("max-width","690px").next().css("left","10px"),i("a.btn-video").magnificPopup({type:"iframe",disableOn:700,removalDelay:160,midClick:!0,closeBtnInside:!0,preloader:!1,fixedContentPos:!1}),i("a.btn-360").magnificPopup({type:"inline",fixedContentPos:!1,fixedBgPos:!0,overflowY:"auto",closeBtnInside:!0,preloader:!1,midClick:!0,removalDelay:300,mainClass:"my-mfp-zoom-in",callbacks:{open:function(){var e,t=i("#rotateimages"),o=t.data("images").split(",");t.spritespin({source:o,width:800,height:800,sense:-1,responsive:!0,animate:!1,onComplete:function(){i(this).removeClass("opal-loading")}}),e=t.spritespin("api"),i(".view-360-prev").click(function(){e.stopAnimation(),e.prevFrame()}),i(".view-360-next").click(function(){e.stopAnimation(),e.nextFrame()})}}}),i(".js-card-body.active").slideDown(),i(".js-btn-accordion").on("click",function(){i(this).hasClass("active")||(i(".js-btn-accordion").removeClass("active"),i(".js-card-body").removeClass("active").slideUp()),i(this).toggleClass("active");var e=i(this).parent().find(".js-card-body");e.slideToggle(),e.toggleClass("active"),setTimeout(function(){i(".product-sticky-layout").trigger("sticky_kit:recalc")},1e3)}),0<i(".product-sticky-layout").length&&(e(),i(window).resize(function(){setTimeout(function(){e()},100)}))})}(jQuery);