
////////////////////////////////////////////////////////////////
///// Ajax /////////////////////////////////////////////////////

var _backupName;
function gotBackupList(){
	if ((xmlHttpObject.readyState == 4) && (xmlHttpObject.status == 200)){
		var value = xmlHttpObject.responseText;
		//alert("gotBackupList ===\n"+value);//##
        
		var array = value.split("<SEPARATOR>");
		if (array.length > 1){
            var array = JSON.parse(array[1]);
            //alert("gotBackupList ===\n"+encodeObject(array));//##
            
            // バックアップファイルのポップアップを表示
            if (_backupName == "menu")
                showBackupSelector(array);
            else 
                showBackupSubSelector(array);
		} else {
            alert(value);
        }
	}
}
function getBackupList(filename){
    // メニューバーのアーカイブのリストをリクエスト
    xmlHttpObject = createXMLHttpRequest(gotBackupList);
	if (xmlHttpObject){ // GETパラメータ付きでリクエスト送信
		var array = new Array();
        array["owner"] = owner();
		array["menu"] = "1";
        array["suffix"] = "txt";
        
        _backupName = filename;
		var st = "./server.php?command=GET_DIR"
		+ "&value=" + encodeObject(array);
		//alert(st); //===
        
		xmlHttpObject.open("GET", encodeURI(st), true);
		xmlHttpObject.send(null);
	}
}

function　loadedBackupFile(){
	if ((xmlHttpObject.readyState == 4) && (xmlHttpObject.status == 200)){
		var value = xmlHttpObject.responseText;
        _debug("loadedBackupFile->"+value); //##
        
		var array = value.split("<SEPARATOR>");
		if (array.length > 1){
            var obj = decodeObject(array[1]);
            setMenuObj(obj); // mainMenu とソースファイル名の関連に必要
            showBackupMenu(obj);
        }
	} 
}
function　loadedSubBackupFile(){
	if ((xmlHttpObject.readyState == 4) && (xmlHttpObject.status == 200)){
		var value = xmlHttpObject.responseText;
        _debug("loadedSubBackupFile->"+value); //##
        
		var array = value.split("<SEPARATOR>");
		if (array.length > 1){
            var obj = decodeObject(array[1]);
            showSubBackupMenu(obj);
        }
	} 
}
function loadBackupFile(mode){
    // 現在選択されているバックアップ・ファイルを読込む
    if (mode == "main")
        xmlHttpObject = createXMLHttpRequest(loadedBackupFile);
    else {
        var elm = document.getElementById("backupSubFilePop");
        if (elm){
            document.getElementById("file." + _mainMenu).innerHTML = elm.value;
        }
        xmlHttpObject = createXMLHttpRequest(loadedSubBackupFile);
    }
    
	if (xmlHttpObject){ // GETパラメータ付きでリクエスト送信
		var array = new Array();
        array["owner"] = owner();
		array["menu"] = "1";
        var id = (mode == "main") 
            ? "backupFilePop" : "backupSubFilePop";
        array["filename"] = document.getElementById(id).value;
		
		var st = "./server.php?command=GET_FILE"
		+ "&value=" + encodeObject(array);
        
        if (debugMode()) _initDebug(true); else _initDebug(false); //##
        _debug("== loadBackupFile-> "+st); //##
        
		xmlHttpObject.open("GET", encodeURI(st), true);
		xmlHttpObject.send(null);
	}
}

///// Ajax /////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////




function showBackupSelector(filenames){
    // バックアップ・ファイルのリストを選択してファイルをロード
	var elm = document.getElementById("optionArea");
    elm.innerHTML = "";
    
    var dv = newDIV(elm, "");
    dv.innerHTML = "MAIN MENU ";
    dv.style.fontSize = "9pt";
    dv.style.padding = "0px 5px";
    
    var items = new Array();
    for (num in filenames){
        var name = filenames[num];
        if (name.indexOf("menu.txt") >= 0)
            items.push(name);
    }
    var pu = makePopupMenu(dv, "backupFilePop", items, "");
    var bt = newBUTTON(dv, "", "読込む");
    bt.setAttribute("onclick", "loadBackupFile('main')");
    var bt = newBUTTON(dv, "", "削除");
//    bt.setAttribute("onclick", "removeBackupFile()");
}
function showBackupSubSelector(filenames){
    // バックアップ・ファイルのリストを選択してファイルをロード：サブメニュー用
	var elm = document.getElementById("pop." + _backupName);
    elm.innerHTML = "";
    
    var dv = newDIV(elm, "");
    dv.style.fontSize = "9pt";
    dv.style.padding = "0px 5px";
    
    // mainMenu に対応する subMenu ソース・ファイル名を取り出す
    var subMenuName = menuObj()[_backupName];
    
    var items = new Array();
    for (num in filenames){
        var name = filenames[num];
        //    if (name.charAt(0) == '.') continue;
        if (name.indexOf(subMenuName) >= 0)
            items.push(name);
    }
    var pu = makePopupMenu(dv, "backupSubFilePop", items, "");
    var bt = newBUTTON(dv, "", "読込む");
    bt.setAttribute("onclick", "loadBackupFile()");
    var bt = newBUTTON(dv, "", "削除");
//    bt.setAttribute("onclick", "removeBackupFile()");
}

function openOptionArea(checkbox){
    // オプション・エリアをトグル式に開閉
	var elm = document.getElementById("optionArea");
	elm.innerHTML = "";
    if (checkbox.checked == false) return;
    
    // mainMenu のバックアップ・ファイルのリストをサーバへリクエスト
    getBackupList("menu");
}

var _mainMenu;
function loadSubMenu(mainMenu){
    // mainMenu に対するバックアップのリストを表示
    var elm = document.getElementById("pop." + mainMenu);
    if (elm.innerHTML.length){
        // ポップアップ領域をトグル式に開閉
        elm.innerHTML = "";
        return;
    }
    if (_mainMenu){
        // 他メインメニューのポップアップが開いていたら閉じる
        document.getElementById("pop." + _mainMenu).innerHTML = "";
    }
    getBackupList(mainMenu);
    
    _mainMenu = mainMenu;
}

function showBackupMenu(obj){
    // mainMenu を表示
	var elm = document.getElementById("contents");
	elm.innerHTML = "";
    var tbl = newTABLE(elm, "mapTable");
    
    // mainMenu を生成
    for (mainMenu in obj){
        var rec = obj[mainMenu]; // subMenu のソース名
        var tr = newTR(tbl, "", "");
        tr.style.border = "thin solid #aaa";
        
        // MAIN MENU
        var td = newTD(tr, "", "");
        td.style.width = "250px";
        //td.style.padding = "0px 5px";
        td.style.border = "thin solid #888";
        td.style.verticalAlign = "top";
        // mainMenu 表示エリア
        var sp = newSPAN(td, "");
        sp.innerHTML = mainMenu;
        sp.style.padding = "0px 5px";
        sp.setAttribute("onmouseout","resetColor(this,'#000','#fff')");
        sp.setAttribute("onmouseover","setColor(this,'#ff0','#00f')");
//        sp.setAttribute("onclick","loadSubMenu('" + rec + "')");
        sp.setAttribute("onclick","loadSubMenu('" + mainMenu + "')");
        
        // mainMenu のバックアップ・ファイル名表示エリア
        var sp = newSPAN(td, "file." + mainMenu);
        sp.style.padding = "0px 10px";
        sp.style.fontSize = "9pt";
        sp.innerHTML = rec; // subMenu のソース名
        
        // mainMenu のバックアップ・リスト 表示エリア
        var dv = newDIV(td, "pop." + mainMenu);
        
        // SUB MENU
        var td = newTD(tr, "sub." + mainMenu, "");
    }
}
function showSubBackupMenu(obj){
    // subMenu を表示
    _debug("== showSubBackupMenu->"+encodeObject(obj)); //##
    
	var elm = document.getElementById("sub." + _mainMenu);
	elm.innerHTML = "";
    var tbl = newTABLE(elm, "mapTable");
    
    // subMenu エリアにデータを表示
    for (subMenu in obj){
        var tr = newTR(tbl, "", "");
        tr.style.border = "thin solid #aaa";
        
        // subMenu を表示
        var td = newTD(tr, "", subMenu);
        td.style.padding = "0px 5px";
        
        // URL を表示
        var sp = newSPAN(td, "");
        sp.innerHTML = obj[subMenu];
        sp.style.padding = "0px 10px";
        sp.style.fontSize = "9pt";
        sp.style.color = "#00f";
    }
}

