/* 上余白 */
t_mgn = 30;

/* 左余白 */
l_mgn = 0;

/* 改行幅 */
offset_height = 16;

/* ターゲットウィンドウ */
tgt = "inasoft_help_right";

/* イメージ設置ディレクトリ */
dir = "../treepic/";

/* Icons */
ico_home = dir + "top.png";
ico_close = dir + "closebook.png"
ico_open = dir + "openbook.png";
ico_list = dir + "document.png";

/* イメージ属性 */
img_parm = "width=16 height=16 align=absmiddle";

img_close = new Image();
img_close.src = ico_close;
img_open = new Image();
img_open.src = ico_open;

N4 = IE = N6 = 0;
if (document.layers) N4 = 1;
else if (document.all) IE = 1;
else if (document.getElementById) N6 = 1;

def = new Array('');
cmv = new Array();
for (i in list) {
   d = list[i].split(",");
   if (d[0] == '') def = def.concat(i);
   if (! d[2]) cmv[i] = new Array();
}

function line_print(p) {
   return "<img src='" + dir + "empty.png'" + img_parm + ">";
}

function lay_print(p,val,link) {
   if (val == title) {
      bd = "";
      val = "<img src='" + ico_home + "' " + img_parm + "> <B>" + val + "</B>";
   }
   else if (link) {
      val = "<img src='" + ico_list + "' " + img_parm + "> "
          + "<a href='" + link + "' name='" + link + "' target='" + tgt + "' onMouseOver='window.status=\"" + val + "\"; return true;' onMouseOut='window.status=\"\"; return true;'>" + val + "</a>";
   }
   else if (N4) {
      val = "<img name=pos" + p + " src='" + ico_close + "' " + img_parm + "> <a href='JavaScript:void(0);' onMouseOver='window.status=\"" + val + "\"; return true;'  onMouseOut='window.status=\"\"; return true;' target='inasoft_help_left'><font color='#000000'>" + val + "</font></a>";
   }
   else {
      val = "<span onClick='menu_open(" + p + ",\"" + val + "\")'><img name=pos" + p
          + " src='" + ico_close + "'" + img_parm + "> <a href='JavaScript:void(0);' onMouseOver='window.status=\"" + val + "\";return true;' onMouseOut='window.status=\"\";return true;'><font color='#000000'>" + val + "</font></a></span>";
   }
   if (N4) lay = "<layer name=menu" + p + " left=" + l_mgn
       + " visibility=hidden> " + bd + val + "</layer><br>";
   else lay = "<div id=menu" + p + " style='position:absolute; left:" + l_mgn
       + "px; top:0px; visibility:hidden;'> " + bd + val + "</div>";
   return lay;
}

menu_list = "<nobr>" + lay_print('',title);

function menu_print () {
   for (i in list) {
      bd = "";
      pl = list[i].split(",");
      lx = new Array(pl[0]);
      if (pl[0] == '') {
         if (i == def[def.length-1]) bd += line_print(3);
         else bd += line_print(1);
      }
      else {
         x = pl[0];
         while (x != '') {
            x = list[x].split(",");
            x = x[0];
            if (x != '') lx = lx.concat(x);
         }
         lx = lx.reverse();
         
         for (ii in lx) {
            x = list[lx[ii]].split(",");
            x = x[0];
            if (x == '' && lx[ii] != def[def.length-1]) bd += line_print(2);
            else if (x == '' || lx[ii] == cmv[x][cmv[x].length-1])
               bd += line_print(0);
            else bd += line_print(2);
         }
         x = pl[0];
         if (i == cmv[x][cmv[x].length-1]) bd += line_print(3);
         else bd += line_print(1);
      }
      if (! pl[2]) {
         for (ii in list) {
            t = list[ii].split(",");
            if (eval(t[0]) == i) cmv[i] = cmv[i].concat(ii);
         }
      }
      menu_list += lay_print(i,pl[1],pl[2]);
   }

   menu_list += "</nobr>";
   document.write(menu_list);

   if (N4) { defY = offY = document.layers["menu0"].pageY; vis = "show"; }
   else { defY = offY = offset_height; vis = "visible"; }

   for (i in def) {
      if (N4) doc = document.layers["menu" + def[i]];
      if (IE) doc = document.all("menu" + def[i]).style;
      if (N6) doc = document.getElementById("menu" + def[i]).style;
      with (doc) {
         visibility = vis;
         top = offY + t_mgn;
      }
      offY += offset_height;
   }
}

function menu_open(p, val) {
   if (N4) {
      p = eval(this.name.replace("menu",""));
      doc = document.layers["menu" + p];
      dis = doc.document.images["pos" + p];
      offY = doc.pageY;
   }
   else {
      dis = document.images["pos" + p];
      if (IE) {
         doc = document.all("menu" + p);
         offY = doc.style.posTop;
      }
      if (N6) {
         doc = document.getElementById("menu" + p);
         offY = parseInt(doc.style.top);
      }
   }
   if (dis.src.indexOf(img_close.src) > -1) {
      if ( val ) window.status = "「" + val + "」を開いています...";
      dis.src = img_open.src;
      for (i in cmv[p]) {
         offY += offset_height;
         if (N4) doc = document.layers["menu" + cmv[p][i]];
         if (IE) doc = document.all("menu" + cmv[p][i]).style;
         if (N6) doc = document.getElementById("menu" + cmv[p][i]).style;
         with (doc) {
            visibility = vis;
            top = offY;
         }
      }
   }
   else {
      end = cmv[p];
      limit = 0;
      if ( val ) window.status = "「" + val + "」を閉じています...";
      dis.src = img_close.src;
      for (i in cmv[p]) if (cmv[cmv[p][i]]) end = end.concat(cmv[cmv[p][i]]);
      if (cmv[end[end.length-1]]) end = end.concat(cmv[end[end.length-1]]);
      for (i = 0; i < end.length; i++) limit = Math.max(limit,end[i]);
      for (i = p+1; i <= limit; i++) {
         if (N4) {
            doc = document.layers["menu" + i];
            dis = doc.document.images["pos" + i];
         }
         else dis = document.images["pos" + i];
         if (IE) doc = document.all("menu" + i).style;
         if (N6) doc = document.getElementById("menu" + i).style;
         if (dis) dis.src = img_close.src;
         with(doc) { visibility = "hidden"; top = 0; }
      }
   }

   for (i = eval(cmv[p][cmv[p].length-1]) + 1; i < list.length; i++) {
      if (N4) doc = document.layers["menu" + i];
      if (IE) doc = document.all("menu" + i).style;
      if (N6) doc = document.getElementById("menu" + i).style;
      if (doc.visibility == vis) {
         offY += offset_height;
         doc.top = offY;
      }
   }

   if ( val ) window.status = "";
}

function init() {
   for (i in list) {
      t = list[i].split(",");
      if (! t[2]) {
         doc = document.layers["menu" + i];
         doc.captureEvents(Event.MOUSEDOWN);
         doc.onmousedown = menu_open;
      }
   }
}

if (document.layers) window.onload = init;

// Copyright (C) 2002-2002 suepon , All rights reserved.
// Script found at http://suepon.com/
// Arranged by T.Yabuki (http://www.yoshibaworks.com/ayacy/inasoft/)
