// Copyright (c) 2004-2005 koikikukan All Rights Reserved.// http://yujiro.dyndns.com/blog/koikikukan/// License is granted if and only if this entire// copyright notice is included. By Yujiro ARAKI.// Ver1.00 initial version.// Ver2.00 add the state maintenance function by cookie.// Ver3.00 improve cookie processing.// Ver3.01 corresponds to Mac+IE.// Ver4.00 2005.03.31 add link display by block.// Ver5.00 2005.08.22 add Ajax library.// Ver5.01 2005.08.27 add flag of Ajax selection for subcategory.// Ver6.00 2006.07.10 add archives.// Ver6.01 2006.08.22 corresponds to image.// Ver6.02 2006.11.26 fix bug(corresponds to image).function deleteValue(name, nameEQ) {    var ca = document.cookie.split(';');    var newData = new Array();    // Repeat by cookie    for(var i = 0; i < ca.length; i++) {        var c = ca[i];        while (c.charAt(0)==' ') {            c = c.substring(1,c.length);        }        if (c.indexOf(nameEQ) == 0) {            // Delete the corresponding name.            var data = c.substring(nameEQ.length,c.length);            var list = data.split('|');            for(var x = 0; x < list.length; x++) {                if (list[x] != name) {                    // corresponds to Mac+IE                    newData[newData.length] = list[x];                }            }            return newData.join('|');        }    }    // Return empty when cookie does not exist.    return '';}function hasName(name, nameEQ) {    var ca = document.cookie.split(';');    for(var i = 0; i < ca.length; i++) {        var c = ca[i];        while (c.charAt(0)==' ') {            c = c.substring(1,c.length);        }        if (c.indexOf(nameEQ) == 0) {            var data = c.substring(nameEQ.length,c.length);            var list = data.split('|');            for(var x = 0; x < list.length; x++) {                if (list[x] == name) {                    return true;                }            }            return false;        }    }}function createCookieByValue(name, onoff, days) {    if (days) {        var date = new Date();        date.setTime(date.getTime()+(days*24*60*60*1000));        var expires = "; expires="+date.toGMTString();    } else {        expires = "";    }    // Once delete a name from cookie.    var newOnData = deleteValue(name, 'sidebarMenuOn=');    var newOffData = deleteValue(name, 'sidebarMenuOff=');    // Set up a name as new data.    if (onoff == 'on') {        if (newOnData != '') {            newOnData += '|' + name;        } else {            newOnData = name;        }    } else {        if (newOffData != '') {            newOffData += '|' + name;        } else {            newOffData = name;        }    }    // Save cookie.    document.cookie = "sidebarMenuOn=" + newOnData + expires + "; path=/";    document.cookie = "sidebarMenuOff=" + newOffData + expires + "; path=/";}function readCookieByValue(name) {    // Search a menu.    // Return empty if there is nothing to both.    if (hasName(name, 'sidebarMenuOn=')) {        return 'on';    }    if (hasName(name, 'sidebarMenuOff=')) {        return 'off';    }    return null;}// リスト数取得function getListCount(objLists, viewNum, idName, linkNumber, trackbackNumber, rightMarkForListNumber, subCategoryCount, leftMarkForListNumber, countTag, offsetValue) {    var objItems;    var href;    var commentCounter = 0;    // サブカテゴリーリスト    if (subCategoryCount && (idName.indexOf('subcategories') == 0)) {        objItems = objLists.getElementsByTagName('li');    // 指定されたタグを使用    } else if (countTag == 'li') {        objItems = objLists.getElementsByTagName(countTag);    // その他(aタグ)    } else {        objItems = objLists.getElementsByTagName('a');    }    // Recent Comments    if (idName == 'comment') {        for (i = 0; i < objItems.length; i++) { // Repeat a tag.            href = objItems[i].getAttribute("href");            if(href.indexOf('#') == -1){ // Count if '#' exists in a href attribute.                commentCounter++;            }        }    }    // Trackback    var counter;    if (idName == 'trackback') {        commentCounter = objItems.length / trackbackNumber;    }    // Subtract the unnecessary number of links.    if (idName.indexOf('link') == 0) {        var linkName;        for (j = 0; j < linkNumber; j++) {            linkName = 'link' + (j + 1);            if (idName == linkName) {                counter = objItems.length - offsetValue[j];            }        }    } else {        // Subtract the value of a counter from 'Recent Comments'        counter = objItems.length - commentCounter;    }    // decoration counter    if (leftMarkForListNumber) {        counter = leftMarkForListNumber + counter;    }    if (rightMarkForListNumber) {        counter = counter + rightMarkForListNumber;    }    return counter;}// リスト数設定function setListNumber(buffer, listCount, menuTitle, listNumberPosition, tlspace) {    // リスト数を前に表示    if (listNumberPosition) {        buffer[buffer.length] = listCount;        if (tlspace) {            buffer[buffer.length] = tlspace;        }        buffer[buffer.length] = menuTitle;    // リスト数を後に表示    } else {        buffer[buffer.length] = menuTitle;        if (tlspace) {            buffer[buffer.length] = tlspace;        }        buffer[buffer.length] = listCount;    }}// メニュータイトル+リスokie = "sidebarMenuOn=" + newOnData + expires + "; path=/";    document.cookie = "sidebarMenuOff=" + newOffData + expires + "; path=/";}function readCookieByValue(name) {    // Search a menu.    // Return empty if there is nothing to both.    if (hasName(name, 'sidebarMenuOn=')) {        return 'on';    }    if (hasName(name, 'sidebarMenuOff=')) {        return 'off';    }    return null;}// リスト数取得function getListCount(objLists, viewNum, idName, linkNumber, trackbackNumber, rightMarkForListNumber, subCategoryCount, leftMarkForListNumber, countTag, offsetValue) {    var objItems;    var href;    var commentCounter = 0;    // サブカテゴリーリスト    if (subCategoryCount && (idName.indexOf('subcategories') == 0)) {        objItems = objLists.getElementsByTagName('li');    // 指定されたタグを使用    } else if (countTag == 'li') {        objItems = objLists.getElementsByTagName(countTag);    // その他(aタグ)    } else {        objItems = objLists.getElementsByTagName('a');    }    // Recent Comments    if (idName == 'comment') {        for (i = 0; i < objItems.length; i++) { // Repeat a tag.            href = objItems[i].getAttribute("href");            if(href.indexOf('#') == -1){ // Count if '#' exists in a href attribute.                commentCounter++;            }        }    }    // Trackbackト数設定(block用)function setMenuTitleForBlock(viewNum, buffer, listCount, menuTitle, listNumberPosition, tlspace) {    // リスト数表示    if (viewNum) {        setListNumber(buffer, listCount, menuTitle, listNumberPosition, tlspace);    // リスト数非表示    } else {        buffer[buffer.length] = menuTitle;    }}// メニュータイトル+リスト数設定function setMenuTitle(viewNum, buffer, listCount, menuTitle, listNumberPosition, tlspace) {    // リスト数表示    if (viewNum) {        // リスト数を前に表示        if (listNumberPosition) {            buffer[buffer.length] = listCount;            if (tlspace) {                buffer[buffer.length] = tlspace;            }        }        buffer[buffer.length] = menuTitle;        // リスト数を後に表示        if (!listNumberPosition) {            if (tlspace) {                buffer[buffer.length] = tlspace;            }            buffer[buffer.length] = listCount;        }    // リスト数非表示    } else {        buffer[buffer.length] = menuTitle;    }}// 折りたたみ実行(タグ指定)function FoldNavigationByTagName(idName, initMode, viewNum, countTag, sp) {//--------------------------------------------------------// Configuration//--------------------------------------------------------//--------------------------------------------------------// メニュータイトル用設定データ//--------------------------------------------------------// リンク方式// 折りたたみマークにリンク付与：'unblock'// メニュータイトル枠全体にリンク付与 'block'var linkType = 'block';//-----------------------// 折りたたみスピード//-----------------------// 全てのメニューのスピード// 通常：'normal'// 遅い：'slow'var speed = 'normal';// サブカテゴリーのスピード(speed が slow の場合のみ有効)// 通常：'normal'// 遅い：'slow'var subcategorySpeed = 'normal';//-----------------------// 折りたたみマーク関連//-----------------------// 折りたたみマーク表示(メニュータイトル枠全体をリンクにする場合のみ有効)// 表示する：true// 表示しない：falsevar displayMark = false;// 折りたたみマーク// 上：閉じている状態で表示されるマーク// 下：開いている状態で表示されるマーク// 画像を設定する場合は右辺を '<img src="[画像のURL]" />'; と書いてくださいvar openMarkForSideBarMenu  = '▽';var closeMarkForSideBarMenu = '△';// 折りたたみマーク位置(折りたたみマークを表示する場合のみ有効)// タイトル前に折りたたみマークを配置：true// タイトル後に折りたたみマークを配置：false// 左端または右端に折りたたみマークを配置：truevar preMarkForSideBarMenu = true;// 折りたたみマーク画像(リンク方式が 'block' の場合のみ使われます)// 画像を使用する：true// 画像を使用しない：false// var image = false;//---------------// リスト数関連//---------------// リスト数表示位置// タイトル前にリスト数を表示：true// タイトル後にリスト数を表示：falsevar listNumberPosition = true;// リスト数表示を括るマークvar leftMarkForListNumber = '';var rightMarkForListNumber = '';// リンク数減算が必要なメニュー数// リンク数を減算する必要があるメニューはここに含めてください// 注:対象となるid属性名が「linkx(xは数字)」であること// 減算するメニューがない場合:0var linkNumber = 2;// 減算する各メニューのオフセット値// 注:対象となるid属性名が「linkx(xは数字)」であることvar offsetValue = new Array(linkNumber);offsetValue[0] = 3;offsetValue[1] = 2;// トラックバック数の除数// 注1:対象となるid属性名が「trackback」であること// 注2:除算が不要な場合は'1'を設定することvar trackbackNumber = 2;// サブカテゴリーリスト数計数方法// liタグで計数：true-------------------------// メニュータイトル用設定データ//--------------------------------------------------------// リンク方式// 折りたたみマークにリンク付与：'unblock'// メニュータイトル枠全体にリンク付与 'block'var linkType = 'block';//-----------------------// 折りたたみスピード//-----------------------// 全てのメニューのスピード// 通常：'normal'// 遅い：'slow'var speed = 'normal';// サブカテゴリーのスピード(speed が slow の場合のみ有効)// 通常：'normal'// 遅い：'slow'var subcategorySpeed = 'normal';//-----------------------// 折りたたみマーク関連//-----------------------// 折りたたみマーク表示(メニュータイトル枠全体をリンクにする場合のみ有効)// 表示する：true// 表示しない：falsevar displayMark = false;// 折りたたみマーク// 上：閉じている状態で表示されるマーク// 下：開いている状態で表示されるマーク// 画像を設定する場合は右辺を '<img src="[画像のURL]" />'; と書いてくださいvar openMarkForSideBarMenu  = '▽';var closeMarkForSideBarMenu = '△';// 折りたたみマーク位置(折りたたみマークを表示する場合のみ有効)// タイトル前に折りたたみマークを配置：true// aタグで計数：false// 注:他のタグを指定する場合はfalseを設定してくださいvar subCategoryCount = true;//-------------------// 表示位置補正関連//-------------------// タイトル表示位置補正フラグ(折りたたみマークを左端または右端に配置する場合)// 補正する：true// 補正しない：falsevar modificationFlag = true;// タイトル表示位置補正方向(折りたたみマークを左端または右端に配置する場合)// ・タイトルを右方向に補正：true// ・タイトルを左方向に補正：falsevar centeringPosition = false;// タイトル表示位置補正オフセット(折りたたみマークを左端または右端に配置した場合)var offsetForCentering = 0;// タイトルと折りたたみマークのスペース(上記以外で折りたたみマークを表示をする場合に有効)// 折りたたみマークを左端または右端に配置する場合'0'を設定var offsetForTitleAndMark = 0;// タイトルとリスト数のスペース(リスト数を表示するメニューに有効)var offsetForTitleAndLinkNumber = 1;//--------------------------------------------------------// サブカテゴリーリスト用設定データ//--------------------------------------------------------// サブカテゴリーフラグ// サブカテゴリーの折りたたみを有効にする(別途テンプレート設定が必要)// 有効にする：true// 無効にする：falsevar subCategory = true;// サブカテゴリー用折りたたみマーク// 上：閉じている状態で表示されるマーク// 下：開いている状態で表示されるマークvar openMarkForSubCategories  = '[+]';var closeMarkForSubCategories = '[-]';// サブカテゴリー用折りたたみマーク挿入位置// カテゴリー前に折りたたみマークを配置：true// カテゴリー後に折りたたみマークを配置：falsevar preMarkForSubCategory = false;// サブカテゴリーのタイトルとマークのスペースvar offsetForTitleAndMarkOfSubcategory = 0;//--------------------------------------------------------// アーカイブリスト用設定データ//--------------------------------------------------------// アーカイブリストフラグ// サブカテゴリーの折りたたみを有効にする(別途テンプレート設定が必要)// 有効にする：true// 無効にする：falsevar archives = true;// アーカイブリスト用折りたたみマーク// 上：閉じている状態で表示されるマーク// 下：開いている状態で表示されるマークvar openMarkForArchives  = '▼';var closeMarkForArchives = '▲';// アーカイブリスト用折りたたみマーク挿入位置// カテゴリー前に折りたたみマークを配置：true// カテゴリー後に折りたたみマークを配置：falsevar preMarkForArchives = false;// アーカイブリストのタイトルとマークのスペースvar offsetForTitleAndMarkOfArchives = 1;//--------------------------------------------------------// 状態保持用設定データ//--------------------------------------------------------// 状態保持フラグ// 有効にする：true// 無効にする：falsevar holdState = true;//--------------------------------------------------------    var openMark;  // The mark for opening, when having closed    var closeMark; // The mark for closing, when open    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;    // 折りたたみマーク    openMark = openMarkForSideBarMenu;    closeMark = closeMarkForSideBarMenu;    if (subCategory) {        if (idName.indexOf('subcategories') == 0) {            openMark = openMarkForSubCategories;            closeMark = closeMarkForSubCategories;        }    }    if (archives) {        if (idName.indexOf('archive') == 0) {            openMark = openMarkForArchives;            closeMark = closeMarkForArchives;        }    }    var dispMode = objLists.style.display;    if (!dispMode) {        // Hold a fold-up state to cookie.        if (holdState) {            var cookie_initMode = readCookieByValue(idName);            if(cookie_initMode){                initMode = cookie_initMode;            }            createCookieByValue(idName, initMode, 365);        }        // 開始タグ        var buffer = new Array();        var tmpText;        // 折りたたみスピードによって起動関数を変更        if(sp != 'dummy'){            speed = sp;        }        if(speed == 'slow') {            tmpText = Array('FoldNavigationSlowly(',"'",idName,"','chng','');return(false);").join('');        } else {            tmpText = Array('FoldNavigation(',"'",idName,"','chng','');return(false);").join('');        }        var startTag = Array('<a class="foldmark" href="#" onclick="',tmpText,'" onkeypress="',tmpText,'">').join('');        // 終了タグ        var endTag = '</a>';        // 表示する折りたたみマーク        var foldMark = (initMode == 'off') ? openMark : closeMark;        // メニュータイトル        var menuTitle = objTitle.innerHTML;        // パディング        var padding = '';        for (k = 0; k < offsetForCentering; k++) {            padding += '&nbsp;';        }        // タイトルとリンク数のスペース        var tlspace = '';        for (l = 0; l < offsetForTitleAndLinkNumber; l++) {            tlspace += '&nbsp;';        }        // タイトルとマークのスペース        var tmspace = '';        for (l = 0; l < offsetForTitleAndMark; l++) {            tmspace += '&nbsp;';        }        // サブカテゴリー用タイトルとマークのスペース        var scspace = '';     var offsetForTitleAndMarkOfSubcategory = 0;//--------------------------------------------------------// アーカイブリスト用設定データ//--------------------------------------------------------// アーカイブリストフラグ// サブカテゴリーの折りたたみを有効にする(別途テンプレート設定が必要)// 有効にする：true// 無効にする：falsevar archives = true;// アーカイブリスト用折りたたみマーク// 上：閉じている状態で表示されるマーク// 下：開いている状態で表示されるマークvar openMarkForArchives  = '▼';var closeMarkForArchives = '▲';// アーカイブリスト用折りたたみマーク挿入位置// カテゴリー前に折りたたみマークを配置：true// カテゴリー後に折りたたみマークを配置：falsevar preMarkForArchives = false;// アーカイブリストのタイトルとマークのスペースvar offsetForTitleAndMarkOfArchives = 1;//--------------------------------------------------------// 状態保持用設定データ//--------------------------------------------------------// 状態保持フラグ// 有効にする：true// 無効にする：falsevar holdState = true;//--------------------------------------------------------    var openMark;  // The mark for opening, when having closed    var closeMark; // The mark for closing, when open    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;    // 折りたたみマーク    openMark = openMarkForSideBarMenu;    closeMark = closeMarkForSideBarMenu;    if (subCategory) {        if (idName.indexOf('subcategories') == 0) {   for (l = 0; l < offsetForTitleAndMarkOfSubcategory; l++) {            scspace += '&nbsp;';        }        // アーカイブリスト用タイトルとマークのスペース        var alspace = '';        for (l = 0; l < offsetForTitleAndMarkOfArchives; l++) {            alspace += '&nbsp;';        }        // リスト数        var listCount;        if (viewNum) {            listCount = getListCount(objLists, viewNum, idName, linkNumber, trackbackNumber, rightMarkForListNumber, subCategoryCount, leftMarkForListNumber, countTag, offsetValue);        }        // 折りたたみ表示つきタイトル生成        // サブカテゴリーリスト        if (subCategory && (idName.indexOf('subcategories') == 0)) {            if (preMarkForSubCategory) {                buffer[buffer.length] = startTag;                buffer[buffer.length] = foldMark;                buffer[buffer.length] = endTag;                if (scspace) {                    buffer[buffer.length] = scspace;                }                buffer[buffer.length] = menuTitle;            } else {                buffer[buffer.length] = menuTitle;                if (scspace) {                    buffer[buffer.length] = scspace;                }                buffer[buffer.length] = startTag;                buffer[buffer.length] = foldMark;                buffer[buffer.length] = endTag;ニュータイトル        var menuTitle = objTitle.innerHTML;        // パディング        var padding = '';        for (k = 0; k < offsetForCentering; k++) {            padding += '&nbsp;';        }        // タイトルとリンク数のスペース        var tlspace = '';        for (l = 0; l < offsetForTitleAndLinkNumber; l++) {            tlspace += '&nbsp;';        }        // タイトルとマークのスペース        var tmspace = '';        for (l = 0; l < offsetForTitleAndMark; l++) {            tmspace += '&nbsp;';        }        // サブカテゴリー用タイトルとマークのスペース        var scspace = '';     var offsetForTitleAndMarkOfSubcategory = 0;//--------------------------------------------------------// アーカイブリスト用設定データ//--------------------------------------------------------// アーカイブリストフラグ// サブカテゴリーの折りたたみを有効にする(別途テンプレート設定が必要)// 有効にする：true// 無効にする：falsevar archives = true;// アーカイブリスト用折りたたみマーク// 上：閉じている状態で表示されるマーク// 下：開いている状態で表示されるマークvar openMarkForArchives  = '▼';var closeMarkForArchives = '▲';// アーカイブリスト用折りたたみマーク挿入位置// カテゴリー前に折りたたみマークを配置：true// カテゴリー後に折りたたみマークを配置：falsevar preMarkForArchives = false;// アーカイブリストのタイトルとマークのスペースvar offsetForTitleAndMarkOfArchives = 1;//--------------------------------------------------------// 状態保持用設定データ//--------------------------------------------------------// 状態保持フラグ// 有効にする：true// 無効にする：falsevar holdState = true;//--------------------------------------------------------    var openMark;  // The mark for opening, when having closed    var closeMark; // The mark for closing, when open    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;    // 折りたたみマーク    openMark = openMarkForSideBarMenu;    closeMark = closeMarkForSideBarMenu;    if (subCategory) {        if (idName.indexOf('subcategories') == 0) {            }        // アーカイブリスト        } else if (archives && (idName.indexOf('archive') == 0)) {            if (preMarkForArchives) {                buffer[buffer.length] = startTag;                buffer[buffer.length] = foldMark;                buffer[buffer.length] = endTag;                if (alspace) {                    buffer[buffer.length] = alspace;                }                buffer[buffer.length] = menuTitle;            } else {                buffer[buffer.length] = menuTitle;                if (alspace) {                    buffer[buffer.length] = alspace;                }                buffer[buffer.length] = startTag;                buffer[buffer.length] = foldMark;                buffer[buffer.length] = endTag;            }        // メニュータイトル        } else {            // 生成パターン決定(buffer生成)            if (linkType == 'unblock') {                // マーク前                if (preMarkForSideBarMenu) {                    // 折りたたみマーク設定                    buffer[buffer.length] = startTag;                    buffer[buffer.length] = foldMark;                    buffer[buffer.length] = endTag;                    // 表示位置補正                    if(modificationFlag && centeringPosition) {                        buffer[buffer.length] = padding;                    }                    // タイトルとマークのスペース                    if(offsetForTitleAndMark) {                        buffer[buffer.length] = tmspace;                    }                    // タイトル設定                    setMenuTitle(viewNum, buffer, listCount, menuTitle, listNumberPosition, tlspace);                    // 表示位置補正                    if(modificationFlag && !centeringPosition) {                        buffer[buffer.length] = padding;                    }                // マーク後                } else {                    // 表示位置補正                    if(modificationFlag && centeringPosition) {                        buffer[buffer.length] = padding;                    }                    // タイトル設定                    setMenuTitle(viewNum, buffer, listCount, menuTitle, listNumberPosition, tlspace);                    // タイトルとマークのスペース                    if(offsetForTitleAndMark) {                        buffer[buffer.length] = tmspace;                    }                    // 折りたたみマーク設定                    buffer[buffer.length] = startTag;                    buffer[buffer.length] = foldMark;                    buffer[buffer.length] = endTag;                    // 表示位置補正                    if(modificationFlag && !centeringPosition) {                        buffer[buffer.length] = padding;                    }                }            // ブロック表示            } else {                buffer[buffer.length] = startTag;                // マーク表示                if (displayMark) {                    // マーク前                    if (preMarkForSideBarMenu) {                        buffer[buffer.length] = foldMark;                        // タイトルとマークのスペース                        if(offsetForTitleAndMark) {                            buffer[buffer.length] = tmspace;                        }                        setMenuTitleForBlock(viewNum, buffer, listCount, menuTitle, listNumberPosition, tlspace);                    // マーク後                    } else {                        setMenuTitleForBlock(viewNum, buffer, listCount, menuTitle, listNumberPosition, tlspace);                        // タイトルとマークのスペース                        if(offsetForTitleAndMark) {                            buffer[buffer.length] = tmspace;                        }                        buffer[buffer.length] = foldMark;                    }                // マーク非表示                } else {                    setMenuTitleForBlock(viewNum, buffer, listCount, menuTitle, listNumberPosition, tlspace);                }                buffer[buffer.length] = endTag;            }        }        // 生成データをオブジェクトに設定        objTitle.innerHTML = buffer.join('');        // スタイル設定        objLists.style.display = (initMode == 'off') ? 'none' : 'block';    } else if (initMode == 'chng') {        // 折りたたみマーク置換        var objMarks = objTitle.getElementsByTagName('a');        for (i = 0; i < objMarks.length; i++) {            if (objMarks[i].className == 'foldmark') {                if(linkType == 'block' && displayMark) {                    var title = objMarks[i].innerHTML;                    // 折りたたみマークの画像判定                    var image = openMarkForSideBarMenu.search(/^</) != -1 ? true : false;                    if (subCategory) {                        if (idName.indexOf('subcategories') == 0) {                            image = openMarkForSubCategories.search(/^</) != -1 ? true : false;                        }                    }                    if (archives) {                        if (idName.indexOf('archive') == 0) {                            image = openMarkForArchives.search(/^</) != -1 ? true : false;                        }                    }                    if(image){                        if(dispMode == 'none'){                            title = ti設定                    setMenuTitle(viewNum, buffer, listCount, menuTitle, listNumberPosition, tlspace);                    // 表示位置補正                    if(modificationFlag && !centeringPosition) {                        buffer[buffer.length] = padding;                    }                // マーク後                } else {                    // 表示位置補正                    if(modificationFlag && centeringPosition) {                        buffer[buffer.length] = padding;                    }                    // タイトル設定                    setMenuTitle(viewNum, buffer, listCount, menuTitle, listNumberPosition, tlspace);                    // タイトルとマークのスペース                    if(offsetForTitleAndMark) {                        buffer[buffer.length] = tmspace;                    }                    // 折りたたみマーク設定                    buffer[buffer.length] = startTag;                    buffer[buffer.length] = foldMark;                    buffer[buffer.length] = endTag;                    // 表示位置補正                    if(modificationFlag && !centeringPosition) {                        buffer[buffer.length] = padding;                    }                }            // ブロック表示            } else {                buffer[buffer.length] = startTag;                // マーク表示                if (displayMark) {                    // マーク前                    if (preMarkForSideBarMenu) {                        buffer[buffer.length] = foldMark;                        // タイトルとマークのスペース                        if(offsetForTitleAndMark) {                            buffer[buffer.length] = tmspace;                        }                        setMenuTitleForBlock(viewNum, buffer, listCount, menuTitle, listNumberPosition, tlspace);                    // マーク後                    } else {                        setMenuTitleForBlock(viewNum, buffer, listCount, menuTitle, listNumberPosition, tlspace);                        // タイトルとマークのスペース                        if(offsetForTitleAndMark) {                            buffer[buffer.length] = tmspace;                        }tle.replace(/<.*>/, closeMark);                        } else {                            title = title.replace(/<.*>/, openMark);                        }                    } else {                        if(dispMode == 'none'){                           title = title.replace(openMark, closeMark);                        } else {                           title = title.replace(closeMark, openMark);                        }                    }                    objMarks[i].innerHTML = title;                } else if((linkType == 'unblock') || (subCategory && (idName.indexOf('subcategories') == 0)) || (archives && (idName.indexOf('archive') == 0))) {                    objMarks[i].innerHTML = (dispMode == 'none') ? closeMark : openMark;                }            }        }        // 折りたたみスピード        if(sp != 'dummy'){            speed = sp;        }        if(speed == 'slow' || (idName.indexOf('subcategories') == 0 && subcategorySpeed == 'slow')) {            if(dispMode == 'none') {                element = $(idList);                options = {                    afterFinish: function(effect) {                        Element.undoClipping(effect.element);                        Element.show(effect.element); // prototype.js 修正要//                        element.style.display = 'block';                    }                };                            image = openMarkForArchives.search(/^</) != -1 ? true : false;                        }                    }                    if(image){                        if(dispMode == 'none'){                            title = ti設定                    setMenuTitle(viewNum, buffer, listCount, menuTitle, listNumberPosition, tlspace);                    // 表示位置補正                    if(modificationFlag && !centeringPosition) {                        buffer[buffer.length] = padding;                    }                // マーク後                } else {                    // 表示位置補正                    if(modificationFlag && centeringPosition) {                        buffer[buffer.length] = padding;                    }                    // タイトル設定                    setMenuTitle(viewNum, buffer, listCount, menuTitle, listNumberPosition, tlspace);                    // タイトルとマークのスペース                    if(offsetForTitleAndMark) {                        buffer[buffer.length] = tmspace;                    }                    // 折りたたみマーク設定                    buffer[buffer.length] = startTag;                    buffer[buffer.length] = foldMark;                    buffer[buffer.length] = endTag;                    // 表示位置補正                    if(modificationFlag && !centeringPosition) {                        buffer[buffer.length] = padding;                    }                }            // ブロック表示            } else {                buffer[buffer.length] = startTag;                // マーク表示                if (displayMark) {                    // マーク前                    if (preMarkForSideBarMenu) {                        buffer[buffer.length] = foldMark;                        // タイトルとマークのスペース                        if(offsetForTitleAndMark) {                            buffer[buffer.length] = tmspace;                        }                        setMenuTitleForBlock(viewNum, buffer, listCount, menuTitle, listNumberPosition, tlspace);                    // マーク後                    } else {                        setMenuTitleForBlock(viewNum, buffer, listCount, menuTitle, listNumberPosition, tlspace);                        // タイトルとマークのスペース                        if(offsetForTitleAndMark) {                            buffer[buffer.length] = tmspace;                        }   Effect.BlindDown(element, options);            } else {                element = $(idList);                options = {                    afterFinish: function(effect) {                        Element.hide(effect.element);                    }                };                Effect.BlindUp(element, options);            }        } else {            // スタイル設定            objLists.style.display = (dispMode == 'none') ? 'block' : 'none';        }        // Hold a fold-up state to cookie, when a change occurs.        if (holdState) {            if (dispMode == 'none') {                createCookieByValue(idName, 'on', 365);            } else {                createCookieByValue(idName, 'off', 365);            }        }    }}// 折りたたみ実行function FoldNavigation(idName, initMode, viewNum) {    FoldNavigationByTagName(idName, initMode, viewNum, 'dummy', 'dummy');}function FoldNavigationSlowly(idName, initMode, viewNum) {    FoldNavigationByTagName(idName, initMode, viewNum, 'dummy', 'slow');}idList);                options = {                    afterFinish: function(effect) {                        Element.undoClipping(effect.element);                        Element.show(effect.element); // prototype.js 修正要//                        element.style.display = 'block';                    }                };                            image = openMarkForArchives.search(/^</) != -1 ? true : false;                        }                    }                    if(image){                        if(dispMode == 'none'){                            title = ti設定                    setMenuTitle(viewNum, buffer, listCount, menuTitle, listNumberPosition, tlspace);                    // 表示位置補正                    if(modificationFlag && !centeringPosition) {                        buffer[buffer.length] = padding;                    }                // マーク後                } else {                    // 表示位置補正                    if(modificationFlag && centeringPosition) {                        buffer[buffer.length] = padding;                    }                    // タイトル設定                    setMenuTitle(viewNum, buffer, listCount, menuTitle, listNumberPosition, tlspace);                    // タイトルとマークのスペース                    if(offsetForTitleAndMark) {                        buffer[buffer.length] = tmspace;                    }                    // 折りたたみマーク設定                    buffer[buffer.length] = startTag;                    buffer[buffer.length] = foldMark;                    buffer[buffer.length] = endTag;                    // 表示位置補正                    if(modificationFlag && !centeringPosition) {                        buffer[buffer.length] = padding;                    }                }            // ブロック表示            } else {                buffer[buffer.length] = startTag;                // マーク表示                if (displayMark) {                    // マーク前                    if (preMarkForSideBarMenu) {                        buffer[buffer.length] = foldMark;                        // タイトルとマークのスペース                        if(offsetForTitleAndMark) {                            buffer[buffer.length] = tmspace;                        }                        setMenuTitleForBlock(viewNum, buffer, listCount, menuTitle, listNumberPosition, tlspace);                    // マーク後                    } else {                        setMenuTitleForBlock(viewNum, buffer, listCount, menuTitle, listNumberPosition, tlspace);                        // タイトルとマークのスペース                        if(offsetForTitleAndMark) {                            buffer[buffer.length] = tmspace;                        }
