/*!
 * liScroll Fox Edit 1.0
 *
 * Extended li-scroller
 * Author: Barney Fox on behalf of Kream London
 * Date: 23/2/2011
 *
 * ORIGINAL CREDITS
 * Examples and documentation at: 
 * http://www.gcmingati.net/wordpress/wp-content/lab/jquery/newsticker/jq-liscroll/scrollanimate.html
 * 2007-2010 Gian Carlo Mingati
 * Version: 1.0.2 (30-MARCH-2009)
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 * Requires:
 * jQuery v1.2.x or later
 *
 * 
 */


jQuery.fn.liScroll = function(settings) 
{
	settings = jQuery.extend({
		travelocity: 0.07
	}, settings);	

	calculateTiming = function(distance) {
		return distance/settings.travelocity;
	}
		
	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).outerWidth(true); // thanks to Michael Haszprunar
		});
		$strip.width(stripWidth+300);

		$stripClone = $strip.clone();
		$stripClone.attr("id", "stripClone");
		//$stripClone.css("top", $strip.height()*-1)
		$strip.parent().append($stripClone);
				
			
		function scrollnews1(strip, distance){
			strip.animate({left: '-='+ distance}, calculateTiming(distance), "linear", stage1Complete );
		}

		function scrollnews2(strip, distance){
			strip.animate({left: '-='+ distance}, calculateTiming(distance), "linear", stage2Complete );
		}

		function stage1Complete() {
			var $this = $(this);
			//continue scroll till hidden
			scrollnews2($this, containerWidth);
			//start cloned strip moving
			if($this.attr("id") != "stripClone")
				scrollnews1($stripClone, stripWidth);
			else
				scrollnews1($strip, stripWidth);	
		}

		function stage2Complete() {
			$(this).css("left", containerWidth);
			//stage[$(this)] = 0;
		}


		scrollnews1($strip, stripWidth);	

		
		//pause on mouseover
		/*			
		$strip.hover(function(){
			jQuery(this).stop();
		},
		//restart on mouseout
		function(){
			var offset = jQuery(this).offset();
			var residualSpace = offset.left + stripWidth;
			var residualTime = residualSpace/settings.travelocity;
			scrollnews(residualSpace, residualTime);
		});		
		*/	
	});	
};
