/* JSCmprsd Hash:d825bb533824c7959565646bfa532d1e */
var MooScroller=new Class({Implements:[Options,Events],options:{maxThumbSize:10,mode:"vertical",width:0,scrollSteps:10,wheel:true,scrollLinks:{forward:"scrollForward",back:"scrollBack"},updateEventParentClass:false},initialize:function(D,A,B){this.setOptions(B);this.horz=(this.options.mode=="horizontal");this.content=$(D).setStyle("overflow","hidden");this.knob=$(A);this.track=this.knob.getParent();this.setPositions();if(this.horz&&this.options.width){this.wrapper=new Element("div");this.content.getChildren().each(function(E){this.wrapper.adopt(E)});this.wrapper.injectInside(this.content).setStyle("width",this.options.width)}this.bound={start:this.start.bind(this),end:this.end.bind(this),drag:this.drag.bind(this),wheel:this.wheel.bind(this),page:this.page.bind(this)};this.position={};this.mouse={};this.update();this.attach();var C=function(){$clear(this.scrolling)}.bind(this);["forward","back"].each(function(E){var F=$(this.options.scrollLinks[E]);if(F){F.addEvents({mousedown:function(){this.scrolling=this[E].periodical(50,this)}.bind(this),mouseup:C.bind(this),click:C.bind(this)})}},this);this.knob.addEvent("click",C.bind(this));window.addEvent("domready",function(){try{$(document.body).addEvent("mouseup",C.bind(this))}catch(E){}}.bind(this));this.fireEvent("onInit");if(this.options.updateEventParentClass){this.content.getParent("."+this.options.updateEventParentClass).addEvent("updateScroller",this.update.bind(this))}},setPositions:function(){[this.track,this.knob].each(function(A){if(A.getStyle("position")=="static"){A.setStyle("position","relative")}})},update:function(){var A=this.horz?"Width":"Height";this.contentSize=this.content["offset"+A];if(this.contentSize){this.contentScrollSize=this.content["scroll"+A];this.trackSize=this.track["offset"+A];this.contentRatio=this.contentSize/this.contentScrollSize;this.knobSize=Math.round((this.trackSize*this.contentRatio).limit(this.options.maxThumbSize,this.trackSize));this.scrollRatio=this.contentScrollSize/this.trackSize;this.knob.setStyle(A.toLowerCase(),this.knobSize+"px");this.updateThumbFromContentScroll();this.updateContentFromThumbPosition()}},updateContentFromThumbPosition:function(){this.content[this.horz?"scrollLeft":"scrollTop"]=this.position.now*this.scrollRatio},updateThumbFromContentScroll:function(){this.position.now=(this.content[this.horz?"scrollLeft":"scrollTop"]/this.scrollRatio).limit(0,(this.trackSize-this.knobSize));this.knob.setStyle(this.horz?"left":"top",this.position.now+"px")},attach:function(){this.knob.addEvent("mousedown",this.bound.start);if(this.options.scrollSteps){this.content.addEvent("mousewheel",this.bound.wheel)}this.track.addEvent("mouseup",this.bound.page)},wheel:function(A){A=new Event(A);this.scroll(-(A.wheel*this.options.scrollSteps));this.updateThumbFromContentScroll();A.stop()},scroll:function(A){A=A||this.options.scrollSteps;this.content[this.horz?"scrollLeft":"scrollTop"]+=A;this.updateThumbFromContentScroll();this.fireEvent("onScroll",[A,this.content[this.horz?"scrollLeft":"scrollTop"]])},forward:function(A){this.scroll(A)},back:function(A){A=A||this.options.scrollSteps;this.scroll(-A)},page:function(C){var B=this.horz?"x":"y";C=new Event(C);var A=(C.page[B]>this.knob.getPosition()[B]);this.scroll((A?1:-1)*this.content["offset"+(this.horz?"Width":"Height")]);this.updateThumbFromContentScroll();this.fireEvent("onPage",A);C.stop()},start:function(B){B=new Event(B);var A=this.horz?"x":"y";this.mouse.start=B.page[A];this.position.start=this.knob.getStyle(this.horz?"left":"top").toInt();document.addEvent("mousemove",this.bound.drag);document.addEvent("mouseup",this.bound.end);this.knob.addEvent("mouseup",this.bound.end);B.stop()},end:function(A){A=new Event(A);document.removeEvent("mousemove",this.bound.drag);document.removeEvent("mouseup",this.bound.end);this.knob.removeEvent("mouseup",this.bound.end);this.fireEvent("onScrollBar");A.stop()},drag:function(B){B=new Event(B);var A=this.horz?"x":"y";this.mouse.now=B.page[A];this.position.now=(this.position.start+(this.mouse.now-this.mouse.start)).limit(0,(this.trackSize-this.knobSize));this.updateContentFromThumbPosition();this.updateThumbFromContentScroll();B.stop()}});