//プルダウンメニュー
var TimeOut         = 300;
var CurrentLayer    = null;
var CurrentItem     = null;
var CurrentLayerNum = 0;
var CloseTimer      = null;
var DropDownSpeed   = 8;
var DropDownTimer   = 15;

//スライドメニュー
var array           = [];
var speed           = 8;
var timer           = 15;

//起動初期化
function Startup( OpenMenuIndex, EnaleSubmenu  ){
  init('slider',OpenMenuIndex, EnaleSubmenu )
  Initial();
}

//プルダウンメニュー
function Initial() <!-- 初期化処理 -->
{
  var nSubMenuNum = document.getElementsByTagName('div');
  for (var i = 91; i < 91+nSubMenuNum.length; i++) {
    CloseItem( i, true );
  }
  
  TimeOut         = 300;
  CurrentLayer    = null;
  CurrentItem     = null;
  CurrentLayerNum = 0;
  CloseTimer      = null;
}

function MenuOpen(MenuIndex)
{
  /*
  var nSubMenuNum = document.getElementsByTagName('div');
  for (var i = 91; i < 91+nSubMenuNum.length; i++) {
    CloseItem( i, true);
  }
  */
  
  var MainMenu = document.getElementById("mmenu"+MenuIndex); <!-- メインメニュー名 -->
  var SubMenu  = document.getElementById("menu"+MenuIndex);  <!-- サブメニュー名 -->
  clearInterval(SubMenu.timer);
  
  var Height;
  if (typeof document.body.style.maxHeight == "undefined") { // IE6の場合（特殊）
    Height = SubMenu.offsetHeight - 2;
  }else{
    Height = SubMenu.offsetHeight;
  }
  if(MenuIndex) {
    CancelCloseTime();
    clearTimeout(SubMenu.timer);
    if(SubMenu.maxh && ( SubMenu.maxh <= Height ) && ( CurrentItem == MenuIndex ) ){
      return
    }else{
      if( CurrentLayer ){
        CurrentLayer.style.visibility = 'hidden';
      }
      SubMenu.style.display     = 'block';
      SubMenu.style.height      = 'auto';
      if (typeof document.body.style.maxHeight == "undefined") { // IE6の場合（特殊）
        SubMenu.maxh            = Height;
      }else{
        SubMenu.maxh            = SubMenu.offsetHeight;
      }
      SubMenu.style.height      = '0px';
      SubMenu.timer             = setInterval(function(){SlideEffect(SubMenu,1)},DropDownTimer);
      SubMenu.style.visibility  = 'visible';
      CurrentLayer              = SubMenu;
      CurrentItem               = MainMenu;
      CurrentLayerNum           = MenuIndex;
    }
  } else if(CurrentLayer) {
    CloseItem( CurrentLayer, false );
    if( CurrentLayer.style.visibility == 'hidden' ){
      CurrentLayer    = null; <!-- グローバル値初期化 -->
      CurrentItem     = null; <!-- グローバル値初期化 -->
      CurrentLayerNum = 0;    <!-- グローバル値初期化 -->
      CloseTimer      = null; <!-- グローバル値初期化 -->
    }
    Initial();
  }

}

function CloseItem( CloseIndex, AllInitial )
{
  var Message;

  if( CloseIndex ){
    var MainMenu = document.getElementById("mmenu"+CloseIndex); <!-- メインメニュー名 -->
    var SubMenu  = document.getElementById("menu"+CloseIndex);  <!-- サブメニュー名 -->

    if( SubMenu ){
      clearInterval(SubMenu.timer);
      var Height;
      if (typeof document.body.style.maxHeight == "undefined") { // IE6の場合（特殊）
        Height = SubMenu.offsetHeight - 2;
      }else{
        Height = SubMenu.offsetHeight;
      }
      if( AllInitial ){
        SubMenu.timer = setTimeout(function(){DropDownCollapse(SubMenu)},200);
        SubMenu.style.visibility  = 'hidden';
      }else{
        if( ( CloseIndex == CurrentLayerNum ) && SubMenu.maxh && ( Height <= SubMenu.maxh) ){
          if (typeof document.body.style.maxHeight == "undefined") { // IE6の場合（特殊）
            Initial();
          }else{
            SubMenu.timer = setTimeout(function(){DropDownCollapse(SubMenu)},200);
          }
        }else{
          if( CurrentLayer ){
            SubMenu.timer = setTimeout(function(){DropDownCollapse(SubMenu)},200);
            SubMenu.style.visibility  = 'hidden';
          }else{
            SubMenu.timer = setTimeout(function(){DropDownCollapse(SubMenu)},200);
            SubMenu.style.visibility  = 'hidden';
          }
        }
      }
    }
  }

}

function CloseTime()
{
  var MainMenu = document.getElementById("mmenu"+CurrentLayerNum); <!-- メインメニュー名 -->
  var SubMenu  = document.getElementById("menu"+CurrentLayerNum);  <!-- サブメニュー名 -->
  var Message;

  if( SubMenu ){

    var Height;
    if (typeof document.body.style.maxHeight == "undefined") { // IE6の場合（特殊）
      Height = SubMenu.offsetHeight - 2;
    }else{
      Height = SubMenu.offsetHeight;
    }

    if( SubMenu ){

      if( SubMenu ){
        if(!CurrentLayerNum){
          if(SubMenu.maxh && ( SubMenu.maxh <= Height ) ){
            CloseItem( CurrentLayerNum, false );
            if( SubMenu.style.visibility == 'hidden' ){
              CurrentLayer    = null; <!-- グローバル値初期化 -->
              CurrentItem     = null; <!-- グローバル値初期化 -->
              CurrentLayerNum = 0;    <!-- グローバル値初期化 -->
              CloseTimer      = null; <!-- グローバル値初期化 -->
            }
          }
        }else{
          if(SubMenu.maxh && ( SubMenu.maxh <= Height ) ){
            CloseItem( CurrentLayerNum, false );
            if( SubMenu.style.visibility == 'hidden' ){
              CurrentLayer    = null; <!-- グローバル値初期化 -->
              CurrentItem     = null; <!-- グローバル値初期化 -->
              CurrentLayerNum = 0;    <!-- グローバル値初期化 -->
              CloseTimer      = null; <!-- グローバル値初期化 -->
            }
          }
        }
      }
    }
  }
}

function SetCloseTime( )
{
  var Message;

  CloseTimer = window.setTimeout(CloseTime, TimeOut);

}

function CancelCloseTime( n )
{
  if( !n ){
    if(CloseTimer) {
      window.clearTimeout(CloseTimer);
      CloseTimer = null;
    }
  }else{
    var MainMenu = document.getElementById( "mmenu" +n ); <!-- メインメニュー名 -->
    var SubMenu  = document.getElementById( "menu" +n );  <!-- サブメニュー名 -->
    clearTimeout(MainMenu.timer);
    clearInterval(SubMenu.timer);
    var Height;
    if (typeof document.body.style.maxHeight == "undefined") { // IE6の場合（特殊）
      Height = SubMenu.offsetHeight - 2;
    }else{
      Height = SubMenu.offsetHeight;
    }
    if(SubMenu.maxh && ( Height > SubMenu.maxh ) ){
      SubMenu.timer = setInterval(function(){SlideEffect(SubMenu,1)},DropDownTimer );
    }
  }
}

function DebugAlert( Comment )
{
  var Message = "Debug Out :["+Comment+"]";
  alert( Message );
}

function DropDownCollapse(SubMenu)
{
  var Message;
  SubMenu.timer = setInterval(function(){SlideEffect(SubMenu,-1)},DropDownTimer);
}

function SlideEffect( SubMenu, Num )
{
  var Height;
  var Message;

  if (typeof document.body.style.maxHeight == "undefined") { // IE6の場合（特殊）
    Height = SubMenu.offsetHeight - 2;
  }else{
    Height = SubMenu.offsetHeight;
  }
  var BaseHeight = Height;
  var Ans;
  if(Num == 1){
    if( SubMenu.maxh > BaseHeight ){
      Ans = (Math.round((SubMenu.maxh - BaseHeight) / DropDownSpeed));
    }else{
      Ans = 0;
    }
  }else{
    Ans = (Math.round(BaseHeight / DropDownSpeed));
  }

  if(Ans <= 1 && Num == 1){
    Ans = 1;
  }

  SubMenu.style.height  = BaseHeight + (Ans * Num) + 'px';
  SubMenu.style.opacity = BaseHeight / SubMenu.maxh;
  SubMenu.style.filter  = 'alpha(opacity=' + (BaseHeight * 100 / SubMenu.maxh) + ')';

  if( SubMenu.style.height && SubMenu.style.opacity && SubMenu.style.filter ){

      if((BaseHeight < 2 && Num != 1) || (BaseHeight > (SubMenu.maxh - 2) && Num == 1)){

        clearInterval(SubMenu.timer);
      }
      
    }
  
}

function getMousePosition(e) { 
  var obj = new Object(); 
    
  if(e) { 
    obj.x = e.pageX; 
    obj.y = e.pageY; 
  } 
  else { 
    obj.x = event.x + document.body.scrollLeft; 
    obj.y = event.y + document.body.scrollTop; 
  } 

  return obj; 
}

function AreaCheck(Index){ 

  var MainMenu = document.getElementById("mmenu"+Index); <!-- メインメニュー名 -->
  var SubMenu  = document.getElementById("menu"+Index);  <!-- サブメニュー名 -->

  var x;
  var y;

  target = document.getElementById('container'); 
  window.document.onmousemove = function(e){ 
    x = getMousePosition(e).x; 
    y = getMousePosition(e).y; 
  }

}

//スライドメニュー
function init( MenuName, InitialIndex, EnableSubMenu ){
  var SubMenu,Div,DivNum,Index,Count;
  SubMenu = document.getElementById(MenuName);
  Div     = SubMenu.getElementsByTagName('div');
  DivNum=Div.length;
  Index=Count=0;
  if( InitialIndex >= 0 ){
    var id = 'slidemenu_' + InitialIndex + '_' + EnableSubMenu;
    var elem = document.getElementById(id);
    if (elem){
//      elem.style.background='red';
      elem.className = 'selected';
      elem.style.fontWeight = 'bold';
      elem.style
    }
  }

  for(Index=0;Index<DivNum;Index++){
    var DivPerson,DivId;
    DivPerson = Div[Index];
    DivId     = DivPerson.id;
    if(DivId.indexOf("header")!=-1){
      Count++; 
      DivPerson.onclick = new Function("process(this)");
    }else if(DivId.indexOf("content")!=-1){
      array.push(DivId.replace('-content','')); 
      DivPerson.maxh  = DivPerson.offsetHeight;
      if( InitialIndex != Count ){
        DivPerson.style.height  = '0px';
        DivPerson.style.display = 'none';
      }else{
        DivPerson.style.display = 'block';
      }
    } 
  }
}

function process(d){
  var ArryNum,index;
  ArryNum = array.length;
  index=0;
  for(index;index<ArryNum;index++){
    var content,header,MenuIndex,CurrentDiv;
    content     = array[index];
    header      = document.getElementById(content+'-header');
    MenuIndex   = content+'-content';
    CurrentDiv  = document.getElementById(MenuIndex);
    clearInterval(CurrentDiv.timer);
    if( header  ==  d && CurrentDiv.style.display == 'none' ){
      CurrentDiv.style.display = 'block';
      islide(MenuIndex,1);
    }else if(CurrentDiv.style.display=='block'){
      islide(MenuIndex,-1);
    }
  }
}

function islide(MenuIndex,Mode){
  var Menu,height;
  Menu            = document.getElementById(MenuIndex);
  height          = Menu.maxh;
  Menu.direction  = Mode;
  Menu.timer      = setInterval("slide('"+MenuIndex +"')",timer);
}

function slide(MenuIndex){
  var Menu,MaxHeight,Height,dist;
  Menu      = document.getElementById(MenuIndex);
  MaxHeight = Menu.maxh;
  Height    = Menu.offsetHeight;
  if (typeof document.body.style.maxHeight == "undefined") { // IE6の場合（特殊）
    if( (Menu.direction==1) ){
      if( MaxHeight == Height ){
        Height = 0;
      }
    }
  }

  dist      = (Menu.direction==1)?Math.round((MaxHeight-Height)/speed):Math.round(Height/speed);
  if(dist<=1){
    dist=1
  }
  Menu.style.height   = Height+(dist*Menu.direction)+'px';
  Menu.style.opacity  = Height/Menu.maxh;
  Menu.style.filter   = 'alpha(opacity='+(Height*100/Menu.maxh)+')';
  if(Height<2&&Menu.direction!=1){
    Menu.style.display='none';
    clearInterval(Menu.timer);
  }else if(Height>(MaxHeight-2)&&Menu.direction==1){
    clearInterval(Menu.timer);
  }
}

//document.onclick = Initial;

