// BUG IE : ne pas oublier d'ajouter un background-color aux elements qui subissent le fade !
// et ajouter filter:none; au body

// Create namespace
if (at == undefined) var at = {};
if (at.bartelme == undefined) at.bartelme = {};

// Newsticker Class
at.bartelme.newsticker = Class.create();
at.bartelme.newsticker.prototype = {
	initialize: function()
	{
		// Get elements
		this.interval = 5000;
		this.container = $("newsticker");
		this.messages  = $A(this.container.select('[class="home-actu"]'));
		this.number_of_messages = this.messages.length;
		if (this.number_of_messages == 0)
		{
			this.showError();
			return false;
		}
		this.current_message = 0;
		this.previous_message = null;

		if (this.number_of_messages > 2)
		{
			this.hideMessages();
			this.showMessage();
			// Install timer
			this.timer = setInterval(this.showMessage.bind(this), this.interval);
		}
  	},
	showMessage: function()
	{
		Effect.Appear(this.messages[this.current_message]);
		if (this.current_message + 1 < this.number_of_messages-1)
			Effect.Appear(this.messages[this.current_message + 1]);
		setTimeout(this.fadeMessage.bind(this), this.interval-1000);
		if (this.current_message < this.number_of_messages-1)
		{
			this.previous_message = this.current_message;
			this.current_message = this.current_message + 2;
		} else {
			this.current_message = 0;
			this.previous_message = this.number_of_messages - 1;
		}
	},
	fadeMessage: function()
	{
		Effect.Fade(this.messages[this.previous_message]);
		if (this.previous_message + 1 < this.number_of_messages-1)
			Effect.Fade(this.messages[this.previous_message + 1]);
	},
	hideMessages: function()
	{
		this.messages.each(function(message)
		{
			Element.hide(message);
		})
	},
	toggle: function()
	{
		Effect.BlindUp(this.container, 1000);
	},
	showError: function()
	{
		this.errorMessage = document.createElement("div");
		this.errorMessage.className = "error";
		this.errorMessage.innerHTML = "Could not retrieve data";
		this.list.appendChild(this.errorMessage);
	}
}

Event.observe(window, "load", function(){new at.bartelme.newsticker()}, false);
