// MooTools: the javascript framework. // Load this file's selection again by visiting: http://mootools.net/more/8fbd98e3c6cb839a2c8178c5f66d0319 // Or build this file again with packager using: packager build More/Fx.SmoothScroll /* --- copyrights: - [MooTools](http://mootools.net) licenses: - [MIT License](http://mootools.net/license.txt) ... */ MooTools.More={version:"1.3.0.1",build:"6dce99bed2792dffcbbbb4ddc15a1fb9a41994b5"};(function(){Fx.Scroll=new Class({Extends:Fx,options:{offset:{x:0,y:0},wheelStops:true},initialize:function(c,b){this.element=this.subject=document.id(c); this.parent(b);if(typeOf(this.element)!="element"){this.element=document.id(this.element.getDocument().body);}if(this.options.wheelStops){var d=this.element,e=this.cancel.pass(false,this); this.addEvent("start",function(){d.addEvent("mousewheel",e);},true);this.addEvent("complete",function(){d.removeEvent("mousewheel",e);},true);}},set:function(){var b=Array.flatten(arguments); if(Browser.firefox){b=[Math.round(b[0]),Math.round(b[1])];}this.element.scrollTo(b[0]+this.options.offset.x,b[1]+this.options.offset.y);},compute:function(d,c,b){return[0,1].map(function(e){return Fx.compute(d[e],c[e],b); });},start:function(c,h){if(!this.check(c,h)){return this;}var e=this.element,f=e.getScrollSize(),b=e.getScroll(),d=e.getSize();values={x:c,y:h};for(var g in values){if(!values[g]&&values[g]!==0){values[g]=b[g]; }if(typeOf(values[g])!="number"){values[g]=f[g]-d[g];}values[g]+=this.options.offset[g];}return this.parent([b.x,b.y],[values.x,values.y]);},toTop:function(){return this.start(false,0); },toLeft:function(){return this.start(0,false);},toRight:function(){return this.start("right",false);},toBottom:function(){return this.start(false,"bottom"); },toElement:function(d){var c=document.id(d).getPosition(this.element),b=a(this.element)?{x:0,y:0}:this.element.getScroll();return this.start(c.x+b.x,c.y+b.y); },scrollIntoView:function(d,g,e){g=g?Array.from(g):["x","y"];d=document.id(d);var i={},f=d.getPosition(this.element),j=d.getSize(),h=this.element.getScroll(),b=this.element.getSize(),c={x:f.x+j.x,y:f.y+j.y}; ["x","y"].each(function(k){if(g.contains(k)){if(c[k]>h[k]+b[k]){i[k]=c[k]-b[k];}if(f[k]