/////////////////////////////////////////////////////////////////////////////
// Function : brand_left_nav
// Comments : 
/////////////////////////////////////////////////////////////////////////////
function urlParam( name )
{
  	name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  	var regexS = "[\\?&]"+name+"=([^&#]*)";
  	var regex = new RegExp( regexS );
  	var results = regex.exec( window.location.href );
 	if( results == null )
 		return "";
 	else
   		return results[1];
}

function appendParams()
{
	queryParams = "?";
	lang = urlParam('lang');
 	if(lang != "")
 	{
 		queryParams += "lang=" + urlParam('lang');
 	}
 	
 	if(queryParams.length > 1)
 	{
 		return queryParams;
 	}
 	else
 	{
 		return "";
 	}

}

function brand_left_nav(strShowHome, strStartLevel, strNumLevels)
{
	this.m_ShowHome   = false;
	
	this.m_StartLevel = 2;
	this.m_NumLevels  = 10;
	this.m_EndLevel   = 11;
	this.m_NavPath    = g_navNode_Path;
			
	brand_left_nav.prototype.Display = brand_left_nav_Display;
	brand_left_nav.prototype.DisplayNode = brand_left_nav_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 ;
	this.m_HomeLevel = this.m_StartLevel - 1;
}

function brand_left_nav_Display (node)
{	
	document.write('<ul id="brand_left_nav">');
	this.DisplayNode(node);	
	document.write('</ul>');
}

function brand_left_nav_DisplayNode(node)
{
	var bSelected = false;
	var nodeClass = "";
	parentNodeSelected = false;
	var nodeLevel = node.m_level;
	
	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 level=0 then home node
			if (node.m_level == this.m_HomeLevel)
			{
				//only the home node is selected
				if((this.m_NavPath.length - this.m_HomeLevel) == 1)
				{
					bSelected = true;
					nodeClass += 'current';
				}
			}
			//start level node as active when lower child node is selected
			else if (node.m_level == this.m_StartLevel && (this.m_NavPath.length-1) > (this.m_StartLevel))
			{
				bSelected = true;
				nodeClass += 'currentSection';
			}
			//last node selected mark as active
			else if (node.m_level == (this.m_NavPath.length-1))
			{
				bSelected = true;
				nodeClass += 'current';
			}
			//else mark current node as selected so child nodes are included
			else
			{
				bSelected = true;
			}
		}
	}
	
	//add top level arrows to non-selected nodes
	if(!bSelected && (node.m_level==this.m_HomeLevel || node.m_level==this.m_StartLevel))
	{
		nodeClass += 'notcurrent';
	}
	
	var parentNode = node.m_parent;
	if(parentNode != null && this.m_NavPath[parentNode.m_level] == parentNode.m_id){
		parentNodeSelected = true;
	}
	
	if ( (node.m_level == this.m_HomeLevel && this.m_ShowHome) || (node.m_level >= this.m_StartLevel && node.m_level <= this.m_EndLevel && parentNodeSelected) )
	{
		var ds = new Array();
		var di = 0;
		
		ds[di++] = '<li';
		//ds[di++] = ' class="' + nodeClass + '"';
		ds[di++] = '>';
		
		//lowest select node
		if (this.m_NavPath[node.m_level] == node.m_id && node.m_level == (this.m_NavPath.length-1))
		{
			ds[di++] = '<a';
		}
		else
		{
			ds[di++] = '<a href="' + node.m_href + appendParams() + '"';
		}

		ds[di++] = ' class="' + nodeClass + '"';		 
		ds[di++] = '>'
		ds[di++] = node.m_label;
		ds[di++] = '</a>';
		document.write(ds.join(''));
	}
	
	if (bSelected || node.m_level == this.m_HomeLevel)
	{	// expand sub-levels (if any)
		for (var i = 0; i < node.m_subNodes.length; i++)
		{
			if(node.m_subNodes[i].m_id != "2662")
			{
			if (node.m_level >= this.m_StartLevel && node.m_level <= this.m_EndLevel){
				document.write('<ul>');
			}
			this.DisplayNode(node.m_subNodes[i]);
			if (node.m_level >= this.m_StartLevel && node.m_level <= this.m_EndLevel){
				document.write('</ul>');
			}
			}
		}
	}
	
	if ( (node.m_level == this.m_HomeLevel && this.m_ShowHome) || (node.m_level >= this.m_StartLevel && node.m_level <= this.m_EndLevel && parentNodeSelected) )
	{
		document.write('</li>');
	}
}
