/* ============================================================
*
*    GENKI_GOLF | ZIPCODESEARCH.js
*
* ============================================================ */

/*----------------------------------------
  DOMREADY
----------------------------------------*/
$(function () {

    // 全角スペースも空白文字とみなして文字列をトリミングします
    // jQuery.trim では IE の場合に全角スペースが削除されないため、ここで実装します。
    function trim(text) {
        var rtrim = /^([\s　]|\u00A0)+|([\s　]|\u00A0)+$/g;
        return (text || "").replace(rtrim, "");
    }

    // 現在入力されている郵便番号から都道府県、市区町村を検索し、選択済みとします。
    // (郵便番号入力テキストボックスが1つの場合)
    $("#zipcode-search").click(function () {
        var requestUrl = "/api/t/zipcode/search";

        var zipcode = trim($("#postCode").val());

        if (zipcode.match(/^([0-9]{7})|([0-9]{3}-[0-9]{4})$/) == null) {
            return;
        }

        // 「-」が含まれている場合は消去
        zipcode = zipcode.replace(/-/, "");

        $.ajax({
            type: "POST",
            cache: false,
            url: requestUrl,
            data: { zipcode: zipcode },
            dataType: "json",
            success: function (data) {
                // 住所検索に成功したかどうかのフラグ
                if (data.ErrorCode === 0 && data.Data != null) {
                    // サーバーから返されたデータを受け取る
                    var prefID = data.Data.prefID;
                    var address = data.Data.address;

                    // 都道府県のセレクトボックスを選択状態に
                    $("#pref").val(prefID);

                    // 住所のテキストボックスをクリアして検索された住所を入力
                    $("#address1").val(address);
                }
            }
        });
    });

    // 現在入力されている郵便番号から都道府県、市区町村を検索し、選択済みとします。
    // (郵便番号入力テキストボックスが2つの場合)
    $("#zipcode-search2").click(function () {
        var requestUrl = "/api/t/zipcode/search";

        var zipcode1 = trim($("#postCode1").val());
        var zipcode2 = trim($("#postCode2").val());

        if (zipcode1.match(/^[0-9]{3}$/) == null ||
            zipcode2.match(/^[0-9]{4}$/) == null) {
            return;
        }

        var zipcode = zipcode1 + zipcode2;

        $.ajax({
            type: "POST",
            cache: false,
            url: requestUrl,
            data: { zipcode: zipcode },
            dataType: "json",
            success: function (data) {
                // 住所検索に成功したかどうかのフラグ
                if (data.ErrorCode === 0 && data.Data != null) {
                    // サーバーから返されたデータを受け取る
                    var prefID = data.Data.prefID;
                    var address = data.Data.address;

                    // 都道府県のセレクトボックスを選択状態に
                    $("#pref").val(prefID);

                    // 住所のテキストボックスをクリアして検索された住所を入力
                    $("#address1").val(address);
                }
            }
        });
    });

});


