
////////////////////////////////////////////////////
/// Ajax による処理 //////////////////////////////////

function reveredtLayout(){
	if ((xmlHttpObject.readyState == 4) && (xmlHttpObject.status == 200)){
		var value = xmlHttpObject.responseText;
        
        // 設定した属性を再読み込みするためブラウザーをリロード
        window.location.reload(true);
	}
}
function revertLayout(){
    // レコードを工場出荷状態に戻す
	xmlHttpObject = createXMLHttpRequest(reveredtLayout);
	if (xmlHttpObject){ // GETパラメータ付きでリクエスト送信
		var array = new Array();
		array["owner"] = currentUser();
        var st = encodeObject(array);
        
		//_receiver = receiver; // 結果を受け付けるメソッドを記憶
		var st = "./frontServer.php?command=REMOVE_LAYOUT_PARTS"
		+ "&value=" + st;
        
		//alert("revertLayout:\n"+st); return; //###
        
		xmlHttpObject.open("GET", encodeURI(st), true);
		xmlHttpObject.send(null);
	}
}

function gotArchives(){
	if ((xmlHttpObject.readyState == 4) && (xmlHttpObject.status == 200)){
		var value = xmlHttpObject.responseText;
        //alert(value); //##
        
		var ary = value.split("<SEPARATOR>");
		if (ary.length > 1){
            var obj = eval('(' + ary[1] + ')');
            //alert(encodeObject(obj)); //##
            
            // FRONT レイアウトのバックアップファイルのリストを生成
            var array = new Array();
            var files = obj.files;
            if (files){
                for (num in files){
                    var filename = files[num];
                    
                    // 201202201212FRONT.txt 型式の旧 FRONT ファイルはスキップ
                    if (filename.indexOf("FRONT") > 0) continue; 
                    
                    array.push(filename);
                }
            }
            
            // バックアップ編集ペーンを開く
            showBackUp(array);
        }
	}
}
function getBackup(){
    // バックアップファイルの履歴をサーバへリクエスト
	xmlHttpObject = createXMLHttpRequest(gotArchives);
	if (xmlHttpObject){ // GETパラメータ付きでリクエスト送信
		var array = new Array();
		array["owner"] = currentUser();
        var st = encodeObject(array);
        
		//_receiver = receiver; // 結果を受け付けるメソッドを記憶
		var st = "./frontServer.php?command=GET_ARCHIVE_FILES"
		+ "&value=" + st;
        
		//alert("getBackup:\n"+st); return; //###
        
		xmlHttpObject.open("GET", encodeURI(st), true);
		xmlHttpObject.send(null);
	}
}

function gotArchiveFile(){
    // まずテンプレートを元に属性を設定
    _initDebug(false); //##

	if ((xmlHttpObject.readyState == 4) && (xmlHttpObject.status == 200)){
		var value = xmlHttpObject.responseText;
        //alert("value--\n"+value); //##
                
		var array = value.split("<SEPARATOR>");
		if (array.length > 1){
            if (array[1].length){
                // まずテンプレートを obj に設定
                var obj = new Object();
                obj.checkBox = layoutChecksTemplate();
                obj.firstItem = "予定表";
                obj.timeZone = "0900-1200";
                obj.plan = planTemplate();
                obj.day = dayTemplate();
                obj.month = monthTemplate();
                
                // 読み込んだバックアップを obj に上書き
                var rec = decodeObject(array[1]);
                
                _debug("rec--\n"+encodeObject(rec)); //##
                
                if (rec.checkBox) obj.checkBox = rec.checkBox;
                if (rec.firstItem) obj.firstItem = rec.firstItem;
                if (rec.timeZone) obj.timeZone = rec.timeZone;
                if (rec.plan) obj.plan = rec.plan;
                if (rec.day) obj.day = rec.day;
                if (rec.month) obj.month = rec.month;
                setLayoutObj(obj);
                showPreference();
                
                _debug("---"); //
                _debug(encodeObject(obj)); //##
                
                if (confirm("この設定でよければ「保存」します")){
                    // 読み込んだこのレイアウトを保存
                    savePreference();
                }
            }
        }
	} 
}
function getArchiveFile(){
    // 指定されたバックアップファイルからレイアウトを復元
	xmlHttpObject = createXMLHttpRequest(gotArchiveFile);
	if (xmlHttpObject){ // GETパラメータ付きでリクエスト送信
        var filename = document.getElementById("fileNamePop").value;

		var array = new Array();
		array["owner"] = currentUser();
		array["filename"] = filename;
        var st = encodeObject(array);
        
		//_receiver = receiver; // 結果を受け付けるメソッドを記憶
		var st = "./frontServer.php?command=GET_ARCHIVE_FILE"
		+ "&value=" + st;
        
		//alert("getArchiveFile:\n"+st); return; //###

		xmlHttpObject.open("GET", encodeURI(st), true);
		xmlHttpObject.send(null);
	}
}

function removedArchiveFile(){
	if ((xmlHttpObject.readyState == 4) && (xmlHttpObject.status == 200)){
		var value = xmlHttpObject.responseText;
        
		var ary = value.split("<SEPARATOR>");
		if (ary.length > 1){
            // バックアップ・ペーンを一旦閉じる
            getBackup();
        }
	}
}
function removeArchiveFile(){
    // 指定されたバックアップファイルを削除
    var filename = document.getElementById("fileNamePop").value;
    if (!confirm(filename + " を削除していいですか")) return;

	xmlHttpObject = createXMLHttpRequest(removedArchiveFile);
	if (xmlHttpObject){ // GETパラメータ付きでリクエスト送信
		var array = new Array();
		array["owner"] = currentUser();
		array["filename"] = filename;
        var st = encodeObject(array);
        
		//_receiver = receiver; // 結果を受け付けるメソッドを記憶
		var st = "./frontServer.php?command=REMOVE_ARCHIVE_FILE"
		+ "&value=" + st;
        
		//alert("removeArchiveFile:\n"+st); return; //###
        
		xmlHttpObject.open("GET", encodeURI(st), true);
		xmlHttpObject.send(null);
	}
}

/// Ajax による処理 //////////////////////////////////
////////////////////////////////////////////////////


function showBackUp(fileNames){
    // バックアップ・ペーンを開く
    var tr = document.getElementById("backupPane");
    if (tr.innerHTML.length){
        tr.innerHTML = "";
        return;
    }
    tr.innerHTML = "";
    
    var td = newTD(tr, "prefLabel", "バックアップ");
    var td = newTD(tr, "", "");
    td.style.fontSize = "9pt";
    td.style.padding = "0px 10px";
    td.style.color = "#a33";

    // レイアウトを復元
    var sp = newSPAN(td, "");
    sp.innerHTML = "レイアウトを";
    sp.style.paddingRight = "5px";
    // バックアップファイルのポップアップ・メニューを生成
    var sp = newSPAN(td, "");
    var pm = makePopupMenu(sp, "fileNamePop", fileNames, "");
    var bt = newBUTTON(td, "", "から復元");
    bt.setAttribute("onclick", "getArchiveFile()");
    var sp = newSPAN(td, "");
    sp.style.marginRight = "5px";
    var img = newIMAGE(sp, "", "./remove.png", "X");
    img.style.height = "11px";
    img.setAttribute("onclick", "removeArchiveFile()");

    // 工場出荷状態に戻す
    var sp = newSPAN(td, "");
    sp.innerHTML = "レイアウトを";
    sp.style.paddingLeft = "20px";
    sp.style.paddingRight = "5px";
    var bt = newBUTTON(td, "", "工場出荷状態に戻す");
    bt.setAttribute("onclick", "revertLayout()");
}