var faq_mon = {
	showCategory: function(category) {
		if (category._moving == 0) {
			category.select('.answer.closed').each(function(s) {				
				faq_mon.toggleFAQ(s);
			});
		}
	}, hideCategory: function(category) {
		if (category._moving == 0) {
			category.select('.answer').each(function(s) {
				if (!s.hasClassName('closed')) {
					faq_mon.toggleFAQ(s);
				}
			});
		}
	}, toggleFAQ: function(faq) {
		if (!faq._moving) {
			var ve = 'blind_up';
			var ve_color = '#fff';
			if (faq.hasClassName('closed')) {
				ve = 'blind_down';
				ve_color = '#f00';
			}
			faq.toggleClassName('closed');
			faq.visualEffect(ve, { duration: .3, beforeStart: function() { faq._moving = true; faq.up('.faq-category')._moving++; } });
			faq.previous('h4').visualEffect('morph', {style: 'color:'+ve_color+';', duration: .3, afterFinish: function() { faq._moving = false; faq.up('.faq-category')._moving--; } });
			// note - we're turning off faq_mon._moving for each individual answer, not the last answer (shouldn't be noticeable)
		}
	}, init: function() {
		// hide all answers initially
		$$('.faqs .faq-category .answer').each(function(s) {
			s.addClassName('closed');
			s._moving = false;
			s.hide();
		});
		
		// set up expand and collapse links
		$$('.faqs .faq-category').each(function(s) {
			s._moving = 0;
			s.down('.expand').onclick = function() { faq_mon.showCategory(s); };
			s.down('.collapse').onclick = function() { faq_mon.hideCategory(s); };
		});
		
		// set up question links
		$$('.faqs .faq-category li h4').each(function(s) {
			s.onclick = function() { faq_mon.toggleFAQ(s.next('.answer')); };
			s.onmouseover = function() { if (s.next('.answer').hasClassName('closed')) { s.setStyle('color:#f00;'); }};
			s.onmouseout = function() { if (s.next('.answer').hasClassName('closed')) { s.setStyle('color:#fff;'); }};
		});
	}
};
