function vcmSlideMenu()
{
    // Obiekt określający tryb działania menu
    // 0 - zwijanie niektywnych elementów
    // 1 - niezależne zwijanie i rozwijanie elementów
    this.mode = 0,
    
    // Obiekt zawierający listy, które powinny zostać zmodyfikowane
    this.lists = null,
    
    // Metoda odpowiedzialna za inicjacje menu
    this.init = function()
    {
        // Pobranie do zmiennej lokalnej wszystkich list
        // które powinny zostać zmodyfikowane
        this.lists = $("div[rel='vcm_slide_menu']");
        
        // Jeżeli znaleziono listy
        if(this.lists.length > 0)
        {
            // Dla każdego menu
            for(var i = 0; i < this.lists.length; i++)
            {
                // Pobranie listy obiektów, do których powinna zostać dopisana metoda
                // odpowiedzialna za wywołanie akcji po naciśnięciu lpm.
                var spans = $(this.lists[i]).find("span");

                // Utworzenie pomocniczych tablic
                var temp_spans = new Array();
                
                // Utworzenie pomocniczego indeksu
                var k = 0;

                // Dla każdego znalezionego elementu
                for(var j = spans.length - 1; j >= 0; j--)
                    // Sprawdzenie, czy zgadza się rodzic
                    if($(spans[j]).parent().parent().attr("rel") == "vcm_slide_menu")
                        // Dopisanie elementu do tymczasowej tablicy
                        temp_spans[k++] = $(spans[j]);

                        
                // Przepisanie poprwionej tablicy
                spans = temp_spans.reverse();
                //var divs = temp_divs.reverse();

                var mode = this.mode;

                // Dla każdego znalezionego elementu
                for(var j = 0; j < spans.length; j++)
                    // Dopisanie obsługi zdarzenia onClick
                    $(spans[j]).click(function(){
                    
                        // Pobranie do zmiennej lokalnej obiektu listy
                        var list = $(this).parent().children().eq(1);
                    
                        // Sprawdzenie trybu działania metody
                        if(mode == 0)
                        {
                            if(list)
                            {
                                // Zwinięcie poprzednio rozwiniętego elementu
                                // Pobranie obiektu rodzica
                                var parent = $(this).parent().parent();
                                // Pobranie wszsytkich list
                                var uls = $(parent).find("ul");
                                
                                // Dla każdej znalezionej listy
                                for(var k = 0; k < uls.length; k++)
                                    // Jeżeli zgadza się rodzic
                                    if($(uls[k]).parent().parent().attr("rel") == "vcm_slide_menu")
                                        // Zwinięcie listy
                                        $(uls[k]).slideUp();
                                
                                // Rozwinięcie listy
                                $(list).slideDown();
                            }
                        }
                        else
                            // Jeżeli element ma liste
                            if(list)
                                // Jeżeli lista jest widoczna
                                if($(list).css("display") != "none")
                                    // Zwinięcie listy
                                    $(list).slideUp();
                                // W przeciwnym wypadku
                                else
                                    // Rozwinięcie listy
                                    $(list).slideDown();

                    });
            }
        }
    }
}

// Uruchomienie menu po załadowaniu DOM
$(document).ready(function() {
    // Utworzenie obiektu typu menu
    var vcm_menu_obj = new vcmSlideMenu();
    // Ustawienie trybu
    vcm_menu_obj.mode = 0;
    // Uruchomienie menu
    vcm_menu_obj.init();
 });
