/**
 *	Modifies DOM to achieve certain visual effects
 */ 
Visuals = {
	/**
	 *	The "constructor" ;)
	 */	 	
	initialize: function() {
		this.faqs();
	},
	
	faqs_array: new Object(),
	faqs: function() {
		//var lists = $$('.content ul.faq');
		var lists = $$('ul.faqs');
		lists.each(function(item) { // looping through all ul.faq's
			var listitems = $(item).getElements('li');
			for (var i=0;i<listitems.length;i++) { // looping through all li's within each ul.faq
				var answer = $(listitems[i]).getElement('div.answer');
				if ($defined(answer)) {
					var answerLink = answer.getPrevious();
					if (answer.getProperty('id')) {
						Visuals.faqs_array[answer.getProperty('id')] = new Fx.Slide(answer,{duration: 500});
						if ('#' + window.hash != answerLink.getProperty('href')) {
							Visuals.faqs_array[answer.getProperty('id')].hide();
						} else {
							answerLink.getParent().addClass('selected');
						} ;
					} else {
						answer.setProperty('id','faq_'+i);
						Visuals.faqs_array['faq_'+i] = new Fx.Slide(answer,{duration: 500});
						if ('#' + window.hash != answerLink.getProperty('href')) {
							Visuals.faqs_array['faq_'+i].hide();
						} else {
							answerLink.getParent().addClass('selected');
						};
					};
				};
				var trigger = $(listitems[i]).getElement('div.question a');
				if ($defined(trigger)) {
					trigger.addEvent('click',function(e) {
						evnt = new Event(e);
						//answer = evnt.target.getNext().getFirst().getProperty('id');
						answer = evnt.target.getParent().getNext().getFirst().getProperty('id');
						Visuals.faqs_array[answer].toggle('vertical');
						if (evnt.target.getParent().hasClass('selected')) {
							evnt.target.getParent().removeClass('selected');
						} else {
							evnt.target.getParent().addClass('selected');
						};
						evnt.stop();
					});
				};
			};
		});
	}
	
};
