function pte_hcsp_left_navigation(strStartLevel, strNumLevels, strEndLevel, strShowHome)
{

  /*this.m_ClassName  = 'st_main_menu';
	*/
	
	this.m_ShowHome   = false;
	
	this.m_StartLevel = 3;
	this.m_NumLevels  = 1;
	this.m_EndLevel   = 3;
		
	this.m_NavPath    = g_navNode_Path;
			
	pte_hcsp_left_navigation.prototype.Display = pte_hcsp_left_navigation_Display;
	pte_hcsp_left_navigation.prototype.DisplaySubLevel = pte_hcsp_left_navigation_DisplaySubLevel;	
	
	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;
	}
	
	if (strEndLevel != '')
	{
		var value = parseInt(strEndLevel);
		if (value != NaN)
			this.m_EndLevel = value;
	}
	
	//if (strShowHome == 'true'){
	//	this.m_ShowHome = true;
	//}

}

function pte_hcsp_left_navigation_Display (node)
{
  document.write('<ul class="ssmenu">');
	this.DisplaySubLevel(node);	
	document.write('</ul>');
}

function pte_hcsp_left_navigation_DisplaySubLevel (node)	
{
	var res = gup();
	var bSelected = false;
	var bDisplay  = false;

	//var nodeClass = this.m_ClassName
	var nodeLevel = node.m_level+1;
	
	var ds = new Array();
	var di = 0;
	var count = 0;

	var selectedNode = null;

	if (this.m_ShowHome && (node.m_level == 1))
		count = -1;

	var href = '';
	var label = '';
	
	//alert(node.m_level+' '+this.m_StartLevel+' '+this.m_EndLevel);
	
	if ((node.m_level >= this.m_StartLevel-1 && node.m_level < this.m_EndLevel) || 
      (node.m_level >= this.m_StartLevel-2 && node.m_level < this.m_EndLevel && this.m_ShowHome)){
    bDisplay = true;
	}
		
  for ( ; count < node.m_subNodes.length; count++)
	{
	  //alert('for');
	
	  bSelected = false;
		
    if (count == -1)	// Root/home link 
		{	
			// this is only really applicable if we're working the top level
			// but the same technique could be used to display a generalised "back-up-one-level")
						
			if ( (this.m_NavPath.length == node.m_level+1) &&
				 (this.m_NavPath[node.m_level] == node.m_id) )
			{
				bSelected = true;
			}
			
			label = node.m_label;
			href  = node.m_href;
		}
		else
		{	
		 
			if (this.m_NavPath.length >= node.m_subNodes[count].m_level)
			{
				if (this.m_NavPath[node.m_subNodes[count].m_level] == node.m_subNodes[count].m_id)
				{
					bSelected = true;
					selectedNode = node.m_subNodes[count];
				}
			}
			label = node.m_subNodes[count].m_label;
			href = node.m_subNodes[count].m_href;
		}		

		if (bDisplay)
		{
  		if (bSelected){
  			ds[di++] = '<li class="selected">';
  		} else {
        ds[di++] = '<li>';
      }
    
      ds[di++] = '<a href="' + href + res + '">';
			if (this.m_ShowHome){
        ds[di++] = 'Apresenta\347\343o';
        this.m_ShowHome = false;
      } else {
        ds[di++] = label;
      }
			ds[di++] = '</a>';

      ds[di++] = '</li>';
		}
		
	}
	
	if (bDisplay)
	{
		document.write(ds.join(''));
	}
	
	//alert(ds.join(''));
	
	if (selectedNode != null)
		this.DisplaySubLevel (selectedNode);


}


