!function($){function Antiscroll(el,opts){this.el=$(el),this.options=opts||{},this.x=!1!==this.options.x||this.options.forceHorizontal,this.y=!1!==this.options.y||this.options.forceVertical,this.autoHide=!1!==this.options.autoHide,this.padding=null==this.options.padding?2:this.options.padding,this.inner=this.el.find(".antiscroll-inner"),this.inner.css({width:"+="+(this.y?scrollbarSize():0),height:"+="+(this.x?scrollbarSize():0)}),this.refresh()}function Scrollbar(pane){this.pane=pane,this.pane.el.append(this.el),this.innerEl=this.pane.inner.get(0),this.dragging=!1,this.enter=!1,this.shown=!1,this.pane.el.mouseenter($.proxy(this,"mouseenter")),this.pane.el.mouseleave($.proxy(this,"mouseleave")),this.el.mousedown($.proxy(this,"mousedown")),this.innerPaneScrollListener=$.proxy(this,"scroll"),this.pane.inner.scroll(this.innerPaneScrollListener),this.innerPaneMouseWheelListener=$.proxy(this,"mousewheel"),this.pane.inner.bind("mousewheel",this.innerPaneMouseWheelListener);var initialDisplay=this.pane.options.initialDisplay;!1!==initialDisplay&&(this.show(),this.pane.autoHide&&(this.hiding=setTimeout($.proxy(this,"hide"),parseInt(initialDisplay,10)||3e3)))}function inherits(ctorA,ctorB){function f(){}f.prototype=ctorB.prototype,ctorA.prototype=new f}var size;function scrollbarSize(){if(void 0===size){var div=$('
');$("body").append(div);var w1=$(div).innerWidth(),w2=$("div",div).innerWidth();$(div).remove(),size=w1-w2}return size}$.fn.antiscroll=function(options){return this.each((function(){$(this).data("antiscroll")&&$(this).data("antiscroll").destroy(),$(this).data("antiscroll",new $.Antiscroll(this,options))}))},$.Antiscroll=Antiscroll,Antiscroll.prototype.refresh=function(){var needHScroll=this.inner.get(0).scrollWidth>this.el.width()+(this.y?scrollbarSize():0),needVScroll=this.inner.get(0).scrollHeight>this.el.height()+(this.x?scrollbarSize():0);this.x&&(!this.horizontal&&needHScroll?this.horizontal=new Scrollbar.Horizontal(this):this.horizontal&&!needHScroll?(this.horizontal.destroy(),this.horizontal=null):this.horizontal&&this.horizontal.update()),this.y&&(!this.vertical&&needVScroll?this.vertical=new Scrollbar.Vertical(this):this.vertical&&!needVScroll?(this.vertical.destroy(),this.vertical=null):this.vertical&&this.vertical.update())},Antiscroll.prototype.destroy=function(){return this.horizontal&&(this.horizontal.destroy(),this.horizontal=null),this.vertical&&(this.vertical.destroy(),this.vertical=null),this},Antiscroll.prototype.rebuild=function(){return this.destroy(),this.inner.attr("style",""),Antiscroll.call(this,this.el,this.options),this},Scrollbar.prototype.destroy=function(){return this.el.remove(),this.pane.inner.unbind("scroll",this.innerPaneScrollListener),this.pane.inner.unbind("mousewheel",this.innerPaneMouseWheelListener),this},Scrollbar.prototype.mouseenter=function(){this.enter=!0,this.show()},Scrollbar.prototype.mouseleave=function(){this.enter=!1,this.dragging||this.pane.autoHide&&this.hide()},Scrollbar.prototype.scroll=function(){this.shown||(this.show(),this.enter||this.dragging||this.pane.autoHide&&(this.hiding=setTimeout($.proxy(this,"hide"),1500))),this.update()},Scrollbar.prototype.mousedown=function(ev){ev.preventDefault(),this.dragging=!0,this.startPageY=ev.pageY-parseInt(this.el.css("top"),10),this.startPageX=ev.pageX-parseInt(this.el.css("left"),10),this.el[0].ownerDocument.onselectstart=function(){return!1};var pane=this.pane,move=$.proxy(this,"mousemove"),self=this;$(this.el[0].ownerDocument).mousemove(move).mouseup((function(){self.dragging=!1,this.onselectstart=null,$(this).unbind("mousemove",move),self.enter||self.hide()}))},Scrollbar.prototype.show=function(duration){var _=this;setTimeout((function(){!_.shown&&_.update()&&(_.el.addClass("antiscroll-scrollbar-shown"),_.hiding&&(clearTimeout(_.hiding),_.hiding=null),_.shown=!0)}),100)},Scrollbar.prototype.hide=function(){var _=this;setTimeout((function(){!1!==_.pane.autoHide&&_.shown&&(_.el.removeClass("antiscroll-scrollbar-shown"),_.shown=!1)}),100)},Scrollbar.Horizontal=function(pane){this.el=$('',pane.el),Scrollbar.call(this,pane)},inherits(Scrollbar.Horizontal,Scrollbar),Scrollbar.Horizontal.prototype.update=function(){var paneWidth=this.pane.el.width(),trackWidth=paneWidth-2*this.pane.padding,innerEl=this.pane.inner.get(0);return this.el.css("width",trackWidth*paneWidth/innerEl.scrollWidth).css("left",trackWidth*innerEl.scrollLeft/innerEl.scrollWidth),paneWidth0&&this.innerEl.scrollLeft+Math.ceil(this.pane.el.width())==this.innerEl.scrollWidth)return ev.preventDefault(),!1},Scrollbar.Vertical=function(pane){this.el=$('',pane.el),Scrollbar.call(this,pane)},inherits(Scrollbar.Vertical,Scrollbar),Scrollbar.Vertical.prototype.update=function(){var paneHeight=this.pane.el.height(),trackHeight=paneHeight-2*this.pane.padding,innerEl=this.innerEl,scrollbarHeight=trackHeight*paneHeight/innerEl.scrollHeight;scrollbarHeight=scrollbarHeight<20?20:scrollbarHeight;var topPos=trackHeight*innerEl.scrollTop/innerEl.scrollHeight,diff;topPos+scrollbarHeight>trackHeight&&(topPos=topPos-(topPos+scrollbarHeight-trackHeight)-3);return this.el.css("height",scrollbarHeight).css("top",topPos),paneHeight0&&0==this.innerEl.scrollTop||y<0&&this.innerEl.scrollTop+Math.ceil(this.pane.el.height())==this.innerEl.scrollHeight)return ev.preventDefault(),!1}}(jQuery);