﻿(function(jq) {
    jQuery.fn.scroll = function(settings) {
        settings = jQuery.extend({
            travelocity: 0.1
        }, settings);
        return this.each(function() {
            jQuery('#ticker').removeClass('hide');
            var $strip = jQuery(this);
            $strip.addClass("newsticker")
            var stripWidth = 0;
            var $mask = $strip.wrap("<div class='mask'></div>");
            var $tickercontainer = $strip.parent().wrap("<div class='tickercontainer'></div>");
            var containerWidth = $strip.parent().parent().innerWidth(); //a.k.a. 'mask' width 
            
            $strip.find("li").each(function(i) {
                stripWidth += jQuery(this, i).innerWidth();
            });
            $strip.width(stripWidth);
            /*
                PB 19/01/09: replaced with the code below inc width of container;
                var defTiming = stripWidth / settings.travelocity;
            */
            var totalTravel = stripWidth + containerWidth;
            var defTiming = Math.floor(totalTravel / settings.travelocity);
            function scrollnews(spazio, tempo) {
                $strip.animate({ left: '-=' + spazio }, tempo, "linear", function() {
                    $strip.css("left", containerWidth); scrollnews(totalTravel, defTiming);
                });
            }
            scrollnews(totalTravel, defTiming);
            $strip.hover(
                function() {
                    jQuery(this).stop();
                },
                function() {
                    var offset = jQuery(this).offset();
                    var residualSpace = offset.left + stripWidth;
                    var residualTime = Math.floor(residualSpace / settings.travelocity);
                    scrollnews(residualSpace, residualTime);
                });
        });
    };
 })(jQuery);
