Array.prototype.random = function() {
	return this[Math.floor(Math.random() * this.length)];
}

var TFA = new Object();

/**
 *	Quote Rotation
 */

TFA.Quotes = {
	draw: function(quotes, element) {
		$(element).appendChild(this.createQuoteNode(quotes.random()));
	},
	
	createQuoteNode: function(q) {
		return Builder.node('div', {className: 'quote'}, [
			Builder.node('div', {className: 'quote-header'}),
			Builder.node('div', {className: 'quote-content'}, [
				Builder.node('blockquote', [
					Builder.node('span', q.text)
				]),
				Builder.node('p', [
					Builder.node('strong', q.speaker),
					Builder.node('br'),
					q.speakerInfo
				])
			]),
			Builder.node('div', {className: 'quote-footer'})
		]);
	}
}

/**
 *	Toggleable Sections
 */

TFA.Toggleable = {
	create: function(node, togglerClass, contentClass) {
		var toggler = node.getElementsByClassName(togglerClass).first();
		var content = node.getElementsByClassName(contentClass).first();
		content.hide();
		
		Event.observe(toggler, 'click', function(event) {
			(content.visible()) ? this.removeClassName("toggled") : this.addClassName("toggled");
			Effect.toggle(content, 'appear', {duration: 0.5});
			Event.stop(e);
		}, false);
	}
}