//-------------------------------------
// makeFoldNavi.js
//-------------------------------------

//HTMLタグ装飾 ID--------------------------------------------------------------
//
//ユーザーリスト
//    タイトル：profilename
//    本体：profilelist
//最新エントリーリスト
//    タイトル：newentryname
//    本体：newentrylist
//ページエントリーリスト
//    タイトル：entryname
//    本体：entrylist
//最新コメントリスト
//    タイトル：commentname
//    本体：commentlist
//最新トラックバックリスト
//    タイトル：tbname
//    本体：tblist
//カテゴリーリスト
//    タイトル：categoryname
//    本体：categorylist
//アーカイブリスト
//    タイトル：archivename
//    本体：archivelist
//リンクリスト
//    タイトル：linkname
//    本体：linklist
//
//【使 用 例】-----------------------------------------------------------------
//
//　最新エントリー      ：  <div id="newentrylist">{latest_entry_list}</div>
//　ページエントリー    ：  <div id="entrylist">{selected_entry_list}</div>
//　最新コメント        ：  <div id="commentlist">{recent_comment_list}</div>
//　最新トラックバック  ：  <div id="tblist">{recent_trackback_list}</div>
//　リンク              ：  <div id="linklist">{link_list}</div>
//
//【注意事項】-----------------------------------------------------------------
//
//　ツリー化やプルダウンメニュー化を行っている場合にはそれらのスクリプトの前に置く
//
//-----------------------------------------------------------------------------

function FoldNavigation(idName,initMode,viewNum) {

    var openMark    = '[◇]';   // 閉じている場合に開くためのマーク
    var closeMark   = '[―]';   // 開いている場合に閉じるためのマーク
    var preMark     = false;    // マークの挿入位置。
                                // タイトルの前なら true、タイトルの後ろなら false

    var idTitle = Array(idName,'name').join('');
    var idList = Array(idName,'list').join('');
    var objTitle = this.document.getElementById(idTitle);
    var objLists = this.document.getElementById(idList);

    if (!objTitle || !objLists) return;

    var dispMode = objLists.style.display;
    if (!dispMode) {

        var tmpText = Array('FoldNavigation(',"'",idName,"','chng','');return(false);").join('');
        var insMark = new Array();
        var insText = new Array();

        insMark[insMark.length] = Array('<a class="foldmark" href="#" onclick="',tmpText,'" onkeypress="',tmpText,'">').join('');
        insMark[insMark.length] = (initMode == 'off') ? openMark : closeMark;
        if (preMark) {
            insMark[insMark.length] = '</a> ';
        } else {
            insMark[insMark.length] = '</a>';
        }

        if (preMark) insText[insText.length] = insMark.join('');

        insText[insText.length] = objTitle.innerHTML;

        if (viewNum) {
          var objItems = objLists.getElementsByTagName('li');
          insText[insText.length] = Array(' <span>(',objItems.length,')</span>').join('');
        }

        if (!preMark) {
            insText[insText.length] = ' ';
            insText[insText.length] = insMark.join('');
        }

        objLists.style.display = (initMode == 'off') ? 'none' : 'block';
        objTitle.innerHTML = insText.join('');

    } else if (initMode == 'chng') {

        var objMarks = objTitle.getElementsByTagName('a');

        for (i=0;i<objMarks.length;i++) {

          if (objMarks[i].className == 'foldmark') {
            objMarks[i].firstChild.nodeValue = (dispMode == 'none') ? closeMark : openMark;
          }

        }

        objLists.style.display = (dispMode == 'none') ? 'block' : 'none';

    }
}

//-------------------------------------
// How to use...
// FoldNavigation('リスト名','初期表示',アイテム数表示);

function InitFoldNavi(aryInitMode) {

    // 標準メニュー項目
    FoldNavigation('profile' ,aryInitMode.profile  ,false);
    FoldNavigation('newentry',aryInitMode.newentry ,false);
    FoldNavigation('entry'   ,aryInitMode.entry    ,true);
    FoldNavigation('comment' ,aryInitMode.comment  ,true);
    FoldNavigation('tb'      ,aryInitMode.tb       ,true);
    FoldNavigation('category',aryInitMode.category ,true);
    FoldNavigation('archive' ,aryInitMode.archive  ,true);
    FoldNavigation('link'    ,aryInitMode.link     ,true);

    // フリースペース項目
    FoldNavigation('freespace1' ,aryInitMode.freespace1     ,false);
    FoldNavigation('freespace2' ,aryInitMode.freespace2     ,false);
    FoldNavigation('freespace3' ,aryInitMode.freespace3     ,false);
    FoldNavigation('freespace4' ,aryInitMode.freespace4     ,false);
    FoldNavigation('freespace5' ,aryInitMode.freespace5     ,false);

    // 標準メニュー項目(追加)
    FoldNavigation('recommend'  ,aryInitMode.recommend      ,false);
    FoldNavigation('mobile'     ,aryInitMode.mobile         ,false);
    FoldNavigation('search'     ,aryInitMode.search         ,false);
    aryInitMode.sponsored = 'on';
    FoldNavigation('sponsored'  ,aryInitMode.sponsored      ,false);

    // 独自メニュー項目
    FoldNavigation('ownitem1'   ,aryInitMode.ownitem1       ,false);
    FoldNavigation('ownitem2'   ,aryInitMode.ownitem2       ,false);
    FoldNavigation('ownitem3'   ,aryInitMode.ownitem3       ,false);
    FoldNavigation('ownitem4'   ,aryInitMode.ownitem4       ,false);
    FoldNavigation('ownitem5'   ,aryInitMode.ownitem5       ,false);

}

