var _sideBarCreated = false;
function createSideMenus(item,showLevel2){
	/////show or not second level of side bar (default is true):
	if(isnull(showLevel2)) showLevel2=true
	/////show side bar of other folder (default is current folder):
	if(!isnull(item)) current_item=item
	try{
		/////get current folder object from menu data structure:
		var obj=getObject(current_item)
		if(isnull(obj) || obj.shwDpt=='0') {
			dbgL("current object not found in menus collection")
			return false;
		}
		if(obj.shwDpt>(Number(obj.dpt)+1)){
			dbgL("current item must show illegal depth")
			return false;
		}
		/////get first level items of side bar:
		var sideBarItems=getSideBarMenus(obj)
		if(sideBarItems.length==0){
			dbgL("number of items for side menu (level 1 ) is 0")
			return false;
		}
		var str=''
		str+='<div class="sideBar">\
			<table cellpadding="0" cellspacing="0" width="100%" class="sideBar" dir="'+sideBarDirection+'">'
			for(var i=0;i<sideBarItems.length;i++){
				var sideBarLinks
				/////get second level items of side bar (childs of this item):
				if(showLevel2 && sideBarItems[i].shwChldS=='1')
					sideBarLinks=getChildMenusSB(sideBarItems[i])
				var className="sideBar"
				var style="cursor:hand;"
				var onclick,href,target
				if(sideBarItems[i].clc=="1" || sideBarLinks.length==0){
					onclick=sideBarItems[i].fnc
				}
				else{
					style="cursor:default;"
					onclick='openCloseLinksContainer("'+sideBarItems[i].id+'")'
				}
				var onmouseover="sideBarOnmouse('"+sideBarItems[i].id+"',true,1,'"+sideBarItems[i].imgOn_SB+"')"
				var onmouseout="sideBarOnmouse('"+sideBarItems[i].id+"',false,1,'"+sideBarItems[i].imgOn_SB+"')"
				var sideImage=SideBarImgOff
				/////item is not active or this current folder
				if(sideBarItems[i].act=='0' || (sideBarItems[i].id==current_item && isnull(doc_id))){
					className="sideBar_S"
					style="cursor:default;"
					onclick=""
					onmouseover=""
					onmouseout=""
					if(sideBarItems[i].id==current_item) sideImage=SideBarImgOn;
				}
				else{
					/////item is parent of current folder
					if(ifParentOrSelf(sideBarItems[i],current_item)){
						className="sideBar_H"
						onmouseover=""
						onmouseout=""
						onclick=sideBarItems[i].fnc
						sideImage=SideBarImgOn
					}
				}
				href=getHrefFromOnclick(onclick)
				target=getTargetFromOnclick(onclick)
				str+='<tr id="trSB'+sideBarItems[i].id+'" class="'+className+'" onmouseover="'+onmouseover+'" onmouseout="'+onmouseout+'">'
					/////side menu image container:
					str+='<td class="sideMenuImage">'
						/////side menu image:
						if(!isnull(sideImage))
							str+='<img id="imSB'+sideBarItems[i].id+'" src="'+sideImage.src+'" width="'+sideImage.width+'" height="'+sideImage.height+'">'
						else
							str+='&nbsp;'
					str+='</td>'
					/////horizontal delimeter(td):
					str+='<td class="sideMenuVerDelim"></td>'
					/////text:
					str+='<td width="100%">'
						str+='<a style="'+style+'" id="tdSB'+sideBarItems[i].id+'" class="'+className+'" href=\''+href+'\' '+target+'>'
							str+=imgOrText(sideBarItems[i],'S')
						str+='</a>'
					str+='</td>'
					
				
				//SECOND LEVEL
				
				
				if(!isnull(sideBarLinks) && sideBarLinks.length>0 && showLevel2){
					if(ifParentOrSelf(sideBarItems[i],current_item)){
						/////OpenedDivImage:
							str+='<td class="sideOpenedDivImage">'
								/////side menu image:
								if(!isnull(OpenedDivImage))
									str+='<img src="'+OpenedDivImage.src+'" width="'+OpenedDivImage.width+'" height="'+OpenedDivImage.height+'"><br>'
							str+='</td>'
						str+='</tr>'
						str+='<tr id="SBCont'+sideBarItems[i].id+'" style="display:;">'	
					}
					else{
						if(sideBarItems[i].op=="1"){
							/////OpenedDivImage:
								str+='<td class="sideOpenedDivImage">'
									/////side menu image:
									if(!isnull(OpenedDivImage))
										str+='<img src="'+OpenedDivImage.src+'" width="'+OpenedDivImage.width+'" height="'+OpenedDivImage.height+'"><br>'
								str+='</td>'
							str+='</tr>'
							str+='<tr id="SBCont'+sideBarItems[i].id+'" style="display:;">'
							openedContainerId=sideBarItems[i].id
						}
						else{
							/////OpenedDivImage:
								str+='<td class="sideOpenedDivImage"></td>'
							str+='</tr>'
							str+='<tr id="SBCont'+sideBarItems[i].id+'" style="display:none;">'
						}
					}
					str+='<td colspan="4">'
						str+='<table cellpadding="0" cellspacing="0" width="100%" class="sideBarLevel_1">'
						for(var j=0;j<sideBarLinks.length;j++){
							var className="sideBarLevel_1"
							var style="cursor:hand;"
							var onclick=sideBarLinks[j].fnc,href,target
							var onmouseover="sideBarOnmouse('"+sideBarLinks[j].id+"',true,2,'"+sideBarItems[i].imgOn_SB+"')"
							var onmouseout="sideBarOnmouse('"+sideBarLinks[j].id+"',false,2,'"+sideBarItems[i].imgOn_SB+"')"
							var sideLinksImage=SideBarLinkImgOff
							/////item is not active or this current folder
							if(sideBarLinks[j].act=='0' || sideBarLinks[j].id==current_item || (!isnull(doc_id) && sideBarLinks[j].id==(doc_id+'d'))){
								className="sideBarLevel_1_S"
								style="cursor:default;"
								onclick=""
								onmouseover=""
								onmouseout=""
								if(sideBarLinks[j].id==current_item || (!isnull(doc_id) && sideBarLinks[j].id==(doc_id+'d'))) sideLinksImage=SideBarLinkImgOn;
							}
							else{
								/////item is parent of current folder
								if(ifParentOrSelf(sideBarLinks[j],current_item)){
									className="sideBarLevel_1_H"
									onmouseover=""
									onmouseout=""
								}
							}
							href=getHrefFromOnclick(onclick)
							target=getTargetFromOnclick(onclick)
							str+='<tr id="trSB'+sideBarLinks[j].id+'" class="'+className+'" onmouseover="'+onmouseover+'" onmouseout="'+onmouseout+'">'
								/////side links image container:
								str+='<td class="sideBarItemImage">'
									/////side links image:
									if(!isnull(sideLinksImage))
										str+='<img id="imSB'+sideBarLinks[j].id+'" src="'+sideLinksImage.src+'" width="'+sideLinksImage.width+'" height="'+sideLinksImage.height+'">'
								str+='</td>'
								/////horizontal delimeter(td):	
								str+='<td class="sideBarItemVerDelim"></td>'
								/////text:
								str+='<td width="100%">'
									str+='<a style="'+style+'" id="tdSB'+sideBarLinks[j].id+'" class="'+className+'" href=\''+href+'\' '+target+'>'
										str+=imgOrText(sideBarLinks[j],'S')
									str+='</a>'
								str+='</td>'
							str+='</tr>'
							/////vertical delimeter(tr):
							if(j!=(sideBarLinks.length-1))
								str+='<tr class="sideBarItemHorizDelim"><td colspan="3" class="sideBarItemHorizDelim"></td></tr>'
						}
						str+='</table>'
					str+='</td>'
				str+='</tr>'	
				}
				else{
					/////OpenedDivImage:
						str+='<td class="sideOpenedDivImage">'
							/////side menu image:
							if(!isnull(OpenedDivImage) && ifParentOrSelf(sideBarItems[i],current_item))
								str+='<img src="'+OpenedDivImage.src+'" width="'+OpenedDivImage.width+'" height="'+OpenedDivImage.height+'"><br>'
						str+='</td>'
					str+='</tr>'
				}
				/////vertical delimeter(tr):
				if(i!=(sideBarItems.length-1))
					str+='<tr class="sideMenuHorizDelim"><td colspan="3" class="sideMenuHorizDelim"></td></tr>'
			}
		str+='</table></div>'
		document.write(str)
		_sideBarCreated =true
		dbgL("side menu created ...")
		return true;
	}
	catch(e){
		dbgE("error in side menus creating:\n"+e.description)
		return false;
	}
}
function sideBarOnmouse(id,on,level,path){
	var className=(level==1)?"sideBar":"sideBarLevel_1";
	var sideBarImg=(level==1)?SideBarImgOff:SideBarLinkImgOff
	if(on){
		className=(level==1)?"sideBar_H":"sideBarLevel_1_H";
		sideBarImg=(level==1)?SideBarImgOn:SideBarLinkImgOn
	}
	var trSB=getRef("trSB"+id);
	if(!isnull(trSB))
		trSB.className=className
	var tdSB=getRef("tdSB"+id);
	if(!isnull(tdSB))
		tdSB.className=className
	var sideBarIm=getRef("sideBarImg"+id);
	if(!isnull(sideBarIm))
		sideBarIm.src=path
	var imSB=getRef("imSB"+id);
	if(!isnull(imSB))
		imSB.src=sideBarImg.src

}
var openedContainerId
function openCloseLinksContainer(id){
	var container=getRef("SBCont"+id);
	if(isnull(container)) return;
	if(container.style.display==''){
		container.style.display='none'
		openedContainerId=null
	}
	else{
		var opContainer=getRef("SBCont"+openedContainerId);
		if(opContainer) 
			opContainer.style.display='none'
		container.style.display=''
		openedContainerId=id
	}
}
function getSideBarMenus(obj){
	var menusArr=new Array();
	if(obj.shwDpt==(Number(obj.dpt)+1))
		menusArr=getChildMenusSB(obj)
	if(obj.shwDpt==obj.dpt)
		menusArr=getChildMenusSB(getObject(obj.prnt))
	if(Number(obj.shwDpt)<Number(obj.dpt)){
		var parentMenu=getObject(obj.prnt)
		while(!isnull(parentMenu)){
			if(parentMenu.dpt==Number(obj.shwDpt)-1){
				menusArr=getChildMenusSB(getObject(parentMenu.id))
				break
			}
			parentMenu=getObject(parentMenu.prnt)
		}
	}
	return menusArr;
}
function getChildMenusSB(obj){
	var menusArr=new Array();
	var rg=/mnu\d+/;
	if(!obj) return menusArr;
	if(obj.shwD=='1' && obj.aft=='0'){
		var tempArr=getMenuItemDocs(obj)
		for(var k=0;k<tempArr.length;k++){
			menusArr[menusArr.length]=tempArr[k]
		}
	}
	for(var x in obj){
		if(rg.exec(x) && obj[x].menuSB==1)
			menusArr[menusArr.length]=obj[x];
	}
	if(obj.shwD=='1' && obj.aft=='1'){
		var tempArr=getMenuItemDocs(obj)
		for(var k=0;k<tempArr.length;k++){
			menusArr[menusArr.length]=tempArr[k]
		}
	}
	return 	menusArr;
}
function getMenuItemDocs(obj){
	var arr=new Array()
	var dObj=eval("mnuD"+obj.id)
	if(!isnull(dObj)){
		for(var x in dObj){
			arr[arr.length]=dObj[x]
		}
	}
	return arr
}
