var ArticlePreview = new Class({
	initialize: function(container_id, items_class, hidden_class, timeout) {
		
		this.items = $$('#' + container_id + ' .' + items_class);
		this.hidden_class = hidden_class;
		this.timeout = timeout;
		this.current = 0;
		
		this.start();
	}
});

ArticlePreview.implement({
	
	start: function() {
		
		var obj = this;
		setInterval(function() {
			
			obj.changeArticle();
		}, this.timeout);
	}, 
	
	changeArticle: function() {
		
		var obj = this;
		var prev = obj.current;
		
		if(obj.current >= obj.items.length - 1) {
			obj.current = 0;
		}
		else {
			obj.current++;
		}
		
		new Fx.Morph(obj.items[prev], {
			duration: 250, 
			onComplete: function() {
				
				obj.items[prev].addClass('hidden');
				obj.items[obj.current].setStyle('opacity', 0);
				obj.items[obj.current].removeClass('hidden');
				
				new Asset.image(obj.items[obj.current].getFirst('a').getFirst('img').src, {onload: function(){
					
					new Fx.Morph(obj.items[obj.current], {
						duration: 250
					}).start({
						opacity: [0, 1]
					});
				}});
			}
		}).start({
			opacity: [1, 0]
		});
	}
});