
function buildMenu(menu, selectedId)
{
	var entry = null;
	var menuHTML= new Array;
	var selectedMenuFound = false;
	
	var selectedIds = selectedId;
	if(typeof(selectedIds)=="string") 
	{
		var arr = new Array();
		arr.push(selectedId);
    	selectedIds = arr;
	}
	

	for (var i=0; i<menu.length; i++)
	{
		entry = menu[i];

		if(entry!=null){
			menuHTML.push("<div class=\""+ ((isMenuSelected(selectedIds, entry.id)) ? "leftNav1 leftNavSelected" : "leftNav1") +"\" onmouseover=\"MenuHover(this);\" onmouseout=\"MenuUnhover(this);\"><a href=\""+((entry.href==null || entry.href=="") ? "#" : entry.href) +"\">"+entry.title+"</a></div>");

			if (!selectedMenuFound && entry.subMenu!=null)
			{
				//selectedMenuFound = (selectedIds.indexOf(entry.id)!=-1);
				selectedMenuFound = isMenuSelected(selectedIds, entry.id);
				
				
				var subMenuHTML= new Array;
				var subEntry = null;
				var subMenu = entry.subMenu;
				subMenuHTML.push("<div>");				
				for (var j=0; j<subMenu.length; j++)
				{
					subEntry = subMenu[j];
					if(subEntry!=null){
						//if(!selectedMenuFound) selectedMenuFound = (selectedIds.indexOf(subEntry.id)!=-1);
						if(!selectedMenuFound) selectedMenuFound = isMenuSelected(selectedIds, subEntry.id);
						subMenuHTML.push("<div class=\""+  ((isMenuSelected(selectedIds, subEntry.id)) ? "leftNav2 leftNavSelected" : "leftNav2") +"\" onmouseover=\"MenuHover(this);\" onmouseout=\"MenuUnhover(this);\"><a href=\""+((subEntry.href==null || subEntry.href=="") ? "#" : subEntry.href) +"\">"+subEntry.title+"</a></div>");
					}
				}
				subMenuHTML.push("</div>");
				
				if (selectedMenuFound)
				{
					menuHTML = menuHTML.concat(subMenuHTML);
				}
			}
			
		}
	}

	return menuHTML.join("");
}

function isMenuSelected(arr1, arr2)
{
	var il=toArray(arr1); 
	var ol=toArray(arr2);
	
	if (ol.length<il.length)
	{
		var t = il;
		il = ol;
		ol = t;
	}
	
	for(var i=0; i<ol.length; i++)
	{
		if (il.indexOf(ol[i])!=-1) return true;
		
	}
	return false;
} 

function toArray(obj)
{
	if(typeof(obj)=="string") 
	{
		var arr = new Array();
		arr.push(obj);
    	return arr;
	}
	return obj;
}

function MenuUnhover(obj)
{
	var className = "leftNavHover";
	var arr = obj.className.split(" ");
	var i=arr.indexOf(className)
	if(i!=-1) arr.splice(i,1) ;
	obj.className = arr.join(" ");
}

function MenuHover(obj)
{
	var className = "leftNavHover";
	var arr = obj.className.split(" ");
	if(arr.indexOf(className)==-1) arr.push(className);
	var s =arr.join(" ");
	obj.className = s;
}


function openView(viewName, category)
{
	if (category!=null) document.location = "/" + menuDB + "/" + viewName +"?Open&RestrictToCategory="+category
	else document.location = "/" + menuDB + "/" + viewName;
	
}

function openElement( s ) 
{
	document.location = "/" + menuDB + "/" + s;
}

function openWebDocument( s )
{
	document.location = "/" + menuDB + "/WebDocuments/" + s;
}


if (!Array.prototype.indexOf) Array.prototype.indexOf = function(item, i) {
  i || (i = 0);
  var length = this.length;
  if (i < 0) i = length + i;
  for (; i < length; i++)
    if (this[i] === item) return i;
  return -1;
};
