
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 FoldNavigationByTagName(idName, initMode,shopnm,areanm) {

//document.write(idName+"*"+initMode+"*"+shopnm+"*"+areanm+"<br>");

    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) {

        // Hold a fold-up state to cookie.

            var cookie_initMode = readCookieByValue(idName);
            if(cookie_initMode){
                initMode = cookie_initMode;
            }
            createCookieByValue(idName, initMode, 365);


		        // 開始タグ
		        var buffer = new Array();
		        var tmpText;

					tmpText = Array('FoldNavigationByTagName(',"'",idName,"','chng','",shopnm,"','",areanm,"');return(false);").join('');

//document.write(tmpText+"*"+idName+"*"+idList+"*"+objLists.style.display+"<br>");

		        // リスト数
		        var listCount;

					//タイトルをリンクしてマーク。

                buffer[buffer.length] = Array('<a class="foldmark" href="#" onclick="',tmpText,'" onkeypress="',tmpText,'">').join('');

						 buffer[buffer.length] = objTitle.innerHTML;

                buffer[buffer.length] = '</a>';

						//ここまで、タイトルをリンクしてマーク。


        // 生成データをオブジェクトに設定
       objTitle.innerHTML = buffer.join('');

        // スタイル設定
        objLists.style.display = (initMode == 'off') ? 'none' : 'block';

    } else if (initMode == 'chng') {

            // スタイル設定
					objLists.style.display = (dispMode == 'none') ? 'block' : 'none';

			for(i=0;i<shopnm;i++){
				 var tmp='s'+areanm+'_'+i;
					if(tmp!=idName){
			 		   var tmp2 = this.document.getElementById(tmp+'list');
						tmp2.style.display='none';
						createCookieByValue(tmp, 'off', 365);
					}else{
			 		   var tmp2 = this.document.getElementById(idName+'list');
						tmp2.style.display='block';
						createCookieByValue(idName, 'on', 365);
					}
			}

/*
            if (dispMode == 'none') {
                createCookieByValue(idName, 'on', 365);
            } else {
                createCookieByValue(idName, 'off', 365);
            }
*/
    }
}

