/* ---------------------------------------------------- */
/* ▼グローバル変数の定義
/* ---------------------------------------------------- */
/* サブメニューが隠れているかどうか表すフラグ収容オブジェクト */
var folded = new Object();
/* サブメニューの内容を収容するオブジェクト */
var submenu = new Object();
/* サブメニュー1 */
submenu.menu1 = new Object();
submenu.menu1.length = 2;
submenu.menu1.sub1 = new Object();
submenu.menu1.sub1.text = 'Core';
submenu.menu1.sub1.href = 'http://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html';
submenu.menu1.sub2 = new Object();
submenu.menu1.sub2.text = 'HTML';
submenu.menu1.sub2.href = 'http://www.w3.org/TR/REC-DOM-Level-1/level-one-html.html';
/* サブメニュー2 */
submenu.menu2 = new Object();
submenu.menu2.length = 6;
submenu.menu2.sub1 = new Object();
submenu.menu2.sub1.text = 'Core';
submenu.menu2.sub1.href = 'http://www.w3.org/TR/DOM-Level-2-Core/';
submenu.menu2.sub2 = new Object();
submenu.menu2.sub2.text = 'Views';
submenu.menu2.sub2.href = 'http://www.w3.org/TR/DOM-Level-2-Views/';
submenu.menu2.sub3 = new Object();
submenu.menu2.sub3.text = 'Events';
submenu.menu2.sub3.href = 'http://www.w3.org/TR/DOM-Level-2-Events/';
submenu.menu2.sub4 = new Object();
submenu.menu2.sub4.text = 'Style';
submenu.menu2.sub4.href = 'http://www.w3.org/TR/DOM-Level-2-Style/';
submenu.menu2.sub5 = new Object();
submenu.menu2.sub5.text = 'Traversal and Range';
submenu.menu2.sub5.href = 'http://www.w3.org/TR/DOM-Level-2-Traversal-Range/';
submenu.menu2.sub6 = new Object();
submenu.menu2.sub6.text = 'HTML';
submenu.menu2.sub6.href = 'http://www.w3.org/TR/DOM-Level-2-HTML/';
/* サブメニュー3 */
submenu.menu3 = new Object();
submenu.menu3.length = 3;
submenu.menu3.sub1 = new Object();
submenu.menu3.sub1.text = 'Core';
submenu.menu3.sub1.href = 'http://www.w3.org/TR/DOM-Level-3-Core/';
submenu.menu3.sub2 = new Object();
submenu.menu3.sub2.text = 'Load and Save';
submenu.menu3.sub2.href = 'http://www.w3.org/TR/DOM-Level-3-LS/';
submenu.menu3.sub3 = new Object();
submenu.menu3.sub3.text = 'Validation';
submenu.menu3.sub3.href = 'http://www.w3.org/TR/DOM-Level-3-Val/';

/* ---------------------------------------------------- */
/* ▼load時の処理
/* ---------------------------------------------------- */
dom.event.addEventListener(window, 'load', initDocument);
function initDocument() {
  /* 各メニューのDIV要素にclickイベント・リスナーをセット */
  var children = document.getElementById('navi').childNodes;
  for(var i=0; i<children.length; i++) {
    var elm = children.item(i);
    if(elm.className != 'menu') { continue; }
    dom.event.addEventListener(elm, 'click', submenuAction);
    folded[elm.id] = true;
  }
}

/* ---------------------------------------------------- */
/* ▼clickイベント時のリスナー関数
/* ---------------------------------------------------- */
function submenuAction(evt) {
  var target = dom.event.target(evt);
  if(target.className != 'menu') { return; }
  if(folded[target.id] == true) {
    submenuOpen(target);
    folded[target.id] = false;
  } else {
    submenuFold(target);
    folded[target.id] = true;
  }
}

/* ---------------------------------------------------- */
/* ▼サブメニューを開く
/* ---------------------------------------------------- */
function submenuOpen(target) {
  var s = document.createElement('DIV');
  s.id = target.id + '_sub';
  for(var i=1; i<=submenu[target.id].length; i++) {
    var d = document.createElement('DIV');
    d.className = 'sub';
    var a = document.createElement('A');
    a.href = submenu[target.id]['sub'+i].href;
    a.appendChild( document.createTextNode(submenu[target.id]['sub'+i].text) );
    d.appendChild(a);
    s.appendChild(d);
  }
  target.appendChild(s);
}

/* ---------------------------------------------------- */
/* ▼サブメニューを閉じる
/* ---------------------------------------------------- */
function submenuFold(target) {
  if( document.getElementById(target.id + '_sub') ) {
    var s = document.getElementById(target.id + '_sub');
    s.parentNode.removeChild(s);
  }
}

