/*
 * Scroller plugin
 */
jQuery.noConflict();
(function($) { 
jQuery.fn.liScroll = function(settings){
    settings = jQuery.extend({
        travelocity: 0.07,
		direction: 'left',
		handlePrev: null,		
		handleNext: null
    }, settings);
	
    return this.each(function(){
        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().width(); //a.k.a. 'mask' width 	
        $strip.find("li").each(function(i){
            stripWidth += jQuery(this, i).width();
        });
        $strip.width(stripWidth);
        var defTiming = stripWidth / settings.travelocity;
        var totalTravel = stripWidth + containerWidth;
		
        function scrollnews(spazio, tempo, direction){
			var dir = '-=';
			if (direction == 'right') dir = '+=';
			
            $strip.animate({
                left: dir + spazio
            }, tempo, "linear", function(){
                if(containerWidth > 1) { containerWidth = 1}
				$strip.css('left', containerWidth);
                scrollnews(totalTravel, defTiming);
            });
        }
		
        
		
		if ((settings.handleNext == null) && (settings.handlePrev == null)) {
		
			/*
			 * Standard behaviour
			 */
			scrollnews(totalTravel, defTiming, settings.direction);
			$strip.hover(function(){
				jQuery(this).stop();
			}, function(){
				var offset = jQuery(this).offset();
				var residualSpace = offset.direction + stripWidth;
				var residualTime = residualSpace / settings.travelocity;
				scrollnews(totalTravel, defTiming);
			});
			
		} else {
		
			/*
			 * Carrousel behaviour
			 */
			$(settings.handleNext).hover(
				function(){ scrollnews(totalTravel, defTiming, 'right'); },
				function(){
					$strip.stop();
				}
			);
			
			$(settings.handlePrev).hover(
				function(){ scrollnews(totalTravel, defTiming); },
				function(){
					$strip.stop();
				}
			);
		
		
		}
		
    });
};

$(function(){
	/*
	 * Ticker
	 */
	$('#scroller>ul').css('position','relative').liScroll({
		travelocity: 0.07
	});	
	
	/*
	 * Carrousel like
	 */
	$('#carousel>ul').css('position','relative').liScroll({
		travelocity: 0.07,
		handleNext: '.carousel_container .prev',
		handlePrev: '.carousel_container .next'
	});	
})
})(jQuery);

