// script.aculo.us 効果用引数
Effect.DefaultOptions = {
  transition: Effect.Transitions.sinoidal,
  duration:   0.5,   // seconds
  fps:        60.0,  // max. 60fps due to Effect.Queue implementation
  sync:       false, // true for combining
  from:       0.0,
  to:         1.0,
  delay:      0.0,
  queue:      'parallel'
}

// AJAX Fold Navigation 本体
var ajaxFoldNavigation = {
  prefix:   false, // ナビゲーションコントロールの位置（ true: 前 false: 後ろ）
  naviMark: { open: '<img src="http://ck2-blogger.com/js/open.png" border="0" />', 
    close: '<img src="http://ck2-blogger.com/js/close.png" border="0" />' }, // ナビゲーション用マーク

  init: function( keyID, mode ) {
    var insString = '<a class="__foldmark" href="#" onclick="';
    insString += "ajaxFoldNavigation.ShowHide('" + keyID + "'); return(false);";
    insString += '" onkeypress ="';
    insString += "ajaxFoldNavigation.ShowHide('" + keyID + "'); return(false);";
    insString += '"></a>';

    var element = $( keyID + 'list' );
    if ( this.prefix ) {
      $( keyID + 'name' ).innerHTML = insString + $( keyID + 'name' ).innerHTML;
    } else {
      $( keyID + 'name' ).innerHTML += insString;
    }

    element.style.display = ( mode == 'off' ) ? 'none' : 'block';
    this.setNaviMark( keyID );
  },

  ShowHide: function( keyID ) {
    var element = $( keyID + 'list' );

    if( element.visible() ) {
      options = {
        afterFinish: function(effect) {
          ajaxFoldNavigation.setNaviMark( keyID );
          Element.hide(effect.element);
        }
      };
      Effect.BlindUp(element, options);
    } else {
      options = {
        afterFinish: function(effect) {
          ajaxFoldNavigation.setNaviMark( keyID );
          Element.show(effect.element);
        }
      };
      Effect.BlindDown(element, options);
    }
  },

  setNaviMark: function( keyID ) {
    var elements = $( keyID + 'name' ).getElementsByClassName('__foldmark');

    elements[0].innerHTML =
      ( $( keyID + 'list' ).visible() ) ? this.naviMark['close'] : this.naviMark['open'];
  }
}

function FoldNavigation( keyID, mode ) {
  ajaxFoldNavigation.init( keyID, mode );
}
