!function(n,t){"object"==typeof exports?module.exports=t():"function"==typeof define&&define.amd?define(t):n.Spinner=t()}(this,function(){"use strict";function i(n,t){var i,r=document.createElement(n||"div");for(i in t)r[i]=t[i];return r}function t(n){for(var t=1,i=arguments.length;i>t;t++)n.appendChild(arguments[t]);return n}function a(n,t,i,r){var f=["opacity",t,~~(100*n),i,r].join("-"),e=.01+i/r*100,s=Math.max(1-(1-n)/t*(100-e),n),h=u.substring(0,u.indexOf("Animation")).toLowerCase(),c=h&&"-"+h+"-"||"";return l[f]||(o.insertRule("@"+c+"keyframes "+f+"{0%{opacity:"+s+"}"+e+"%{opacity:"+n+"}"+(e+.01)+"%{opacity:1}"+(e+t)%100+"%{opacity:"+n+"}100%{opacity:"+s+"}}",o.cssRules.length),l[f]=1),f}function e(n,t){var r,i,u=n.style;for(t=t.charAt(0).toUpperCase()+t.slice(1),i=0;i<c.length;i++)if(r=c[i]+t,void 0!==u[r])return r;if(void 0!==u[t])return t}function n(n,t){for(var i in t)n.style[e(n,i)||i]=t[i];return n}function s(n){for(var r,i,t=1;t<arguments.length;t++){r=arguments[t];for(i in r)void 0===n[i]&&(n[i]=r[i])}return n}function h(n,t){return"string"==typeof n?n:n[t%n.length]}function r(n){this.opts=s(n||{},r.defaults,y)}function v(){function u(n,t){return i("<"+n+' xmlns="urn:schemas-microsoft.com:vml" class="spin-vml">',t)}o.addRule(".spin-vml","behavior:url(#default#VML)");r.prototype.lines=function(i,r){function s(){return n(u("group",{coordsize:o+" "+o,coordorigin:-e+" "+-e}),{width:o,height:o})}function c(i,f,o){t(a,t(n(s(),{rotation:360/r.lines*i+"deg",left:~~f}),t(n(u("roundrect",{arcsize:r.corners}),{width:e,height:r.width,left:r.radius,top:-r.width>>1,filter:o}),u("fill",{color:h(r.color,i),opacity:r.opacity}),u("stroke",{opacity:0}))))}var f,e=r.length+r.width,o=2*e,l=2*-(r.width+r.length)+"px",a=n(s(),{position:"absolute",top:l,left:l});if(r.shadow)for(f=1;f<=r.lines;f++)c(f,-2,"progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)");for(f=1;f<=r.lines;f++)c(f);return t(i,a)};r.prototype.opacity=function(n,t,i,r){var u=n.firstChild;r=r.shadow&&r.lines||0;u&&t+r<u.childNodes.length&&(u=u.childNodes[t+r],u=u&&u.firstChild,u=u&&u.firstChild,u&&(u.opacity=i))}}var u,c=["webkit","Moz","ms","O"],l={},o=function(){var n=i("style",{type:"text/css"});return t(document.getElementsByTagName("head")[0],n),n.sheet||n.styleSheet}(),y={lines:12,length:7,width:5,radius:10,rotate:0,corners:1,color:"#000",direction:1,speed:1,trail:100,opacity:.25,fps:20,zIndex:2e9,className:"spinner",top:"50%",left:"50%",position:"absolute"},f;return r.defaults={},s(r.prototype,{spin:function(t){this.stop();var f=this,r=f.opts,e=f.el=n(i(0,{className:r.className}),{position:r.position,width:0,zIndex:r.zIndex});if(r.radius+r.length+r.width,t&&(t.insertBefore(e,t.firstChild||null),n(e,{left:r.left,top:r.top})),e.setAttribute("role","progressbar"),f.lines(e,f.opts),!u){var s,h=0,l=(r.lines-1)*(1-r.direction)/2,c=r.fps,o=c/r.speed,a=(1-r.opacity)/(o*r.trail/100),v=o/r.lines;!function y(){h++;for(var n=0;n<r.lines;n++)s=Math.max(1-(h+(r.lines-n)*v)%o*a,r.opacity),f.opacity(e,n*r.direction+l,s,r);f.timeout=f.el&&setTimeout(y,~~(1e3/c))}()}return f},stop:function(){var n=this.el;return n&&(clearTimeout(this.timeout),n.parentNode&&n.parentNode.removeChild(n),this.el=void 0),this},lines:function(r,f){function s(t,r){return n(i(),{position:"absolute",width:f.length+f.width+"px",height:f.width+"px",background:t,boxShadow:r,transformOrigin:"left",transform:"rotate("+~~(360/f.lines*e+f.rotate)+"deg) translate("+f.radius+"px,0)",borderRadius:(f.corners*f.width>>1)+"px"})}for(var o,e=0,c=(f.lines-1)*(1-f.direction)/2;e<f.lines;e++)o=n(i(),{position:"absolute",top:1+~(f.width/2)+"px",transform:f.hwaccel?"translate3d(0,0,0)":"",opacity:f.opacity,animation:u&&a(f.opacity,f.trail,c+e*f.direction,f.lines)+" "+1/f.speed+"s linear infinite"}),f.shadow&&t(o,n(s("#000","0 0 4px #000"),{top:"2px"})),t(r,t(o,s(h(f.color,e),"0 0 1px rgba(0,0,0,.1)")));return r},opacity:function(n,t,i){t<n.childNodes.length&&(n.childNodes[t].style.opacity=i)}}),f=n(i("group"),{behavior:"url(#default#VML)"}),!e(f,"transform")&&f.adj?v():u=e(f,"animation"),r})