var expand_speed = 50;  // メニュー項目を開閉する速さ (ミリ秒)
var updown_speed =  0;  // メニューが移動する速さ (ミリ秒)
var steps        =  0;  // メニューが updown_speed ミリ秒ごとに移動するピクセル幅
var jump         =   0;  // メニューが離れすぎたら高速移動する (1: yes 0: no)
var sticky       =   1;  // メニューを固定する (1: yes 0: no)
var steps2       =  0;  // メニューが updown_speed ミリ秒ごとに移動するピクセル幅

// メニュー HTML (下記の説明参照)
var menu_html =
"<div id='tfm-head'>診療項目</div>" +
"<div id='tfm-body'>" +
"<div id='item0' class='tf1'><a href='ope04.html'>●プチ整形</a></div>" +
"<div id='item1'     class='tf1'>▼目もと" +
"   <div id='item11' class='tf2'><a href='ope02.html'>●二重まぶた</a></div>" +
"   <div id='item12' class='tf2'><a href='ope03.html'>●目の悩み</a></div>" +
"</div>" +
"<div id='item2'     class='tf1'>▼鼻・唇" +
"   <div id='item21' class='tf2'><a href='ope04.html'>●プチ整形</a></div>" +
"   <div id='item22' class='tf2'><a href='ope05.html'>●隆鼻</a></div>" +
"   <div id='item23' class='tf2'><a href='ope06.html'>●唇の修正</a></div>" +
"</div>" +
"<div id='item3'     class='tf1'>▼脂肪吸引・痩身" +
"   <div id='item36' class='tf2'><a href='39.html'>●概略</a></div>" +
"   <div id='item31' class='tf2'><a href='ope07.html'>●脂肪吸引</a></div>" +
"   <div id='item32' class='tf2'><a href='ope71.html'>●プチやせ（プチ・ライポ）</a></div>" +
"   <div id='item33' class='tf2'><a href='ope08.html'>●カーボメッド</a></div>" +
"   <div id='item34' class='tf2'><a href='ope09.html'>●脂肪融解注射</a></div>" +
"   <div id='item37' class='tf2'><a href='40.html'>●キャビテーション</a></div>" +
"   <div id='item35' class='tf2'><a href='ope10.html'>●スリムライポレーザー</a></div>" +
"</div>" +
"<div id='item4'     class='tf1'>▼豊胸・胸の悩み" +
"   <div id='item41' class='tf2'><a href='ope11.html'>●概略</a></div>" +
"   <div id='item42' class='tf2'><a href='bust1.html'>●バッグ挿入豊胸</a></div>" +
"   <div id='item43' class='tf2'><a href='bust2.html'>●脂肪注入豊胸</a></div>" +
"   <div id='item44' class='tf2'><a href='bust3.html'>●プチ豊胸 SUB-Q</a></div>" +
"   <div id='item45' class='tf2'><a href='bust4.html'>●胸の若返り</a></div>" +
"   <div id='item46' class='tf2'><a href='bust5.html'>●乳房の悩み</a></div>" +
"</div>" +
"<div id='item5' class='tf1'><a href='ope13.html'>●ワキガ、多汗症</a></div>" +
"<div id='item11' class='tf1'><a href='ope14.html'>●レーザー脱毛</a></div>" +
"<div id='item6'     class='tf1'>▼若返り・美肌" +
"   <div id='item61' class='tf2'><a href='antiaging.html'>●概要</a></div>" +
"   <div id='item62' class='tf2'><a href='cosme_01.html'>●ドクターズコスメ</a></div>" +
"   <div id='item63' class='tf2'><a href='ope74.html'>●オバジ・ニューダームシステム</a></div>" +
"   <div id='item64' class='tf2'><a href='ope24.html'>●美容注射・点滴療法</a></div>" +
"   <div id='item65' class='tf2'><a href='ope23.html'>●ケミカルピーリング</a></div>" +
"   <div id='item66' class='tf2'><a href='ope19.html'>●ヒアルロン酸・ボトックス</a></div>" +
"   <div id='item67' class='tf2'><a href='ope15.html'>●サーマクール・レーザー治療</a></div>" +
"   <div id='item68' class='tf2'><a href='saisei.html'>●皮膚再生療法(血小板・成長因子)</a></div>" +
"   <div id='item69' class='tf2'><a href='ope31.html'>●切らない糸リフト</a></div>" +
"   <div id='item6a' class='tf2'><a href='eyes.html'>●目元の若返り</a></div>" +
"   <div id='item6a' class='tf2'><a href='ope100.html'>●内視鏡リフト</a></div>" +
"   <div id='item6a' class='tf2'><a href='ope20.html'>●フェイスリフト</a></div>" +
"</div>" +
"<div id='item7'     class='tf1'>▼りんかく" +
"   <div id='item71' class='tf2'><a href='ope16.html'>●口腔外科りんかく手術</a></div>" +
"   <div id='item72' class='tf2'><a href='ope17.html'>●主なりんかく修正手術</a></div>" +
"   <div id='item73' class='tf2'><a href='ope18.html'>●主な口腔外科手術</a></div>" +
"</div>" +
"<div id='item8'     class='tf1'>▼美容歯科" +
"   <div id='item81' class='tf2'><a href='ope25.html'>●歯並びの修正</a></div>" +
"   <div id='item82' class='tf2'><a href='ope26.html'>●欠損部の改善</a></div>" +
"   <div id='item83' class='tf2'><a href='ope27.html'>●歯の色の改善</a></div>" +
"   <div id='item84' class='tf2'><a href='ope109.html'>●受け口・出っ歯の改善</a></div>" +
"   <div id='item86' class='tf2'><a href='../wordpress/index.php' target='_blank'>⇒Dr.Natoriの徒然ブログ</a></div>" +
"   <div id='item85' class='tf2'><a href='http://www.kbdc.jp/' target='_blank'>⇒歯科専門サイト</a></div>" +
"</div>" +
"<div id='item9'     class='tf1'>▼その他" +
"   <div id='item91' class='tf2'><a href='ope28.html'>●女性器・へその修正</a></div>" +
"   <div id='item92' class='tf2'><a href='ope29.html'>●男性形成（包茎）</a></div>" +
"   <div id='item93' class='tf2'><a href='ope30.html'>●男性形成（その他）</a></div>" +
"</div>" +
"</div>" +  // end of #tfm-body
"<div id='item10'     class='tf4'>&nbsp;</div>" +
" <div id='item100' class='tf3'>初診の方はこちら<br />"+
"   <a href='http://www.kyoritsu-biyo.com/mypage/pc/mm10RegistQuestion.php'><img src='../image/soudan.gif' alt='新規相談' /></a>" +
"   <a href='http://www.kyoritsu-biyo.com/mypage/pc/mm11RegistReserve.php'><img src='../image/yoyaku.gif' alt='新規予約' /></a></div>" +
"   <div id='item101' class='tf3'><a href='http://www.kyoritsu-biyo.com/mypage/pc/mm01Login.php'><img src='../image/login.gif' alt='患者様専用ページ' height='25' class='image-left' />MyPage登録済みの方はこちら</a></div>"+
"   <a href='47.html' class='list'><img src='../image/47-02.gif' alt='キャンペーン情報' class='image-left' />各院のキャンペーン情報</a>"+
"<div id='tfm-foot'></div>";

var curr_y;
var istimerc_on = 0;
var istimere_on = 0;
var limit_y;
var menu_pos = new Object();
var status_p;
var tfm_body;
var tfmenu;
var isInternetExplorer;

if (navigator.appName.indexOf("Microsoft") < 0) {
   // it's not IE.
   steps = steps2;
}

function expandMenu(e) {
   var close_only = 0;
   var col_elem;
   var exp_elem;
   var ic;
   var ie;
   var isopen = 0;
   var target_elem;
   var target_node;
   var timerc;
   var timere;

   var collapseItem = function() {
      if(col_elem[ic]) {
         setVisibility(col_elem[ic], "hidden");
         ic++;
      } else {
         clearInterval(timerc);
         istimerc_on = 0;
      }
   }
   var expandItem = function() {
      if(!istimerc_on) {
         if(exp_elem[ie]) {
            setVisibility(exp_elem[ie], "visible");
            ie++;
         } else {
            clearInterval(timere);
            istimere_on = 0;
         }
      }
   }

   if(e.target) {
      target_node = e.target;
   } else if (e.srcElement) {
      target_node = e.srcElement;
   }
   // for Safari.
   if (target_node.nodeType == 3) {
      target_node = target_node.parentNode;
   }
   target_elem = target_node.getElementsByTagName("div");
   // if a gap between items (background tfm_body) was clicked, ignore.
   if(target_node.id == "tfm-body") {
      return;
   }
   // if the top item was clicked and it was already open, just close it.
   if(target_elem[0]) {
      if(target_elem[0].style.visibility == "visible") {
         close_only = 1;
      }
   }
   // collapse menu.
   if(!istimerc_on && !istimere_on) {
      for(var i = 0; i < tfm_body.length && !isopen; ++i) { // search the first visible chiled item.
         col_elem = tfm_body[i].getElementsByTagName("div");
         for(var ii = 0; ii < col_elem.length; ++ii) {
            if(col_elem[ii].style.visibility == "visible") {
               isopen = 1;
               break;
            }
         }
      }
      if(isopen) {
         ic          = 0;
         istimerc_on = 1;
         timerc      = setInterval(collapseItem, expand_speed);
      }
   }
   // expand active menu items.
   if(!istimere_on && !close_only) {
      exp_elem    = target_elem;
      ie          = 0;
      istimere_on = 1;
      timere      = setInterval(expandItem, expand_speed);
   }
}

function setVisibility(e, value) {
   e.style.visibility = value;
   if(value == "hidden") {
      e.style.lineHeight     = "0px";
      e.parentNode.className = "tf1";
   } else {
      e.style.lineHeight     = "100%";
      e.parentNode.className = "tf1active";
   }
}

function setTopPos() {}

function setListeners(e) {
   var i;
   var ii;
   tfmenu           = document.getElementById("tfmenu");
   tfmenu.innerHTML = menu_html;
   tfm_body         = document.getElementById("tfm-body")
   tfmenu.className = "tfm-stop";
   addListener(tfm_body, 'mouseup', expandMenu, false);
   tfm_body         = tfm_body.childNodes;

   for(i = 0; i < tfm_body.length; ++i) {
      // if name property was set, make that node (id) to visible.
      var items = tfm_body[i].getElementsByTagName("div");
      var visib = "hidden";
      if(tfmenu.getAttribute('name') == tfm_body[i].id) {
         visib = "visible";
      }
      for(ii = 0; ii < items.length; ++ii) {
         setVisibility(items[ii], visib);
      }
   }

   tfmenu.style.position = "absolute";
   tfmenu.style.left     = "0px";
   if(sticky) {
      tfmenu.style.top = "0px";
   } else {
      curr_y           = document.body.scrollTop;
      tfmenu.style.top = curr_y + "px";
      setInterval("setTopPos()", updown_speed);
   }
   // bug: if there is no parent element, limit_y will be screen height which is too short.
   limit_y = tfmenu.parentNode.offsetHeight - tfmenu.offsetHeight;
}


function addListener(elem, eventType, func, cap) {
   if(elem.addEventListener) {
      elem.addEventListener(eventType, func, cap);
   } else if(elem.attachEvent) {
      elem.attachEvent('on' + eventType, func);
   } else {
      window.alert("Sorry... Please use Internet Explorer or Firefox.");
      return false;
   }
}

addListener(window, 'load', setListeners, false);

// eof