List = [];

function add() 
{	
	List.push(arguments);
}

var ItemAttributes = 2;
var List;
var MenuVisibleCount = 0;
var MenuItemSelected = [];
MenuItemSelected.push("");
MenuItemSelected.push("");
MenuItemSelected.push("");

function drawLevel1() 
{
	DrawMenu(-1);
}

/* 
	This is temporary solution, which has to be rolled back once 
	search2.aspx goes live and search.aspx exists no more 
	9233 – Browse reference manuals missing 
*/
function drawLevel2() 
{
	DrawMenu1(-1);
}

function DrawMenu1(ItemIndex) 
{
	ItemIndex = ItemIndex + 1;	
	ItemLevel = List[ItemIndex].length - ItemAttributes;

	MenuLevel = List[ItemIndex].length / ItemAttributes;
	MenuName = "Tier" + MenuLevel;

	$(MenuName).innerHTML="";

	ul = document.createElement("ul");

	LastItem = "";
	
	if ( ItemLevel > 0 ) ParentItem = List[ItemIndex][ItemLevel - ItemAttributes];
	else ParentItem = "";

	var test="";

	for ( i = ItemIndex; i < List.length; i++ ) 
	{
		if ( List[i].length <= ItemLevel ) break;

		if ( List[i][ItemLevel] != LastItem )
		{
			li = document.createElement("li");
			li.id = "ID_" + List[i][ItemLevel];
						
			IsMenu = false;
			
			if ( i < List.length - 1 )
			{
				IsMenu = ( List[i].length < List[i+1].length )
			}
				
			if ( IsMenu )
			{
				if ( li.id == MenuItemSelected[MenuLevel] ) li.className = "active";
				 
/*				li.innerHTML="<a href=\"javascript:InitLevel('"+ i + "')\" onfocus=\"this.blur()\">" 
					+ capInitial( List[i][ItemLevel + 1] ) + "</a>";
*/				
				li.innerHTML="<a onmouseover=\"InitLevel1('"+ i + "')\" onfocus=\"this.blur()\">" 
					+ capInitial( List[i][ItemLevel + 1] ) + "</a>";
			}
			else
			{
				li.innerHTML="<a href=\"search2.aspx?SearchType=Browsed&SearchBrowse=" + capInitial( List[i][ItemLevel + 1] ) +"&Topics=" + List[i][ItemLevel] + "\">"
					+ capInitial( List[i][ItemLevel + 1] ) + "</a>";
			}

			ul.appendChild(li);
			
			LastItem = List[i][ItemLevel];
		}
		
		if ( ParentItem != "" )
		{
			if ( List[i][ItemLevel - ItemAttributes] != ParentItem ) break;
		}
		
		LastItem = List[i][ItemLevel];
	}
	
	$(MenuName).appendChild(ul);
	
	if ( ItemLevel > 0 )
	{
		new Effect.Appear(MenuName,{duration:0.25});

		//maxt = 640;// Math.max(t1,t2,t3,359);
		
		//$("HomeSearchTopic").style.height = (maxt-1) + "px";
		//$("Content").style.height = (maxt+180) + "px";
	}
	
	MenuVisibleCount = MenuLevel;
}


function InitLevel1(ItemIndex) 
{
	MenuLevel = (List[ItemIndex].length / ItemAttributes);
	ItemLevel = List[ItemIndex].length - ItemAttributes;

	i = 2;
	while ( i >= MenuLevel )
	{
		if ( MenuItemSelected[i] != "" ) $(MenuItemSelected[i]).className = "";

		MenuItemSelected[i] = "";
	
		i--;
	}		

	MenuItemSelected[MenuLevel] = "ID_" + List[ItemIndex][ItemLevel];
	$(MenuItemSelected[MenuLevel]).className = "active";

	// Firefox bug this will force the menu 1 to redraw
	if ( MenuLevel == 1 ) drawLevel2();

	i = 3;
	while ( i > MenuLevel + 1 )
	{
		new Effect.Fade("Tier" + i,{duration:0.25});
	
		i--;
	}

	tempInterval = setTimeout("DrawMenu1(" + ItemIndex + ")",250);
}

/*--------------------- Delete the above methods once Search.aspx page is removed from service. -----------*/

function DrawMenu(ItemIndex) 
{
	ItemIndex = ItemIndex + 1;	
	ItemLevel = List[ItemIndex].length - ItemAttributes;

	MenuLevel = List[ItemIndex].length / ItemAttributes;
	MenuName = "Tier" + MenuLevel;

	$(MenuName).innerHTML="";

	ul = document.createElement("ul");

	LastItem = "";
	
	if ( ItemLevel > 0 ) ParentItem = List[ItemIndex][ItemLevel - ItemAttributes];
	else ParentItem = "";

	var test="";

	for ( i = ItemIndex; i < List.length; i++ ) 
	{
		if ( List[i].length <= ItemLevel ) break;

		if ( List[i][ItemLevel] != LastItem )
		{
			li = document.createElement("li");
			li.id = "ID_" + List[i][ItemLevel];
						
			IsMenu = false;
			
			if ( i < List.length - 1 )
			{
				IsMenu = ( List[i].length < List[i+1].length )
			}
				
			if ( IsMenu )
			{
				if ( li.id == MenuItemSelected[MenuLevel] ) li.className = "active";
				 
/*				li.innerHTML="<a href=\"javascript:InitLevel('"+ i + "')\" onfocus=\"this.blur()\">" 
					+ capInitial( List[i][ItemLevel + 1] ) + "</a>";
*/				
				li.innerHTML="<a onmouseover=\"InitLevel('"+ i + "')\" onfocus=\"this.blur()\">" 
					+ capInitial( List[i][ItemLevel + 1] ) + "</a>";
			}
			else
			{
				li.innerHTML="<a href=\"search.aspx?SearchType=Browsed&SearchBrowse=" + capInitial( List[i][ItemLevel + 1] ) +"&Topics=" + List[i][ItemLevel] + "\">"
					+ capInitial( List[i][ItemLevel + 1] ) + "</a>";
			}

			ul.appendChild(li);
			
			LastItem = List[i][ItemLevel];
		}
		
		if ( ParentItem != "" )
		{
			if ( List[i][ItemLevel - ItemAttributes] != ParentItem ) break;
		}
		
		LastItem = List[i][ItemLevel];
	}
	
	$(MenuName).appendChild(ul);
	
	if ( ItemLevel > 0 )
	{
		new Effect.Appear(MenuName,{duration:0.25});

		//maxt = 640;// Math.max(t1,t2,t3,359);
		
		//$("HomeSearchTopic").style.height = (maxt-1) + "px";
		//$("Content").style.height = (maxt+180) + "px";
	}
	
	MenuVisibleCount = MenuLevel;
}

function InitLevel(ItemIndex) 
{
	MenuLevel = (List[ItemIndex].length / ItemAttributes);
	ItemLevel = List[ItemIndex].length - ItemAttributes;

	i = 2;
	while ( i >= MenuLevel )
	{
		if ( MenuItemSelected[i] != "" ) $(MenuItemSelected[i]).className = "";

		MenuItemSelected[i] = "";
	
		i--;
	}		

	MenuItemSelected[MenuLevel] = "ID_" + List[ItemIndex][ItemLevel];
	$(MenuItemSelected[MenuLevel]).className = "active";

	// Firefox bug this will force the menu 1 to redraw
	if ( MenuLevel == 1 ) drawLevel1();

	i = 3;
	while ( i > MenuLevel + 1 )
	{
		new Effect.Fade("Tier" + i,{duration:0.25});
	
		i--;
	}

	tempInterval = setTimeout("DrawMenu(" + ItemIndex + ")",250);
}

function capInitial(str) 
{
	newstr = str.toLowerCase().replace(/\b[a-z]/,str.substr(0,1).toUpperCase());
	return newstr;
}
