(function(factory){
if(typeof exports=='object'){
factory(require('jquery'), require('spin'))
}
else if(typeof define=='function'&&define.amd){
define(['jquery', 'spin'], factory)
}else{
if(!window.Spinner) throw new Error('Spin.js not present')
factory(window.jQuery, window.Spinner)
}}(function($, Spinner){
$.fn.spin=function(opts, color){
return this.each(function(){
var $this=$(this),
data=$this.data();
if(data.spinner){
data.spinner.stop();
delete data.spinner;
}
if(opts!==false){
opts=$.extend({ color: color||$this.css('color') },
$.fn.spin.presets[opts]||opts
)
if(typeof opts.right!=='undefined'&&typeof opts.length!=='undefined'
&& typeof opts.width!=='undefined'&&typeof opts.radius!=='undefined'){
var pad=$this.css('padding-left');
pad=(typeof pad==='undefined') ? 0:parseInt(pad, 10);
opts.left=$this.outerWidth() -(2 *(opts.length + opts.width + opts.radius)) - pad - opts.right;
delete opts.right;
}
data.spinner=new Spinner(opts).spin(this)
}})
}
$.fn.spin.presets={
tiny: { lines: 8, length: 2, width: 2, radius: 3 },
small: { lines: 8, length: 4, width: 3, radius: 5 },
large: { lines: 10, length: 8, width: 4, radius: 8 }}
}));
(function($){
$.fn.spin.presets.wp={ trail: 60, speed: 1.3 };
$.fn.spin.presets.small=$.extend({ lines:  8, length: 2, width: 2, radius: 3 }, $.fn.spin.presets.wp);
$.fn.spin.presets.medium=$.extend({ lines:  8, length: 4, width: 3, radius: 5 }, $.fn.spin.presets.wp);
$.fn.spin.presets.large=$.extend({ lines: 10, length: 6, width: 4, radius: 7 }, $.fn.spin.presets.wp);
$.fn.spin.presets['small-left']=$.extend({ left:  5 }, $.fn.spin.presets.small);
$.fn.spin.presets['small-right']=$.extend({ right: 5 }, $.fn.spin.presets.small);
$.fn.spin.presets['medium-left']=$.extend({ left:  5 }, $.fn.spin.presets.medium);
$.fn.spin.presets['medium-right']=$.extend({ right: 5 }, $.fn.spin.presets.medium);
$.fn.spin.presets['large-left']=$.extend({ left:  5 }, $.fn.spin.presets.large);
$.fn.spin.presets['large-right']=$.extend({ right: 5 }, $.fn.spin.presets.large);
})(jQuery);