var menutree = {
    init:(function (current_id) {
        (function () {

            var state = {};

            var initMenu = function () {
                _setState();
                $('#left_sidebar > h4').each(_initMenuItem);
                _setCookie();
            };

            var _setState = function () {
                if ($.cookie('menutree')) {
                    var s = $.cookie('menutree');
                    menu_items = s.split('|');
                    $.each(menu_items, function (k, v) {
                        var m = v.split(':');
                        state[m[0]] = m[1];
                    });
                }
            };

            var _setCookie = function () {
                var s = '';
                $.each(state, function (k, v) {
                    if (s != '') {
                        s = s + '|';
                    }
                    s = s + k + ':' + v;
                });
                $.cookie('menutree', s, {path:'/', expires:7});
            };

            var _initMenuItem = function () {
                if (current_id == this.id) {
                    _openMenu(this.id, 0);
                } else {
                    if (state[this.id] != undefined && state[this.id] == 1) {
                        _openMenu(this.id, 0);
                    } else {
                        _closeMenu(this.id, 0);
                    }
                }
            };

            var toggleMenu = function (evt) {

                var id = evt.target.id;
                if($('#' + id).hasClass('open')) {
                    _closeMenu(id, 250);
                }
                else if ($('#' + id).hasClass('close')) {
                    _openMenu(id, 250);
                }
                _setCookie();
            };

            var _openMenu = function (id, easing) {
                state[id] = 1;
                $('#' + id).removeClass('close').addClass('open');
                $('#c_' + id).show(easing);
            };

            var _closeMenu = function (id, easing) {
                state[id] = 0;
                $('#' + id).removeClass('open').addClass('close');
                $('#c_' + id).hide(easing);
            };

            return function () {
                initMenu();
                $('#left_sidebar > h4').bind('click', toggleMenu);
            };
        })()();
    })
};

