/************************************************
 
	tickertape of list items
	scrolls to the right or left
	
	version	: 00.01
	
	Required:
		- jquery 1.1.2 <
		- dimensions plugin
	
	TODO:
		- scroll up, down
		- pauze onHover
		- cookie position of ticker?
		- scroll left or right on mouse
		- multiple tickers on a page
	
	author:	Elja van Tol
	company: 7U	Digital Handmade Originals, www.7u.nl
	
************************************************/

// Om conflicten met de js code in het CMS te vermijden, jQuery aan $j toewijzen
// Moet na 
var $j = jQuery.noConflict();

var speed = -1; // geef negatieve waarde om naar links te scrollen
var speedOnHover = 0;
var interval = 20;
var t_interval ;

// window.onload = function(){ ... } start pas als alle content geladen is.
// $j(document).ready( function(){ ...  }); start zodra de kale html ingeladen is. Is dus sneller.
// We willen echter dat de init_ticker pas begint als alle plaatjes geladen zijn, anders worden de widths niet goed
// opgeteld omdat deze pas aanwezig zijn als de plaatjes geladen zijn.


//addLoadEvent(function(){
//window.onload = function(){
//	if( $j("#ticker_box") )
//		init_ticker();
//}

function move_tickerlist()
{
	// scrolling to the right
	if(  t_x >= 0 && g_x > 0 && t_x < g_x )
	{
		g_x = t_x - t_w ;
		//console.log(' set ghost to', g_x  );
	}
	else if(  g_x >= 0 && t_x > 0 && g_x < t_x )
	{
		t_x = g_x - t_w ;
		//console.log(' set org to', t_x  );
	}

	// scrolling to the left
	if( (t_x + t_w) <= box_w && g_x < box_w && t_x > g_x )
	{
		g_x = t_x + t_w ;
	}
	else if( (g_x + t_w) <= box_w && t_x < box_w && g_x > t_x )
	{
		t_x = g_x + t_w ;
	}

	
	t_x =  t_x + speed;
	$j("#ticker").css("left", t_x  );

	g_x =  g_x + speed;
	$j("#ticker_ghost").css("left", g_x  );

	//t_interval = setInterval( move_tickerlist, interval );
}

function count_widths()
{
	//dynamisch children tellen
	var tot_w = 0;
	$j.each( $j("#ticker").children("li"), function(i, n)
	{ // i is index
		tot_w += $j(n).width();
	});
	$j("#ticker").css("width",tot_w);

	return tot_w ;
}



function init_ticker()
{
	box_x = $j("#ticker_box").offset().left;
	box_w = $j("#ticker_box").width();
	t_x = 0;//$("#ticker").offset().left  ;
	$j("#ticker").css("left", t_x);

	if( $j("#ticker").children("li").length <= 0 )
		return false;

	var infin = 0;
		
	while( ( t_w = count_widths() ) < box_w  )
	{
		$j("#ticker").children().clone().appendTo( $j("#ticker") );
		infin ++;
		if( infin > 1000 )
		{
			alert('Ticker.js: Infinite loop!');
			break;
		}
	}
	
	//clone list items, zet ze achter het orgineel
	$j("#ticker").after('<ul id="ticker_ghost" class="tickers"></ul>');
	$j("#ticker").children().clone().appendTo( $j("#ticker_ghost") );
	
	//bepaal positie ghost
	g_x = t_x - t_w ;
	$j("#ticker_ghost").css("left", g_x );
	$j("#ticker_ghost").css("width",t_w);
	
	
	/* Pauze onHover */
	$j("#ticker_box").hover(function()
	{
		clearInterval( t_interval );
	},function()
	{
		t_interval = setInterval( move_tickerlist, interval );
	});

	/* Scroll left */
	$j("#ticker_left").hover(function()
	{
		speedNormal = speed;
		speed = - speedOnHover;
		
	},function()
	{
		speed = speedNormal;
	});	
	
	/* Scroll right */
	$j("#ticker_right").hover(function()
	{
		speedNormal = speed;
		speed = speedOnHover;
		
	},function()
	{
		speed = speedNormal;
	});	

	//start ticker
	t_interval = setInterval( move_tickerlist, interval );
	

}

setTimeout(init_ticker,1000);

