/**
 * @author : Thomas. A
 * @url : http://www.stilva.com
 * @Copyright © : Thomas. A url(http://www.stilva.com);
 * @description : scrolls the browser to a div, using easings (c.f Robert Penner's website)
 **/

(function($){
    $.fn.scroller = function(target, time, settings, callBack) {
        if(target.intervalID) {
            clearInterval(target.intervalID);
        }

        // change time to milliseconds
        time *= 1000;

        var fn = "$(window).scrollTop";

        var currentTime = 0;
        var ease = settings.ease?$.easing[settings.ease]:$.easing.easeNone;
        var iniScroll = {x:$(window).scrollLeft(), y:$(window).scrollTop()};
        var targetScroll = {x:settings.x?settings.x:0, y:settings.y?settings.y:0};

        target.intervalID = setInterval(function()
        {
            currentTime+=41;
            eval(fn+"("+(ease("", currentTime, iniScroll.y, targetScroll.y-iniScroll.y, time))+")");

            if(currentTime > time) {
                clearInterval(target.intervalID);
                target.intervalID = null;
				if(callBack) {
					callBack();
				}
            }

        // 41 milliseconds is pretty much the equivalent of 24 fps
        }, 41);
    };
})(jQuery);
