﻿/*
 * Largement inspirer de
 * Demo: http://www.texotela.co.uk/code/jquery/newsticker/
 */
 
(function($) {
/*
 * Grand teaser d'accueil
 *
 * @name     grandTeaser
 * @param    delay      Delay (in milliseconds) between iterations. Default 4 seconds (4000ms)
 * @example  $("#news").grandTeaser(); // or $("#news").newsTicker(5000);
 *
 */
$.fn.grandTeaser = $.fn.grandTeaser = function(delay)
{
	delay = delay || 5000;
	initTicker = function(el)
	{
		stopTicker(el);
		el.items = $("div .grandTeaserSelected", el);
		// hide all items (except first one)
		el.items.not(":eq(0)").hide().end();
		// current item
		el.currentitem = 0;
		startTicker(el);
	};
	startTicker = function(el)
	{
		el.tickfn = setInterval(function() { doTick(el) }, delay)
	};
	stopTicker = function(el)
	{
		clearInterval(el.tickfn);
	};
	pauseTicker = function(el)
	{
		el.pause = true;
	};
	resumeTicker = function(el)
	{
		el.pause = false;
	};
	doTick = function(el)
	{
		// don't run if paused
		if(el.pause) return;
		// pause until animation has finished
		el.pause = true;
		// hide current item
		
		
		var photoTeaser = $("#grandTeaserImageInnerContainer").get(0);
		
		$(photoTeaser).fadeOut(1500);
        
        $(this).delay(1000, function(){
                $(el.items[el.currentitem]).fadeOut(500,
	                function()
	                {
		                $(this).hide();
		                // move to next item and show
		                el.currentitem = ++el.currentitem % (el.items.size());
        				
                        var photo = $(".teaserImageLink", el.items[el.currentitem]).get(0);
                        $(photoTeaser).empty().append($(photo).html());				
        		        
                        $(photoTeaser).fadeIn(1500);
		                $(el.items[el.currentitem]).fadeIn(500,
			                function()
			                {
				                el.pause = false;
			                }
		                );
	                }
                );
            }
        );
        
	};
	this.each(
		function()
		{
			if(this.nodeName.toLowerCase()!= "div") return;
			initTicker(this);
		}
	)
	//ab- .addClass("grandTeaser")
	.hover(
		function()
		{
			// pause if hovered over
			pauseTicker(this);
		},
		function()
		{
			// resume when not hovered over
			resumeTicker(this);
		}
	);
	return this;
};

})(jQuery);