var stoldata;
var stolmaxline;
var stollineheight;
//var stolnotchoice;
var stolusedef;
var stolroot;
var stolstek=[];
$(document).ready(function(){
	if (typeof stolID == 'undefined') stolID=0;
		$.getJSON("/wp-includes/json_request.php?id="+stolID, function(json){
		stoldata=json;
//		alert("load");
		if (json.menu.length >0){
			stolroot=json.root;
			//stolnotchoice=json.notchoice;
			stolmaxline=json.maxline;
			stolusedef=json.usedefault;
			var i;
			var j;
			var k;
			var m;
			var d="";
			var s='<div id="stoldbg"></div><div id="stolchoice">';
			//
			//
			//
			//
			//
			if ((typeof stolroot != 'object') || (typeof stolroot[0] == 'undefined')){
				stolroot=[];
				d+="data error: root not defined<br>";
			}
			//
			if (typeof stolusedef == 'undefined'){
				stolusedef=1;
			}
			//
			//
			if (typeof stolmaxline == 'undefined'){
				stolmaxline=json.menu.length;
				d+="data error: maxline not defined<br>";
			}
			//
			if (typeof json.icopre == 'undefined' || !(json.icopre.length>0)){
				d+="data error: icopre not defined<br>";
			}
			//
			if (typeof json.fonpre == 'undefined' || !(json.fonpre.length>0)){
				d+="data error: fonpre not defined<br>";
			}
			//
			if (typeof json.fonpost == 'undefined'){
				d+="data error: fonpost not defined<br>";
			}
			//
			if ((typeof json.foncode != 'object') || (typeof json.foncode[0] == 'undefined')){
				d+="data error: foncode not defined<br>";
			}
			//
			if (typeof json.img1pre == 'undefined' || !(json.img1pre.length>0)){
				d+="data error: img1pre not defined<br>";
			}
			//
			if (typeof json.img1post == 'undefined'){
				d+="data error: img1post not defined<br>";
			}
			//
			if ((typeof json.img1code != 'object') || (typeof json.img1code[0] == 'undefined')){
				d+="data error: imgcode not defined<br>";
			}
			//
			//
			for (i=0; i<json.menu.length; i++){
				s+='<div id="stolchoice'+i+'" class="stolchoiceline"></div>';
			}
			s+='</div>';
			$("#stoltab").html(s);
			//
			for (i=0; i<json.menu.length; i++){
				if (json.menu[i].id == undefined){
					d+="data error: menu#["+i+"] this out ID<br>";
				}
				if (!(json.menu[i].id >=0)){
					d+="data error: menu#["+i+"] bad ID<br>";
				}
				if (json.menu[i].title == undefined){
					d+="data error: menu#["+i+"] this out TITLE<br>";
				}				
				if (!(json.menu[i].title.length >0)){
					d+="data error: menu#["+i+"] bad TITLE<br>";
				}
				if (json.menu[i].list == undefined){
					d+="data error: menu3["+i+"] this out LIST<br>";
				}
				if ((typeof json.menu[i].list != 'object') || (typeof json.menu[i].list[0] == 'undefined')){
					d+="data error: menu#["+i+"] LIST bad type<br>";
				}
			}
			//
			if (d.length == 0){
				for (i=0; i<json.menu.length; i++){
					for (j=0; j<json.menu[i].list.length; j++){
						if (json.menu[i].list[j].suf == undefined){
							son.menu[i].list[j].suf="";
						}
						if (json.menu[i].list[j].ico == undefined){
							d+="data error: menu #["+i+"] list #["+j+"] this out ICO<br>";
						}
						if (!(json.menu[i].list[j].ico.length >0)){
							d+="data error: menu #["+i+"] list #["+j+"] bad ICO<br>";
						}
						if (json.menu[i].list[j].txt == undefined){
							d+="data error: menu #["+i+"] list #["+j+"] this out TXT<br>";
						}
						if (!(json.menu[i].list[j].txt.length >0)){
							d+="data error: menu #["+i+"] list #["+j+"] bad TXT<br>";
						}
						if (json.menu[i].list[j].next == undefined){
							d+="data error: menu #["+i+"] list #["+j+"] this out NEXT<br>";
						}else if (typeof json.menu[i].list[j].next != 'number'){
							d+="data error: menu #["+i+"] list #["+j+"] bad NEXT<br>";
						}else{
							if (json.menu[i].list[j].next>=0){
								k=0;
								for (m=0; m<json.menu.length; m++){
									if (json.menu[i].list[j].next == json.menu[m].id) k++;
								}
								if (k != 1){
									d+="data error: menu #["+i+"] list #["+j+"] unlinked NEXT ["+json.menu[i].list[j].next+"]<br>";
								}
							}
						}
					}
				}
			}
			//
			k=0;
			for (i=0; i<stolroot.length; i++){
				for (j=0; j<json.menu.length; j++){
					if (json.menu[j].id == stolroot[i]){
						k++;
					}
				}
			}
			if (k != stolroot.length){
				d+="data error: root not adequate<br>"
			}
			//
			k=0;
			for (i=0; i<json.menu.length-1; i++){
				for (j=i+1; j<json.menu.length; j++){
					if (json.menu[i].id == json.menu[j].id){
						k++;
					}
				}
			}
			if (k > 0){
				d+="data error: menu.id duplicate<br>"
			}
			$("#stoldbg").html(d);
			//
			//
			//
			//
			//
			if (d.length>0) return;
			s='';
			for (i=0; i<json.menu.length; i++){
				//s+='<div id="stolmenu'+i+'"><div class="stolrootmenu"></div>';
				s+='<div id="stolmenu'+i+'"><a href="javascript:void(0);" class="stolrootmenu';
				if (json.menu[i].list.length<2){
					s+=' stolhidemenu';
				}
				s+='">'+stoldata.menu[i].title+'</a>';
				s+='<div id="stolsubmenu'+i+'" class="stolsubmenu"><div class="stolsubmenudis"></div>';
				for (j=0; j<json.menu[i].list.length; j++){
					s+='<a href="javascript:void(0);" title="'+json.menu[i].list[j].txt+'" class="stolsubel'+j+'" onMouseOver="stolsubover('+i+','+j+
					')" onMouseOut="stolsubout('+i+')" onClick="stolsubclk('+i+','+j+')" ><img src="'+json.icopre+json.menu[i].list[j].ico+'" ></a>'
				}
				s+='</div></div>';
			}
			$("#stolmenu").html(s);
			//
			for (i=0; i<stoldata.menu.length; i++){
				//$("#stolmenu"+i+" a.stolrootmenu").html(stoldata.menu[i].title);
				$("#stolmenu"+i+" a.stolrootmenu").attr("tag",stoldata.menu[i].id);
				$("#stolchoice"+i).html("<b>"+stoldata.menu[i].title+":</b> ");
				$("#stolmenu"+i).mouseenter(function() {
					$(this).find(".stolsubmenu").stop(true, true).fadeIn();
					$(this).find(".stolrootmenu").addClass("sel");
				});
				$("#stolmenu"+i).mouseleave(function() {
					$(this).find(".stolsubmenu").stop(true, true).fadeOut();
					$(this).find(".stolrootmenu").removeClass("sel");
				});
			}
			if (stolusedef == 1){
				for (i=0; i<stolroot.length; i++){
					k=stolroot[i];
					do{
						stolstek.push({cat:k, el:0, next:stoldata.menu[k].list[0].next});
						$("#stolsubmenu"+k+" .stolsubel0").addClass("sel");
						k=stoldata.menu[k].list[0].next;
					}while(k >= 0);
					
				}
			}
			stolmenumake();
			//init();
		}else{
			// нет меню
		}
	}).error(function() { alert("json error"); });
});
//
function stolmenumake(){
	var i;
	var j;
	var h;
	var k;
	var n;
	var s1;
	var s2;
	var e;
	
	/*
	s1="STEK\n";
	for (var h in stolstek){
		s1+=stolstek[h].cat+"  ( "+stolstek[h].el+" )   >> "+stolstek[h].next+"\n";
	}
	alert(s1);
	*/
	
	for (i=0; i<stoldata.menu.length; i++){
		k=-1;
		for (j=0; j<stolroot.length; j++){
			if (stoldata.menu[i].id == stolroot[j]){
				k=j;
				break;
			}
		}
		n=-1;
		for (var j in stolstek){
		//for (j=0; j<stolstek.length; j++){
			if (stoldata.menu[i].id == stolstek[j].cat){
				n=j;
				break;
			}
		}
		if (k >= 0 || n >= 0){
			$("#stolmenu"+i).css({"display":"block"});
			$("#stolchoice"+i).css({"display":"block"});
			$("#stolchoice"+i).html("<b>"+stoldata.menu[i].title+":</b> "+stoldata.menu[i].list[stolstek[n].el].txt);
		}else{
			$("#stolmenu"+i).css({"display":"none"});
			$("#stolchoice"+i).css({"display":"none"});
		}
	}
	n=0;
	k=0;
	var s="";
//	s1=stolpath+'/'+stoldata.fonpre;
//	s2=stolpath+'/'+stoldata.img1pre;
	s1=stoldata.fonpre;
	s2=stoldata.img1pre;
	for (i=0; i<stoldata.foncode.length; i++){
		k++;
		e=0;
		s+="-- "+stoldata.foncode[i].length+" --\n";
		for (j=0; j<stoldata.foncode[i].length; j++){
			for (var h in stolstek){
				s+=stoldata.foncode[i][j] +" ["+i+"&"+j+"]   "+stolstek[h].cat+" [ "+h+" ]\n";
				if (stolstek[h].cat == stoldata.foncode[i][j] && stolstek[h].el >= 0){
					s1+=stoldata.menu[ stolstek[h].cat ].list[ stolstek[h].el ].suf;
					n++;
					e=1;
					s+="ok\n";
					break;
				}
			}
			if (e>0) break;
		}
	}
	//alert(s);
	//
	for (i=0; i<stoldata.img1code.length; i++){
		k++;
		e=0;
		for (j=0; j<stoldata.img1code[i].length; j++){
			for (var h in stolstek){
				if (stolstek[h].cat == stoldata.img1code[i][j] && stolstek[h].el >= 0){
					s2+=stoldata.menu[ stolstek[h].cat ].list[ stolstek[h].el ].suf;
					n++;
					e=1;
					break;
				}
			}
			if (e>0) break;
		}
	}
	
	//alert(k+" "+n);
	s1+=stoldata.fonpost;
	s2+=stoldata.img1post;
	//alert(s1+"\n"+s2);
	if (n==k){
		$("#stolfon").css({"display":"block"});
		$("#stolcloth").css({"display":"block"});
		//alert(s1);
		//alert(s2);
		$("#stolfon img").attr("src",s1);
		$("#stolcloth img").attr("src",s2);
	}else{
		$("#stolfon").css({"display":"none"});
		$("#stolcloth").css({"display":"none"});
	}
}
//
function stolsubover(a,b){
	//alert(a+" "+b);
	$("#stolsubmenu"+a+" .stolsubmenudis").html(stoldata.menu[a].list[b].txt);
}
//
function stolsubout(a){
	//alert(a+" "+b);
	$("#stolsubmenu"+a+" .stolsubmenudis").html("");
}
//
//
//
////////////////////////////////////////////////////////////////////////////////
//
function stolsubclk(a,b){
	//alert(a+" "+b);
	var i;
	var j;
	var k;
	$("#stolsubmenu"+a+" a").removeClass("sel");
	$("#stolsubmenu"+a+" .stolsubel"+b).addClass("sel");
	$("#stolsubmenu"+a+" .stolsubel"+b).blur();
	//$("#stolchoice"+a).html("<b>"+stoldata.menu[a].title+":</b> "+stoldata.menu[a].list[b].txt);
	//
	j=-1;
	for (var i in stolstek){
	//for (i=0; i<=stolstek.length; i++){
		if (stolstek[i].cat == a){
			j=i;
			break;
		}
	}
	if (j<0){
		//alert("new");
		stolstek.push({cat:a, el:b, next:stoldata.menu[a].list[b].next});
		if (stolusedef == 1){
			k=stoldata.menu[a].list[b].next;
			do{
				stolstek.push({cat:k, el:0, next:stoldata.menu[k].list[0].next});
				$("#stolsubmenu"+k+" .stolsubel0").addClass("sel");
				k=stoldata.menu[k].list[0].next;
			}while(k >= 0);
		}else{
			if (stoldata.menu[a].list[b].next>=0){
				stolstek.push({cat:stoldata.menu[a].list[b].next, el:-1, next:-1});
			}
		}
	}else{
		if (stolstek[j].next != stoldata.menu[a].list[b].next){
			if (stolstek[j].next >= 0){
				stolstekdel(j);
			}
			stolstek[j]={cat:a, el:b, next:stoldata.menu[a].list[b].next};
			if (stolusedef == 1){
				k=stoldata.menu[a].list[b].next;
				do{
					stolstek.push({cat:k, el:0, next:stoldata.menu[k].list[0].next});
					$("#stolsubmenu"+k+" a").removeClass("sel");
					$("#stolsubmenu"+k+" .stolsubel0").addClass("sel");
					k=stoldata.menu[k].list[0].next;
				}while(k >= 0);
			}else{
				if (stoldata.menu[a].list[b].next>=0){
					stolstek.push({cat:stoldata.menu[a].list[b].next, el:-1, next:-1});
				}
			}
		}else{
			stolstek[j]={cat:a, el:b, next:stoldata.menu[a].list[b].next};
		}
	}
	$("#stolsubmenu"+a).stop(true, true).fadeOut();
	stolmenumake();
	return false;
}
//
function stolstekdel(x){
	if (stolstek[x].next<0){
		//alert("del "+stolstek[x].cat+" [ "+x+" ]");
		delete stolstek[x];
	}else{
		for (var h in stolstek){
			if (stolstek[x].next == stolstek[h].cat){
				stolstekdel(h);
				break;
			}
		}
	}
}
