//Classes for SAS site menus
function Menu() //Menu Class
{
 	  this.items = new Array();
		this.count = 0;
}
function MenuItem(l,t,p) //MenuItem Class
{
  this.link = l;
	this.text = t;
	this.items = new Array();
	this.count = 0;
}
//Class Methods
function AddMenuItem(ref,txt)
{
   this.items[this.count] = new MenuItem(ref,txt);
	 ++this.count;
}
function AddSubMenuItem(ref,txt)
{
   this.items[this.count-1].add(ref,txt);
}
function DisplayMenu(menuDIV)
{
	var mdiv = document.getElementById(menuDIV);
  if (mdiv == null) return;
  var mText = "";
  var level = 0;
  if (this.count == 0)
  {
     mText = "<strong>NO MENU FOUND</strong>";
  }
  else
  {
     mText = DisplayMenuItems(this.items,mText,level)
  }
   mdiv.innerHTML = mText;
}
// Class helper functions
var INDENT = 4;
function DisplayMenuItems(mItems, mText, level) //helper function for DisplayMenu
{
   if (mItems == null) return mText;
   var indent = ""
	 for (var i=0; i<level*INDENT;i++)
	 {
	    indent += "&nbsp";
	 }
	 var sClass = (level == 0)?'class="mlink"':'class="smlink"';
   for(var i=0;i<mItems.length;++i)
   {
      var mItem = mItems[i];
      mText += indent +'<a ' + sClass + ' href="' + mItem.link + '" class="nav">' + mItem.text + '</a><br>';
      if (DisplaySubMenu(mItem))
         mText = DisplayMenuItems(mItem.items,mText, level + 1)
   }
   return mText;
}
function DisplaySubMenu(mItem) //display if current page is parent or one of the children
{
   if (mItem.count == 0) return false;
	 var loc = new String(document.location);
	 loc = loc.toLowerCase();
	 if (loc.indexOf(mItem.link.toLowerCase()) != -1) return true;
   for (var i=0;i<mItem.count;++i)
   {
      if (loc.indexOf(mItem.items[i].link.toLowerCase()) != -1) return true;
   }
	 return false;
}
Menu.prototype.add = AddMenuItem;
Menu.prototype.addSub = AddSubMenuItem;
Menu.prototype.display = DisplayMenu;
MenuItem.prototype.add = AddMenuItem;

var Menus = new Menu(); 

