GRCNavigation={
	mainClass:'MainSideMenu',
	trigOpen:'TriggerOpen',
	subMenuOpen:'SideMenuOpen',
	trigClosed:'TriggerClosed',
	subMenuClosed:'SideMenuClosed',
	showAll:false,
	showAllMenus:function()
	{
		GRCNavigation.showAll=true;
	},
	//	pMainClass	- Class of Main Side menu element
	//	pTrigOpen	- Class of Trigger when submenu is open
	//	pMenuOpen	- Class of submenu when it is open
	//	pTrigClosed	- Class of Trigger when submenu is closed
	//	pMenuClosed	- Class of submenu when it is closed
	setClasses:function(pMainClass,pTrigOpen,pMenuOpen,pTrigClosed,pMenuClosed)
	{
		with (GRCNavigation)
		{
			mainClass=pMainClass;
			trigOpen=pTrigOpen;
			subMenuOpen=pMenuOpen;
			trigClosed=pTrigClosed;
			subMenuClosed=pMenuClosed;
		}
	},
	//	parentId	- Parent entity id
	init:function(parentId)
	{
		var	parentDiv;
		var ulList;
		var ulParent;
		var triggerLink;
		if(!document.getElementById || !document.createTextNode){return;}
		var parentDiv=document.getElementById(parentId);
		if(!parentDiv) {	return;	}
		DOMhelp.cssjs('add',parentDiv,GRCNavigation.mainClass);
		ulList=parentDiv.getElementsByTagName('UL');
		if(ulList==null) {	return;	}
		for (i=0; i<ulList.length;i++)
		{
			ulParent=ulList[i].parentNode;
			switch (ulParent.nodeName)
			{
				case ('LI'):
				{
					var txt;
					txt=DOMhelp.getText(ulParent);
					if (txt!=null)
					{
						triggerLink=document.createElement('a');
						triggerLink.setAttribute('href','#')
						triggerLink.innerHTML=DOMhelp.getText(ulParent);
						if ((GRCNavigation.checkCurrent(ulList[i])) || (GRCNavigation.showAll))
						{
							DOMhelp.cssjs('add',triggerLink,GRCNavigation.trigOpen);
							DOMhelp.cssjs('add',ulList[i],GRCNavigation.subMenuOpen);
						}
						else
						{
							DOMhelp.cssjs('add',triggerLink,GRCNavigation.trigClosed);
							DOMhelp.cssjs('add',ulList[i],GRCNavigation.subMenuClosed);
						}
						//	set trigger operations
						DOMhelp.addEvent(triggerLink,'click',GRCNavigation.switchMenu,false);
						ulParent.insertBefore(triggerLink,ulParent.firstChild);
						DOMhelp.setText(ulParent,'');
					}
					break;
				}
				case 'UL':
				{
					break;
				}
				default:
				{
				}
			}	//	switch
		}	//	for
	},
	//	Return true if current file is under UL parameter
	checkCurrent:function(elmUL)
	{
		var iRef;
		var allRef;
		allRef=elmUL.getElementsByTagName('a');
		if (allRef==null) return(false);	//	no ref exists
		for (iRef=0;iRef<allRef.length;iRef++)
		{
			if (document.location.href.indexOf(allRef[iRef].href,0)!=-1)
			{
				return(true);
			}
		}
		return(false);
	},
	switchMenu:function(e)
	{
		var trig=DOMhelp.getTarget(e);
		var firstList=trig.parentNode.getElementsByTagName('UL')[0];
		with (GRCNavigation)
		{
			if (DOMhelp.cssjs('check',firstList,trigOpen))
			{
				DOMhelp.cssjs('swap',trig,trigOpen,trigClosed);
				DOMhelp.cssjs('swap',firstList,subMenuOpen,subMenuClosed);
			}
			else
			{
				DOMhelp.cssjs('swap',trig,trigClosed,trigOpen);
				DOMhelp.cssjs('swap',firstList,subMenuClosed,subMenuOpen);
			}
		}
		DOMhelp.cancelClick(e);
	}
}

