var Marquee = new Class({
	Implements: Options,
	
	options: {
		delay: 4000,		// Dure d'affichage de chaque message
		duration: 2000,		// Durée de la transition entre 2 messages
		emptyMsg: 'Aucune offre premium actuellement'
	},
	
	initialize: function(container, options){
		if(!$(container)) return;
		
		this.setOptions(options);
		this.container = $(container).setStyles({
			position: 'relative',
			overflow: 'hidden'
		});
		this.container.addEvents({
			mouseover: function(){ this.pause = true },
			mouseout: function(){ this.pause = false }
		});
		this.dimensions = this.container.getStyles('width', 'height');
		this.messages = this.container.getChildren().clone();
		
		this.currentMessage = 0;
		
		this.messageQuantity = this.messages.length;
		if(!this.messageQuantity){
			this.container.adopt(new Element('li').appendText(this.options.emptyMsg));
			return;
		}
		
		this.container.empty().adopt(this.messages[0]);
		
		if(this.messageQuantity == 1){
			this.messages[1] = this.messages[0].clone();
			this.messageQuantity = 2;
		}

		this.messages.setStyles({
			position: 'absolute',
			whiteSpace: 'nowrap',
			width: this.dimensions.width,
			height: this.dimensions.height,
			textAlign: 'center'
		})

		this.moveLeft.delay(this.options.delay, this);
	},
	
	moveLeft: function(){
		if(!this.container.pause){
			var currentMessage = this.messages[this.currentMessage];
			this.currentMessage++;
			if(this.currentMessage == this.messageQuantity)	this.currentMessage = 0;
			var nextMessage = this.messages[this.currentMessage];
			currentMessage.setStyle('margin-left', 0);
			nextMessage.setStyle('margin-left', this.dimensions.width);
			this.container.adopt(nextMessage);
			currentMessage.effect('marginLeft', { transition: Fx.Transitions.Back.easeInOut, duration: this.options.duration, onComplete: function(el){el.remove()}}).start(-this.dimensions.width.toInt());
			nextMessage.effect('marginLeft', { transition: Fx.Transitions.Back.easeInOut, duration: this.options.duration}).start(0);
		}
		this.moveLeft.delay(this.options.delay + this.options.duration, this);
	}
});


window.addEvent('domready', function(){
	new Marquee('marquee');
})