/**********************************************************/
/*  digiWrapper: Flexible "Accordion"					  */ 
/*	Copyright DIGIPETS 2009								  */
/*	Version 0.7											  */
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/

$(document).ready(function() {
	
	$.fn.digiWrapper = function(o) {
		o = $.extend({
	        element: '.wrapperElement', //Element, das geöffnet/geschlossen werden soll (muss im HTML auf gleicher Ebene liegen)
			toggler: '.wrapperToggler', //Element das das öffnen/schließen auslöst
			togglerHeight: 0, //Höhe des Togglers (für den Hover benötigt)
			closeOnOpen: false, //Bestimmt, ob die restlichen Elemente geschlossen werden sollen, wenn ein Element geöffnet wird (Accordion)
			speed: 300
	    	
			}, o || {});
	
		$(this).each(function(i){
			
		
			var clickToggler = false, oldHeight = $(this).parent().find(o.element).height();
								
			$(this).parent().find(o.element).slideUp(0);	
			
			//Hover der Toggler
			/* !!!OBSOLETE SINCE VER. 0.6!!!
			$(this).hover(
				//beim Drauffahren
				function(){
					if (clickToggler == false) {
						$(this).parent().find(o.element).height(o.togglerHeight);
					}
				},
				//beim Herunterfahren
				function(){
					if (clickToggler == false) {
						$(this).parent().find(o.element).height(0);
					}
			});
			*/
			
			function resetToggle(selector) {
				selector.each(function() {
			    	this.lastToggle = undefined;
				});
			}
			
			
			//TogglerFunktionen
			
			function toggleOpen(toggler) {
				clickToggler = true;
				toggler.parent().find(o.element).slideDown(o.speed);
				toggler.css('backgroundPosition', '100% -25px');
				return false;
			}
			
			function toggleClose(toggler) {
				clickToggler = false;
				toggler.parent().find(o.element).slideUp(o.speed);
				toggler.css('backgroundPosition', '100% 2px');
				resetToggle(toggler);
				return false;
			}
			
			
			//Klick auf die Toggler
			$(this).toggle(
				//öffnen
				function () {
					if (o.closeOnOpen == true) {
						toggleClose($(this).parent().parent().find(o.toggler).not($(this)));
					}
					toggleOpen($(this));

				//schließen
			},	function () {
				toggleClose($(this));
			});
			
		
		});
					
	}
	
	
		$('.wrapperToggler').digiWrapper({togglerHeight: 18, speed: 300, closeOnOpen: true});
});