/*
Requires:
	Prototype 1.6
*/

/* Make FAQ questions toggle the answers */
var Toggleable_Definition_Lists = {
	class_to_activate:"toggle",
	class_when_activated:"scripted",
	class_for_hover:"hover",
	class_when_hidden:"hidden",
	
	activate:function() {
		// Loop through all the definition lists requesting toggleability
		var lists = $$("dl." + Toggleable_Definition_Lists.class_to_activate);
		for (var i = 0; i < lists.length; i++) {
			// Mark this list as javascript-enhanced
			lists[i].addClassName(Toggleable_Definition_Lists.class_when_activated);
			
			// Activate the terms
			var terms = lists[i].select("dt");
			for(var m = 0; m < terms.length; m++) {
				terms[m].observe("mouseover", function() {
					this.addClassName(Toggleable_Definition_Lists.class_for_hover);
				});
				
				terms[m].observe("mouseout", function() {
					this.removeClassName(Toggleable_Definition_Lists.class_for_hover);
				});
				
				var objNextDef = terms[m].next("dd");
				if (objNextDef) {
					objNextDef.addClassName(Toggleable_Definition_Lists.class_when_hidden);
				}
				
				terms[m].observe("click", function() {
					var obj = this.next("dd");

					if (obj.hasClassName(Toggleable_Definition_Lists.class_when_hidden)) {
						obj.removeClassName(Toggleable_Definition_Lists.class_when_hidden);
					} else {
						obj.addClassName(Toggleable_Definition_Lists.class_when_hidden);
					}
				});
			} // terms
		} // lists
	} // activate()
}

// Require that Prototype is available
if (typeof Prototype != "undefined") {
	document.observe("dom:loaded", Toggleable_Definition_Lists.activate);
}
