// menu navigation (common.js is required to set var language)

function menuItem (symName, deText, enText, url, subMenu) {
  this.symName = symName    // symbolic name
  this.deText  = deText     // german text displayed
  this.enText  = enText     // english text displayed
  this.url     = url        // (relative) URL
  this.subMenu = subMenu    // optional submenu
}

var menu = new Array()
function addMenu(item) {
  menu[menu.length] = item
}

addMenu(new menuItem("HOME", "Startseite", "Home", "index.html", null))
addMenu(new menuItem("PRINCIPLE", "Funktionsprinzip", "How it works", "principle.html", null))
var exampl_rmi = new menuItem("RMI", "RMI für lau", "RMI on-the-fly", "example_rmi.html", null)
var exampl_md = new menuItem("MD", "Modellgetrieben", "Model driven", "example_md.html", null)
var exampl_aop = new menuItem("AOP", "AOP zum Mitnehmen", "AOP to go", "example_aop.html", null)
var exampl_di = new menuItem("DI", "DI mal anders", "Poor Man's DI", "example_di.html", null)
var exampl_pp = new menuItem("PP", "Preprocessing", "Preprocessing", "example_pp.html", null)
addMenu(new menuItem("EXAMPLES", "Beispiele", "Examples", "examples.html",
              [exampl_rmi, exampl_md, exampl_aop, exampl_di, exampl_pp]))
var quick0 = new menuItem("PREREQS", "Vorbereitungen", "Prerequisites", "prereqs.html", null)
var quick1 = new menuItem("ANTTASKS", "Ant Tasks", "Ant Tasks", "anttasks.html", null)
var quick2 = new menuItem("FIRSTWURBLET", "Das Wurblet", "Your first wurblet", "firstwurblet.html", null)
var quick3 = new menuItem("LETSGO", "Und los...", "Let's go...", "letsgo.html", null)
addMenu(new menuItem("QUICKSTART", "Schnellstart", "Quickstart", "quickstart.html",
              [quick0, quick1, quick2, quick3]))
addMenu(new menuItem("DOC", "Dokumentation", "Documentation", "docs.html", null))
addMenu(new menuItem("FAQ", "FAQ", "FAQ", "faq.html", null))
addMenu(new menuItem("DOWNLOAD", "Download", "Download", "download.html", null))
addMenu(new menuItem("IMPRINT", "Impressum", "Imprint", "imprint.html", null))


// recursively create the menu
function createSubMenu (level, mlist, argPath) {
  document.write('<ul class="level' + level + '">')
  var pathElem = argPath[level]
  for (var i = 0; i < mlist.length; i++) {
    var item = mlist[i]
    var mText = language=='de' ? item.deText : item.enText;
    if (item.symName == pathElem) {
      if (item.subMenu == null) {
        document.write('<li class="leaf"><a class="open" href="' + item.url + '">' + mText + '</a></li>')
      }
      else  {
        if (level >= argPath.length - 1) {
          document.write('<li class="node"><a class="open" href="' + item.url + '">' + mText + '</a>')
        }
        else  {
          document.write('<li class="node"><a href="' + item.url + '">' + mText + '</a>')
        }
        createSubMenu(level+1, item.subMenu, argPath)
        document.write('</li>')
      }
    }
    else {
      document.write('<li class="leaf"><a href="' + item.url + '">' + mText + '</a></li>')
    }
  }
  document.write('</ul>')
}


// create menu
// ex.: createMenu(["DEVEL", "STRATEGY"])
function createMenu(argPath) {
  createSubMenu(0, menu, argPath)
}

