var group_id_now_selected = -1;
var menu_open = false;
var animate = 0;
var closeTimer;
var block = false;

$(".content_menu").ready(function(){
	$(".top_menu_a").mouseover(function(){
		if(!menu_open && !block){
			var group = $(".top_menu_a").index(this);
			group_id_now_selected = group;
			
			openMenu();
		}
	});
	
	function openMenu(){
		var a = $(".top_menu_a:eq("+group_id_now_selected+")");
		
		$(".top_menu_a").each(function(i){
			$(this).parent().find("ul").remove();
			if($(this).parent().hasClass("selected")){
				$(this).parent().removeClass("selected");
				$(this).parent().css({"background":"url(images/"+(i+1)+".jpg) no-repeat 0 100%"});
			}
		});
		a.parent().addClass("selected");
		a.parent().css({"background":"#e7e9ea"});
		
		var id_group = top_menu[group_id_now_selected]['id'];
		if(col = top_menu[group_id_now_selected]['child']){
			t = '<ul class="kprod">';
			for(var i in col){
				if (!col.hasOwnProperty(i)) continue;
				if(col[i].class == 'Y'){
					var href = 'javascript:menu(\''+col[i].id+'\')';
				}else{
					var href = top_menu[group_id_now_selected].id+'/'+col[i].id;
				}
				t += '<li'+(hasChild(col[i].id)?' class="parent"':'')+'><a id="top_menu_'+col[i].id+'" href="'+href+'">'+col[i].title+'</a></li>';
			}
			t += '</ul>';
			a.after(t);
		}
	}
	
	function closeAll(){
		block = true;
		var a = $(".top_menu_a:eq("+group_id_now_selected+")");
		
		if(!menu_open){
			a.parent().find("ul").remove();
			a.parent().removeClass("selected");
			a.parent().css({"background":"url(images/"+(group_id_now_selected+1)+".jpg) no-repeat 0 100%"});
			block = false;
		}else{
			$(".content_menu li.temp1").remove();
			$(".content_menu li.temp2").remove();
			if(group_id_now_selected)$(".content_menu").children(":eq("+group_id_now_selected+")").css({"margin-left":"9px"});
			$(".content_menu").children().css({"display":"block"});
			if(menu_open){
				$(".content_menu").css({"left":(-253*group_id_now_selected)+"px"});
				$(".content_menu").animate({"left":"0px"},animate*2,function(){
					a.parent().find("ul").remove();
					a.parent().removeClass("selected");
					a.parent().css({"background":"url(images/"+(group_id_now_selected+1)+".jpg) no-repeat 0 100%"});
					menu_open = false;
					block = false;
				});
			}
			$(".content_menu").children(":not(:eq("+group_id_now_selected+"))").delay(menu_open ? animate : 0).animate({"opacity":1},animate,function(){block = false;});
			menu_open = false;
		}
	};
	
	$(".top_menu_a").click(function(){closeAll()});
	
	$(".content_menu").mouseover(function(){
		if(typeof closeTimer == "number"){
			clearTimeout(closeTimer);
		};
	});
	$(".content_menu").mouseout(function(){
		closeTimer = setTimeout(function(){if(!group_id || !menu_open)closeAll();},3000);
	});
});
function level(lvl,elements,id){
	for(var i in elements){
		if (!elements.hasOwnProperty(i)) continue;
		if(elements[i].id == id)return lvl;
		if(res = level(lvl+1,elements[i].child,id)){
			return res;
		}
	}
	return false;
}
function zamena(){
	$(".content_menu").children(":not(:eq("+group_id_now_selected+"))").css({"display":"none"});
	$(".content_menu").children(":eq("+group_id_now_selected+")").css({"margin-left":"0px"});
	$(".content_menu").css({"left":"0px"});
}
function menu(id){
	//определим уровень
	var lvl = level(0,top_menu[group_id_now_selected].child,id);
	
	//подсвечиваем нажатый элемент и удаляем подсветку с остальных
	$("#top_menu_"+id+"").parent().parent().find("li").removeClass('sel');
	if(lvl == 2){
		$("#top_menu_"+id+"").parent().addClass('sel2');
	}else{
		$("#top_menu_"+id+"").parent().addClass('sel');
	}
	
	//сдвигаем меню если не первый столбец
	var count = 1;
	if(!menu_open){
		if(group_id_now_selected > 0){
			$(".content_menu").children(":not(:eq("+group_id_now_selected+"))").animate({"opacity":0},animate);
			$(".content_menu").animate({"left":"-"+(253*group_id_now_selected)+"px",},animate*2,function(){zamena();getPodMenu(lvl,id);});
		}else{
			$(".content_menu").children(":not(:eq("+group_id_now_selected+"))").animate({"opacity":0},animate,function(){if(count){zamena();getPodMenu(lvl,id);count = 0;}});
		}
	}else{
		getPodMenu(lvl,id);
	}
	menu_open = true;
}
function searchId(elements,parentId){
	for(var i in elements){
		if (!elements.hasOwnProperty(i)) continue;
		if(elements[i].id == parentId)return elements[i];
		var l;
		if(l = searchId(elements[i].child,parentId)){
			return l;
		}
	}
	return false;
}
function getPodMenu(level,parentId){
	if(level<=1){
		$(".content_menu li.temp2").remove();
	}
	if(level==0){
		$(".content_menu li.temp1").remove();
	}

	//level 1,2
	//alert(level+' '+parentId);
	var parentIdTree = searchId(top_menu[group_id_now_selected].child,parentId);

	var count = 0;
	for(var i in parentIdTree.child){
		if (!parentIdTree.child.hasOwnProperty(i)) continue;
		count++;
	}
	
	if(count == 0)return;
	t = '<li class="temp'+(level+1)+'" style="background:#e7e9ea url(images/angle_center.gif) 0 0 no-repeat;margin: 54px 0 0 9px;min-height: 150px;padding: 8px 0;">';
	//if(level)t += '';
	t += '<ul class="kprod"><span class="angle"></span>';
	for(var i in parentIdTree.child){
		if (!parentIdTree.child.hasOwnProperty(i)) continue;
		if(parentIdTree.child[i].class == 'Y'){
			var href = 'javascript:menu(\''+parentIdTree.child[i].id+'\')';
		}else{
			var href = top_menu[group_id_now_selected].id+'/'+parentIdTree.child[i].id;
		}
		t += '<li'+(hasChild(parentIdTree.child[i].id)?' class="parent"':'')+'><a id="top_menu_'+parentIdTree.child[i].id+'" href="'+href+'">'+parentIdTree.child[i].title+'</a></li>';
	}
	t += '</ul></li>';
	
	$(".content_menu").append(t);
}
function getAllParent(parents,elements,id){
	for(var i in elements){
		if (!elements.hasOwnProperty(i)) continue;
		if(elements[i].id == id){
			parents[parents.length] = elements[i];
			return true;
		}
		var l;
		if(getAllParent(parents,elements[i].child,id)){
			parents[parents.length] = elements[i];
			return true;
		}
	}
	return false;
}
function hasChild(id){
	//alert(id);
	var element = searchId(top_menu[group_id_now_selected].child,id);
	var count = 0;
	for(var i in element.child){
		if (!element.child.hasOwnProperty(i)) continue;
		count++;
	}
	//alert(element.id+' '+count);
	return (count == 0 ? false : true);
}

/* test */

function sel(g_id,s_id){
	if(g_id && s_id){
		var sel_menu = false;
		var sel_menu_id;
		for(var i in top_menu){
			if (!top_menu.hasOwnProperty(i)) continue;
			if(top_menu[i].id == g_id){
				sel_menu = true;
				sel_menu_id = i;
			}
		}
	}
	if(sel_menu){
		//sel_menu_id
		if(sel_menu_id != group_id_now_selected)$(".top_menu_a:eq("+sel_menu_id+")").mouseover();
		var parents = [];
		if(getAllParent(parents,top_menu[sel_menu_id].child,s_id)){
			//parents массив родителей начинается с самого элемента и заканчивается корневым элементом родителем
			for(var i = parents.length - 1 ; i >= 0 ; i-- ){
				menu(parents[i].id);
			}
		}
	}
	animate = 500;
}
$(function(){
	sel(group_id,section_id);
})
//$(".content_menu ul li a:eq(0)").get(0).click();
