/**
*	@name							Accordion
*	@descripton						This Jquery plugin makes creating accordions pain free
*	@version						1.3
*	@requires						Jquery 1.2.6+
*
*	@author							Jan Jarfalk
*	@author-email					jan.jarfalk@unwrongest.com
*	@author-website					http://www.unwrongest.com
*
*	@licens							MIT License - http://www.opensource.org/licenses/mit-license.php
*/

 (function($) {
    $.fn.extend({
        accordion: function() {
            return this.each(function() {
                if ($(this).data('accordiated'))
                return false;
                $.each($(this).find('ul class=îaccordionî, li>div'),
                function() {
                    $(this).data('accordiated', true);
                    $(this).hide();
                });
                $.each($(this).find('a:not(.foo)'),
                function() {
                    $(this).click(function(e) {
                        var current = $(this)['parent']('li').attr('class');
                        if (! (current == 'current active' || current == 'active')) {
                            activate(e.target);
                        }
                        return void(0);
                    });
                });

                var active = false;
                if (location.hash)
                active = $(this).find('a[href=' + location.hash + ']')[0];
                else if ($(this).find('li.current'))
                active = $(this).find('li.current a')[0];

                if (active) {
                    activate(active, 'toggle', 'parents');
                    $(active).parents().show();
                }

                function activate(el, effect, parents) {
                    $(el)[(parents || 'parent')]('li').toggleClass('active').siblings().removeClass('active').children('ul, div').slideUp('fast');
                    $(el).siblings('ul, div')[(effect || 'slideToggle')]((!effect) ? 'fast': null);
                }

            });
        }
    });
})(jQuery);
