//////////////
// 住所検索
/////////////
function chkZip() {
    // 郵便番号取得
    var zip = document.getElementById("EntryZip").value;

    // 郵便番号が数値7桁
    if (zip.length == 7 && !isNaN(zip)) {
        document.getElementById("SearchBtn").disabled = false;
    } else {
        document.getElementById("SearchBtn").disabled = true;
    }
}

//////////////
// 郵便番号送信
//////////////
function sendZip() {

    // フォームコピー
    for (var i = 0; i < document.Entry.elements.length; i++) {
        // エレメント取得
        var elm = document.Entry.elements[i];
        // IDを取得
        var mainId = elm.id;
        // 値を取得
        var val = elm.value;

        // コピー先
        for (var j = 0; j < document.SearchAddr.elements.length; j++) {
            // サブエレメント取得
            var subElm = document.SearchAddr.elements[j];
            // IDを取得
            var subId = subElm.id;

            // CheckBoxの場合
            if (elm.type == "checkbox" || elm.type == "radio") {
                // idが一致した場合
                if (mainId.indexOf(subId) >= 0) {
                    // チェック済み
                    if (elm.checked) {
                        // 値のコピー
                        subElm.value = val;
                        break;
                    }
                }
            } else {
                // idが一致した場合
                if (mainId == subId) {
                    // 値のコピー
                    subElm.value = val;
                    break;
                }
            }
        }
    }

    // 送信
    document.SearchAddr.submit();
}

/**
* 市区町村を取得する。
*/
function getCitySel() {
   // リクエストの発行
   new Ajax.Request(
       "/c/Entry/getCity",
       {
           "method" : "post",
           "parameters" : "data[Entry][aPrefCd]=" + document.getElementById("EntryPrefCd").value,
           "onComplete" : _setCitySel
       }
   );
}

/**
* 市区町村をセットする。
* @param req
*/
function _setCitySel(req) {

   // レスポンス取得
   var resTxt = req.responseText;

   // 配列取得
   var resArr = resTxt.split(",");

   // レスポンスが空の場合
   if(resArr == null || resArr.length == 0) {
       return;
   }

   _setOption(resArr, "addrId");
}

/**
* セレクトボックスを生成します。
* @param dataList セレクトボックスに設定するデータ
* @param itemIde 対象ID
*/
function _setOption(dataList, itemId) {

   // 対象リストの取得
   var option = document.getElementById(itemId);

   // リストの削除
   while (option.lastChild) {
       // 項目削除
       option.removeChild(option.lastChild);
   }

   // リスト追加
   for(i = 0; i < dataList.length; i++) {

       // 配列取得
       val = dataList[i].split(":");

       // 終了判定
       if (val[0] == "last") {
           break;
       }

       // リストボックスに追加
       option.options[i] = new Option(val[1], val[0]);
   }
}

/**
 * 生年月日を制御します。
 */
function controlBirthDay(dayIndex) {

    // 生年
    var year = document.getElementById("EntryBirthDayY");
    // 生月
    var month = document.getElementById("EntryBirthDayM");
    // 生日
    var day = document.getElementById("EntryBirthDayD");

    // オプションクリア
    while (day.lastChild) {
        day.removeChild(day.lastChild);
    }

    // 初期値設定
    day.options[0] = new Option("----", "");

    // 生年が入力されていない場合
    if (year.value == "") {
        // 生月
        month.selectedIndex = 0;
        month.disabled = true;
        // 生日
        day.selectedIndex = 0;
        day.disabled = true;

    // 生月が入力されていない場合
    } else if (month.value == "") {
        // 生月
        month.selectedIndex = 0;
        month.disabled = false;
        // 生日
        day.disabled = true;

    } else {
        // 生日
        day.disabled = false;

        // オプション個数
        var optCnt = 0;

        // 1,3,5,7,8,10,12月
        if (month.value == "1"
                || month.value == "3"
                || month.value == "5"
                || month.value == "7"
                || month.value == "8"
                || month.value == "10"
                || month.value == "12") {
            // オプション個数設定
            optCnt = 31;

        // 4,6,9,11月
        } else if (month.value == "4"
                || month.value == "6"
                || month.value == "9"
                || month.value == "11") {
            // オプション個数設定
            optCnt = 30;

        // 2月
        } else {
            // オプション個数設定
            optCnt = 28;

            // 年
            var yearInt = parseInt(year);
            // 年が4で割り切れる
            if (yearInt % 4 == 0) {
                // 年が100で割り切れる
                if (yearInt % 100 == 0) {
                    // 年が400で割り切れる
                    if (yearInt % 100 == 0) {
                        // オプション個数設定
                        optCnt = 29;
                    }
                } else {
                    // オプション個数設定
                    optCnt = 29;
                }
            }
        }

        // 生日のオプションセット
        for (var i = 1; i <= optCnt; i++) {
            day.options[i] = new Option(i, i);
        }

        // インデックスの設定
        if (optCnt >= dayIndex) {
            day.selectedIndex = dayIndex;
        }
    }
}

function blockEntryForm(){
    jQuery.blockUI.defaults.overlayCSS = {
        width: '98%',
        left: '1%',
        textAlign: 'center',
        backgroundColor: '#ffffff',
        opacity: '0.8',
        cursor: 'default'
    };

    jQuery('input#agree').bind('click', function(){
        if (jQuery(this).attr('checked')) {
            jQuery('div#form_entry').unblock();
        } else {
            jQuery('div#form_entry').block({fadeIn: 100,fadeOut: 700,message:false});
        }
    }).triggerHandler('click');
}

