// Create scrolling variable if it doesn't exist if (!Scrolling) var Scrolling = {}; //ScrollTween constructor Scrolling.ScrollTween = function () { //private variables var self = this; var _steps = [0,25,50,70,85,95,97,99,100]; var _values = []; var _idle = true; var o, _inc, _timer; //private functions function tweenTo (y) { if (!_idle) return false; var d = o.getDimensions(); if (y < 0) y = 0; if (y > d.theight - d.vheight) y = d.theight - d.vheight; var dist = y - d.y; _inc = 0; _timer = null; _values = []; _idle = false; for (var i = 0; i < _steps.length; i++) { _values[i] = Math.round(d.y + dist * (_steps[i] / 100)); } _timer = window.setInterval(function () { o.scrollTo(_values[_inc]); if (_inc == _steps.length - 1) { window.clearInterval(_timer); _idle = true; } else _inc++; }, o.stepSpeed); }; function tweenBy (y) { o.tweenTo(o.getDimensions().y + y); }; function setSteps (s) { _steps = s; }; //public functions this.apply = function (p) { o = p; o.tweenTo = tweenTo; o.tweenBy = tweenBy; o.setSteps = setSteps; o.stepSpeed = 30; }; };