﻿(function($) {
    $.fn.acc = function(options) {
        var o = $.extend({}, $.fn.acc.defaults, options);

        return this.each(function() {
            var me = $(this);

            var cls = '.' + o.itemTitleClass;

            $(cls, me).click(function() {
                var e = $(this);
                var state = e.attr(o.exp);

                if (!state || state == '0') {
                    e.attr(o.exp, '1');
                    e.next().show();
                    if (o.expand) o.expand(e);
                    e.addClass(o.itemExpandedClass);
                } else {
                    e.attr(o.exp, '0');
                    e.removeClass(o.itemExpandedClass);
                    e.next().hide();
                    if (o.collapse) o.collapse(e);
                }
            });

        });
    };
    $.fn.acc.defaults = {
        exp: 'expanded',
        itemTitleClass: 'acc-title',
        itemExpandedClass: 'acc-title-expanded',
        expand: null,
        collapse: null
    };
})(jQuery);
