	(
		function(){
//			addListener(window, "load", init);
			window["_initialize_menu"] = init;
			
			function init(){
			
				var area = document.getElementById(CONSTS.DYNAMIC_SIDEBAR_AREA_ID);
				
				if(!area){
					return;
				}
				
//				var categolyTables = new Array();
				var categolyTables = new Object();

				for(var pa=area.childNodes,i=0; i<pa.length; i++){
					if(!isNoneCategoly(pa[i])){
//						categolyTables.push(categolyTable(pa[i]));
						(
							function(){
								var className = !!pa[i].className ? pa[i].className : "";
								if(className.indexOf(window.sidebar_conf_current) >= 0){
									className = className.replace(window.sidebar_conf_current, "");
								}
								categolyTables[className] = categolyTable(pa[i]);
							}
						)();
					}
				}
				
				
				var sorted_categolyTables = new Array();
				
				for(var i=0; i<window.sidebar_conf.length; i++){
					if(!!categolyTables[window.sidebar_conf_prefix + window.sidebar_conf[i]]){
						sorted_categolyTables.push(categolyTables[window.sidebar_conf_prefix + window.sidebar_conf[i]]);
					}
				}
				
				var newArea = _(
					document.createElement("div"),
					{},
					{},
//					categolyTables
					sorted_categolyTables
				);
				area.parentNode.insertBefore(newArea, area);
				area.parentNode.removeChild(area);
			}
			
			function categolyTable(node){
				if(!node || node.nodeType != 1){
					return document.createTextNode("");
				}
				return _(
					document.createElement("div"),
					{ className : "Category", "class" : "Category" },
					{},
					_(
						document.createElement("ul"),
						{},
						{},
						[
							_(
								document.createElement("li"),
								{},
								{},
								function(){
									var pa = _(
										document.createElement("span"),
										{},
										{},
										node.firstChild.firstChild.cloneNode(true)
									);
									
									var children = document.createElement("ul");
									
									for(var lis=node.getElementsByTagName("li"),i=0; i<lis.length; i++){
										(
											function(){
												var anchors = lis[i].getElementsByTagName("a");
												if(anchors.length == 0){
													return;
												}
												var link = anchors[0];
												children.appendChild(
													_(
														document.createElement("li"),
														{},
														{},
														function(){
															var a = link.cloneNode(true);
															a.removeAttribute("title");
															return a;
														}()
													)
												)
											}
										)();
									}
									
									return [pa, children]
								}()
							),
							_(
								document.createElement("div"),
								{ className : "ulEnd", "class" : "ulEnd"}
							)
						]
					)
				);
			}
			
			
			function isNoneCategoly(node){
				if(!node){
					return true;
				}
				var a = node.firstChild;
				
			//	return nodeText(a) == CONSTS.NONE_CAT_NAME || !!classNameSet(a)[CONSTS.NONE_CAT_ID];
				return !!classNameSet(node)[CONSTS.NONE_CAT_ID];
			}
		}
	)();
			