// news ticker plugin
jQuery.fn.liScroll = function(settings) {
	settings = jQuery.extend({
		travelocity: 0.07
	}, settings);		
	
	return this.each(function(){
		var $strip = jQuery(this);
		
		$strip.addClass("newsticker");
		
		var stripWidth = 0,
			$mask = $strip.wrap("<div class='mask'></div>"),
			$tickercontainer = $strip.parent().wrap("<div class='tickercontainer'></div>"),
			containerWidth = $strip.parent().parent().width();	//a.k.a. 'mask' width 	
		
		$strip.find("li").each(function(i){
			stripWidth += jQuery(this, i).width() + 28;
		});
		
		$strip.width(stripWidth);			

		var defTiming = stripWidth/settings.travelocity,
			totalTravel = stripWidth+containerWidth;								

		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(),
					residualSpace = offset.left + stripWidth,
					residualTime = residualSpace/settings.travelocity;
					
				scrollnews( residualSpace, residualTime );
			}
		);			
	});	
};

(function(){
	$.extend(ClubMapfre,{
		// controle da barra de clima
		Clima: {
			// inicial
			init: function()
			{
				// seta largura da lista
				ClubMapfre.Clima.setWidth();
				
				// inicia o marquee
				ClubMapfre.Clima.start();
			},
			
			// seta largura da lista
			setWidth: function()
			{
				var li = $( 'div.clima' ).find( 'li' ),
					totalWidth = 0;
				
				// soma largura de todos os itens da lista de cidades
				li.each(function(){
					totalWidth += $( this ).width() + 12;
				});

				// seta tamanho dos itens na lista
				li.parent().width( totalWidth );
			},
			
			// inicia o marquee
			start: function()
			{
				// inicia animacao
				ClubMapfre.Clima.animate();
			},
			
			// anima lista de cidades para a esquerda
			animate: function()
			{
				var ul = $( 'div.clima ul' );
				
				ul.liScroll();
			}
		}
	});
})();