/*@@@DMenu system functions : client engine*/
var DMenu_MiliSecondsToDisplayMenu = 2000;
var DMenu_ArrObjects = new Array();  //@@@ stores any objects for this system
var DMenu_Timer=new Array();

function DMenu_dWrite(s){  //@@@ DMenu_document.write
   if(DMenu_BName=="IE"){
	    document.body.insertAdjacentHTML("beforeEnd",s);
	 }else{
	    document.write(s);
	 }
}

function DMenuCheckTimer(){
   var d = new Date();d = Date.parse(d);
	 var d1,df;
	 for(var i=0;i<DMenu_MenusArr.length;i++){	
	     d1 = DMenu_Timer[i];
			 if(d1!=null){
			     df = d-Date.parse(d1);
					 if(df>=DMenu_MiliSecondsToDisplayMenu){
					      DMenu_Timer[i]=null;
					      DMenu_HideLevelMenus_X(DMenu_MenusArr[i].MenuName,DMenu_MenusArr[i].MenuNodes[0].MenuNodeID,DMenu_MenusArr[i].MenuNodes[0]);
					 }
			 } 
	 }
	  /*if(DMenu_BName!="IE"){	 
	    setTimeout("DMenuCheckTimer();",250);
	 }*/
}
/*if(DMenu_BName=="IE"){
   setInterval("DMenuCheckTimer();",250);
}else{
   setTimeout("DMenuCheckTimer();",250);
}*/

var DMenuTimerFlag = null;
function TurnOnTimer()
{
	
		window.status ="Timer On";
		DMenuTimerFlag =  setInterval("DMenuCheckTimer();",250);
/*	if(DMenu_BName=="IE"){}else{
		window.status ="Timer On" 
		 DMenuTimerFlag = setInterval("DMenuCheckTimer();",250);
		
	}*/
}

function TurnOffTimer()
{
	window.status ="Timer Off" + DMenuTimerFlag;
	if(DMenu_BName=="IE"){
	clearTimeout(DMenuTimerFlag);
	}else{
//	alert('out');
	clearInterval(DMenuTimerFlag);
	}
}

function DMenu_clsMenuNodeMouseMoveArgs(){
    this.objHTML = null;
	  this.ID = null;
	  this.objMenuNode = null;
	  this.cssClassName = null;
	  this.scriptFunctionName = null;
	  this.event=null;
}

function DMenu_clsObjectDimnesions(o,e){
    this.x = 0;
		this.y = 0;
		this.x1 = 0;
		this.y1 = 0;
		this.width = 0;
		this.height = 0;
		this.mouseX = 0;
		this.mouseY = 0;
		this.obj = o;
		this.event = e;
		
		
		//@@@ Start calculation for NS
    if(DMenu_BName=="NS" && DMenu_DVers>=6){
			 var el = o; var el1;
			 var x=0,y=0,ax = "",ay = "";
			 var s = "";
			 while(el!=null){			    			 
			       x+=el.offsetLeft*1;
					   y+=el.offsetTop*1;
					   el1 = el.offsetParent;
             if(DMenu_DVers>=6){
  					   if(el1 !=null && (el1.tagName=="BODY" || el1.tagName=="HTML")){
  						    if(el.style.position!="absolute"){
  								   x = x-(document.body.offsetWidth-document.width);
  								}
  					      break;
  					   }
             }
						 el = el1;
			 }	
			 if(DMenu_DVers==7){
			    x++;
					y++;
			 }	   
		   this.x = x;
		   this.y = y;
		   this.width = o.offsetWidth;
       if(this.width==0 && o.style.display=="none"){
          o.style.display = "block";
					//alert(o.tagName+"\n"+o.childNodes[0].offsetWidth+"\n"+o.childNodes[0].offsetLeft+"\n"+o.innerHTML);
					this.width = o.childNodes[0].offsetWidth+o.childNodes[0].offsetLeft*2;
					this.height = o.offsetHeight;
					o.style.display = "none";
			 }else{
		      this.height = o.offsetHeight;
			 }
		   this.x1 = this.x + this.width;
		   this.y1 = this.y + this.height;
			 if(e!=null){
		      this.mouseX = e.clientX;
		      this.mouseY = e.clientY;
			 }
			 
			 return;
		}
		//@@@ End calculation for NS
		
		//@@@ Start calculation for IE
		if(DMenu_BName=="IE"){
		   
			 var el = o; var el1;
			 var x=0,y=0,ax="",ay="";
			 var s = "";
			 
			 if(DMenu_DVers<=5){
			    if(o.offsetParent!=null){
			       if(o.offsetLeft*1+o.offsetWidth>o.offsetParent.offsetWidth){
					       x = o.offsetLeft*-1;
					   }
					}
			 }
			 
			 while(el!=null){			    			 
			    
			       x+=el.offsetLeft*1;
					   y+=el.offsetTop*1;
						 ax=(el.offsetLeft-el.clientLeft);
						 if(ax<0){x-=ax*1}
						 ay=(el.offsetTop-el.clientTop);	
						 if(ay<0){y-=ay*1}					   
					   //s+=el.tagName+" "+el.offsetLeft+" "+ax+"\n";
					   el1 = el.offsetParent;						 
					   if(el1 !=null && (el1.tagName=="BODY" || el1.tagName=="HTML")){
						    if(el.style.position!="absolute"){
								   if(document.body.dir=="rtl"){
								      ax = document.body.scrollWidth-document.body.clientWidth;
								      x = x-ax;
                   }	
									 //window.status = document.body.scrollLeft+" "+document.body.scrollWidth+" "+document.body.clientWidth;
								}
					      break;
					   }
						 el = el1;
			 }		   
		   this.x = x;
		   this.y = y;
		   this.width = o.offsetWidth;
			 if(this.width==0 && o.style.display=="none"){
			    o.style.display = "block";
					this.width = o.offsetWidth;
					this.height = o.offsetHeight;
					o.style.display = "none";
			 }else{
		      this.height = o.offsetHeight;
			 }
		   this.x1 = this.x + this.width;
		   this.y1 = this.y + this.height;
			 if(e!=null){
		      this.mouseX = e.clientX;
		      this.mouseY = e.clientY;
			 } 
			 //alert(s+"\n\n\n\n"+this.x+"\n"+this.mouseX);
			 //alert(document.body.scrollLeft);
			 
			 return;
		}
		//@@@ End calculation for IE
		
}

function DMenu_clsMenuNode_ExecuteMenuNodeMouseMove(l,e,Over){
    var rv = "";
		var ClassNamePropName = "MenuNode"+((Over)?"Over":"Out")+"ClassName";
		var ScriptPropName = "MenuNode"+((Over)?"Over":"Out")+"Script";
		//alert(this[ClassNamePropName]+"\n"+this[ScriptPropName]);
		
		//@@@ determine the way to execute this operation
		var Script=this[ScriptPropName];
		var ClassName=this[ClassNamePropName];
		var obj = this;
		while(true){
		    break;//@@@ todo : improve this block and cancel "break" in this line
		    if(Script !=null && Script !=""){
				   break;
				}
				if(obj.ParentMenuNodeIndex==null){
				   break;
				}
				if(ClassName==null || ClassName==""){
				   ClassName=obj[ClassNamePropName];
				}
				Script = obj[ScriptPropName];
				obj = DMenu_MenusArr[this.MenuIndex].MenuNodes[obj.ParentMenuNodeIndex];
				if(obj==null){
				  break;
				}
		}
		//@@@ end determine the way to execute this operation
		
		if(Script!=null && Script !=""){
		    //@@@ executing script
		    var cObj = new DMenu_clsMenuNodeMouseMoveArgs();
				cObj.objHTML = l;
	      cObj.ID  = this.MenuNodeID;
	      cObj.objMenuNode = this;
	      cObj.cssClassName = (ClassName=="")?null:ClassName;
	      cObj.scriptFunctionName = Script;
				cObj.event = e;
				
		    var str = Script+"(cObj);";				
				eval(str);			
		}else{
		   if(ClassName!=null && ClassName!=""){
			     //@@@ changing class name
			     DMenu_ApplyNewClassName(l,ClassName);					
			 }
		}
		
		return rv;
}

function DMenu_ApplyNewClassName(obj,ClassName){ 
   //window.status = ClassName;  
   obj.className = ClassName;
	 //@@@ TODO : add filter support
}
 
 
function DMenu_getObjMenuNode(MenuName,NodeID){
    var rv = null;
		var realObj = null;
		var rvMenuIndex = "";
		var rvIndex = "";
		
		if(DMenu_BName=="IE"){
		   realObj = document.all[DMenu_GenerateClientId(MenuName,NodeID,"")];
			 if(realObj!=null){
			    rvIndex = realObj.getAttribute("MenuNodeIndex");
					rvMenuIndex = realObj.getAttribute("MenuIndex");
					if(rvMenuIndex!=null && rvIndex!=null && rvMenuIndex!="" && rvIndex!=""){
					   rv = DMenu_MenusArr[rvMenuIndex*1].MenuNodes[rvIndex*1];
					}
			 }
		}
		
		
		if(rv==null){
		   for(var i=0;i<DMenu_MenusArr.length;i++){
					if(DMenu_MenusArr[i].MenuName==MenuName){					    
					    for(var j=0;DMenu_MenusArr[i].MenuNodes.length;j++){
							    if(DMenu_MenusArr[i].MenuNodes[j].MenuNodeID==NodeID){
									    rv = DMenu_MenusArr[i].MenuNodes[j];
											break;
									}
							}
							if(rv!=null){
							    break;
							}
					}
			 }
		}
		
		if(rv!=null && DMenu_BName=="IE" && realObj!=null){		
		     realObj.setAttribute("MenuIndex",rv.MenuIndex);
				 realObj.setAttribute("MenuNodeIndex",rv.MenuNodeIndex);				 				 
		}
		
		if(rv!=null && rv.MenuNodeObj == null && realObj!=null){
		    rv.MenuNodeObj = realObj;
		}
		
		return rv;
}


function DMenu_HighlightMenu_X(l,menuname,ID,e,On,menuNodeObject){
    var objMenuNode = menuNodeObject;
		if(objMenuNode==null)objMenuNode = DMenu_getObjMenuNode(menuname,ID);
		if(objMenuNode==null)return;	
			
		if(l==null && !On){
		   l=objMenuNode.HighlighMenuObj;
		}
		if(l==null){
		   return;
		}
		
		objMenuNode.ExecuteMenuNodeMouseMove(l,e,On);
		if(On){
		   objMenuNode.HighlighMenuObj = l;
			 DMenu_RegisterObjMenuNodeAsChildLevelObj(objMenuNode,"LevelHighlighMenuObj");
			 DMenu_Timer[objMenuNode.MenuIndex] = new Date();
		}else{
		   objMenuNode.HighlighMenuObj = null;
		}
		return;
}

function DMenu_DisplayChildrenMenu_X(l,menuname,ID,e,MyAlign,ChildrenAlign,MyValign,ChildrenValign,offsetX,offsetY,DisplayProperty){
		var objMenuNode = DMenu_getObjMenuNode(menuname,ID);
		if(objMenuNode==null)return; 
		
		//@@@ get treeNode object
		var objTree = DMenu_TreesArr[objMenuNode.TreeIndex];
		var objTreeNode = objTree.TreeNodes[objMenuNode.TreeNodeIndex];
		
		//@@@ hide all my level menus and their children
		DMenu_HideLevelMenus_X(menuname,ID,objMenuNode);
		
		//@@@ higlight me
		DMenu_HighlightMenu_X(l,menuname,ID,e,true,objMenuNode);
		
		var objD = new DMenu_clsObjectDimnesions(l,e);		
				
		var objMenuNodeChildrenContainer = null;
		var objMenuNodeChildrenArr = new Array();
		
		//@@@ get container for all children
		objMenuNodeChildrenContainer = objMenuNode.MenuNodeChildrenContainerObj;
		if(objMenuNodeChildrenContainer==null){		
    		var objMenuNodeChildrenContainerID = DMenu_GenerateClientId(menuname,ID,'children');
				if(DMenu_BName=="IE"){
    		    objMenuNodeChildrenContainer = document.all[objMenuNodeChildrenContainerID];
    		}
    		if(DMenu_BName=="NS" && DMenu_DVers>=6){
    		    objMenuNodeChildrenContainer = document.getElementById(objMenuNodeChildrenContainerID);
    		}
				objMenuNode.MenuNodeChildrenContainerObj = objMenuNodeChildrenContainer;
		}
		
		if(objMenuNodeChildrenContainer==null){
		    //@@@ container for all children is NOT exsists
				//@@@ TODO...... (this section)
		}else{
		    //@@@ container for all children is exsists	
		    var x,y;
				var objCD = new DMenu_clsObjectDimnesions(objMenuNodeChildrenContainer,e);
				//@@@ process new position
				if(MyAlign!=null && ChildrenAlign!=null && MyValign!=null && ChildrenAlign!=null){
        				//@@@ calculate coordinates
								if(MyAlign == "left" && ChildrenAlign == "left"){
        				    x = objD.x;
        				}else if(MyAlign == "right" && ChildrenAlign == "right"){
        				    x = objD.x1-objCD.width;
        				}else if(MyAlign == "right" && ChildrenAlign == "left"){
        				    x = objD.x1;
        				}else if(MyAlign == "left" && ChildrenAlign == "right"){
        				    x = objD.x-objCD.width;
        				}else if(MyAlign == "center" && ChildrenAlign == "center"){
                    x = objD.x+(objD.width/2)-(objCD.width/2);
                }else if(MyAlign == "center" && ChildrenAlign == "left"){
                    x = objD.x+(objD.width/2);
                }else if(MyAlign == "center" && ChildrenAlign == "right"){
                    x = objD.x+(objD.width/2)-(objCD.width);
                }

        				
        				if(MyValign == "bottom" && ChildrenValign == "bottom"){
        				    y = objD.y1-objCD.height;
        				}else if(MyValign == "bottom" && ChildrenValign == "top"){
        				    y = objD.y1;
        				}else if(MyValign == "top" && ChildrenValign == "bottom"){
        				    y = objD.y-objCD.height;
        				}else if(MyValign == "top" && ChildrenValign == "top"){
        				    y = objD.y;
        				}
        				
        				if(offsetX!=null)x=x+offsetX*1;
        				if(offsetY!=null)y=y+offsetY*1;
        				//@@@ end calculate coordinates
								
								//@@@ set coordinates
        		    if(DMenu_BName=="IE"){
        				    objMenuNodeChildrenContainer.style.pixelLeft = x;
        						objMenuNodeChildrenContainer.style.pixelTop = y;        						
        				}else if(DMenu_BName=="NS"){
        				    objMenuNodeChildrenContainer.style.left = x;
        						objMenuNodeChildrenContainer.style.top = y;
        				}
				}
								
				//@@@ highlight off nodes in the layer to be displayed 
    		var firstChildMenuObject = objTreeNode.NodeFCIndex;
    		if(firstChildMenuObject!=null){
    		    firstChildMenuObject = objTree.TreeNodes[firstChildMenuObject];
    				if(firstChildMenuObject!=null){
    				    firstChildMenuObject = DMenu_getObjMenuNode(menuname,firstChildMenuObject.NodeID);
    						if(firstChildMenuObject!=null){
    						   DMenu_HideLevelMenus_X(menuname,firstChildMenuObject.MenuNodeID,firstChildMenuObject,true);
    						}
    		    }
    		}
				
				//@@@ display
				DMenu_HideUnhideSpecifiedDomObject(objMenuNodeChildrenContainer,DisplayProperty,objMenuNode,true);															
		}
		
}

function DMenu_HideUnhideSpecifiedDomObject(l,DisplayProperty,menuNodeObject,On){
    
		    //if(DMenu_BName=="IE"){
      				//@@@ TODO : add filter support
							if(DisplayProperty=="display"){
      				    l.style.display = (On)?"block":"none";
      				}else	if(DisplayProperty=="visibility"){
      				    l.style.visibility = (On)?"visible":"hidden";
      				} 
				//}	
				
				if(On){
				   menuNodeObject.OpenedMenuObj = l;
				   menuNodeObject.OpenedMenuDisplayProperty = DisplayProperty;
					 DMenu_RegisterObjMenuNodeAsChildLevelObj(menuNodeObject,"LevelOpenedMenuObj");
				}else{
				   menuNodeObject.OpenedMenuObj = null;
				}		
}


function DMenu_HideAllMenus_X(menuname){
   for(var i=0;i<DMenu_MenusArr.length;i++){	
	     if(DMenu_MenusArr[i].MenuName!=menuname){
			     if(DMenu_Timer[DMenu_MenusArr[i].MenuIndex]!=null){
					    DMenu_Timer[DMenu_MenusArr[i].MenuIndex]=null;
					    DMenu_HideLevelMenus_X(DMenu_MenusArr[i].MenuName,DMenu_MenusArr[i].MenuNodes[0].MenuNodeID,DMenu_MenusArr[i].MenuNodes[0]);
			        //DMenu_Timer[DMenu_MenusArr[i].MenuIndex]=new Date(Date.parse(DMenu_Timer[DMenu_MenusArr[i].MenuIndex])-10000);
					 }
			 }	     
	 }
}


function DMenu_HideChildrenMenus_X(menuname,ID,menuNodeObject){
    var objMenuNode = menuNodeObject;
		if(objMenuNode==null)objMenuNode = DMenu_getObjMenuNode(menuname,ID);
		if(objMenuNode==null)return;
		
		//@@@ get treeNode object
		var objTree = DMenu_TreesArr[objMenuNode.TreeIndex];
		var objTreeNode = objTree.TreeNodes[objMenuNode.TreeNodeIndex];
		var objOpened;
		
		//@@@ highlight children level : it's takes many prfomance, but its works correctly
		/*
		var firstChildMenuObject = objTreeNode.NodeFCIndex;
		if(firstChildMenuObject!=null){
		    firstChildMenuObject = objTree.TreeNodes[firstChildMenuObject];
				if(firstChildMenuObject!=null){
				    firstChildMenuObject = DMenu_getObjMenuNode(menuname,firstChildMenuObject.NodeID);
						if(firstChildMenuObject!=null){
						   DMenu_HideLevelMenus_X(menuname,firstChildMenuObject.MenuNodeID,firstChildMenuObject);
						}
		    }
		}*/	
		
		//@@@ hide level
		objOpened = objMenuNode.OpenedMenuObj;
		if(objOpened!=null){		    
				DMenu_HideUnhideSpecifiedDomObject(objOpened,objMenuNode.OpenedMenuDisplayProperty,objMenuNode,false);								         						 	
		}else{
		    return;  //@@@ !!!!!!!!!
		}
		
		//return;
		
		var curTreeNode;
		var curTreeNodeIndex;		
		var curMenuNode;
		var s = "";
		
		curTreeNode = objTreeNode;
		curTreeNodeIndex = objTreeNode.NodeFCIndex;  //@@@ First Child
		
		while(curTreeNodeIndex!=null){
		    
				//@@@ get tree node object
		    curTreeNode = objTree.TreeNodes[curTreeNodeIndex];
				if(curTreeNode==null)break;
				
				//@@@ get menu node object
				curMenuNode = DMenu_getObjMenuNode(menuname,curTreeNode.NodeID);
								
				if(curMenuNode!=null){
				   //@@@ hide recursive children nodes
					 DMenu_HideChildrenMenus_X(menuname,curMenuNode.MenuNodeID,curMenuNode);
								  
				}
				
				curTreeNodeIndex = curTreeNode.NodeNSIndex
		}
				
}

/*@@@Function hides all sisbilngs and their childs : it'as safe bu takes more perfomance*//*
function DMenu_HideLevelMenus_X(menuname,ID,menuNodeObject,OnlyHighlight){  
    					  
		var objMenuNode = menuNodeObject;
		if(objMenuNode==null)objMenuNode = DMenu_getObjMenuNode(menuname,ID);
		if(objMenuNode==null)return;
		
		if(OnlyHighlight==null)OnlyHighlight=false;
		if(OnlyHighlight!=true)OnlyHighlight=false;
		
		//@@@ process stored sibilings
		var arr = objMenuNode.SiblingsMenuNodes;		
		if(arr!=null){
		    var curMenuNode;
		    for(var i=0;i<arr.length;i++){
				    var curMenuNode = arr[i];
						DMenu_HighlightMenu_X(null,menuname,curMenuNode.MenuNodeID,null,false,curMenuNode);
    				if(!OnlyHighlight)DMenu_HideChildrenMenus_X(menuname,curMenuNode.MenuNodeID,curMenuNode);									 
				}
				return;
		}
		
		//@@@ get trreNode object
		var objTree = DMenu_TreesArr[objMenuNode.TreeIndex];
		var objTreeNode = objTree.TreeNodes[objMenuNode.TreeNodeIndex];
		
		var curMenuNode;
		var curTreeNode;
		var curTreeNodeIndex;
		var arr = new Array();		
		
		//@@@ hide previous siblings
		curTreeNode=objTreeNode;
		while(true){
		    curTreeNodeIndex = curTreeNode.NodePSIndex;
				if(curTreeNodeIndex!=null){
				    curTreeNode = objTree.TreeNodes[curTreeNodeIndex];
						if(curTreeNode!=null){				
    		        curMenuNode = DMenu_getObjMenuNode(menuname,curTreeNode.NodeID);
    						if(curMenuNode!=null){	
    						   DMenu_HighlightMenu_X(null,menuname,curMenuNode.MenuNodeID,null,false,curMenuNode);
    						   if(!OnlyHighlight)DMenu_HideChildrenMenus_X(menuname,curMenuNode.MenuNodeID,curMenuNode);
									 arr[arr.length]=curMenuNode;
    						}
						}else{
						   break;
						}
				}else{
				    break;
				}
		}
		 //@@@ hide self
		DMenu_HighlightMenu_X(null,menuname,objTreeNode.NodeID,null,false,objMenuNode);
		DMenu_HideChildrenMenus_X(menuname,objTreeNode.NodeID,objMenuNode);
		arr[arr.length]=objMenuNode;
			
		//@@@ next siblings		
		curTreeNode=objTreeNode;
		while(true){		
				curTreeNodeIndex = curTreeNode.NodeNSIndex;
				if(curTreeNodeIndex!=null){
				    curTreeNode = objTree.TreeNodes[curTreeNodeIndex];				
		        if(curTreeNode!=null){
						   curMenuNode = DMenu_getObjMenuNode(menuname,curTreeNode.NodeID);
						   if(curMenuNode!=null){
						      DMenu_HighlightMenu_X(null,menuname,curMenuNode.MenuNodeID,null,false,curMenuNode);
						      if(!OnlyHighlight)DMenu_HideChildrenMenus_X(menuname,curMenuNode.MenuNodeID,curMenuNode);
									arr[arr.length]=curMenuNode;
						   }
						}
				}else{
				    break;
				}				
		}
		
		objMenuNode.SiblingsMenuNodes = arr;		

}*/


function DMenu_HideLevelMenus_X(menuname,ID,menuNodeObject,OnlyHighlight){  
    					  
		var objMenuNode = menuNodeObject;
		if(objMenuNode==null)objMenuNode = DMenu_getObjMenuNode(menuname,ID);
		if(objMenuNode==null)return;
		
		if(OnlyHighlight==null)OnlyHighlight=false;
		if(OnlyHighlight!=true)OnlyHighlight=false;
				
		var objToHighLightOff = null;
		var objToHide = null; 
				
		var objParentMenuNode = objMenuNode.ParentMenuNodeIndex;
		if(objParentMenuNode!=null){
		    objParentMenuNode = DMenu_MenusArr[objMenuNode.MenuIndex].MenuNodes[objParentMenuNode];
				if(objParentMenuNode!=null){
				   objToHighLightOff = objParentMenuNode.ChildLevelHighlighMenuObj; 
					 objToHide         = objParentMenuNode.ChildLevelOpenedMenuObj;
					 objParentMenuNode.ChildLevelHighlighMenuObj=null;
					 objParentMenuNode.ChildLevelOpenedMenuObj=null; 
				}
		}else{
		    objToHighLightOff = DMenu_MenusArr[objMenuNode.MenuIndex].TopLevelHighlighMenuObj; 
				objToHide         = DMenu_MenusArr[objMenuNode.MenuIndex].TopLevelOpenedMenuObj;
				DMenu_MenusArr[objMenuNode.MenuIndex].TopLevelHighlighMenuObj=null;
				DMenu_MenusArr[objMenuNode.MenuIndex].TopLevelOpenedMenuObj=null;
		}
		
		if(objToHighLightOff!=null){
		    DMenu_HighlightMenu_X(null,menuname,objToHighLightOff.MenuNodeID,null,false,objToHighLightOff);				
		}
		if(objToHide!=null){
		    if(!OnlyHighlight)DMenu_HideChildrenMenus_X(menuname,objToHide.MenuNodeID,objToHide);
		}				

}

function DMenu_RegisterObjMenuNodeAsChildLevelObj(objMenuNode,type){
    
		var objParentMenuNode = objMenuNode.ParentMenuNodeIndex;		
		if(objParentMenuNode!=null){
		    objParentMenuNode = DMenu_MenusArr[objMenuNode.MenuIndex].MenuNodes[objParentMenuNode];
				if(objParentMenuNode!=null){
				   if(type=="LevelHighlighMenuObj"){
					    objParentMenuNode.ChildLevelHighlighMenuObj = objMenuNode;
					 }else if(type=="LevelOpenedMenuObj"){
					   objParentMenuNode.ChildLevelOpenedMenuObj = objMenuNode;
					 }
				}
		}else{
		    if(type=="LevelHighlighMenuObj"){
					   DMenu_MenusArr[objMenuNode.MenuIndex].TopLevelHighlighMenuObj = objMenuNode;
				}else if(type=="LevelOpenedMenuObj"){
					   DMenu_MenusArr[objMenuNode.MenuIndex].TopLevelOpenedMenuObj = objMenuNode;
				}		    
		}
}

DMenu_EngineLoaded = true;