//var _sideBarCreated = false;

function createSideMenus(item){
	if(!isnull(item)) current_item=item
	var str="";
	try{
		/////get current folder object from menu data structure:
		var sideBarItems=getSideBarMenus()
		
		if(sideBarItems.length==0){
			dbgL("number of items for side menu (level 1 ) is 0")
			return false;
		}
		
		str +="<table cellpadding='0' cellspacing='0' width='100%' dir='" +dir+ "' border='0'>\
			<tr>\
				<td>";
					str += _createSideMenus(item, sideBarItems, 1);
				str += "</td>\
			</tr>\
		</table>";
		document.write(str)
		//alert(str)
		return true;
	}
	catch(e){
		dbgE("error in side menus creating:\n" +e.description)
		return false;
	}
}

function _createSideMenus(item, sideBarItems, depth){
//dbgL(Number(depth)  + " >>>" + sbar_maxDepth)
	if(depth > Number(sbar_maxDepth)) return "";
	////////////////////////////////////////////////////////////////////////////
	// INTERNAL FUNCTIONS
	////////////////////////////////////////////////////////////////////////////
	function _createSideMenuDivs(parentObj,itemsArr){
		if((Number(parentObj.dpt)+1)>=sbar_maxDepth) return "";
		var s=""
			//alert("parentObj=" + parentObj.id + "\n itemsArr = " + itemsArr.length);
		s+='<div class="sidedivcontainer" style="display:none;position:absolute;" id="sideMenuCont'+parentObj.id+'">'
			s+='<table cellpadding="0" cellspacing="0" class="sidedivcontainer">'
				for(var j=0;j<itemsArr.length;j++){
					var className="sidedivcontainer"
					var style="cursor:pointer;"
					var onclick=itemsArr[j].fnc,href,target
					var onmouseover="sideBarOnmouseDivs('"+itemsArr[j].id+"',true,'"+parentObj.imgOn_SB+"')"
					var onmouseout="sideBarOnmouseDivs('"+itemsArr[j].id+"',false,'"+parentObj.imgOn_SB+"')"
					/////item is not active or this current folder

					if(itemsArr[j].act=='0' || itemsArr[j].id==current_item || (!isnull(doc_id) && itemsArr[j].id==(doc_id+'d'))){
						if(sideBarItems[i].act=='0'){
							className="not_active"
							style="cursor:default;"
							onclick="";
							onmouseover="";
							onmouseout="";
						}
						else{
							className="sidedivcontainer_s"
							//style=requestCount>1?"cursor:pointer;":"cursor:default;"
							//onclick=requestCount>1?itemsArr[j].fnc:""
							style="cursor:pointer;"
							onclick=itemsArr[j].fnc
							onmouseover=""
							onmouseout=""
						}
					}
					else{
						/////item is parent of current folder
						//if(ifParentOrSelf(itemsArr[j],current_item)){
						if(ifParentOrSelf(sideBarItems[i].id)){
							className="sidedivcontainer_h"
							onmouseover=""
							onmouseout=""
						}
					}
					href=getHrefFromOnclick(onclick)
					target=getTargetFromOnclick(onclick)
					s+='<tr id="trSBDiv'+itemsArr[j].id+'" class="'+className+'" onmouseover="'+onmouseover+'" onmouseout="'+onmouseout+'">'
						s+='<td id="tdSBDiv'+itemsArr[j].id+'" class="'+className+'">'
							s+='<a style="'+style+'" id="a_SBDiv'+itemsArr[j].id+'" class="'+className+'" href=\''+href+'\' '+target+'>'
								s+=imgOrText(itemsArr[j],'SD')
							s+='</a>'
						s+='</td>'
					s+='</tr>'
					/////vertical delimeter(tr):
					if(j!=(itemsArr.length-1))
						s+='<tr class="sidedivcontainerhorizdelim"><td class="sidedivcontainerhorizdelim"></td></tr>'
				}
				s+='</table>'
			s+='</div>'
			//alert(s)
			return s
	}
	////////////////////////////////////////////////////////////////////////////
	try{
		var str=''
			//str+="<table cellpadding='0' cellspacing='0' width='100%' dir='" +dir+ "'>";
			for(var i=0;i<sideBarItems.length;i++){
				var sideBarLinks="";
				var tblClassName="sidebar";
				var className="sidebar";

				if(!isnull(sideBarItems[i].css) && sideBarItems[i].css != "sidebar" && (depth >=1)){
					tblClassName= sideBarItems[i].css;
				}
				tblClassName=(depth==1)?tblClassName:tblClassName + "level_" + depth;
				
			//dbgL(sideBarItems[i].txt + " >>>  " + tblClassName + "   >>>>   " + Number(sbar_maxDepth))
				
				var style="cursor:pointer;"
				var onclick,href,target
				
				//dbgL(sideBarItems[i].dpt + " " + sideBarItems[i].txt)

				var sideImage=SideBarImgOff

				//If the item is not active
				if(sideBarItems[i].act=='0'){
					className="not_active"
					style="cursor:default;"
					onclick="";
					var onmouseover="";
					var onmouseout="";
				}
				else{
					/////get second level items of side bar (childs of this item):
					if(sideBarItems[i].shwChldS=='1' && depth < Number(sbar_maxDepth))
						sideBarLinks=getChildMenusSB(sideBarItems[i])
					
					var newLevel = _createSideMenus(item, sideBarLinks, depth+1)
					if(isnull(newLevel)){
						className ="sidebar_no_childs";
					}

					//those lines are with single quote becuase it's later being concating to another string
					var onmouseover='sideBarOnmouse("'	+sideBarItems[i].id+	'",true,' +depth+ ',"' +className+ '");openCloseSideContainer("' +sideBarItems[i].id+ '");'
					var onmouseout='sideBarOnmouse("'	+sideBarItems[i].id+	'",false,' +depth+ ',"' +className+ '");openCloseSideContainer("' +sideBarItems[i].id+ '");'

					//dbgL(sideBarItems[i].txt + ">>>" + sideBarLinks.length)
					//If the option 'Is clickable' is checked or there no sons activate the click
					if(sideBarItems[i].clc=="1" || sideBarLinks.length==0){
						onclick=sideBarItems[i].fnc
					}
					else{
						style="cursor:default;"
						//if it's always open, just leave it that way
						if(sideBarItems[i].op=="1"){
							onclick="";
							onmouseover="";
							onmouseout="";
						}
						else{
							onclick='openCloseLinksContainer("'+sideBarItems[i].id+'")'
						}
					}

					/////item is parent or current folder
					//if(ifParentOrSelf(sideBarItems[i],current_item)){
					if(ifParentOrSelf(sideBarItems[i].id)){
						className= className + "_s"
						//alert(sideBarItems[i].txt + "\n" + className)
						onmouseover=""
						onmouseout=""
						sideImage=SideBarImgSel;

						/////item is the current folder
						if(doc_id!=0){
							//alert(1)
							style="cursor:pointer;"
							onclick=sideBarItems[i].fnc
						}
						else{
							//alert(sideBarItems[i].id+ "\n" + current_item)
							style="cursor:default;"
							//onclick="";
							//href="javascript:void(0)";
							target="";
						}
					}
				}
							
				href=getHrefFromOnclick(onclick)
				//dbgL(sideBarItems[i].txt + ">>>" + href)
				target=getTargetFromOnclick(onclick)
				
				//str+="<tr><td>";
					str+="<table cellpadding='0' cellspacing='0' class='" +tblClassName+ "' border='0'>";

						if(sideBarItems[i].op=="1" && !isnull(newLevel)){
							className ="not_clicki";
						}
						//else if(isnull(newLevel)){
						//	className ="sidebar_no_childs";
						
						//}
						//else if( ifParentOrSelf(sideBarItems[i],current_item)){
						//	className= className + "_h"
						//}

						str+="<tr id='trSB"+sideBarItems[i].id+"' class='" +className+"' onmouseover='" +onmouseover+ "' onmouseout='" +onmouseout+ "'>";
						/////the first td:
						//if(!isnull(sideMenuFirstTDImg)){
							//str+="<td class='sidemenufirsttd'><img src='" +sideMenuFirstTDImg.src+ "' width='" +sideMenuFirstTDImg.width+ "' height='" +sideMenuFirstTDImg.height+ "' /><br /></td>";
							str+="<td class='sidemenufirsttd'></td>";
						//}
						/////side menu image container:
						//if(!isnull(sideImage)){
							str+="<td class='sidemenuimage'>";
								//str+="<img id='imSB" +sideBarItems[i].id+ "' src='" +sideImage.src+ "' width='" +sideImage.width+ "' height='" +sideImage.height+ "' />";
							str+="</td>";
						//}
						/////horizontal delimeter(td):
						//str+='<td class="sideMenuVerDelim"></td>'
						/////text:
						str+="<td class='" +className+ "'>";
						//if(sideBarItems[i].op=="1" || ifParentOrSelf(sideBarItems[i],current_item)){
						if(sideBarItems[i].op=="1" || ifParentOrSelf(sideBarItems[i].id)){

							//dbgL(sideBarItems[i].txt + ">>>" + sideBarItems[i].prnt + ">>>" + current_item)
							//dbgL(sideBarItems[i].txt + ">>>" + sideBarItems[i].id + ">>>" + current_item)
							if(sideBarItems[i].id == current_item){
								style="cursor:pointer;"
								str+="<a style='" +style+ "' id='tdSB" +sideBarItems[i].id+ "' class='" +className+ "' href='" +href+ "' " +target+ ">";
									str+=imgOrText(sideBarItems[i],'S')
								str+="</a>"
							}
							else if(depth != Number(sbar_maxDepth)){
								str+=imgOrText(sideBarItems[i],'S')
							}
							else{
								style="cursor:pointer;"
								str+="<a style='" +style+ "' id='tdSB" +sideBarItems[i].id+ "' class='" +className+ "' href='" +href+ "' " +target+ ">";
									str+=imgOrText(sideBarItems[i],'S')
								str+="</a>"
							}
						}
						else{
						
						//dbgL(sideBarItems[i].txt + ">>>" + ifChildOrSelf(sideBarItems[i],current_item) + ">>>" + current_item)
							//style="cursor:pointer;"
							str+="<a style='" +style+ "' id='tdSB" +sideBarItems[i].id+ "' class='" +className+ "' href='" +href+ "' " +target+ ">";
								str+=imgOrText(sideBarItems[i],'S')
							str+="</a>"
						}
						str+="</td>"
						/////the last td:
						//if(!isnull(sideMenuLastTDImg)){
							//str+="<td class='sidemenulasttd'><img src='" +sideMenuLastTDImg.src+ "' width='" +sideMenuLastTDImg.width+ "' height='" +sideMenuLastTDImg.height+ "' /><br /></td>";
							str+="<td class='sidemenulasttd'></td>";
						//}
					
					
					//SECOND LEVEL
					if(!isnull(sideBarLinks) && sideBarLinks.length>0){
						var display = "";
						if(sideBarItems[i].op==1){
							str+='</tr>'
						}
						else{
							
							//if(ifParentOrSelf(sideBarItems[i],current_item)){
							if(ifParentOrSelf(sideBarItems[i].id)){
								/////side menu image:
								//if(!isnull(OpenedDivImage)){
									/////OpenedDivImage:
									//str+='<td class="sideopeneddivimage">'
										//str+='<img src="'+OpenedDivImage.src+'" /><br />'
									//str+='</td>'
									//str+='<td style="width:0px;"></td>'
								//}
								str+='</tr>'
							}
							else{
								if(sideBarItems[i].ssd==1){
									/////OpenedDivImage:
									if(!isnull(OpenedDivOff)){
										str+='<td class="sideopeneddivimage">'
											str+='<img id="openedeDivImg'+sideBarItems[i].id+'" src="'+OpenedDivOff.src+'" /><br />'
										str+='</td>'
									}

									//str+='<td valign="top" class="sideDivContainer">'
									str+='<td valign="top">'
										str+=_createSideMenuDivs(sideBarItems[i],sideBarLinks)	
									str+='</td>'
								str+='</tr>'
								}
								else{
									/////OpenedDivImage:
										//str+='<td class="sideopeneddivimage"></td>'
										//str+='<td valign="top"></td>'
									str+='</tr>'
								}
								display = "none";
							}
						}
						if(sideBarItems[i].ssd!=1){
							if(!isnull(newLevel)){
								str+='<tr id="SBCont'+sideBarItems[i].id+'" style="display:' +display+ ';">'
									str+='<td colspan="5">'
										str+= newLevel
									str+='</td>'
								str+='</tr>'	
							}
						}
						else{
							//if(ifParentOrSelf(sideBarItems[i],current_item)){
							if(ifParentOrSelf(sideBarItems[i].id)){
								if(!isnull(newLevel)){
									str+='<tr id="SBCont'+sideBarItems[i].id+'" style="display:' +display+ ';">'
										str+='<td colspan="5">'
											str+= newLevel
										str+='</td>'
									str+='</tr>'	
								}
							}
						
						}	
					}
					/*
					//yossi 28-5-2008: i dont know what the else mean
					else{
							/////OpenedDivImage:
							str+='<td class="sideopeneddivimage">'
								/////side menu image:
								if(!isnull(OpenedDivImage) && ifParentOrSelf(sideBarItems[i],current_item)){
									str+='<img src="'+OpenedDivImage.src+'" /><br />'
								}
							str+='</td>'
							str+='<td style="width:0px;"></td>'
						str+='</tr>'
					}
					*/
					/////vertical delimeter(tr):
					if(i!=(sideBarItems.length-1))
						str+='<tr class="sidemenuhorizdelim"><td colspan="5" class="sidemenuhorizdelim"></td></tr>'
		
					str+="</table>"
				//str+="</td></tr>"
			}
		//str+='</table>'
		//str+='</div>'
		//document.write(str)
		//_sideBarCreated =true
		return str;
	}
	catch(e){
		dbgE("error in side menus creating:\n"+e.description)
		return false;
	}
}
function sideBarOnmouse(id,on,level,className){
	var classLevel =Number(level-1)
	//var className=(level==1)?"sidebar":"sidebarlevel_" + classLevel;
	//var className="sidebar";
	if(on){
		//className=(level==1)?"sidebar_h":"sidebarlevel_" +classLevel+ "_h";
		//className="sidebar_h";
		className +="_h";
	}
	var trSB=getRef("trSB"+id);
	if(!isnull(trSB))
		trSB.className=className
	var tdSB=getRef("tdSB"+id);
	if(!isnull(tdSB))
		tdSB.className=className
}
function sideBarOnmouseDivs(id,on,path){
	var className="sidedivcontainer";
	if(on) className="sidedivcontainer_h";
	
	var trSB=getRef("trSBDiv"+id);
	if(!isnull(trSB))
		trSB.className=className
	
	var tdSB=getRef("tdSBDiv"+id);
	if(!isnull(tdSB))
		tdSB.className=className
	
	var aSB=getRef("a_SBDiv"+id);
	if(!isnull(aSB))
		aSB.className=className
	
	var sideBarIm=getRef("sideBarImgDiv"+id);
	if(!isnull(sideBarIm))
		sideBarIm.src=path
}
var openedContainerId

function openCloseLinksContainer(id){
	var container=getRef("SBCont"+id);
	//alert(container)
	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 openCloseSideContainer(id){
	var container=getRef("sideMenuCont"+id);
	if(isnull(container)) return;
	if(container.style.display==''){
		container.style.display='none'
	}
	else{
		container.style.display=''
	}
}
/*
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 getSideBarMenus(){
	var menusArr=new Array();
	for(var x in sidemenus){
		if(sidemenus[x].menuSB==1)
			menusArr[menusArr.length]=sidemenus[x];
	}
	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
}