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