var MenuIndex = 0;
var MenuWidth;
var MenuSelected=-1;
var MenuSelectedFound;
var MenuLastItem;
var MenuRoot = this.location.pathname.split("frames.html")[0];
var MenuDepth;
var MenuBars = new Array();
var MenuExpand = new Array();
var MenuNowDepth = 0;
var MenuMargin = 0;

if (document.layers) MenuMargin+=9;

function MenuItem(texte, url) {
  this.text = texte;
  this.urle = url;
  this.submenu = null;
  this.index = MenuIndex++;
  MenuExpand[MenuIndex] = 0;
  this.makeSubmenu = MenuMakeSubmenu;
}

function MenuUpdate(g, x, y)
{
  if (g) {
    if (g==1999) g=0;
    var i;
    for (i=0; i<MenuExpand.length;i++) MenuExpand[i]=0;
    MenuExpand[g]=1;
    if (x) {
      if (x==1999) x=0;
      MenuExpand[x]=1;
    }
    if (y) {
      if (y==1999) y=0;
      MenuExpand[y]=1;
    }
    MenuSelected=g;
  }
  MenuDisplay();
}

function MenuMakeSubmenu(menux) {
  this.submenu = menux;
}

function Menu() {
  this.items = new Array();
  this.addItem = MenuAddItem;
}

function MenuAddItem(addthis) {
  this.items[this.items.length] = addthis;
}

function MenuDisplay() {
  MenuDepth = 0;
  MenuNowDepth=0;
  MenuSelectedFound = false;
  if (this.sidebar.document.images)
      this.sidebar.document.open("text/html", "replace");
  else  this.sidebar.document.open();
  this.sidebar.document.writeln('<html>');
  this.sidebar.document.writeln('<head>');
  this.sidebar.document.writeln('<title></title>');
  this.sidebar.document.writeln('<style type="text/css">BODY {BACKGROUND: #ccccdc; COLOR: #000000; MARGIN-LEFT: 0px; MARGIN-TOP: 0px;} A {COLOR: #000000; background:transparent; text-decoration:none} A:hover {color:#ffffff;text-decoration:underline;} .selected {background-color:#000000;color:#ffcc00;font-weight:bold}</style>');
  this.sidebar.document.writeln('</head>');
  this.sidebar.document.writeln('<script language="JavaScript">');
  this.sidebar.document.writeln('var SelectedImage = new Image();');
  this.sidebar.document.writeln('SelectedImage.src = "' + MenuRoot + 'images/menu_selected.gif";');
  this.sidebar.document.writeln('</script>');
  this.sidebar.document.writeln('<body bgcolor=#ccccdc text=black link=black alink=black vlink=black onLoad="parent.MenuScroll();">');
  this.sidebar.document.writeln('<table border=0 cellpadding=0 cellspacing=0 width=200>');
  this.sidebar.document.write('<tr valign=top><td>');
  this.sidebar.document.write('<a href="#" target="mainframe" onClick="return parent.MenuClickRoot();"><img border=0 src="' + MenuRoot + 'images/menu_root.gif" align=left vspace=0 hspace=0><font face="MS Sans Serif,Arial,Helvetica,sans-serif" size=1>')
  if (MenuSelected==-1) this.sidebar.document.write('<span class="selected">&nbsp;Home&nbsp;</span>');
  else this.sidebar.document.write('Home');
  this.sidebar.document.write('</font></a>');
  this.sidebar.document.writeln('</td></tr>');
  MenuListItems(Menubar);
  this.sidebar.document.writeln('</table>');
  this.sidebar.document.writeln('</body>');
  this.sidebar.document.writeln('</html>');
  this.sidebar.document.close();
}

function MenuListItems(menu) {
  var i;
  for (i = 0; i < menu.items.length; i++) {
    if (i == menu.items.length - 1)
      MenuLastItem = true;
    else
      MenuLastItem = false;
    MenuDisplayItem(menu.items[i]);
  }
}

function MenuDisplayItem(item) {
  var bars, cmd, expanded, i, img, link, more, submenu;
  if (item.index == MenuSelected)
  {
    MenuNowDepth=MenuDepth+1;
    MenuSelectedFound = true;
  }
    if (MenuExpand[item.index] == 1)
    expanded = true;
  else
    expanded = false;
    if (item.submenu)
    submenu = true;
  else
    submenu = false;
  if (item.urle != "")
    link = true;
  else
    link = false;
  cmd = "return parent.MenuClick(" + item.index + ", " + link + ", " + submenu + ", " + MenuDepth + ");";
  actf = "return parent.act("+ item.index +")";
  inactf = "return parent.inact("+ item.index +")";
    this.sidebar.document.writeln('<tr valign=top><td>');
      bars = new Array();
  for (i = 0; i < MenuDepth; i++) {
    if (MenuBars[i]) {
      this.sidebar.document.write('<img src="'+ MenuRoot +'images/menu_bar.gif" align=left border=0 vspace=0 hspace=0>');
      bars[i] = true;
    }
    else {
      this.sidebar.document.write('<img src="'+ MenuRoot +'images/menu_pixel.gif" align=left border=0 vspace=0 hspace=0 width=18 height=18>');
      bars[i] = false;
    }
  }
    more = false;
  if (item.submenu)
    for (i = 0; i < item.submenu.items.length; i++)
      if (item.submenu.items[i].submenu != null)
        more = true;
      if (!more) {
    if (MenuLastItem) {
      img = "menu_corner.gif";
      bars[bars.length] = false;
    }
    else {
      img = "menu_tee.gif";
      bars[bars.length] = true;
    }
    this.sidebar.document.write('<img src="'+ MenuRoot +'images/' + img + '" border=0 align=left vspace=0 hspace=0>');
  }
  if ((item.submenu&&expanded))  {
      img = "menu_topic_opened.gif";
      this.sidebar.document.write('<a href="' + MenuRoot + item.urle + '" target=mainframe onClick="' + cmd + ';">');
  }
  else if (item.index==MenuSelected)  {
      img = "menu_selected.gif";
      this.sidebar.document.write('<a href="' + MenuRoot + item.urle + '" target=mainframe onClick="' + cmd + ';">');
  }
  else  {
      img = "menu_topic_closed.gif";
      this.sidebar.document.write('<a href="' + MenuRoot + item.urle + '" target=mainframe onMouseOver =  "' + actf + '" onMouseOut = "'+inactf+'" onClick="' + cmd + ';">');
  }
    this.sidebar.document.write('<img src="'+ MenuRoot +'images/' + img + '" align=left border=0 vspace=0 hspace=0');
  if (!(item.submenu&&expanded)&&(item.index!=MenuSelected)) this.sidebar.document.write(' name="i' + item.index + '"');
  this.sidebar.document.write('>');
    if (item.index == MenuSelected)
    this.sidebar.document.write('<font face="MS Sans Serif,Arial,Helvetica,sans-serif" size=1><span class="selected">&nbsp;' + item.text + '&nbsp;</span></font>');
  else
    this.sidebar.document.write('<font face="MS Sans Serif,Arial,Helvetica,sans-serif" size=1> ' + item.text + '</font>');
  this.sidebar.document.write('</a>');
  this.sidebar.document.writeln('</td></tr>');
  MenuBars = bars;
    if (item.submenu && expanded) {
    MenuDepth++;
    MenuListItems(item.submenu);
    MenuDepth--;
  }
}

function MenuClick(n, link, submenu, deep) {
  if (!MenuExpand)
    MenuClickRoot();
  var i;
  if (deep<1) for (i=0; i<MenuExpand.length; i++) MenuExpand[i] = -1;
  if (submenu) MenuExpand[n] = 1;
    MenuSelected=n;

//---DELETE THIS LINE AFTER SELECTION ROUTINES HAVE BEEN COMPLETED
//----------(This will stop the "double loading" problem)
// <---(remove these slashes to bring back menuloading)
//  setTimeout("parent.MenuDisplay()", 10);
//  
//----------------------------------------------------------------
  return link;
}

function MenuScroll() {
  if (window.scrollBy) {
  this.sidebar.scrollBy(MenuMargin+(MenuNowDepth*16), 0);
  }
  else if (window.scroll) {
  this.sidebar.scroll(MenuMargin+(MenuNowDepth*16), 0);
  }
}

function act(n){
  var gostring = ("i"+n.toString());
  sidebar.document[gostring].src= MenuRoot + "images/menu_selected.gif";
  return false;
}

function inact(n){
  var gostring = ("i"+n.toString());  sidebar.document[gostring].src= MenuRoot + "images/menu_topic_closed.gif";
  return false;
}

function MenuClickRoot() {
  parent.mainframe.location = MenuRoot+"homepage.html";
  MenuRefresh();
  return false;
}

function MenuRefresh() {
  var i;
  for (i=0; i<MenuExpand.length;i++) MenuExpand[i]=0;
  MenuSelected = -1;
  setTimeout("parent.MenuDisplay()", 10);}

//------------------------------------------------------------------
//------------------------------------------------------------------
//----------------------The Great Divide----------------------------
//------------------------------------------------------------------
//------------------------------------------------------------------

var Menubar = new Menu();
Menubar.addItem(new MenuItem("Introduction", "introduction.html"));
Menubar.addItem(new MenuItem("Instruments", "instruments/instrumentshome.html"));
Menubar.addItem(new MenuItem("Music Theory", "theory/theoryhome.html"));
Menubar.addItem(new MenuItem("Time Periods", "periods/periodshome.html"));
Menubar.addItem(new MenuItem("Composers", "composers/composershome.html"));
Menubar.addItem(new MenuItem("Repertoire", "repertoire/repertoirehome.html"));
Menubar.addItem(new MenuItem("Interact", "interact/interacthome.html"));
Menubar.addItem(new MenuItem("Search", "gather/search.html"));

// Instruments
var instruments = new Menu();
instruments.addItem(new MenuItem("Strings", "instruments/stringfamily.html"));
instruments.addItem(new MenuItem("Violin", "instruments/violin.html"));
instruments.addItem(new MenuItem("Viola", "instruments/viola.html"));
instruments.addItem(new MenuItem("Cello", "instruments/cello.html"));
instruments.addItem(new MenuItem("Piano", "instruments/piano.html"));
Menubar.items[1].makeSubmenu(instruments);

// Music Theory
var theory = new Menu();
theory.addItem(new MenuItem("Sound", "theory/lesson1.html"));
theory.addItem(new MenuItem("Pitch", "theory/lesson2.html"));
theory.addItem(new MenuItem("Scales", "theory/lesson3.html"));
theory.addItem(new MenuItem("Rhythm", "theory/lesson4.html"));
theory.addItem(new MenuItem("Reading", "theory/lesson5.html"));
theory.addItem(new MenuItem("Intervals", "theory/lesson6.html"));
theory.addItem(new MenuItem("Scales 2", "theory/lesson7.html"));
theory.addItem(new MenuItem("Harmony", "theory/lesson8.html"));
Menubar.items[2].makeSubmenu(theory);

// Time Periods
var periods = new Menu();
periods.addItem(new MenuItem("Baroque", "periods/baroque.html"));
periods.addItem(new MenuItem("Classical", "periods/classical.html"));
periods.addItem(new MenuItem("Romantic", "periods/romantic.html"));
periods.addItem(new MenuItem("Modern", "periods/modern.html"));
Menubar.items[3].makeSubmenu(periods);

//
// Composers
var composers = new Menu();
composers.addItem(new MenuItem("by Name", "composers/browsename.html"));
composers.addItem(new MenuItem("by Period", "composers/browseperiod.html"));
composers.addItem(new MenuItem("by Country", "composers/browsecountry.html"));
Menubar.items[4].makeSubmenu(composers);

// Repertoire
var repertoire = new Menu();
repertoire.addItem(new MenuItem("The 15 Greatest", "repertoire/greatest.html"));
repertoire.addItem(new MenuItem("by Composer", "repertoire/browsecomposer.html"));
repertoire.addItem(new MenuItem("by Genre", "repertoire/browsegenre.html"));
repertoire.addItem(new MenuItem("Favorites", "repertoire/browseyear.html"));
Menubar.items[5].makeSubmenu(repertoire);

// Interact
var interact = new Menu();
interact.addItem(new MenuItem("Feedback", "interact/feedback.html"));
interact.addItem(new MenuItem("Quiz", "interact/quiz.html"));
interact.addItem(new MenuItem("Message Board", "cgi-bin/mboard/board/list.cgi"));
interact.addItem(new MenuItem("The Polls", "interact/polls.html"));
Menubar.items[6].makeSubmenu(interact);

// Intro
var intro = new Menu();
intro.addItem(new MenuItem("Bibliography", "bibliography.html"));
intro.addItem(new MenuItem("Glossary", "glossary.html"));
intro.addItem(new MenuItem("About Us", "teaminfo.html"));
Menubar.items[0].makeSubmenu(intro);