(function($){
	$.fn.showTree = function(o){
		var o = $.extend({
			closeFolders: false, // по умолчанию список раскрыт целиком
			saveCookie: true // сохранять или нет раскрытые узлы
		}, o);

		return $(this).each(function(){ // проходим по всем спискам
			var tree = $(this); // присваиваем переменной tree содержание текущего списка
			tree.addClass('jquery-tree').children('li:first').prepend('<div class="first"></div>'); // добавляем класс по умолчанию и скрываем верхнюю линию в первом элементе списка
	       	tree.children('li:last').addClass('last'); // для последнего элемента в списке добавляем класс last

            tree.find('ul').each(function(){ // проходим по всем вложенным спискам
         		$(this).children('li:last').addClass('last'); // для последнего элемента в каждом из них добавляем класс last
            }).prev('a').addClass('folder show'); // добавляем класс folder каждой ссылке, за которой идёт вложенный список

			tree.find('a.folder').click(openTree); // каждой кнопке по клику на неё ставим функцию openTree

            if (o.saveCookie) {
                tree.find('ul').each(function(i){ // проходим по всем вложенным спискам
                    // Если установлены куки то открываем
                    if ($.cookie('submenuMark-' + i)) {
                        $(this).show();
                        $(this).prev('.folder').addClass('minus');
                    // Если нет то проверяем значаение по умолчанию (скрыт или раскрыт список)
              		}else {
                      if (o.closeFolders) {
            				$(this).hide();
            			} else {
                            $(this).show();
                            //$(this).prev('.folder').addClass('open').prev('span').addClass('minus');

                            $(this).prev('.folder').addClass('minus');

            			}
              		  ;
                    }
    			})
            }

        	}
        );


        function openTree(){ // функция, показывающая/скрывающая содержимое папки
            var button = $(this).prev('span');
			var files = $(this).next('ul'); // находим вложенные файлы
            this_i = $('ul#tree ul').index($(this).next('ul'));
			if ($(this).hasClass('minus')) { // если папка открыта
				files.hide(); // скрываем файлы
                if (o.saveCookie) cookieDel(this_i);
			} else {
				files.show(); // иначе показываем
                if (o.saveCookie) cookieSet(this_i);
			}
			$(this).toggleClass('minus'); // переключаем классы у кнопки и папки
			button.toggleClass('minus'); // если класса нет, добавляем, иначе - убираем
			return false;
		}

	};
})(jQuery) 



