// getCookie & setCookie from とほほのWWW入門
function getCookie(key, tmp1, tmp2, xx1, xx2, xx3) {
tmp1 = " " + document.cookie + ";";
xx1 = xx2 = 0;
len = tmp1.length;
while (xx1 < len) {
xx2 = tmp1.indexOf(";", xx1);
tmp2 = tmp1.substring(xx1 + 1, xx2);
xx3 = tmp2.indexOf("=");
if (tmp2.substring(0, xx3) == key) {
return(unescape(tmp2.substring(xx3 + 1, xx2 - xx1 - 1)));
}
xx1 = xx2 + 1;
}
return("");
}
function setCookie(key, val, tmp) {
tmp = key + "=" + escape(val) + "; ";
// tmp += "path=" + location.pathname + "; ";
tmp += "expires=Fri, 31-Dec-2030 23:59:59; ";
document.cookie = tmp;
}
function LoadInitFold() {
for ( var i = 0; i < iniFold.length; i++ ) {
var tmp = getCookie( Array("FN", iniFold[i][0]).join("") );
if ( tmp != "" ) {
iniFold[i][1] = tmp;
}
}
}
var iniFold; // 状態の保持用変数
function InitFoldNavi() {
iniFold = Array( // 初期設定↓
Array('category','off',false) // カテゴリー
,Array('archive' ,'on',false) // アーカイブ
,Array('tb' ,'off' ,false) // 最新トラックバック
);

LoadInitFold(); // cookieから状態の取得して、初期値に上書き

for ( var i = 0; i < iniFold.length; i++ ) {
FoldNavigation(iniFold[i][0], iniFold[i][1], iniFold[i][2]); // ナビゲーションの設定
}
}
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;
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] = 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';
setCookie( "FN"+idName, (dispMode == 'none' ) ? 'on' : 'off' );
}
}
InitFoldNavi(); // ナビゲーションの折り畳み