!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(e.SpriteSpin={})}(this,function(e){"use strict";var i=function(e){this.data=e};function l(e){var t=i.prototype;for(var n in e)if(e.hasOwnProperty(n)){if(t[n])throw new Error("API method is already defined: "+n);t[n]=e[n]}return t}var r,o,t,p=window.jQuery||window.$;function u(e){var t=e.touches,n=e;return void 0===e.touches&&void 0!==e.originalEvent&&(t=e.originalEvent.touches),void 0!==t&&0<t.length&&(n=t[0]),{x:n.clientX||0,y:n.clientY||0}}function v(e,t,n){if(!(o||(r||(r=document.createElement("canvas")),r&&r.getContext&&(o=r.getContext("2d")))))return!1;if(t*n<=1048576)return!1;r.width=r.height=1,o.fillStyle="#FF00FF",o.fillRect(0,0,1,1),o.drawImage(e,1-t,0);try{var a=o.getImageData(0,0,1,1).data;return 255===a[0]&&0===a[1]&&255===a[2]}catch(e){return!1}}function h(e){var t=Math.floor(e.width||e.frameWidth||e.target.innerWidth()),n=Math.floor(e.height||e.frameHeight||e.target.innerHeight());return{aspect:t/n,height:n,width:t}}function w(e){var t=h(e);if("function"!=typeof window.getComputedStyle)return t;var n=window.getComputedStyle(e.target[0]);return n.width&&(t.width=Math.floor(Number(n.width.replace("px",""))),t.height=Math.floor(t.width/t.aspect)),t}function b(e){var t=Math.floor(e.frameWidth||e.width||e.target.innerWidth()),n=Math.floor(e.frameHeight||e.height||e.target.innerHeight());return{aspect:t/n,height:n,width:t}}function x(e,t,n){var a="fit"===e,r="fill"===e,i={width:"100%",height:"100%",top:0,left:0,bottom:0,right:0,position:"absolute",overflow:"hidden"};if(!e||"stretch"===e)return i;var o=t.aspect>=n.aspect,s=t.width,l=t.height;return(a&&o||r&&!o)&&(s=n.width,l=n.width/t.aspect),(r&&o||a&&!o)&&(l=n.height,s=n.height*t.aspect),s=Math.floor(s),l=Math.floor(l),i.width=s,i.height=l,i.top=Math.floor((n.height-l)/2),i.left=Math.floor((n.width-s)/2),i.right=i.left,i.bottom=i.top,i}function y(e){return e.naturalWidth?{height:e.naturalHeight,width:e.naturalWidth}:((t=t||new Image).crossOrigin=e.crossOrigin,t.src=e.src,{height:t.height,width:t.width})}function n(e,t){return 1===e.length?[s(e[0],t)]:t.framesX&&t.framesY?function(e,t){for(var n=[],a=0;a<e.length;a++){var r=s(e[a],{frames:void 0,framesX:t.framesX,framesY:t.framesY,detectSubsampling:t.detectSubsampling});r.id=a,n.push(r)}return n}(e,t):function(e,t){for(var n=[],a=0;a<e.length;a++){var r=s(e[a],{frames:1,framesX:1,detectSubsampling:t.detectSubsampling});r.id=a,n.push(r)}return n}(e,t)}function s(e,t){var n,a,r,i,o={id:0,sprites:[]};a=t,r=o,i=y(n=e),r.isSubsampled=a.detectSubsampling&&v(n,i.width,i.height),r.width=i.width,r.height=i.height,r.sampledWidth=i.width/(r.isSubsampled?2:1),r.sampledHeight=i.height/(r.isSubsampled?2:1);for(var s=t.frames,l=Number(t.framesX)||s,u=Math.ceil(s/l),c=Math.floor(o.width/l),d=Math.floor(o.height/u),f=o.isSubsampled?2:1,m=0;m<s;m++){var g=m%l*c,h=Math.floor(m/l)*d;o.sprites.push({id:m,x:g,y:h,width:c,height:d,sampledX:g/f,sampledY:h/f,sampledWidth:c/f,sampledHeight:d/f})}return o}function k(e,t,n,a){for(var r=a*t+n,i=0,o=null,s=null;s=e[i];){if(!(r>=s.sprites.length)){o=s.sprites[r];break}r-=s.sprites.length,i++}return{sprite:o,sheet:s}}function X(){}function a(e){var t,n=e.source;t="string"==typeof n?[n]:n;for(var a=[],r=e.preloadCount||t.length,i=e.initiated||X,o=e.progress||X,s=e.complete||X,l=0,u=!1,c=!1,d=function(){l+=1,o({index:function(e,t){for(var n=0;n<t.length;n++)if(t[n]===e)return n}(this,a),loaded:l,total:t.length,percent:Math.round(l/t.length*100)}),(c=c||this===a[0])&&!u&&r<=l&&(u=!0,s(a))},f=0,m=t;f<m.length;f++){var g=m[f],h=new Image;a.push(h),h.crossOrigin=e.crossOrigin,h.onload=h.onabort=h.onerror=d,h.src=g}i(a)}function f(e,t,n){for(var a=String(e);a.length<t;)a=String(n)+a;return a}function c(e,t){var n=t.digits||2,a=t.lanePlacer||"{lane}",r=t.framePlacer||"{frame}",i=0,o=0;t.frame&&(i=t.frame[0],o=t.frame[1]);var s=0,l=0;t.lane&&(s=t.lane[0],l=t.lane[1]);for(var u=[],c=s;c<=l;c+=1)for(var d=i;d<=o;d+=1)u.push(e.replace(a,f(c,n,"0")).replace(r,f(d,n,"0")));return u}var d="spritespin",g=["mousedown","mousemove","mouseup","mouseenter","mouseover","mouseleave","mousewheel","wheel","click","dblclick","touchstart","touchmove","touchend","touchcancel","selectstart","gesturestart","gesturechange","gestureend"],M=["onInit","onProgress","onLoad","onFrameChanged","onFrame","onDraw","onComplete","onDestroy"],F=["dragstart"],m={source:void 0,width:void 0,height:void 0,frames:void 0,framesX:void 0,lanes:1,sizeMode:void 0,renderer:"canvas",lane:0,frame:0,frameTime:40,animate:!0,retainAnimate:!1,reverse:!1,loop:!0,stopFrame:0,wrap:!0,wrapLane:!1,sense:1,senseLane:void 0,orientation:"horizontal",detectSubsampling:!0,preloadCount:void 0,touchScrollTimer:[200,1500],responsive:void 0,plugins:void 0};function S(){}function T(e){return console&&console[e]?function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return console.log.apply(console,e)}:S}var Y=T("log"),z=T("warn"),C=T("error");function P(e){return Array.isArray(e)?e:[e]}function R(e,t,n){return n<e?n:e<t?t:e}function A(e,t,n,a){for(;n<e;)e-=a;for(;e<t;)e+=a;return e}function E(e){return e.preventDefault(),!1}function W(t,e,n){n&&t.bind(e+"."+d,function(e){n.apply(t,[e,t.spritespin("data")])})}function D(e){e.unbind("."+d)}function I(e){return(window.devicePixelRatio||1)/(e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1)}function H(e){e.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 t=e.responsive?w(e):h(e),n=x(e.sizeMode,b(e),t);e.target.css({width:t.width,height:t.height,position:"relative",overflow:"hidden"}),e.stage.css(n).hide(),e.canvas&&(e.canvas.css(n).hide(),e.canvasRatio=e.canvasRatio||I(e.context),"number"==typeof n.width&&"number"==typeof n.height?(e.canvas[0].width=n.width*e.canvasRatio||t.width,e.canvas[0].height=n.height*e.canvasRatio||t.height):(e.canvas[0].width=t.width*e.canvasRatio,e.canvas[0].height=t.height*e.canvasRatio),e.context.scale(e.canvasRatio,e.canvasRatio))}function L(e,t){return e.state=e.state||{},e.state[t]=e.state[t]||{},e.state[t]}function O(e,t){var n=L(e,"plugin");return n[t]=n[t]||{},n[t]}function q(e,t){return!!L(e,"flags")[t]}function B(e,t,n){L(e,"flags")[t]=!!n}function N(e){return L(e,"playback")}function U(e){var t;N(e).handler&&(j(e),(t=e).frame+=t.reverse?-1:1,t.frame=A(t.frame,0,t.frames-1,t.frames),t.loop||t.frame!==t.stopFrame||Z(t),_(e))}function j(e){var t=N(e);t.lastFrame=e.frame,t.lastLane=e.lane}function _(e){var t=N(e);t.lastFrame===e.frame&&t.lastLane===e.lane||e.target.trigger("onFrameChanged."+d,e),e.target.trigger("onFrame."+d,e),e.target.trigger("onDraw."+d,e)}function Q(e,t,n){var a,r,i,o;j(e),null!=t&&(r=t,(a=e).frame=Number(r),a.frame=a.wrap?A(a.frame,0,a.frames-1,a.frames):R(a.frame,0,a.frames-1)),null!=n&&(o=n,(i=e).lane=i.wrapLane?A(o,0,i.lanes-1,i.lanes):R(o,0,i.lanes-1)),_(e)}function Z(e){e.animate=!1;var t=N(e);null!=t.handler&&(window.clearInterval(t.handler),t.handler=null)}function G(e){var t=N(e);!t.handler||e.animate&&t.frameTime===e.frameTime||Z(e),e.animate&&!t.handler&&(t.frameTime=e.frameTime,t.handler=window.setInterval(function(){return U(e)},t.frameTime))}function J(e){e.animate=!0,G(e)}var K={};function V(e,t){if(!K[e])return t=t||{},K[e]=t;C('Plugin name "'+e+'" is already taken')}function ee(e){return K[e]}function te(e){!function(e){e.mods&&(z('"mods" option is deprecated, use "plugins" instead'),e.plugins=e.mods,delete e.mods);e.behavior&&(z('"behavior" option is deprecated, use "plugins" instead'),e.plugins.push(e.behavior),delete e.behavior);e.module&&(z('"module" option is deprecated, use "plugins" instead'),e.plugins.push(e.module),delete e.module)}(e);for(var t=0;t<e.plugins.length;t+=1){var n=e.plugins[t];if("string"==typeof n){var a=ee(n);a?e.plugins[t]=a:C("No plugin found with name "+n)}}}var ne=p,ae=0,re={};function ie(e){for(var t in re)re.hasOwnProperty(t)&&e(re[t])}var oe=function(){function e(){ie(function(e){e.responsive&&le(e)})}oe=function(){};for(var t=function(t){ne(window.document).bind(t+"."+d,function(e){var r,i;r="document"+t,i=e,ie(function(e){for(var t=0,n=e.plugins;t<n.length;t++){var a=n[t];"function"==typeof a[r]&&a[r].apply(e.target,[i,e])}})})},n=0,a=g;n<a.length;n++){t(a[n])}var r=null;ne(window).on("resize",function(){window.clearTimeout(r),r=window.setTimeout(e,100)})};function se(e){var t=e.target;D(t);for(var n=0,a=F;n<a.length;n++){W(t,m=a[n],E)}for(var r=0,i=e.plugins;r<i.length;r++){for(var o=i[r],s=0,l=g;s<l.length;s++){W(t,m=l[s],o[m])}for(var u=0,c=M;u<c.length;u++){W(t,m=c[u],o[m])}}W(t,"onLoad",function(e,t){G(t)});for(var d=0,f=M;d<f.length;d++){var m;W(t,m=f[d],e[m])}}function le(t){te(t),se(t),H(t),t.source=P(t.source),t.loading=!0,t.target.addClass("loading").trigger("onInit."+d,t),a({source:t.source,crossOrigin:t.crossOrigin,preloadCount:t.preloadCount,progress:function(e){t.progress=e,t.target.trigger("onProgress."+d,t)},complete:function(e){t.images=e,t.loading=!1,t.frames=t.frames||e.length,function(e){e.images||(e.metrics=[]),e.metrics=n(e.images,e);var t=k(e.metrics,e.frames,0,0);t.sprite&&(e.frameWidth=t.sprite.width,e.frameHeight=t.sprite.height)}(t),H(t),t.stage.show(),t.target.removeClass("loading").trigger("onLoad."+d,t).trigger("onFrame."+d,t).trigger("onDraw."+d,t).trigger("onComplete."+d,t)}})}function ue(e){var t,n=this,a=e.target,r=ne.extend(!0,{},m,e);if(r.source=r.source||[],r.plugins=r.plugins||["360","drag"],a.find("img").each(function(){Array.isArray(r.source)||(r.source=[]),r.source.push(ne(n).attr("src"))}),a.empty().addClass("spritespin-instance").append("<div class='spritespin-stage'></div>"),"canvas"===r.renderer){var i=document.createElement("canvas");i.getContext&&i.getContext("2d")?(r.canvas=ne(i).addClass("spritespin-canvas"),r.context=i.getContext("2d"),a.append(r.canvas),a.addClass("with-canvas")):r.renderer="image"}return r.target=a,r.stage=a.find(".spritespin-stage"),a.data(d,r),ae+=1,(t=r).id=String(ae),re[t.id]=t,r}function ce(e){oe();var t=e.target.data(d);return t?ne.extend(t,e):t=ue(e),le(t),t}function de(e){delete re[e.id],Z(e),e.target.trigger("onDestroy",e).html(null).attr("style",null).attr("unselectable",null).removeClass(["spritespin-instance","with-canvas"]),D(e.target),e.target.removeData(d)}function fe(e){return L(e,"input")}function me(e,t){var n=u(e),a=fe(t);a.oldX=a.currentX,a.oldY=a.currentY,a.currentX=n.x,a.currentY=n.y,void 0!==a.oldX&&void 0!==a.oldY||(a.oldX=a.currentX,a.oldY=a.currentY),void 0!==a.startX&&void 0!==a.startY||(a.startX=a.currentX,a.startY=a.currentY,a.clickframe=t.frame,a.clicklane=t.lane),a.dX=a.currentX-a.startX,a.dY=a.currentY-a.startY,a.ddX=a.currentX-a.oldX,a.ddY=a.currentY-a.oldY,a.ndX=a.dX/t.target.innerWidth(),a.ndY=a.dY/t.target.innerHeight(),a.nddX=a.ddX/t.target.innerWidth(),a.nddY=a.ddY/t.target.innerHeight()}function ge(e){var t=fe(e);t.startX=t.startY=void 0,t.currentX=t.currentY=void 0,t.oldX=t.oldY=void 0,t.dX=t.dY=0,t.ddX=t.ddY=0,t.ndX=t.ndY=0,t.nddX=t.nddY=0}function he(e,t){for(var n=0,a=t;n<a.length;n++){var r=a[n];if(e[r]||r in e)return r}return t[0]}p.fn[d]=function(e,t){var n,a=p(this);if("data"===e)return a.data(d);if("api"===e){var r=a.data(d);return r.api=r.api||new i(r),r.api}if("destroy"===e)return a.each(function(){var e=a.data(d);e&&de(e)});if(2===arguments.length&&"string"==typeof e&&((n={})[e]=t,e=n),"object"==typeof e)return ce(p.extend(!0,{target:a},e)).target;throw new Error("Invalid call to spritespin")},l({isPlaying:function(){return null!=N(this.data).handler},isLooping:function(){return this.data.loop},toggleAnimation:function(){this.isPlaying()?this.stopAnimation():this.startAnimation()},stopAnimation:function(){this.data.animate=!1,Z(this.data)},startAnimation:function(){this.data.animate=!0,G(this.data)},loop:function(e){return this.data.loop=e,G(this.data),this},currentFrame:function(){return this.data.frame},updateFrame:function(e){return Q(this.data,e),this},skipFrames:function(e){var t=this.data;return Q(t,t.frame+(t.reverse?-e:+e)),this},nextFrame:function(){return this.skipFrames(1)},prevFrame:function(){return this.skipFrames(-1)},playTo:function(e,t){var n=this.data;if((t=t||{}).force||n.frame!==e){if(t.nearest){var a=e-n.frame,r=e>n.frame?a-n.frames:a+n.frames,i=Math.abs(a)<Math.abs(r)?a:r;n.reverse=i<0}return n.animate=!0,n.loop=!1,n.stopFrame=e,G(n),this}}});var pe={requestFullscreen:he(document.documentElement,["requestFullscreen","webkitRequestFullScreen","mozRequestFullScreen","msRequestFullscreen"]),exitFullscreen:he(document,["exitFullscreen","webkitExitFullscreen","webkitCancelFullScreen","mozCancelFullScreen","msExitFullscreen"]),fullscreenElement:he(document,["fullscreenElement","webkitFullscreenElement","webkitCurrentFullScreenElement","mozFullScreenElement","msFullscreenElement"]),fullscreenEnabled:he(document,["fullscreenEnabled","webkitFullscreenEnabled","mozFullScreenEnabled","msFullscreenEnabled"]),fullscreenchange:he(document,["onfullscreenchange","onwebkitfullscreenchange","onmozfullscreenchange","onMSFullscreenChange"]).replace(/^on/,""),fullscreenerror:he(document,["onfullscreenerror","onwebkitfullscreenerror","onmozfullscreenerror","onMSFullscreenError"]).replace(/^on/,"")},ve=pe.fullscreenchange+"."+d+"-fullscreen";function we(){p(document).unbind(ve)}var be="orientationchange."+d+"-fullscreen";function xe(){p(window).unbind(be)}function ye(){return document[pe.fullscreenElement]}function ke(){return!!ye()}function Xe(t,e){e=e||{};var n,a=t.width,r=t.height,i=t.source,o=t.sizeMode,s=t.responsive,l=function(){t.width=window.screen.width,t.height=window.screen.height,t.source=e.source||i,t.sizeMode=e.sizeMode||"fit",t.responsive=!1,le(t)};n=function(){var e;ke()?(l(),e=l,xe(),p(window).bind(be,e)):(we(),xe(),t.width=a,t.height=r,t.source=i,t.sizeMode=o,t.responsive=s,le(t))},we(),p(document).bind(ve,n),(t.target[0]||document.documentElement)[pe.requestFullscreen]()}l({fullscreenEnabled:function(){return document[pe.fullscreenEnabled]},fullscreenElement:ye,exitFullscreen:function(){return document[pe.exitFullscreen]()},toggleFullscreen:function(e){!function(e,t){ke()?this.apiRequestFullscreen(t):this.exitFullscreen()}(this.data,e)},requestFullscreen:function(e){Xe(this.data,e)}}),function(){function e(e,t){if(!t.loading&&t.stage.is(":visible")){me(e,t);var n,a,r=fe(t),i=t.target,o=i.offset();"horizontal"===t.orientation?(n=i.innerWidth()/2,a=r.currentX-o.left):(n=i.innerHeight()/2,a=r.currentY-o.top),Q(t,t.frame+(n<a?1:-1))}}V("click",{name:"click",mouseup:e,touchend:e})}(),function(){var t="drag";function c(e){return O(e,t)}function e(e,t){var n=c(t),a=[200,1500],r=t.touchScrollTimer||a;n.minTime=r[0]||a[0],n.maxTime=r[1]||a[1]}function n(e,t){var n=c(t);if(!(t.loading||q(t,"dragging")||t.zoomPinFrame&&!t.stage.is(":visible"))){var a=(new Date).getTime();n.endAt&&a-n.endAt>n.maxTime&&(n.startAt=null,n.endAt=null),n.startAt&&a-n.startAt>n.minTime&&e.preventDefault(),n.startAt=a,n.wasPlaying=!!N(t).handler,n.frame=t.frame||0,n.lane=t.lane||0,B(t,"dragging",!0),me(e,t)}}function a(e,t){q(t,"dragging")&&(c(t).endAt=(new Date).getTime(),B(t,"dragging",!1),ge(t),t.retainAnimate&&c(t).wasPlaying&&J(t))}function r(e,t){var n=c(t),a=fe(t);if(q(t,"dragging")){me(e,t);var r,i="number"==typeof(r=t).orientation?r.orientation*Math.PI/180:"horizontal"===r.orientation?0:Math.PI/2,o=Math.sin(i),s=Math.cos(i),l=(a.nddX*s-a.nddY*o)*t.sense||0,u=(a.nddX*o+a.nddY*s)*(t.senseLane||t.sense)||0;n.frame+=t.frames*l,n.lane+=t.lanes*u;t.frame,t.lane;Q(t,Math.floor(n.frame),Math.floor(n.lane)),Z(t)}}V("drag",{name:"drag",onInit:e,mousedown:n,mousemove:r,mouseup:a,documentmousemove:r,documentmouseup:a,touchstart:n,touchmove:r,touchend:a,touchcancel:a}),V("move",{name:"move",onInit:e,mousemove:function(e,t){n(e,t),r(e,t)},mouseleave:a,touchstart:n,touchmove:r,touchend:a,touchcancel:a})}(),function(){var t="hold";function r(e){return O(e,t)}function e(e,t){var n,a;q(t,"loading")||q(t,"dragging")||!t.stage.is(":visible")||((a=r(n=t)).frameTime=n.frameTime,a.animate=n.animate,a.reverse=n.reverse,me(e,t),B(t,"dragging",!0),t.animate=!0,G(t))}function n(e,t){var n,a;B(t,"dragging",!1),ge(t),Z(t),a=r(n=t),n.frameTime=a.frameTime,n.animate=a.animate,n.reverse=a.reverse,G(t)}function a(e,t){if(q(t,"dragging")){me(e,t);var n,a,r=fe(t),i=t.target,o=i.offset();"horizontal"===t.orientation?(n=i.innerWidth()/2,a=(r.currentX-o.left-n)/n):(n=t.height/2,a=(r.currentY-o.top-n)/n),t.reverse=a<0,a=a<0?-a:a,t.frameTime=80*(1-a)+20,("horizontal"===t.orientation&&r.dX<r.dY||"vertical"===t.orientation&&r.dX<r.dY)&&e.preventDefault()}}V(t,{name:t,mousedown:e,mousemove:a,mouseup:n,mouseleave:n,touchstart:e,touchmove:a,touchend:n,touchcancel:n,onFrame:function(e,t){t.animate=!0,G(t)}})}(),function(){var t="swipe";function c(e){return O(e,t)}function a(e,t,n){return e[t]||n}function e(e,t){t.loading||q(t,"dragging")||(me(e,t),B(t,"dragging",!0))}function n(e,t){q(t,"dragging")&&(me(e,t),Q(t,t.frame,t.lane))}function r(e,t){if(q(t,"dragging")){B(t,"dragging",!1);var n,a,r=c(t),i=fe(t),o=t.frame,s=t.lane,l=r.snap,u=r.fling;"horizontal"===t.orientation?(n=i.ndX,a=i.ddX):(n=i.ndY,a=i.ddY),l<=n||u<=a?o=t.frame-1:(n<=-l||a<=-u)&&(o=t.frame+1),ge(t),Q(t,o,s),Z(t)}}V(t,{name:t,onLoad:function(e,t){var n=c(t);n.fling=a(t,"swipeFling",10),n.snap=a(t,"swipeSnap",.5)},mousedown:e,mousemove:n,mouseup:r,mouseleave:r,touchstart:e,touchmove:n,touchend:r,touchcancel:r})}(),V("wheel",{name:"wheel",wheel:function(e,t){if(!t.loading&&t.stage.is(":visible")){e.preventDefault();var n=e.originalEvent,a=0===n.deltaX?0:0<n.deltaX?1:-1,r=0===n.deltaY?0:0<n.deltaY?1:-1;Q(t,t.frame+r,t.lane+a)}}}),function(){var a="\n<div class='spritespin-progress'>\n  <div class='spritespin-progress-label'></div>\n  <div class='spritespin-progress-bar'></div>\n</div>\n";function r(e){return O(e,t)}var t="progress";V(t,{name:t,onInit:function(e,t){var n=r(t);n.stage||(n.stage=p(a),n.stage.appendTo(t.target)),n.stage.find(".spritespin-progress-label").text("0%").css({"text-align":"center"}),n.stage.find(".spritespin-progress-bar").css({width:"0%"}),n.stage.hide().fadeIn()},onProgress:function(e,t){var n=r(t);n.stage.find(".spritespin-progress-label").text(t.progress.percent+"%").css({"text-align":"center"}),n.stage.find(".spritespin-progress-bar").css({width:t.progress.percent+"%"})},onLoad:function(e,t){p(r(t).stage).fadeOut()},onDestroy:function(e,t){p(r(t).stage).remove()}})}(),V("360",{name:"360",onLoad:function(e,t){t.stage.find(".spritespin-frames").detach(),"image"===t.renderer&&$(t.images).addClass("spritespin-frames").appendTo(t.stage)},onDraw:function(e,t){var n=k(t.metrics,t.frames,t.frame,t.lane),a=n.sheet,r=n.sprite;if(a&&r){var i=t.source[a.id],o=t.images[a.id];if("canvas"===t.renderer){t.canvas.show();var s=t.canvas[0].width/t.canvasRatio,l=t.canvas[0].height/t.canvasRatio;return t.context.clearRect(0,0,s,l),void t.context.drawImage(o,r.sampledX,r.sampledY,r.sampledWidth,r.sampledHeight,0,0,s,l)}var u=t.stage.innerWidth()/r.sampledWidth,c=t.stage.innerHeight()/r.sampledHeight,d=Math.floor(-r.sampledY*c),f=Math.floor(-r.sampledX*u),m=Math.floor(a.sampledWidth*u),g=Math.floor(a.sampledHeight*c);"background"!==t.renderer?($(t.images).hide(),$(o).show().css({position:"absolute",top:d,left:f,"max-width":"initial",width:m,height:g})):t.stage.css({"background-image":"url('"+i+"')","background-position":f+"px "+d+"px","background-repeat":"no-repeat","-webkit-background-size":m+"px "+g+"px","-moz-background-size":m+"px "+g+"px","-o-background-size":m+"px "+g+"px","background-size":m+"px "+g+"px"})}}}),function(){var t="blur";function d(e){return O(e,t)}function o(e,t,n){return e[t]||n}var f=[];function m(e){var t=d(e);t.timeout=window.setTimeout(function(){!function(e){var t=d(e);if(n=e,a=d(n),window.clearTimeout(a.timeout),a.timeout=null,!t.context)return;var n,a;var r=0;(function(e,t){t.canvas.show();t.canvas[0].width,e.canvasRatio,t.canvas[0].height,e.canvasRatio})(e,t),t.context.clearRect(0,0,e.width,e.height);for(var i=0,o=t.steps;i<o.length;i++){var s=o[i];s.live=Math.max(s.live-s.step,0),s.alpha=Math.max(s.live-.25,0),g(e,t,s),r+=s.alpha+s.d}t.cssBlur&&(l=t.canvas,u=r,c="blur("+Math.min(Math.max(u/2-4,0),2.5)+"px)",l.css({"-webkit-filter":c,filter:c}));var l,u,c;(function(e){for(var t=f.length=0;t<e.length;t+=1)e[t].alpha<=0&&f.push(t);for(var n=0,a=f;n<a.length;n++){var r=a[n];e.splice(r,1)}})(t.steps),t.steps.length&&m(e)}(e)},t.frameTime)}function g(e,t,n){if(!(n.alpha<=0)){var a=k(e.metrics,e.frames,n.frame,n.lane),r=a.sheet,i=a.sprite;if(r&&i){e.source[r.id];var o=e.images[r.id];if(!1!==o.complete){t.canvas.show();var s=t.canvas[0].width/e.canvasRatio,l=t.canvas[0].height/e.canvasRatio;t.context.globalAlpha=n.alpha,t.context.drawImage(o,i.sampledX,i.sampledY,i.sampledWidth,i.sampledHeight,0,0,s,l)}}}}V(t,{name:t,onLoad:function(e,t){var n=d(t);n.canvas=n.canvas||p("<canvas class='blur-layer'></canvas>"),n.context=n.context||n.canvas[0].getContext("2d"),n.steps=n.steps||[],n.fadeTime=Math.max(o(t,"blurFadeTime",200),1),n.frameTime=Math.max(o(t,"blurFrameTime",t.frameTime),16),n.trackTime=null,n.cssBlur=!!o(t,"blurCss",!1);var a=b(t),r=t.responsive?w(t):h(t),i=x(t.sizeMode,a,r);n.canvas[0].width=t.width*t.canvasRatio,n.canvas[0].height=t.height*t.canvasRatio,n.canvas.css(i).show(),n.context.scale(t.canvasRatio,t.canvasRatio),t.target.append(n.canvas)},onFrameChanged:function(e,t){var n,a,r,i,o=d(t);a=d(n=t),r=N(n),i=(i=Math.abs(n.frame-r.lastFrame))>=n.frames/2?n.frames-i:i,a.steps.unshift({frame:n.frame,lane:n.lane,live:1,step:a.frameTime/a.fadeTime,d:i,alpha:0}),null==o.timeout&&m(t)}})}(),function(){var a=Math.max,r=Math.min,t="ease";function f(e){return O(e,t)}function i(e,t,n){return e[t]||n}function e(e,t){q(t,"dragging")&&(m(t),function(e){var t=f(e);t.samples.push({time:(new Date).getTime(),frame:e.frame,lane:e.lane});for(;t.samples.length>t.maxSamples;)t.samples.shift()}(t))}function n(e,t){for(var n,a=f(t),r=a.samples,i=0,o=0,s=0,l=0,u=r;l<u.length;l++){var c=u[l];if(n){var d=c.time-n.time;if(d>a.abortTime)return i=o=s=0,m(t);o+=c.frame-n.frame,i+=c.lane-n.lane,s+=d,n=c}else n=c}r.length=0,s&&(a.lane=t.lane,a.lanes=0,a.laneStep=i/s*a.updateTime,a.frame=t.frame,a.frames=0,a.frameStep=o/s*a.updateTime,g(t))}function m(e){var t=f(e);null!=t.handler&&(window.clearTimeout(t.handler),t.handler=null)}function g(e){var t=f(e);t.handler=window.setTimeout(function(){!function(e){var t=f(e);t.lanes+=t.laneStep,t.frames+=t.frameStep,t.laneStep*=t.damping,t.frameStep*=t.damping;var n=Math.floor(t.frame+t.frames),a=Math.floor(t.lane+t.lanes);Q(e,n,a),q(e,"dragging")?m(e):.005<Math.abs(t.frameStep)||.005<Math.abs(t.laneStep)?g(e):m(e)}(e)},t.updateTime)}V(t,{name:t,onLoad:function(e,t){var n=f(t);n.maxSamples=a(i(t,"easeMaxSamples",5),0),n.damping=a(r(i(t,"easeDamping",.9),.999),0),n.abortTime=a(i(t,"easeAbortTime",250),16),n.updateTime=a(i(t,"easeUpdateTime",t.frameTime),16),n.samples=[],n.steps=[]},mousemove:e,mouseup:n,mouseleave:n,touchmove:e,touchend:n,touchcancel:n})}(),function(){var t="gallery";function m(e){return O(e,t)}function g(e,t,n){return e[t]||n}V(t,{name:t,onLoad:function(e,t){var n=m(t);n.images=[],n.offsets=[],n.frame=t.frame,n.speed=g(t,"gallerySpeed",500),n.opacity=g(t,"galleryOpacity",.25),n.stage=g(t,"galleryStage",p("<div></div>")),n.stage.empty().addClass("gallery-stage").prependTo(t.stage);for(var a=0,r=0,i=t.images;r<i.length;r++){var o=i[r],s=y(o),l=t.height/s.height,u=p(o);n.stage.append(u),n.images.push(u),n.offsets.push(-a+(t.width-o.width*l)/2),a+=t.width,u.css({"max-width":"initial",opacity:n.opacity,width:t.width,height:t.height})}var c=b(t),d=t.responsive?w(t):h(t),f=x(t.sizeMode,c,d);n.stage.css(f).css({width:a,left:n.offsets[n.frame]}),n.images[n.frame].animate({opacity:1},{duration:n.speed})},onDraw:function(e,t){var n=m(t),a=fe(t),r=q(t,"dragging");n.frame===t.frame||r?(r||n.dX!==a.dX)&&(n.dX=a.dX,n.ddX=a.ddX,n.stage.stop(!0,!0).css({left:n.offsets[n.frame]+n.dX})):(n.stage.stop(!0,!1).animate({left:n.offsets[t.frame]},{duration:n.speed}),n.images[n.frame].animate({opacity:n.opacity},{duration:n.speed}),n.frame=t.frame,n.images[n.frame].animate({opacity:1},{duration:n.speed}),n.stage.animate({left:n.offsets[n.frame]}))}})}(),function(){var t="panorama";function l(e){return O(e,t)}V(t,{name:t,onLoad:function(e,t){var n=l(t),a=t.metrics[0];if(a){"horizontal"===t.orientation?(n.scale=t.target.innerHeight()/a.sampledHeight,t.frames=a.sampledWidth):(n.scale=t.target.innerWidth()/a.sampledWidth,t.frames=a.sampledHeight);var r=Math.floor(a.sampledWidth*n.scale),i=Math.floor(a.sampledHeight*n.scale);t.stage.css({"background-image":"url("+t.source[a.id]+")","background-repeat":"repeat-both","-webkit-background-size":r+"px "+i+"px","-moz-background-size":r+"px "+i+"px","-o-background-size":r+"px "+i+"px","background-size":r+"px "+i+"px"})}},onDraw:function(e,t){var n=l(t),a="horizontal"===t.orientation?1:0,r=a?0:1,i=t.frame%t.frames,o=Math.round(a*i*n.scale),s=Math.round(r*i*n.scale);t.stage.css({"background-position":o+"px "+s+"px"})}})}(),function(){var t="zoom";function h(e){return O(e,t)}function a(e,t,n){return t in e?e[t]:n}function r(e,t){var n=h(t);if(n.stage.is(":visible")){e.preventDefault(),n.pinFrame&&B(t,"dragging",!1);var a=u(e),r=a.x/t.width,i=a.y/t.height;null==n.oldX&&(n.oldX=r,n.oldY=i),null==n.currentX&&(n.currentX=r,n.currentY=i);var o=r-n.oldX,s=i-n.oldY;n.oldX=r,n.oldY=i,e.type.match(/touch/)&&(o=-o,s=-s),n.currentX=R(n.currentX+o,0,1),n.currentY=R(n.currentY+s,0,1),Q(t,t.frame,t.lane)}}function e(e,t){var n=h(t);if(n.useClick){e.preventDefault();var a=(new Date).getTime();if(n.clickTime)a-n.clickTime>n.doubleClickTime?n.clickTime=a:(n.clickTime=void 0,i(t)&&r(e,t));else n.clickTime=a}}function n(e,t){h(t).stage.is(":visible")&&r(e,t)}function i(e){var t=h(e);if(!t.stage)throw new Error("zoom module is not initialized or is not available.");return t.stage.is(":visible")?(o(e),!1):(s(e),!0)}function o(e){h(e).stage.fadeOut(),e.stage.fadeIn()}function s(e){h(e).stage.fadeIn(),e.stage.fadeOut()}V(t,{name:t,mousedown:e,touchstart:e,mousemove:n,touchmove:n,wheel:function(e,t){var n=h(t);if(!t.loading&&n.useWheel){var a=e.originalEvent,r=0===a.deltaY?0:0<a.deltaY?1:-1;"number"==typeof n.useWheel&&(r*=n.useWheel),n.stage.is(":visible")&&0<r&&(e.preventDefault(),o(t)),!n.stage.is(":visible")&&r<0&&(e.preventDefault(),s(t))}},onInit:function(e,t){var n=h(t);n.source=a(t,"zoomSource",t.source),n.useWheel=a(t,"zoomUseWheel",!1),n.useClick=a(t,"zoomUseClick",!0),n.pinFrame=a(t,"zoomPinFrame",!0),n.doubleClickTime=a(t,"zoomDoubleClickTime",500),n.stage=n.stage||p("<div class='zoom-stage'></div>"),n.stage.css({width:"100%",height:"100%",top:0,left:0,bottom:0,right:0,position:"absolute"}).appendTo(t.target).hide()},onDestroy:function(e,t){var n=h(t);n.stage&&(n.stage.remove(),delete n.stage)},onDraw:function(e,t){var n=h(t),a=t.lane*t.frames+t.frame,r=n.source[a],i=k(t.metrics,t.frames,t.frame,t.lane),o=n.currentX,s=n.currentY;if(null==o&&(o=n.currentX=.5,s=n.currentY=.5),r)o=Math.floor(100*o),s=Math.floor(100*s),n.stage.css({"background-repeat":"no-repeat","background-image":"url('"+r+"')","background-position":o+"% "+s+"%"});else if(i.sheet&&i.sprite){var l=i.sprite,u=i.sheet,c=t.source[u.id],d=-Math.floor(l.sampledX+o*(l.sampledWidth-t.width)),f=-Math.floor(l.sampledY+s*(l.sampledHeight-t.height)),m=u.sampledWidth,g=u.sampledHeight;n.stage.css({"background-image":"url('"+c+"')","background-position":d+"px "+f+"px","background-repeat":"no-repeat","-webkit-background-size":m+"px "+g+"px","-moz-background-size":m+"px "+g+"px","-o-background-size":m+"px "+g+"px","background-size":m+"px "+g+"px"})}}}),l({toggleZoom:function(){i(this.data)}})}();var Me={$:p,bind:W,clamp:R,detectSubsampling:v,error:C,findSpecs:k,getComputedSize:w,getCursorPosition:u,getInnerLayout:x,getInnerSize:b,getOuterSize:h,isFunction:function(e){return"function"==typeof e},log:Y,measure:n,naturalSize:y,noop:S,pixelRatio:I,preload:a,prevent:E,sourceArray:c,toArray:P,unbind:D,warn:z,wrap:A};e.Utils=Me,e.sourceArray=c,e.Api=i,e.extendApi=l,e.instances=re,e.applyEvents=se,e.boot=le,e.create=ue,e.createOrUpdate=ce,e.destroy=de,e.namespace=d,e.eventNames=g,e.callbackNames=M,e.eventsToPrevent=F,e.defaults=m,e.getInputState=fe,e.updateInput=me,e.resetInput=ge,e.applyLayout=H,e.getPlaybackState=N,e.updateFrame=Q,e.stopAnimation=Z,e.applyAnimation=G,e.startAnimation=J,e.registerPlugin=V,e.registerModule=function(e,t){z('"registerModule" is deprecated, use "registerPlugin" instead'),V(e,t)},e.getPlugin=ee,e.applyPlugins=te,e.getState=L,e.getPluginState=O,e.is=q,e.flag=B,Object.defineProperty(e,"__esModule",{value:!0})});