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