var faq_mon = {
	showCategory: function(category) {
		if (category._moving == 0) {
			category.select('p.closed').each(function(s) {				
				faq_mon.toggleFAQ(s);
			});
		}
	}, hideCategory: function(category) {
		if (category._moving == 0) {
			category.select('p').each(function(s) {
				if (!s.hasClassName('closed')) {
					faq_mon.toggleFAQ(s);
				}
			});
		}
	}, toggleFAQ: function(faq) {
		if (!faq._moving) {
			var ve = 'blind_up';
			var ve_color = '#444';
			if (faq.hasClassName('closed')) {
				ve = 'blind_down';
				ve_color = '#000';
			}
			faq.toggleClassName('closed');
			if (/MSIE\s7/.test(navigator.userAgent)) {
				faq.visualEffect(ve, { duration: .3
					, beforeStart: function() { faq._moving = true; faq.up('.faq-category')._moving++; } 
				});
			} else {
				faq.visualEffect(ve, { duration: .3
					, beforeStart: function() { faq._moving = true; faq.up('.faq-category')._moving++; }
				});			
			}
			faq.previous('h5').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 p').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-all').onclick = function() { faq_mon.showCategory(s); };
			s.down('.collapse-all').onclick = function() { faq_mon.hideCategory(s); };
		});
		
		// set up question links
		$$('.faqs .faq-category li h5').each(function(s) {
			s.onclick = function() { faq_mon.toggleFAQ(s.next('p')); };
			s.onmouseover = function() { if (s.next('p').hasClassName('closed')) { s.setStyle('color:#000;'); }};
			s.onmouseout = function() { if (s.next('p').hasClassName('closed')) { s.setStyle('color:#444;'); }};
		});
	}
};
