jQuery.fn.liScroll = function(settings) {
	settings = jQuery.extend({
		travelocity: 0.07
	}, settings);		
	
	return this.each(function() {
		var $strip = $(this);
		$strip.addClass("newsticker");
		
		var stripWidth = 0;
		var containerWidth = $strip.parent().parent().width();
		
		$strip.find("li").each(function(i) {
			stripWidth += jQuery(this, i).outerWidth(true);
		});
		$strip.width(stripWidth);
		
		var totalTravel = stripWidth+containerWidth;
		var defTiming = 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 = residualSpace/settings.travelocity;
			scrollnews(residualSpace, residualTime);
		});
	});	
}

function parseXml(xml) {
	$(xml).find("item").each(function() {
		$link = $(this).find("link").text();
		$text = $(this).find("text").text();
		
		if ($link != "") {
			$("ul#ticker").append("<li><a href='" + $link + "'>" + $text + "</a></li>");
		} else {
			$("ul#ticker").append('<li>' + $text + '</li>');
		}
	});
	
	$("#ticker").liScroll({travelocity: 0.15});
}

function xmlError(request, textStatus, error) {
}

$(function() {
    $.ajax({
        type: "GET",
        url: "/ticker_items.xml",
        dataType: "xml",
        success: parseXml,
        error: xmlError
    });
});

