var Amplify = {
	'init': function(item) {
		item.inherit = this.inherit;
		item.inherit(this);
		
		item.DOM();
		
		item.isInit = true;
		return item;
	},
		
	titles: [],
	bodies: [],
	DOM: function() {
		var _, __;
		
		_ = this.getElementsByTagName('dt');
		__ = this.getElementsByTagName('dd');
		if (_.length == __.length) 
			for (var q = 0, length = _.length; q < length; q++) {
				this.titles.push(this.Title.init(_[q], __[q]));
				this.bodies.push(this.Body.init(__[q]));
			}
	},
	
	Title: {
		'init': function(item, body) {
			item.inherit = this.inherit;
			item.inherit(this);
			
			item.DOM(body);
			
			item.isInit = true;
			return item;
		},
		
		DOM: function(body) {
			this.body = body;
			var _ = this.onclick;
			Event.attach(this, 'click', function() {body.switchVisible()}, true);
		}
	},
	Body: {
		'init': function(item) {
			item.inherit = this.inherit;
			item.inherit(this);
			
			item.DOM();
			
			item.isInit = true;
			return item;
		},

		switchVisible: function() {
			if (this.isOpen) {
				this.style.display = 'none';
			} else {
				this.style.display = '';
			}
			this.isOpen = !this.isOpen;
		},

		DOM: function() {
			this.isOpen = (this.style.display.toLowerCase() == 'none') ? false : true;
		}
	}
}


changeTitleDecoration = function(elem) {
	var _ = elem;
	_.text = _.text || _.innerText || _.firstChild.innerHTML;
	
	if (_.firstChild.tagName == 'A') {
		_.innerHTML = '<h2 class="amplify">' + _.text + '</h2>';
	} else {
		_.innerHTML = '<a href="#" class="title" onClick="return false;">' + _.text + '</a>';
	}	
}
