// JavaScript Document

(function($) {

	$.fn.jHeadline = function(settings)
	{
		settings = $.extend({}, $.fn.jHeadline.defaults, settings);
		
		return this.each(
			function()
			{
				var headline_interval;
				var headline_hover=false;
				var headline_current=0;
				var headline_old=0;
				
				var $element = $(this);

				// S'assurer que le contenu ne dépasse pas du cadre prévu, afin de récuperer les bonnes dimensions
				$element.css('overflow', 'hidden');
				$element.addClass('jHeadline');
				$(".jHeadline > ul").addClass('jHeadlineUl');
				
				// Récuperer les dimensions du conteneur
				var elementWidth = $element.innerWidth();
				var elementHeight = $element.innerHeight();
				
				// Forcer le type de positionnement du conteneur
				$element.css ('position', 'relative');
				
				
				// Forcer le style les éléments à animer
				$(".jHeadlineUl > li", $element).css ({
											'position':'absolute',
											'overflow':'hidden',
											'height':elementHeight+'px', 
											'width':elementWidth+'px',
											'top':elementHeight+'px'
											});
				
				// Placement du premier élément
				$(".jHeadlineUl > li:first", $element).css('top','0px');
				
				// Animer les éléments à intervals réguliers
				headline_interval = setInterval(jHeadlineRotate, settings.intervalTime); //time in milliseconds
				
				// Suspendre l'animation si la souris est au dessus d'un élément
				$(".jHeadlineUl > li", $element).hover(function() {
					headline_hover = true;
				}, function() {
					headline_hover = false;
				});
				
				function jHeadlineRotate() {
					// Ne pas animer si la souris est au dessus de l'élément
					if (!headline_hover) {
						headline_current = (headline_old + 1) % $(".jHeadlineUl > li", $element).size();
						$(".jHeadlineUl > li:eq(" + headline_old + ")", $element).animate({top: -elementHeight}, settings.animationSpeed, function() {
							$(this).css('top',elementHeight+'px');
						});
						$(".jHeadlineUl > li:eq(" + headline_current + ")", $element).show().animate({top:0}, settings.animationSpeed);  
						headline_old = headline_current;
					}
				}
			}
		);
	};
	
	// Valeurs par défaut
	$.fn.jHeadline.defaults = {
		intervalTime:5000,
		animationSpeed:"slow"
	};

})(jQuery);
