var MooScroll=new Class({Implements:Options,options:{selector:".scroll",increment:30,upBtnClass:"upBtn",downBtnClass:"downBtn",scrollBarClass:"scrollBar",scrollHandleClass:"scrollHandle",scrollHandleBGClass:"scrollHandleBG",scrollHandleTopClass:"scrollHandleTop",scrollHandleMiddleClass:"scrollHandleMiddle",scrollHandleBottomClass:"scrollHandleBottom",scrollControlsYClass:"scrollControlsY",wrapperClass:"mooScroll",handleOpacity:1,handleActiveOpacity:0.85,disabledOpacity:0.5},initialize:function(A){this.setOptions(A);$(document.body).getElements(this.options.selector).each(function(C,B){var D=new MooScrollArea(this.options,C)}.bind(this))}});var MooScrollArea=new Class({Implements:Options,initialize:function(C,E){this.setOptions(C);this.container=E;var F=this.container.getCoordinates();this.wrapperDiv=new Element("div",{"class":this.options.wrapperClass}).inject(this.container,"after").wraps(this.container,"top");this.scrollControlsYWrapper=new Element("div",{"class":this.options.scrollControlsYClass}).inject(this.wrapperDiv,"bottom");this.upBtn=new Element("div",{"class":this.options.upBtnClass}).inject(this.scrollControlsYWrapper,"bottom");this.downBtn=new Element("div",{"class":this.options.downBtnClass}).inject(this.scrollControlsYWrapper,"bottom");this.scrollBar=new Element("div",{"class":this.options.scrollBarClass}).inject(this.scrollControlsYWrapper,"bottom");this.scrollHandle=new Element("div",{"class":this.options.scrollHandleClass}).inject(this.scrollBar,"inside");this.scrollHandleTop=new Element("div",{"class":this.options.scrollHandleTopClass}).inject(this.scrollHandle,"inside");this.scrollHandleBG=new Element("div",{"class":this.options.scrollHandleBGClass}).inject(this.scrollHandle,"inside");this.scrollHandleMiddle=new Element("div",{"class":this.options.scrollHandleMiddleClass}).inject(this.scrollHandle,"inside");this.scrollHandleBottom=new Element("div",{"class":this.options.scrollHandleBottomClass}).inject(this.scrollHandle,"inside");this.container.setStyles({overflow:"hidden"});if(Browser.Engine.trident4){var G=this.scrollBar.getStyle("top").toInt();var B=this.scrollBar.getStyle("bottom").toInt();var D=this.container.getSize().y;this.scrollControlsYWrapper.setStyles({height:D});this.scrollBar.setStyles({height:D-G-B})}this.overHang=this.container.getScrollSize().y-F.height;var A=100-((this.overHang*100)/this.container.getScrollSize().y);this.handleHeight=((A*F.height)/100)-(this.scrollHandleTop.getSize().y+this.scrollHandleBottom.getSize().y);if((this.handleHeight+this.scrollHandleTop.getSize().y+this.scrollHandleBottom.getSize().y)>=this.scrollBar.getSize().y){this.handleHeight-=(this.scrollHandleTop.getSize().y+this.scrollHandleBottom.getSize().y)*1.5}if(this.scrollHandle.getStyle("min-height")&&this.handleHeight<parseFloat(this.scrollHandle.getStyle("min-height"))){this.handleHeight=parseFloat(this.scrollHandle.getStyle("min-height"))+this.scrollHandleBottom.getSize().y+this.scrollHandleTop.getSize().y}this.scrollHandle.setStyles({height:this.handleHeight});if(this.overHang<=0){this.scrollHandle.setStyles({display:"none"});this.upBtn.setStyles({opacity:this.options.disabledOpacity}).addEvent("mouseover",function(H){H=new Event(H).stop()}.bind(this));this.downBtn.setStyles({opacity:this.options.disabledOpacity}).addEvent("mouseover",function(H){H=new Event(H).stop()}.bind(this));this.scrollBar.setStyles({opacity:this.options.disabledOpacity}).addEvent("mouseover",function(H){H=new Event(H).stop()}.bind(this));this.coverUp=new Element("div").inject(this.scrollControlsYWrapper,"bottom").setStyles({display:"block",position:"absolute",background:"white",opacity:0.01,right:"0",top:"0",width:"100%",height:this.scrollControlsYWrapper.getSize().y});return }this.slider=new Slider(this.scrollBar,this.scrollHandle,{range:[0,this.overHang],mode:"vertical",onChange:function(H){this.container.scrollTo(0,H)}.bind(this)}).set(0);this.container.addEvents({mousewheel:function(H){H=new Event(H).stop();if(H.wheel>0){this.scrollUp(true)}else{if(H.wheel<0){this.scrollDown(true)}}}.bind(this),keypress:function(H){if(H.key==="up"){H=new Event(H).stop();this.scrollUp(true)}else{if(H.key==="down"){H=new Event(H).stop();this.scrollDown(true)}}}.bind(this),scroll:function(H){this.slider.set(this.container.getScroll().y)}.bind(this)});this.scrollHandle.addEvents({mousedown:function(H){this.scrollHandle.addClass(this.options.scrollHandleClass+"-Active").setStyle("opacity",this.options.handleActiveOpacity)}.bind(this)});document.addEvents({mouseup:function(H){this.scrollHandle.removeClass(this.options.scrollHandleClass+"-Active").setStyle("opacity",this.options.handleOpacity);this.upBtn.removeClass(this.options.upBtnClass+"-Active");this.downBtn.removeClass(this.options.downBtnClass+"-Active")}.bind(this)});this.upBtn.addEvents({mousedown:function(H){$clear(this.upInterval);$clear(this.downInterval);this.upInterval=this.scrollUp.periodical(10,this);this.upBtn.addClass(this.options.upBtnClass+"-Active")}.bind(this),mouseup:function(H){$clear(this.upInterval);$clear(this.downInterval)}.bind(this),mouseout:function(H){$clear(this.upInterval);$clear(this.downInterval)}.bind(this)});this.downBtn.addEvents({mousedown:function(H){$clear(this.upInterval);$clear(this.downInterval);this.downInterval=this.scrollDown.periodical(10,this);this.downBtn.addClass(this.options.downBtnClass+"-Active")}.bind(this),mouseup:function(H){$clear(this.upInterval);$clear(this.downInterval)}.bind(this),mouseout:function(H){$clear(this.upInterval);$clear(this.downInterval)}.bind(this)})},scrollUp:function(A){var B=this.container.getScroll().y-this.options.increment;this.container.scrollTo(0,B);this.slider.set(B);if(this.container.getScroll().y<=0&&A){document.window.scrollTo(0,document.window.getScroll().y-this.options.increment)}},scrollDown:function(A){var B=this.container.getScroll().y+this.options.increment;this.container.scrollTo(0,B);this.slider.set(B);if((this.container.getScrollSize().y-this.container.getSize().y)<=this.container.getScroll().y&&A){document.window.scrollTo(0,document.window.getScroll().y+this.options.increment)}}});