﻿//меню

var menuSlideSpeed = 200;
$(document).ready(function() {
   
   $('.slider-menu a, .slider-menu .title').live('click', function(){
		if (menuGo($(this),false)) {
			return false;
		}
   })
   
   $('.slider-menu li.active').each(function(){
		menuStart($(this))
		$(this).parentsUntil('.slider-menu').each(function(){
			if ($(this).get(0).tagName.toLowerCase() == 'li') {
				menuStart($(this))
			}
		})
   })
   
});

var menuGo = function(elm,animSkip){
	
	var active = elm.parent('li').hasClass('active')
	var list = elm.parent('li').children('ul')
	var opened = elm.parents('ul').first().children('li.active')
	
	if (!list.get(0)) {
		if (!active) { 
			elm.addClass('active').parent('li').addClass('active')
			var opened = elm.parents('.slider-menu').find('li.active').not(elm.parent('li'))
			opened.each(function(){
				if (!$(this).children('ul').get(0)) {
					var elm = $(this).children('a, .title')
					var list = elm.parent('li').find('ul')
					menuClose (elm,list)
				}
			})
		}
		return false;
	}
	
	if (list.get(0) && !active) {
		menuOpen (elm,list,animSkip)
		opened.each(function(){
			var elm = $(this).children('a, .title')
			var list = elm.parent('li').find('ul')
			menuClose (elm,list)
		})
	}
	
	if (list.get(0) && active) {
		return false;
	}
	
	return true;
}
var menuClose = function(elm,list){
	
	elm.removeClass('active')
	list.first().css({'display':'block'})
	list.first().wrap('<div class="tempSlide" style="overflow:hidden;position:relative"></div>')
	var slide = list.first().parent('.tempSlide')
	var height = list.first().outerHeight(true)
	slide.css({'display':'block'}).animate({'height':0}, menuSlideSpeed, function(){
		list.first().css({'display':'none'})
		elm.parent('li').removeClass('active')
		list.first().unwrap(slide)
	})
	if (!list.get(0)) {
		elm.parent('li').removeClass('active')
	}
	
}
var menuOpen = function(elm,list,animSkip){
	
	var speed = menuSlideSpeed;
	if (animSkip) {
		speed = 0;
	}
	elm.parent('li').addClass('active')
	elm.addClass('active')
	list.first().css({'display':'block'})
	list.first().wrap('<div class="tempSlide" style="overflow:hidden;position:relative"></div>')
	var slide = list.first().parent('.tempSlide')
	var height = list.first().outerHeight(true)
	slide.css({'display':'block','height':'0'}).animate({'height':height},speed,function(){
		$(this).css({'display':'block'})
		list.first().unwrap(slide)
	})
	
	
}

var menuStart = function(elm) {
	elm.removeClass('active')
	var a = elm.children('a, .title')
	if (menuGo(a,true)) {
		return false;
	}
}
