function buildSubmenuItems(levelpath,menuType){
	try{
		thismenuname=eval(menuType+'Menu_'+levelpath+'_'+L+'[0]');thismenulink=eval(menuType+'Menu_'+levelpath+'_'+L+'[1]');
			thislevel=eval(menuType+'Menu_'+levelpath+'_'+L+'[2]');thislevelpath=eval(menuType+'Menu_'+levelpath+'_'+L+'[3]');
				thisisHaveSub=eval(menuType+'Menu_'+levelpath+'_'+L+'[4]');
		icon='';onclickSTR='';
		if(thisisHaveSub==1)icon='<img src="http://'+document.domain+'/asp/HRMenuImgs/tri.gif">';
		if(thismenulink!='')onclickSTR='onclick="window.location.href=\''+thismenulink+'\'"'
		tbStr+='<tr>';
		tbStr+='<td class="'+menuType+'_subMenuInnerTD" id="'+menuType+'_tdId_'+thislevelpath+'" '+onclickSTR+' onmouseover="buildSubmenu(event,\''+menuType+'_tdId_'+thislevelpath+'\','+thislevel+',\''+thislevelpath+'\','+thisisHaveSub+',\''+menuType+'_tb_'+levelpath+'\',\''+menuType+'\')" nowrap>';
		tbStr+=''+thismenuname+'';
		width='';if(icon!='')width=8;
		tbStr+='</td><td width="'+width+'" align="center">'+icon+'</td>';
		tbStr+='</tr>';
		L++;			
		if(eval(menuType+'Menu_'+levelpath+'_'+(L)+'[0]')){
			buildSubmenuItems(levelpath,menuType);
		}
	}catch(err){}
}
function isParentTB(thislevelpath,toBeDeletedTB,menuType){
	each_thislevelpath=thislevelpath.split('_');
	var parentTB_of_thislevelpath=menuType+'_tb';
	for(k=0;k<each_thislevelpath.length-1;k++){ //don't read the last arr
		parentTB_of_thislevelpath+='_'+each_thislevelpath[k];
		if(toBeDeletedTB==parentTB_of_thislevelpath){ //this table is inherited to parent table : can't remove 
			return true;
		}
	}
}
function closesubmenu(levelpath,menuType){
	var thisTB=menuType+'_tb_'+levelpath+''
	eachopenedsubmenu=openedsubmenustr.split(':');
	for(j=1;j<eachopenedsubmenu.length;j++){ //read opened submenu 1 by 1		
		str=eachopenedsubmenu[j];
		com_pos = str.indexOf(thisTB,0); //match and found it's opened
			if (com_pos<0) { //doesn't match remove it
				isParent = isParentTB(levelpath,eachopenedsubmenu[j],menuType);
				if(!isParent){
					removeitNow(eachopenedsubmenu[j]);
				}
			}
	}
}
//buildSubmenu(event,this.id,level,'level-ID',isHaveSub,call from whichTB ID,menuType)
function buildSubmenu(e,id,level,levelpath,isHaveSub,fromTB,menuType){ //onmouseover

	closesubmenu(levelpath,menuType);
	if(hr_preMouseOverId!=''&&document.getElementById(hr_preMouseOverId)){document.getElementById(hr_preMouseOverId).className=menuType+'_subMenuInnerTD';}
	if(level!='0'&&document.getElementById(id)){
		document.getElementById(id).className=menuType+'_subMenuInnerTD_mOver';hr_preMouseOverId=id;
	}
	if(isHaveSub==1&&!document.getElementById(menuType+'_tb_'+levelpath+'')){
		
		submenuStr='';tbStr='';
		submenuStr+='<table border="0" cellpadding="0" cellspacing="0"><tr><td>';
			submenuStr+='<table onmouseover="keepsubmenualive();" onmouseout="removeallsubmenu();" width="'+hr_subMenuWidth+'" border="0" cellpadding="0" cellspacing="'+hr_submenuTB_cellspacing+'">';
				L=1;
				buildSubmenuItems(levelpath,menuType);
				submenuStr += tbStr;		
			submenuStr+='</table>';
		submenuStr+='</td></tr></table>';
		
		if(tbStr!=''){	
			menuWidth=document.getElementById(menuType+"_tdId_1").clientWidth;
			menuHeight=document.getElementById(menuType+"_tdId_1").clientHeight;
			Mbr=document.createElement("div");
			Mbr.id=menuType+'_tb_'+levelpath+'';
			openedsubmenustr+=':'+menuType+'_tb_'+levelpath+'';			
			Mbr.style.position='absolute';
			Mbr.style.zIndex=level;
			Mbr.className=menuType+'_subMenuDIV';
			Mbr.innerHTML=submenuStr;
			document.body.appendChild(Mbr);
			
			if (!e) var e = window.event; 
			if(navigator.appName=='Microsoft Internet Explorer'){
					e_clientX=e.clientX;e_clientY=e.clientY;e_offsetX=e.offsetX;e_offsetY=e.offsetY;diff=2+hr_submenuTB_cellspacing;
					if(menuType=='hr'){ //IE : Horizontal
						if(level==0){
							style_left=e_clientX-e_offsetX+hr_first_moveLeft+document.body.scrollLeft;
							style_top=e_clientY-e_offsetY+menuHeight+hr_first_moveTop+document.body.scrollTop;
						}else{
							style_left=e_clientX-e_offsetX+Math.abs(document.getElementById(fromTB).clientWidth)+document.body.scrollLeft+overLap_L;
							style_top=e_clientY-e_offsetY+document.body.scrollTop+overLap_T;
							if(style_left+Mbr.clientWidth>document.body.clientWidth){ //over window. display new submenu to left
								style_left=style_left-Mbr.clientWidth-document.getElementById(id).clientWidth;
							}
						}	
					}else if(menuType=='ver'){ //IE : Vertical
						if(level==0){
							style_left=e_clientX-e_offsetX+ver_first_moveLeft+menuWidth+document.body.scrollLeft;
							style_top=e_clientY-e_offsetY+ver_first_moveTop+document.body.scrollTop;
						}else{
							style_left=e_clientX-e_offsetX+Math.abs(document.getElementById(fromTB).clientWidth)+document.body.scrollLeft+overLap_L;
							style_top=e_clientY-e_offsetY+document.body.scrollTop+overLap_T;
							if(style_left+Mbr.clientWidth>document.body.clientWidth){ //over window. display new submenu to left
								style_left=style_left-Mbr.clientWidth-document.getElementById(id).clientWidth;
							}
						}	
					}	
					Mbr.style.left=style_left-diff+'px';
					Mbr.style.top=style_top-diff+'px';
			}else{
					if(menuType=='hr'){ //Firefox : Horizontal
							diff=hr_submenuTB_cellspacing;
							if(level==0){
								var CalculatedTotalOffsetLeft=0;CalculatedTotalOffsetTop=0;
								var Element=document.getElementById(id);
								//var testSTR=''
								while (Element.parentNode){			
									//testSTR+=' : [' + Element.id + ';' + Element.tagName + ';' + Element.offsetLeft + '] ';
									if(Element.tagName=='TD'||Element.tagName=='TABLE'){
									CalculatedTotalOffsetLeft += Element.offsetLeft ; 
									}						
									CalculatedTotalOffsetTop += Element.offsetTop ;
									Element = Element.parentNode;
								}					
									Mbr.style.left=CalculatedTotalOffsetLeft+hr_first_moveLeft+'px';
									Mbr.style.top=CalculatedTotalOffsetTop+menuHeight+hr_first_moveTop+'px';
									//alert(testSTR);
							}else{
								style_left=document.getElementById(id).offsetLeft+Math.abs(document.getElementById(fromTB).offsetLeft)+Math.abs(document.getElementById(fromTB).clientWidth)+overLap_L;
								style_top=Math.abs(document.getElementById(fromTB).offsetTop)+document.getElementById(id).offsetTop+overLap_T;
								if(style_left+Mbr.clientWidth>document.body.clientWidth){ //over window. display new submenu to left
									style_left=style_left-Mbr.clientWidth-document.getElementById(id).clientWidth;
								}
									Mbr.style.left=style_left-diff+'px';
									Mbr.style.top=style_top-diff+'px';
							}
					
					}else if(menuType=='ver'){ //Firefox : Vertical : e_clientX = e.pageX; e_clientY = e.pageY;
							diff=ver_submenuTB_cellspacing;
							if(level==0){
								var CalculatedTotalOffsetLeft=0;CalculatedTotalOffsetTop=0;
								var Element=document.getElementById(id);
								var testSTR=''
								while (Element.parentNode){			
									//testSTR+=' : [' + Element.id + ';' + Element.tagName + ';' + Element.offsetLeft + '] ';
									if(Element.tagName=='TD'){
										CalculatedTotalOffsetLeft += Element.offsetLeft ; 
									}
									if(Element.tagName=='TD'||Element.tagName=='TABLE'){
										CalculatedTotalOffsetTop += Element.offsetTop ;
									}
									Element = Element.parentNode;
								}					
									Mbr.style.left=CalculatedTotalOffsetLeft+ver_first_moveLeft+menuWidth+'px';
									Mbr.style.top=CalculatedTotalOffsetTop+ver_first_moveTop+'px';
									//alert(testSTR);
							}else{
								style_left=document.getElementById(id).offsetLeft+Math.abs(document.getElementById(fromTB).offsetLeft)+Math.abs(document.getElementById(fromTB).clientWidth)+overLap_L;
								style_top=Math.abs(document.getElementById(fromTB).offsetTop)+document.getElementById(id).offsetTop+overLap_T;
								if(style_left+Mbr.clientWidth>document.body.clientWidth){ //over window. display new submenu to left
									style_left=style_left-Mbr.clientWidth-document.getElementById(id).clientWidth;
								}
									Mbr.style.left=style_left-diff+'px';
									Mbr.style.top=style_top-diff+'px';
							}
					}	
			}			
		} //if(tbStr!='')
	}
	
}
function removeitNow(removeTB){		
	var toBeRemoved_parentObj = document.body; //parent
	var toBeRemoved_obj = document.getElementById(removeTB); //remove obj
	throwaway = toBeRemoved_parentObj.removeChild(toBeRemoved_obj);		
	openedsubmenustr=openedsubmenustr.replace(':'+removeTB,'');
}
function removeallsubmenu_action(){
	eachopenedsubmenu=openedsubmenustr.split(':');
	for(j=1;j<eachopenedsubmenu.length;j++){ //read opened submenu 1 by 1				
		removeitNow(eachopenedsubmenu[j]);
	}
}
function removeallsubmenu(){ //onmouseout	
	clearTimeout(timeoutobj);
	timeoutobj=setTimeout('removeallsubmenu_action()',2000);		
}
function keepsubmenualive(){ //onmouseover			
	clearTimeout(timeoutobj);
}