/*************************************************
 *
 * ajax汎用JavaScript
 *
 *************************************************/
  //-----------------------------------------------------------------
  // 関数一覧
  //  和名                      ：簡略関数仕様
  //-----------------------------------------------------------------
  //  共通submit処理            ：void getData()
  //-----------------------------------------------------------------

/********************************************************************
 *  外部変数
 *******************************************************************/
var ajax = false;                // ajaxオブジェクト

 /********************************************************************
  *  外部初期処理（このJavaScriptをリンクしたHTMLロード時に自動的に実行）
  *******************************************************************/
if (window.XMLHttpRequest) {            // IE以外用処理
    ajax = new XMLHttpRequest();
} else if (window.ActiveXObject) {        // IE用処理
    try {
        ajax = new ActiveXObject("Msxml2.XMLHTTP");
    } catch(e) {
        ajax = new ActiveXObject("Microsoft.XMLHTTP");
    }
}

/********************************************************************
 * http://kawa.at.webry.info/200511/article_9.htmlより拝借
 *
 *Safari の responseText では、Shift_JIS はおろか UTF-8 コードでも文字化けするため使いにくかったが、UTF-8 コードに対応する手順を考えた。
 *実際のテキストファイルがUTF-8コードだったとしても、Safari 2.0のresponseTextはISO-8859-1コードか何かと誤認識したような文字列を返してくるので文字化けしてしまう。
 *そこで、ブラウザを判別して Safari ではいったんescapeで%HH形式に変換する。
 *このとき『UTF-8コードのエスケープ状態』と同じ文字列並びになっているから、これをさらにdecodeURIComponentで展開すればUTF-8コードの文字列として取り出すことができる！
 *******************************************************************/

function get_response_text ( req ) {
//    var text = req.responseText;
    var text = req;

    if ( navigator.appVersion.indexOf( "KHTML" ) > -1 ) {
        var esc = escape( text );
        if ( esc.indexOf("%u") < 0 && esc.indexOf("%") > -1 ) {
            text = decodeURIComponent( esc );
        }
    }
    return text;
}

/********************************************************************
 *  霊園一覧チェック変更時処理
 *  引数： reien_id                    霊園ID
 *  備考： サーバからタブ区切りで下記の値が返る。
 *         1. 霊園ID
 *         2. 追加・削除ボタンのタグ
 *         3. 追加の場合はtrue、削除の場合はfalse
 *******************************************************************/

function checkReienList (reien_id) {
    //*** XMLHttpリクエスト接続 ***//
    var url = "/userReien.php?process=INDEX&cmd=check_list&reien_id=" + reien_id + "&dummy=" + new Date().getTime();
    ajax.open("GET", url);

    //*** XMLHttpリクエストのコールバック ***//
    ajax.onreadystatechange = function() {

        // ステータス判定
        if (ajax.readyState == 4 && ajax.status == 200) {

            // レスポンスを取得
            var result = ajax.responseText.split("\t");

            // セッションが切れている場合
            if (result.length != 3) {
                location.reload();

            } else {
                // 文字化けの為に追加
                for (i = 0; i < result.length; i++) {
                    result[i] = get_response_text(result[i]);
                }

                // チェック件数
                var obj = document.getElementsByTagName("span");
                for(i = 0; i < obj.length; i++){
                    if(obj[i] && typeof(obj[i]) == "object" ) {
                        if(obj[i].id.search(/^checkedCount/) != -1) {
                            obj[i].innerHTML = result[0];
                        }
                    }
                }

                // ボタン表示
                var btn = document.getElementById("listBtn" + reien_id);
                if(btn && typeof(btn) == "object" ) {
                    btn.innerHTML = result[1];
                }

                // 選択行色指定
                for(i = 1; i <= 5; i++) {
                    var row = document.getElementById("listRow" + reien_id + "_" + i);
                    if(row && typeof(row) == "object" ) {
                        var color = "";
                        if (result[2] == "true") {
                            color = "#FFFFCC";
                        } else {
                            if (i == 1) {
                                color = "#F5F1E9";
                            } else {
                                color = "#FFFFFF";
                            }
                        }
                        row.style.backgroundColor = color;
                    }
                }
            }
        }
    }
    ajax.send("");

}

/********************************************************************
 *  資料請求リストからの削除処理
 *  引数： reien_id                    霊園ID
 *  備考： サーバからタブ区切りで下記の値が返る。
 *         1. エラーメッセージ
 *         2. 資料請求リストのタグ
 *******************************************************************/

function deleteList (reien_id) {

    //*** XMLHttpリクエスト接続 ***//
    var url = "/userRequest.php?process=INDEX&cmd=delete_list&reien_id=" + reien_id + "&dummy=" + new Date().getTime();
    ajax.open("GET", url);

    //*** XMLHttpリクエストのコールバック ***//
    ajax.onreadystatechange = function() {

        // ステータス判定
        if (ajax.readyState == 4 && ajax.status == 200) {

            // レスポンスを取得
            var result = ajax.responseText.split("\t");

            // セッションが切れている場合
            if (result.length != 2) {
//                location.reload();

            } else {
                // 文字化けの為に追加
                for (i = 0; i < result.length; i++) {
                    result[i] = get_response_text(result[i]);
                }

                // エラーメッセージ表示
                var err = document.getElementById("requestListErr");
                if(err && result[0].length>1 && typeof(err) == "object" ) {
                    err.innerHTML = result[0];
                }

                // 資料請求リスト表示
                var list = document.getElementById("requestList");
                if(list && typeof(list) == "object" ) {
                    list.innerHTML = result[1];
                }
            }
        }
    }
    ajax.send("");

}
function deleteListR (reien_id) {

    //*** XMLHttpリクエスト接続 ***//
    var url = "/userReien.php?process=INDEX&cmd=delete_list&reien_id=" + reien_id + "&dummy=" + new Date().getTime();
    ajax.open("GET", url);

    //*** XMLHttpリクエストのコールバック ***//
    ajax.onreadystatechange = function() {

        // ステータス判定
        if (ajax.readyState == 4 && ajax.status == 200) {

            // レスポンスを取得
            var result = ajax.responseText.split("\t");

            // セッションが切れている場合
            if (result.length != 2) {
//                location.reload();

            } else {
                // 文字化けの為に追加
                for (i = 0; i < result.length; i++) {
                    result[i] = get_response_text(result[i]);
                }

                // エラーメッセージ表示
                var err = document.getElementById("requestListErr");
                if(err && result[0].length>1 && typeof(err) == "object" ) {
                    err.innerHTML = result[0];
                }

                // 資料請求リスト表示
                var list = document.getElementById("requestList");
                if(list && typeof(list) == "object" ) {
                    list.innerHTML = result[1];
                }
            }
        }
    }
    ajax.send("");

}

/********************************************************************
 *  住所検索処理
 *  引数： action                      遷移先のプログラム名
 *         process                     プロセス識別名
 *         cmd                         実行コマンド
 *  備考： サーバからタブ区切りで下記の値が返る。
 *         1. 都道府県ID
 *         2. 市区町村
 *         3. エラーメッセージ(郵便番号前)
 *         4. エラーメッセージ(郵便番号後)
 *******************************************************************/

function searchAddress (action, process, cmd) {

    var postal1 = document.forms[0].postal_cd_before.value;
    var postal2 = document.forms[0].postal_cd_after.value;

    //*** XMLHttpリクエスト接続 ***//
    var url = "./" + action + "?process=" + process + "&cmd=" + cmd
            + "&postal_cd_before=" + postal1 + "&postal_cd_after=" + postal2 + "&dummy=" + new Date().getTime();;
    ajax.open("GET", url);

    //*** XMLHttpリクエストのコールバック ***//
    ajax.onreadystatechange = function() {

        // ステータス判定
        if (ajax.readyState == 4 && ajax.status == 200) {

            // レスポンスを取得
            var result = ajax.responseText.split("\t");

            // セッションが切れている場合
            if (result.length != 4) {
                location.reload();

            } else {
                // 文字化けの為に追加
                for (i = 0; i < result.length; i++) {
                    result[i] = get_response_text(result[i]);
                }

                // 住所
                if (result[2] == "" && result[3] == "") {
                    document.forms[0].pref_id.selectedIndex = result[0];
                    document.forms[0].town.value = result[1];
                }

                // エラーメッセージ
                var err1 = document.getElementById("postalBeforeErr");
                if( typeof(err1) == "object" ) {
                    err1.innerHTML = result[2];
                }
                var err2 = document.getElementById("postalAfterErr");
                if( typeof(err2) == "object" ) {
                    err2.innerHTML = result[3];
                }
            }
        }
    }
    ajax.send(null);

}

