(function(d){function l(a,b){if(b===undefined)b=typeof a=="boolean"?{show:a}:a;else b.show=a;if(b&&(b.img||b.element)&&!b.pulse)b.pulse=false;if(b&&b.onAjax!==undefined&&b.show===undefined)b.show=false;return b}function h(a,b){var c=a.css(b);return c=="auto"?0:parseFloat(c,10)}var i=d.loading=function(a,b){return d("body").loading(a,b,true)};d.fn.loading=function(a,b,c){b=l(a,b);var f=c?d.extend(true,{},i,i.pageOptions):i;return this.each(function(){var g=d(this),e=d.extend(true,{},f,d.metadata?g.metadata():
null,b);typeof e.onAjax=="boolean"?i.setAjax.call(g,e):i.toggle.call(g,e)})};var k={position:"fixed"};d.extend(i,{version:"1.6.4",align:"top-left",pulse:"working error",mask:false,img:null,element:null,text:"Loading...",onAjax:undefined,delay:0,max:0,classname:"loading",imgClass:"loading-img",elementClass:"loading-element",maskClass:"loading-mask",css:{position:"absolute",whiteSpace:"nowrap",zIndex:1001},maskCss:{position:"absolute",opacity:0.15,background:"#333",zIndex:101,display:"block",cursor:"wait"},
cloneEvents:true,pageOptions:{page:true,align:"top-center",css:k,maskCss:k},html:"<div></div>",maskHtml:"<div></div>",maskedClass:"loading-masked",maskEvents:"mousedown mouseup keydown keypress",resizeEvents:"resize",working:{time:1E4,text:"Still working...",run:function(a){var b=a.working,c=this;b.timeout=setTimeout(function(){c.height("auto").width("auto").text(a.text=b.text);a.place.call(c,a)},b.time)}},error:{time:1E5,text:"Task may have failed...",classname:"loading-error",run:function(a){var b=
a.error,c=this;b.timeout=setTimeout(function(){c.height("auto").width("auto").text(a.text=b.text).addClass(b.classname);a.place.call(c,a)},b.time)}},fade:{time:800,speed:"slow",run:function(a){a=a.fade;var b=a.speed,c=this;a.interval=setInterval(function(){c.fadeOut(b).fadeIn(b)},a.time)}},ellipsis:{time:300,run:function(a){var b=a.ellipsis,c=this;b.interval=setInterval(function(){var f=c.text(),g=a.text,e;e=g.indexOf(".");e=e<0?g.length:e;c.text(f.length-e<3?f+".":g.substring(0,e))},b.time)}},type:{time:100,
run:function(a){var b=a.type,c=this;b.interval=setInterval(function(){var f=c.text().length,g=a.text;c.text(f==g.length?g.charAt(0):g.substring(0,f+1))},b.time)}},toggle:function(a){var b=this.data("loading");if(b)a.show!==true&&b.off.call(this,b,a);else a.show!==false&&a.on.call(this,a)},setAjax:function(a){if(a.onAjax){var b=this,c=0,f=a.ajax={start:function(){c++||a.on.call(b,a)},stop:function(){--c||a.off.call(b,a,a)}};this.bind("ajaxStart.loading",f.start).bind("ajaxStop.loading",f.stop)}else this.unbind("ajaxStart.loading ajaxStop.loading")},
on:function(a,b){var c=a.parent=this.data("loading",a);if(a.max)a.maxout=setTimeout(function(){a.off.call(c,a,a)},a.max);if(a.delay&&!b)return a.timeout=setTimeout(function(){delete a.timeout;a.on.call(c,a,true)},a.delay);if(a.mask)a.mask=a.createMask.call(c,a);a.display=a.create.call(c,a);if(a.img)a.initImg.call(c,a);else a.element?a.initElement.call(c,a):a.init.call(c,a);c.trigger("loadingStart",[a])},initImg:function(a){var b=this;a.imgElement=d('<img src="'+a.img+'"/>').bind("load",function(){a.init.call(b,
a)});a.display.addClass(a.imgClass).append(a.imgElement)},initElement:function(a){a.element=d(a.element).clone(a.cloneEvents).show();a.display.addClass(a.elementClass).append(a.element);a.init.call(this,a)},init:function(a){a.place.call(a.display,a);a.pulse&&a.initPulse.call(this,a)},initPulse:function(a){d.each(a.pulse.split(" "),function(){a[this].run.call(a.display,a)})},create:function(a){var b=d(a.html).addClass(a.classname).css(a.css).appendTo(this);if(a.text&&!a.img&&!a.element)b.text(a.originalText=
a.text);d(window).bind(a.resizeEvents,a.resizer=function(){a.resize(a)});return b},resize:function(a){a.parent.box=null;a.mask&&a.mask.hide();a.place.call(a.display.hide(),a);a.mask&&a.mask.show().css(a.parent.box)},createMask:function(a){var b=a.measure.call(this.addClass(a.maskedClass),a);a.handler=function(c){return a.maskHandler(c,a)};d(document).bind(a.maskEvents,a.handler);return d(a.maskHtml).addClass(a.maskClass).css(b).css(a.maskCss).appendTo(this)},maskHandler:function(a,b){var c=d(a.target).parents().andSelf();
if(c.filter("."+b.classname).length!=0)return true;return!b.page&&c.filter("."+b.maskedClass).length==0},place:function(a){var b=a.align,c="top",f="left";if(typeof b=="object")b=d.extend(a.calc.call(this,c,f,a),b);else{if(b!="top-left"){b=b.split("-");if(b.length==1)c=f=b[0];else{c=b[0];f=b[1]}}this.hasClass(c)||this.addClass(c);this.hasClass(f)||this.addClass(f);b=a.calc.call(this,c,f,a)}this.show().css(a.box=b)},calc:function(a,b,c){c=d.extend({},c.measure.call(c.parent,c));var f=d.boxModel?this.height():
this.innerHeight(),g=d.boxModel?this.width():this.innerWidth();if(a!="top"){var e=c.height-f;if(a=="center")e/=2;else if(a!="bottom")e=0;else if(d.boxModel)e-=h(this,"paddingTop")+h(this,"paddingBottom");c.top+=e}if(b!="left"){e=c.width-g;if(b=="center")e/=2;else if(b!="right")e=0;else if(d.boxModel)e-=h(this,"paddingLeft")+h(this,"paddingRight");c.left+=e}c.height=f;c.width=g;return c},measure:function(a){return this.box||(this.box=a.page?a.pageBox(a):a.elementBox(this,a))},elementBox:function(a){if(a.css("position")==
"absolute")var b={top:0,left:0};else{b=a.position();b.top+=h(a,"marginTop");b.left+=h(a,"marginLeft")}b.height=a.outerHeight();b.width=a.outerWidth();return b},pageBox:function(a){function b(c,f){var g=document;if(c){var e=f.toLowerCase(),j=d(g)[e]();e=d(window)[e]();return j-h(d(g.body),"marginTop")>e?j:e}j="client"+f;return Math.max(g.documentElement[j],g.body[j])}a=d.boxModel&&a.css.position!="fixed";return{top:0,left:0,height:b(a,"Height"),width:b(a,"Width")}},off:function(a,b){this.data("loading",
null);a.maxout&&clearTimeout(a.maxout);if(a.timeout)return clearTimeout(a.timeout);a.pulse&&a.stopPulse.call(this,a,b);if(a.originalText)a.text=a.originalText;a.mask&&a.stopMask.call(this,a,b);d(window).unbind(a.resizeEvents,a.resizer);a.display&&a.display.remove();a.parent&&a.parent.trigger("loadingEnd",[a])},stopPulse:function(a,b){d.each(a.pulse.split(" "),function(){var c=a[this];c.end&&c.end.call(b.display,a,b);c.interval&&clearInterval(c.interval);c.timeout&&clearTimeout(c.timeout)})},stopMask:function(a,
b){this.removeClass(b.maskedClass);d(document).unbind(a.maskEvents,a.handler);a.mask.remove()}})})(jQuery);
