/*
* 2010 | Jenny Zanella | fr-k.de
*
*/

var cT3Faq = new Class({
	Implements: [Options],
	
	options: {
		frameSel: '.faq-box',
		h1Sel: 'h1',
		
		switchBarContainerSel: '', // '#colmain'
		allOnSwitchText: 'Texte aufklappen',
		allOffSwitchText: 'Texte zuklappen'
	},
	
	initialize: function(options){
		this.setOptions(options);
		
		var foundFaqBoxes = false;
		
		// create FAQ from frames
		
		$$(this.options.frameSel).each(function(faq){
			foundFaqBoxes = true;
		
			faq.header = faq.getElement(this.options.h1Sel);
			faq.header.inject(faq, 'before');
			
			faq.header.addClass('faq_switch');
			faq.header.addClass('faq_switch_hidden');
			faq.addClass('faq_box_hidden');
			
			//faq.header = header;
			
			faq.header.addEvent('click', function(){
				faq.toggleClass('faq_box_hidden');
				faq.header.toggleClass('faq_switch_hidden');
			});
		
		}, this);
		
		// create Main Switches (hide/show all)
		
		if (foundFaqBoxes && this.options.switchBarContainerSel!=''){
			
			// witch all functionality
			var setAllFaqs = function(switchTo) {
				$$(this.options.frameSel).each(function(faq){
					switch (switchTo){
					case 'open':
						faq.removeClass('faq_box_hidden');
						faq.header.removeClass('faq_switch_hidden'); 
						break;
					case 'closed':
					default:
						faq.addClass('faq_box_hidden');
						faq.header.addClass('faq_switch_hidden');
						break;
					}
				});
			}.bind(this);
			faqAllOnSwitch = new Element('a', {
				'href': '#',
				'class': "faq_all_switch faq_all_on",
				'html': this.options.allOnSwitchText 
			});
			faqAllOffSwitch = new Element('a', {
				'href': '#',
				'class': "faq_all_switch faq_all_off",
				'html': this.options.allOffSwitchText 
			});
			faqAllOnSwitch.addEvent('click', function(e){
				e.stop();
				setAllFaqs('open');
			});
			faqAllOffSwitch.addEvent('click', function(e){
				e.stop();
				setAllFaqs('closed');
			});
			
			// manage switch bars
			var switchBars = $$('.faq_switch_bar'); // returns array in any case
			// create Switch Bar and insert into container(s) 			
			if (switchBars.length == 0) {
				$$(this.options.switchBarContainerSel).each(function(contEl){
					var app = new Element('div',{ 'class': "faq_switch_bar" });
					app.inject(contEl,'top'); 
					switchBars.push(app);
				});
			}
			// insert switches into switch bars
			switchBars.each(function(switchBar){
				faqAllOffSwitch.inject(switchBar, 'top');
				faqAllOnSwitch.inject(switchBar, 'top');
			});
			
		
		}
		

				
	}
	

});

// call
/*
window.addEvent('domready',function(){
	var myFaq = new cT3Faq({ frameSel: '.faq-box', h1Sel: 'h1', switchBarContainerSel: '#content-main' });
});	
*/



