var catalog_sliders = [];

function init_catalog_slider()
{
    if ($('tab_catalog'))
    {
        /*
        var catalog_slider = new Fx.Slide($('catalog_categories'));
        if (!$('catalog_categories').hasClass('visible'))
            catalog_slider.hide();

        catalog_slider.addEvent('complete', function(){
            if ($('catalog_categories').getParent().getSize().y > 0)
                $('catalog_categories').getParent().setStyle('height', 'auto');
        })

        $('tab_catalog').addEvent('click', function(){
            catalog_slider.toggle();
            return false;
        });
        $('tab_catalog').getParent().getElements('a.catalog_category_link').each(function(link_element){
            var subcategories_list = link_element.getParent().getElements('ul.catalog_subcategories');
            subcategories_list.each(function(subcategory_element){
                var subcategory_slider = new Fx.Slide(subcategory_element);
                if (!subcategory_element.hasClass('visible'))
                    subcategory_slider.hide();

                catalog_sliders.push(subcategory_slider);

                link_element.addEvent('click', function(){
                    subcategory_slider.toggle();

                    $A(catalog_sliders).each(function(slider){
                        if (subcategory_slider != slider)
                            slider.slideOut();
                    })

                    return false;
                });
            })
        })

        */
        jQuery('a#tab_catalog').click(function () {
            var $categories = jQuery('#catalog_categories');
            if ($categories.hasClass('visible')) {
                $categories.slideUp();
                $categories.removeClass('visible');
            } else {
                $categories.slideDown();
                $categories.addClass('visible');
            }
            return false;
        });
        function installSliders (root) {
            var e = jQuery(root);
            e.children().each(function () {
                var $this = jQuery(this);
                var sub = $this.children().filter('ul');
                if (sub.length) {
                    $this.children().filter('a').unbind('click');
                    $this.children().filter('a').bind('click', function () {
                        var $this = jQuery(this);
                        var ul = $this.parent().children().filter('ul');
                        if(ul.hasClass('visible')) {
                            ul.slideUp();
                            ul.removeClass('visible');
                        } else {
                            ul.slideDown();
                            ul.addClass('visible');
                        }
                    });
                    installSliders(sub);
                    //if (!sub.hasClass('visible')) {
                    //    sub.hide();
                    //}
                }
            });
            if (!e.hasClass('visible')) {
                e.hide();
            }
        }
        installSliders('#catalog_categories');
    }
}

window.addEvent('domready', function(){
    init_catalog_slider()
})

