/**
 * selectid:	セレクトボックスのID（文字列）
 * yearmonth:	セレクトボックスに追加する年月項目（文字列）の配列
 * defaultdate:	セレクトボックスで選択状態にしたい年月項目（文字列）
 */
function fillYearMonth(selectid, yearmonth, defaultyearmonth) {
	jQuery(selectid).empty();
	// セレクトボックスに年月の項目を追加する
	for (i = 0; i < yearmonth.length; i++) {
		var mon = yearmonth[i];
		jQuery(selectid).append(jQuery('<option>').attr({ value: mon}).text(formatYM(mon)));
	}
	jQuery(selectid).width();
	// 選択状態にする
	jQuery(selectid).val(defaultyearmonth);
}
/**
 * selectid:	セレクトボックスのID（文字列）
 * yearmonth:	セレクトボックスに追加する日項目の年月（文字列）
 * defaultdate:	セレクトボックスで選択状態にしたい日項目（文字列）
 */
function fillDate(selectid, yearmonth, defaultdate) {
	jQuery(selectid).empty();
	var lastday = getLastDayOfMonth(parseInt(yearmonth.substr(0, 4), 10), parseInt(yearmonth.substr(4), 10)); 
	for (i = 0; i < lastday; i++) {
		var date2 = "0" + (i + 1);
		date2 = date2.substr(date2.length - 2);
		jQuery(selectid).append(jQuery('<option>').attr({ value: date2}).text((i + 1) + "日"));
	}
	jQuery(selectid).width();
	if (defaultdate != "") {
		jQuery(selectid).val(defaultdate);
	}
}
function formatYM(mon) {
	if (mon.length != 6) return mon;
	return mon.slice(0, 4) + "年" + Number(mon.slice(4)) + "月";
}
function getLastDayOfMonth(year, month) {
    //日付を0にすると前月の末日を指定したことになります
    //指定月の翌月の0日を取得して末日を求めます
    //そのため、ここでは month - 1 は行いません
    var dt = new Date(year, month, 0);
    return dt.getDate();
}

jQuery(function(){
	jQuery.getJSON("/common/scripts/module/air/panel_pickup.json", function(json){
		var deptmon = json.deptmon;
		var arvlmon = json.arvlmon;
		var defaultDeptDate = [ json.defaultDeptDate.yearmonth,  json.defaultDeptDate.date ];
		var defaultArvlDate = [ json.defaultArvlDate.yearmonth,  json.defaultArvlDate.date ];

		// 出発年月を追加する
		fillYearMonth('#deptmonth', deptmon, defaultDeptDate[0]);
		// 現地出発年月を追加する
		fillYearMonth('#arvlmonth', arvlmon, defaultArvlDate[0]);
		// 出発日を追加する
		fillDate('#deptdate', defaultDeptDate[0], defaultDeptDate[1]);
		// 出発年月のセレクトボックスが変更された時の処理を指定
		jQuery('#deptmonth')
			.change(function(){
				var deptmonth = jQuery('#deptmonth').val();
				if (deptmonth == "") {
					return;
				}
				var deptdate = "";
				if (deptmonth == defaultDeptDate[0]) {
					deptdate = defaultDeptDate[1];
				}
				fillDate('#deptdate', deptmonth, deptdate);
		});
		// 現地出発日を追加する
		fillDate('#arvldate', defaultArvlDate[0], defaultArvlDate[1]);
		// 現地出発年月のセレクトボックスが変更された時の処理を指定
		jQuery('#arvlmonth')
			.change(function(){
				var arvlmonth = jQuery('#arvlmonth').val();
				if (arvlmonth == "") {
					return;
				}
				var arvldate = "";
				if (arvlmonth == defaultArvlDate[0]) {
					arvldate = defaultArvlDate[1];
				}
				fillDate('#arvldate', arvlmonth, arvldate);
		});
	});
});


