Effect.DefaultOptions.duration = 0.3;
ReviewFader = Class.create();
Object.extend(ReviewFader.prototype, {
	pauseLength: 3500,
	timer: 0,
	currentTitle: 0,
	articles: null,
	
	initialize: function(container,titleTarget,articles) {
		this.container = container;
		this.titleTarget = titleTarget;
		this.articles = articles;
		if ( this.articles[this.currentTitle] ) {
			var title = this.buildTitle(this.articles[this.currentTitle]['title'],this.articles[this.currentTitle]['source']);
			$(this.titleTarget).innerHTML = title;
			// $(this.titleTarget).innerHTML = this.articles[this.currentTitle]['title'];
			this.start();
		}
	},
	start: function() {
		this.interval = setInterval(this.showNext.bind(this), this.pauseLength);
	},
	stop: function() {
		clearInterval(this.interval);
	}, 
	switchData: function() {
		if ( this.articles[this.currentTitle] ) {
			// console.log('source: '+this.articles[this.currentTitle]['source']);
			
			var title = this.buildTitle(this.articles[this.currentTitle]['title'],this.articles[this.currentTitle]['source']);
			$(this.titleTarget).innerHTML = title;
		}
	}, 
	showNext: function() {
		if ( this.currentTitle < this.articles.length - 1) {
			this.currentTitle = this.currentTitle + 1;
		} else {
			this.currentTitle = 0;
		}
		
		new Effect.Fade(
			this.titleTarget,
			{
				afterFinish: function() {
					this.switchData();
					new Effect.Appear(this.titleTarget)
				}.bind(this)
			}
		);
	},
	buildTitle: function(title,source) {
		var sourceTitle = document.createElement('em');
		var sourceText = document.createTextNode(" &mdash;"+source);
		sourceTitle.appendChild(sourceText);
		var article = title + ' <em>&mdash;' + source + '</em>';
		return article;
	}
});
