/**
 * @license 
 * jQuery Tools 1.2.5 / Scrollable Autoscroll
 * 
 * NO COPYRIGHTS OR LICENSES. DO WHAT YOU LIKE.
 * 
 * http://flowplayer.org/tools/scrollable/autoscroll.html
 *
 * Since: September 2009
 * Date:    Wed Sep 22 06:02:10 2010 +0000 
 */
(function($) {
    
    var t = $.tools.scrollable;

    t.autoscroll = {

        conf: {
            autoplay: true,
            interval: 1000,
            autopause: true,
            reverse: false
        }
    };

    // jQuery plugin implementation
    $.fn.autoscroll = function(conf) {
        if (typeof conf == 'number') {
            conf = { interval: conf };
        }

        var opts = $.extend({}, t.autoscroll.conf, conf), ret;

        this.each(function() {
            var api = $(this).data("scrollable");
            if (api) { ret = api; }

            // interval stuff
            var timer, stopped = true;

            api.play = function() {

                // do not start additional timer if already exists
                if (timer) { return; }

                stopped = false;

                // construct new timer
                if (opts.reverse) {
                    timer = setInterval(function() { api.prev(); }, opts.interval);
                }
                else {
                    timer = setInterval(function() { api.next(); }, opts.interval);
                }
            };

            api.pause = function() {
                timer = clearInterval(timer);
            };

            // when stopped - mouseover won't restart 
            api.stop = function() {
                api.pause();
                stopped = true;
            };

            /* when mouse enters, autoscroll stops */
            if (opts.autopause) {
                api.getRoot().add(api.getNaviButtons()).hover(api.pause, api.play);
            }

            if (opts.autoplay) {
                api.play();
            }

        });

        return opts.api ? ret : this;

    };

})(jQuery);		

