/**
  * Toggle fade in/out text-blocks, if you click the text-heading, i. e. for faq-sites.
	* @author David Scherr
	* @copyright Copyright (c) 2010 ETECTURE GmbH (http://www.etecture.de)
	* @license Commercial
 **/

var Toggle = function() {
    return {
        /**
        * @param toggleBlockClass  The CSS-class of the hole block which wraps the toggle-link and the toggle-text.
        * @param toggleLinkClass  The CSS-class of the link, which triggers the toggle of the text.
        * @param toggleTextClass  The CSS-class of the text, which should be toggled (fade in/out) triggered by clicking on the toggle-link.
        */
        settings: function(toggleBlockClass, toggleLinkClass, toggleTextClass) {
            for (var i = 0; i < jQuery(toggleBlockClass).length; i++) {
                jQuery(toggleBlockClass)[i].id = toggleBlockClass.substr(1) + i;

            }

            var selector, selectorToggle, selectorToggle1, selectorToggle2;
            jQuery(toggleLinkClass).click(function() {
                selector = jQuery(this).parent();

                while (("." + selector.attr("class")) != toggleBlockClass) {
                    selector = selector.parent();
                }
                selector = selector.attr("id");
                selectorToggle = "#" + selector + " " + toggleTextClass;

                for (var i = 0; i < jQuery(toggleBlockClass).length; i++) {
                    var element = toggleBlockClass.replace(".", "#") + i + " " + toggleTextClass;
                    selector = toggleBlockClass.replace(".", "#") + i + " " + toggleLinkClass;
                    if (element == selectorToggle) {
                        
                        if (!jQuery(selector).hasClass("not-toggled")) {
                            jQuery(element).slideToggle("slow");
                            jQuery(selector).addClass("not-toggled");
                            jQuery(selector).removeClass("is-toggled");
                        }
                    }
                    else {
                        if (jQuery(selector).hasClass("not-toggled")) {
                            jQuery(selector).addClass("is-toggled");
                            jQuery(selector).removeClass("not-toggled");
                            jQuery(element).slideToggle("slow");
                        }
                    }
                }
            });
        }
    }
}
