jQuery(function($) {
	
	// Falls die Konstante nicht gesetzt wurde...
	if(typeof tx_kiwiaccordion_effect == 'undefined') {
		tx_kiwiaccordion_effect = 'none';
	}
	
	// Elemente vorbereiten
	$('.ka-panel').each(function() {
		
		//Erste Überschrift suchen
		$header = $(':header:first', this);
		
		//Fehler Behandlung wenn keine Überschrift vorhanden ist
		if($header.length == 0) {
			$(this).addClass('ka-error').removeClass('ka-panel');
			console.error('This panel contains no header.', this);
		}
		else {
			//kleiner trick um <div class="csc-header"><h1>... abzufangen			
			if($header.parent().find('*').length == 1 && !$header.parent().is('.ka-panel')) {
				$header.parent().addClass('ka-handler');
			}
			else {
				$header.addClass('ka-handler');
			}
			
			//Inhalte umschließen für die Ansprache
			$('>*:not(.ka-handler)', this).wrapAll('<div class="ka-content"></div>');
			
			//prüfen ob ein Fehler aufgetreten ist
			if($('.ka-content .ka-handler', this).length > 0) {
				console.error('Handler may not be wrapped by more then one element.', this);
				$(this).addClass('ka-error').removeClass('ka-panel');
			}
		}
	});
	
	// Versteckte Inhalte nicht anzeigen
	$('.ka-panel.close .ka-content').hide();
	
	// Für ein paar Effekte
	$('.ka-panel .ka-handler').hover(function() {
		$(this).parents('.ka-panel').addClass('hover');
	}, function() {
		$(this).parents('.ka-panel').removeClass('hover');
	});
	
	// Eventhandler
	$('.ka-handler').click(function(event, data) {

		$panel = $(this).parents('.ka-panel');
		
		$content = $panel.find('.ka-content');
		
		if($panel.is('.close')) {
			$('.ka-panel.ka-opend').removeClass('ka-opend');
			
			//Dieses Panel aufklappen
			switch(tx_kiwiaccordion_effect) {
				case 'slide':
					$content.slideDown();
					break;
				
				case 'fade':
					$content.fadeIn();
					break;
				
				default:
					$content.show();				
			}
			
			$(this).css('background-position', '0.1em -40px');
						
			$panel.removeClass('close').addClass('open');
			
			
			//Wenn nur ein offenes Panel erlaubt ist, andere Panels schließen
			if(tx_kiwiaccordion_exclusive) {
				//$panel.addClass('ka-opend');
				$('.ka-panel.open .ka-handler').trigger('click', {clicked: $('.ka-panel').index($panel)});
			}
			
		}
		else {
			if(!data) {
				data = { clicked: -1 };
			}
			
			//if(!$panel.is('.ka-opend')) {
			if(data.clicked != $('.ka-panel').index($panel)) {
				//Diesen Panel zuklappen
				switch(tx_kiwiaccordion_effect) {
					case 'slide':
						$content.slideUp();
						break;
					
					case 'fade':
						$content.fadeOut();
						break;
					
					default:
						$content.hide();				
				}
				
				$(this).css('background-position', '0.1em 0');

				
				$panel.removeClass('open').addClass('close');
			}
		}
		
		
				
	});
	
	/*
	
	// Eventhandler
	$('.ka-handler').click(function() {
		$panel = $(this).parents('.ka-panel');
		console.log($panel);
		
		if($panel.is('.close')) {
			// Nur ein offenes Panel gewünscht?
			if(tx_kiwiaccordion_exclusive) {
				// Offenes Panel schließen
				$('.ka-panel.open').removeClass('open').addClass('close').find('*:not(.ka-handler)').hide();
			}
			
			// Angeklicktes Panel öffnen
			$panel.removeClass('close').addClass('open').find('*').show();
		}
		else {
			$panel.removeClass('open').addClass('close').find('*:not(.ka-handler)').hide();
		}
	});
	*/
	
	
});
