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 = '#fff';
			if (faq.hasClassName('closed')) {
				ve = 'blind_down';
				ve_color = '#000';
			}
			faq.toggleClassName('closed');
			if (pageManager._ie7) {
				faq.visualEffect(ve, { duration: .3
					, beforeStart: function() { faq._moving = true; faq.up('.faq-category')._moving++; }
					, afterFinish: function() { 
						faq.up('.window').setStyle('height:' + (faq.up('.page-inner-content').offsetHeight + 300) + 'px;');	
						$('slider').setStyle('height:' + (faq.up('.faqs').offsetHeight + 164) + 'px;'); 
					} 
				});
			} else {
				faq.visualEffect(ve, { duration: .3
					, beforeStart: function() { faq._moving = true; faq.up('.faq-category')._moving++; }
					, afterFinish: function() { 
						// for older versions of firefox (<3.5)
						$('slider').setStyle('height:' + (faq.up('.faqs').offsetHeight + 164) + 'px;'); 
					} 
				});			
			}
			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 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').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('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:#fff;'); }};
		});
	}
};