/////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2007, 2008, Oracle. All rights reserved.
// Function : ITSMultiSidebarMenu
// Comments : 
/////////////////////////////////////////////////////////////////////////////

function ITSMultiSidebarMenu(siteLabel, strShowHome, strStartLevel, strNumLevels)
{
	this.m_TextColor  = '';
	this.m_HoverColor = '';
	this.m_FocusColor = '';
	this.m_ClassName  = 'ITSMultiSidebarMenu';
	
	this.m_ShowHome   = false;
	
	this.m_SiteLabel = siteLabel;
	
	this.m_StartLevel = 1;
	this.m_NumLevels  = 10;
	this.m_EndLevel   = 11;
	
	this.m_NavPath    = g_navNode_Path;
	this.m_numSubLevel1 = 0;
	this.m_numSubLevel2 = 0;
	this.m_numSubLevel3 = 0;
			
	ITSMultiSidebarMenu.prototype.Display = ITSMultiSidebarMenu_Display;
	ITSMultiSidebarMenu.prototype.DisplayNode = ITSMultiSidebarMenu_DisplayNode;
		

	if (strShowHome == 'true')
		this.m_ShowHome = true;
		
	if (strStartLevel != '')
	{
		var value = parseInt(strStartLevel);
		if (value != NaN)
			this.m_StartLevel = value;
	}
	
	if (strNumLevels != '')
	{
		var value = parseInt(strNumLevels);
		if (value != NaN)
			this.m_NumLevels = value;
	}

	this.m_EndLevel = this.m_StartLevel + this.m_NumLevels - 1 ;
}

function ITSMultiSidebarMenu_Display (node)
{
	document.write('<ul>');
	this.DisplayNode(node);	
	document.write('</li></ul>');
}

function ITSMultiSidebarMenu_DisplayNode(node)
{
	var bSelected = false;
	var nodeColor = this.m_TextColor;
	var nodeClass = this.m_ClassName
	var selectedLevel = this.m_bSelectedLevel;

	var nodeLevel = node.m_level;
	var siteLabel = this.m_SiteLabel;
	
	//alert("m_navPath lenth = " + this.m_NavPath.length);
	
	if (nodeLevel > 6)
		nodeLevel = 6;
	
	if (this.m_NavPath.length > 0 && node.m_level < this.m_NavPath.length)
	{
		if (this.m_NavPath[node.m_level] == node.m_id)
		{
			if (node.m_level > 0 || (node.m_level == 0 && this.m_NavPath.length == 1))
			{	
				selectedLevel = node.m_label;
				bSelected = true;
				nodeColor = this.m_FocusColor;
				nodeClass += '-focus';
			}
			
		
		}
		
	}

	if (nodeLevel > 0)
		nodeClass += '-' + nodeLevel;
	
	
	if ( (node.m_level == 0 && this.m_ShowHome) || 
     	 (node.m_level >= this.m_StartLevel && node.m_level <= this.m_EndLevel)
	   )
	{
		var ds = new Array();
		var di = 0;
		var numSubLevel = this.m_numSubLevel1;
		var numSubLevel2 = this.m_numSubLevel2;
		var numSubLevel3 = this.m_numSubLevel3;
		
		//alert("Nodelabel = " + node.m_label + "--- nodeLevel = " + node.m_level + "--numSubLevel = " + numSubLevel + "--numSubLevel2 = " + numSubLevel2);
		
		//alert("bselected =  " + bSelected);
		if(nodeLevel == 0) {
			ds[di++] = '<li>';
			ds[di++] = '<a href="' + node.m_href + '"';
			if(bSelected)
				ds[di++] = ' class="subActive"';
			ds[di++] = '>'
			ds[di++] = siteLabel + ' Home';
			ds[di++] = '</a>';
		
		}
		
		if(nodeLevel ==1) {
			//close the <ul> tag if we back to level 1 node
			if(numSubLevel > 0 && numSubLevel2 > 0) {
				//alert(" back in level 1 -- Nodelabel = " + node.m_label + "--- nodeLevel = " + node.m_level + "--numSubLevel = " + numSubLevel + "--numSubLevel2 = " + numSubLevel2);
				ds[di++] = '</ul></li>';
				ds[di++] = '</ul>';
				this.m_numSubLevel1= 0;
				this.m_numSubLevel2= 0;
				numSubLevel=0;
				numSubLevel2=0;
			}
			if(numSubLevel > 0 && numSubLevel2 == 0) {
				//alert(" back in level 1 -- Nodelabel = " + node.m_label + "--- nodeLevel = " + node.m_level + "--numSubLevel = " + numSubLevel + "--numSubLevel2 = " + numSubLevel2);
				ds[di++] = '</ul></li>';
				//ds[di++] = '</ul>';
				this.m_numSubLevel1= 0;
				this.m_numSubLevel2= 0;
				numSubLevel=0;
				numSubLevel2=0;
			}
				
			ds[di++] = '<li>';
			ds[di++] = '<a href="' + node.m_href + '"';
			if(bSelected)
				ds[di++] = ' class="subActive"';
			
			ds[di++] = '>'
			ds[di++] = node.m_label;
			ds[di++] = '</a>';
			
			numSubLevel = 0;
		}
		if(nodeLevel > 1)
		{
			numSubLevel = parseInt(numSubLevel) + 1;
		
			if(numSubLevel == 1 && nodeLevel == 2)  {
			
			 	ds[di++] = '<ul><li>';
				ds[di++] = '<a href="' + node.m_href + '"';
				if(bSelected)
					ds[di++] = ' class="subActive"';
				else
					ds[di++] = '';
				ds[di++] = '>'
				ds[di++] = node.m_label;
				ds[di++] = '</a>';
				//ds[di++] = '</li>';
			}
			if(numSubLevel > 1 && nodeLevel == 2) {  
				///close the <ul> tag if we back to level 1 node
				if(numSubLevel2 > 0)  {   
					ds[di++] = '</ul></li>';
					ds[di++] = '</li>';
					this.m_numSubLevel2= 0;
					numSubLevel2=0;
				}
				ds[di++] = '<li>';
				ds[di++] = '<a href="' + node.m_href + '"';
				if(bSelected)
					ds[di++] = ' class="subActive"';
				else
					ds[di++] = '';
				ds[di++] = '>'
				ds[di++] = node.m_label;
				ds[di++] = '</a>';
				//ds[di++] = '</li>';
				
			}
			
			if(nodeLevel == 3) {
			  numSubLevel2 = parseInt(numSubLevel2) + 1;
			
			  if(numSubLevel2 == 1 && nodeLevel == 3)
			  {  
				ds[di++] = '<ul><li>';
				ds[di++] = '<a href="' + node.m_href + '"';
				if(bSelected)
					ds[di++] = ' class="subActive"';
				ds[di++] = '>'
				ds[di++] = node.m_label;
				ds[di++] = '</a>';
				//ds[di++] = '</li>';
			  }
			  if(numSubLevel2 > 1 && nodeLevel == 3)
			  {
			  	if(numSubLevel3 > 0)  {   
			  		ds[di++] = '</ul></li>';
			  		ds[di++] = '</li>';
			  		this.m_numSubLevel3= 0;
			  		numSubLevel3=0;
				}
				ds[di++] = '<li>';
				ds[di++] = '<a href="' + node.m_href + '"';
				if(bSelected)
					ds[di++] = ' class="subActive"';
				ds[di++] = '>'
				ds[di++] = node.m_label;
				ds[di++] = '</a>';
				//ds[di++] = '</li>';
			  }
			
			}
			
			if(nodeLevel == 4) {
				numSubLevel3 = parseInt(numSubLevel3) + 1;
				
				ds[di++] = '<ul><li>';
				ds[di++] = '<a href="' + node.m_href + '"';
				if(bSelected)
					ds[di++] = ' class="subActive"';
				ds[di++] = '>'
				ds[di++] = node.m_label;
				ds[di++] = '</a>';
				ds[di++] = '</li>'
				
			}
		
		  if(numSubLevel2 == 0 || numSubLevel3 == 0)
		  	//ds[di++] = '</li>';
		  //increment the global variables	
		  this.m_numSubLevel1 = parseInt(numSubLevel);
		  this.m_numSubLevel2 = parseInt(numSubLevel2);	
		  this.m_numSubLevel3 = parseInt(numSubLevel3);	
		 
		}
		
		//ds[di++] = (nodeLevel < 1) ? '<li' : '<ul><li';
		//ds[di++] = ' class="' + nodeClass + '"';
		//ds[di++] = '>';

		//ds[di++] = '<a href="' + node.m_href + '"';
		//ds[di++] = ' class="' + nodeClass + '"';
		
		//if (nodeColor != '')
		//{
		//	ds[di++] = ' style="color:' + nodeColor + ';"';

		//	if (!bSelected && this.m_HoverColor != '')
		//	{
		//		ds[di++] = ' onmouseover="this.style.color=\'' + this.m_HoverColor + '\'"';
		//		ds[di++] = ' onmouseout="this.style.color=\'' + nodeColor + '\'"';
		//	}
		//}
				 
		//ds[di++] = '>'
		//ds[di++] = node.m_label;
		//ds[di++] = '</a>';
		//if(nodeLevel > 1)
		//{
		//	ds[di++] = '</ul></li>';
		//}
		//if(nodeLevel = 1)
		//{
		//	ds[di++] = '</li>';
		//}
		document.write(ds.join(''));
	}
	
	if (bSelected || node.m_level == 0)
	{	// expand sub-levels (if any)
		for (var i = 0; i < node.m_subNodes.length; i++)
		{
			this.DisplayNode(node.m_subNodes[i]);
		}
	}
}
