(function($){function Busy(a){this.options=$.extend({},Busy.defaults,a)};Busy.instances=[];Busy.repositionAll=function(){for(var i=0;i<Busy.instances.length;i++){if(!Busy.instances[i])continue;var a=Busy.instances[i].options;new Busy(a).positionImg($(Busy.instances[i].target),$.data(Busy.instances[i].target,"busy"),a.position)}};Busy.prototype.hide=function(b){b.each(function(){var a=$.data(this,"busy");if(a)a.remove();$(this).css("visibility","");$.data(this,"busy",null);for(var i=0;i<Busy.instances.length;i++)if(Busy.instances[i]!=null&&Busy.instances[i].target==this)Busy.instances[i]=null})};Busy.prototype.show=function(c){var d=this;c.each(function(){if($.data(this,"busy"))return;var a=$(this);var b=d.buildImg();b.css("visibility","hidden");b.load(function(){d.positionImg(a,b,d.options.position);b.css("visibility","")});$("body").append(b);if(d.options.hide)a.css("visibility","hidden");$.data(this,"busy",b);Busy.instances.push({target:this,options:d.options})})};Busy.prototype.preload=function(){var a=this.buildImg();a.css("visibility","hidden");a.load(function(){$(this).remove()});$("body").append(a)};Busy.prototype.buildImg=function(){var a="<img src='"+this.options.img+"' alt='"+this.options.alt+"' title='"+this.options.title+"'";if(this.options.width)a+=" width='"+this.options.width+"'";if(this.options.height)a+=" height='"+this.options.height+"'";a+=" />";return $(a)};Busy.prototype.positionImg=function(a,b,c){var d=a.offset();var e=a.outerWidth();var f=a.outerHeight();var g=b.outerWidth();var h=b.outerHeight();if(c=="left"){var i=d.left-g-this.options.offset}else if(c=="right"){var i=d.left+e+this.options.offset}else{var i=d.left+(e-g)/2.0}var j=d.top+(f-h)/2.0;b.css("position","absolute");b.css("left",i+"px");b.css("top",j+"px")};Busy.defaults={img:'busy.gif',alt:'Please wait...',title:'Please wait...',hide:true,position:'center',zIndex:1001,width:null,height:null,offset:10};$.fn.busy=function(a,b){if($.inArray(a,["clear","hide","remove"])!=-1){new Busy(a).hide($(this))}else if(a=="defaults"){$.extend(Busy.defaults,b||{})}else if(a=="preload"){new Busy(a).preload()}else if(a=="reposition"){Busy.repositionAll()}else{new Busy(a).show($(this));return $(this)}}})(jQuery);

