/**************************************************************	MenuAccord  (*	Аккордеон для меню*	Передаем имя контейнера trigger*	Получаем массив ВСЕХ li. Для каждого проверяем наличие дочернего ul*	Если он есть, ставим класс ajax для элемента switcer*	Это конец инициализации**	При клике на переключателе проверяем наличие дочернего*	Если есть, проверяем его состояние*	Если он открыт, то закрываем только его *	Если он закрыт,  то открываем только его****************************************************************/var MenuAccord = new Class({	Implements: [Events, Options],		options: {		trigger: '.trigger',		switcher: 'a'	},		initialize: function(options){		this.setOptions(options);				var _self = this;		if(!$(this.options.trigger)) return null;		var lis = $(this.options.trigger).getElements('li');		lis.each(function(item){			var li = _self.hasChildren(item);			if(li){				var a = item.getElement(_self.options.switcher);				a.addClass('ajax');				item.addClass('plus');				a.addEvent('click', function(e){					e.stop();					_self.doSomeThing(this);				});				if(!a.hasClass('active')) li.setStyle('display', 'none');			}		});				//расставляем внешние указатели (для Метростроя)		lis.each(function(item){			var li = _self.hasChildren(item);			if(!li){				item.addClass('ext');			}		});	},		hasChildren: function(el){//возвращает первый дочерний ul либо false		if(el.tagName != 'LI') el = el.getParent('li');		var ul = el.getFirst('ul');		if(ul) var li = ul.getFirst('li'); else return false;		if(li) return ul; else return false;	},		isDisplay: function(el){		el = this.hasChildren(el);		if(el){			if(el.getStyle('display') == 'none') return false; else return true;		}		return null;	},		closeOut: function(el){		el.setStyle('display', 'none');		this.changeStyle(el);		return true;	},		changeStyle: function(el){		var li = el.getParent('li');		if(!li) return false;		if(li.hasClass('plus')) {li.removeClass('plus'); li.addClass('minus');}		else if(li.hasClass('minus')) {li.removeClass('minus'); li.addClass('plus');}	},		showOut: function(el){		el.setStyle('display', 'block');		this.changeStyle(el);		return true;	},			doSomeThing: function(el){		el = this.hasChildren(el);		if(el){			var display = this.isDisplay(el);			if(display == true){				//закрываем меню				this.closeOut(el);			}			if(display == false){				//открываем меню 				this.showOut(el);			}		}	}});
