//Scripts to add add/show functionality to selected elements in a page.
//Elements that need to be hidden should be nested within an div tag as follows
//<div class="vMenu">
//	<div class="vMenuSwitchOn">
//	<a  class="vMenuLink" href="#" onClick="javascript:showHide(this);return false">Show sub-menu</a></div>
//	<div class="vMenuItemOff"><a  class="vMenuLink" href="#">Menu Item</a></div>
//	<div class="vMenuItemOff"><a class="vMenuLink" href="#" >Menu Item</a></div>
//	<div class="vMenuItemOff"><a class="vMenuLink" href="#" >Menu Item</a></div>
//	<div class="vMenuItemOff"><a class="vMenuLink" href="#">Menu Item</a></div>
//	<div class="vMenuItemOff"><a class="vMenuLink" href="#">Menu Item</a></div>
// 		<div class="vSubMenu"> <!--submenu always visible-->
//			<a  id="courses" class="vMenuLink" href="#" onClick="javascript:showHide(this);return false">Show sub-menu</a></div>
//			<div class="vMenuItemOff"><a  class="vMenuLink" href="#">Menu Item</a></div>
//			<div class="vMenuItemOff"><a class="vMenuLink" href="#">Menu Item</a></div>
//			<div class="vMenuItemOff"><a class="vMenuLink" href="#" >Menu Item</a></div>
//		</div>
// 		<div class="vSubMenuOff"> <!--submenu visible/hidden-->
//			<a id="archives"  class="vMenuLink" href="#" onClick="javascript:showHide(this);return false">Show sub-menu</a></div>
//			<div class="vMenuItemOff"><a  class="vMenuLink" href="#">Menu Item</a></div>
//			<div class="vMenuItemOff"><a class="vMenuLink" href="#">Menu Item</a></div>
//			<div class="vMenuItemOff"><a class="vMenuLink" href="#">Menu Item</a></div>
//		</div>
//</div>
//Indented sub-menus can be nested within vSubMenu (always visible) or vSubMenuOff (visible/hidden) divs 
//if browser is not DOM compliant or if Javascript is not enabled
//all elements are visible (this functionality is inserted in the templates' heads
//to collapse or expand ALL collapsing menus on a given page: 
//<a href="#" onclick="javascript:showHideAll('On');return false">Show all</a>|<a href="#" onclick="javascript:showHideAll('Off');return false">Hide all</a>

function showHide(l) 
{var p, c,tN,cN;
	if(document.getElementById)
	{   p= l.parentNode;
		pp= p.parentNode;
		if(pp && pp.childNodes)
		{
		c=pp.childNodes;
			for(i=0;i<c.length;i++)	
			{
			tN=c[i].tagName;
			cN=c[i].className;
				if(tN=="DIV"&&(cN=="vMenuItemOff"||cN=="vMenuItemOn"))
				{c[i].className=(cN=="vMenuItemOff")?"vMenuItemOn":"vMenuItemOff";}
				else if(tN=="DIV"&&(cN=="vMenuSwitchOn"||cN=="vMenuSwitchOff"))
				{c[i].className=(cN=="vMenuSwitchOn")?"vMenuSwitchOff":"vMenuSwitchOn";}
				else if(tN=="DIV"&&(cN=="vSubMenuOn"||cN=="vSubMenuOff"))
				{c[i].className=(cN=="vSubMenuOn")?"vSubMenuOff":"vSubMenuOn";}
			}
		}			
	}
}



//collapse or expand all.This function only affects first generation of children of the body parent 
//and invokes showHideLineage() to expand collapse the descendants
function showHideAll(a) 
{
	var i,c,m,tN,cN,vMi,vS,vMs;

	if(document.getElementById && document.body && document.body.childNodes )
	{ 
		if(a=="On"){vMi="vMenuItemOn";vS="vSubMenuOn";vMs="vMenuSwitchOff";}
		else if (a=="Off"){vMi="vMenuItemOff";vS="vSubMenuOff";vMs="vMenuSwitchOn";}
		c=document.body.childNodes;
			for(i=0;i<c.length;i++)
		 	{	tN=c[i].tagName;
				cN=c[i].className;
				{if(tN=="DIV"&& (cN=="vMenuItemOff"||cN=="vMenuItemOn"))
					{c[i].className=vMi;}
					else if(tN=="DIV"&&(cN=="vSubMenuOn"||cN=="vSubMenuOff"))
					{c[i].className=vS;}
					else if(tN=="DIV"&&(cN=="vMenuSwitchOn"||cN=="vMenuSwitchOff"))
					{c[i].className=vMs;}}	
					
				{if(c[i].hasChildNodes())
					{showHideLineage(c[i],a); }}
				
				
			}
	
		
	}
	
}

//collapse all (works with showHideAll by collapsing or exanding all descendants
function showHideLineage(c,a)
{ var a,c,cc,i,tN,cN,vMi,vS,vMs;
		if(a=="On"){vMi="vMenuItemOn";vS="vSubMenuOn";vMs="vMenuSwitchOff";}
		else if (a=="Off"){vMi="vMenuItemOff";vS="vSubMenuOff";vMs="vMenuSwitchOn";}
	 cc=c.childNodes;
	for(i=0;i<cc.length;i++)
	{	tN=cc[i].tagName;
		cN=cc[i].className;	
		{if(tN=="DIV"&&(cN=="vMenuItemOff"||cN=="vMenuItemOn"))
		{cc[i].className=vMi;}
		else if(tN=="DIV"&&(cN=="vSubMenuOn"||cN=="vSubMenuOff"))
		{cc[i].className=vS;}
		else if(tN=="DIV"&&(cN=="vMenuSwitchOn"||cN=="vMenuSwitchOff"))
		{cc[i].className=vMs;}}
		
		{if(cc[i].hasChildNodes) 
		{showHideLineage(cc[i],a);}}
		
	}
}

//open selected section(s) of the menu (sections which need to be named 
//by giving the  trigger anchor under vMenuSwtichOn/Off a corresponding id)
//. i.e. leaveOpen('archives','courses', etc.);

function leaveOpen() 
{if(document.getElementById)
	{ var m;
		 var args = leaveOpen.arguments;
		 if (args)
		 {
		 for(var i=0; i<args.length; i++)
		  {
			m=document.getElementById(args[i]);
			showHide(m);
		  }
		 }
	
	}
	
}


