// フォーム一体型LP専用
function fnCallAddress2(php_url, tagname1, input1, input2, hidden1) {
	var zip = document.form1[tagname1].value;
	var arrZip, zip1, zip2;

	if (zip == '') return;
	zip = zip.trim();
	if (zip.indexOf("-") > 0) {
		arrZip = zip.split("-");
		zip1 = arrZip[0];
		zip2 = arrZip[1];
	} else {
		zip1 = zip.substring(0, 3);
		zip2 = zip.substring(3);
	}

	if(zip1.length === 3 && zip2.length === 4) {
		$.get(
			php_url,
			{zip1: zip1, zip2: zip2, input1: input1, input2: input2},
			function(data) {
				var arrData = data.split("|");
				if (arrData.length > 1) {
					eccube.putAddress(input1, input2, arrData[0], arrData[1], arrData[2]);
					$("input[name=" + hidden1 + "]").val(arrData[1] + arrData[2]);
// A => 2022.06.06 LP送付先
//					var new_zip = $("input[name=zip01]").val();
//					var new_pref = $("select[name=pref]").val();
					var new_zip = $("input[name=" + tagname1 + "]").val();
					var new_pref = $("select[name=" + input1 + "]").val();

					// ログイン時は入力項目がないためhiddenから取得する
					if (new_pref === undefined) {
						new_pref = $("input[name=" + input1 + "]").val();
					}
// A <= 2022.06.06 LP送付先
					fnGetFirstDelivDate(new_zip, new_pref);
					if (typeof execute_validation === 'function') {
						execute_validation(document.querySelector('input[name="' + input2 + '"]'));
					}
					if (typeof execute_select_validation === 'function') {
						execute_select_validation(document.querySelector('select[name="' + input1 + '"]'));
					}
				} else {
					window.alert(data);
				}
			}
		);
	}
}

$(document).ready(function() {
	// 都道府県プルダウン変更イベント処理
	$("select[name=pref]").change( function () {
		var zip = $("input[name=zip01]").val();
		var pref = $("select[name=pref]").val();
		fnGetFirstDelivDate(zip, pref);
	});
});

// 初回お届け日選択肢再構築
function fnGetFirstDelivDate(zip, pref, date_required=0) {
	var transactionid = $("input[name=transactionid]").val();
	var select_product_id = $('#select_product_id').val();
	var $form = $('form[name=form_product_detail_' + select_product_id + ']');
	var lp_deliv_id = $form.find('input[name=lp_deliv_id]').val();
	var lp_product_class_id = $form.find('input[name=product_class_id]').val();
	var mode = $("input[name=mode]").val();
	if (zip.length == 7 && pref.length > 0) {
		var postData = new Object;
		postData['transactionid'] = transactionid;
		postData['mode'] = 'select_deliv';
		postData['select_product_id'] = select_product_id;
		postData['lp_deliv_id'] = lp_deliv_id;
		postData['lp_product_class_id'] = lp_product_class_id;
		postData['zip'] = zip;
		postData['pref'] = pref;
		if (mode == 'teiki_twoclick') {
			postData['teiki'] = 1;
		} else {
			postData['teiki'] = 0;
		}

		$.ajax({
			type: "POST",
			url: location.pathname,
			data: postData,
			cache: false,
			dataType: "json",
			error: function(XMLHttpRequest, textStatus, errorThrown){
				alert(textStatus);
			},
			success : function(data, dataType) {
				if (data.error) {
					remoteException();
				} else {
					$form.find('input[name=deliv_fee]').val(data.deliv_fee);
					$form.find('input[name=deliv_free_area]').val(data.deliv_free_area);
					eccube.getDelivFeeForLP($form);

					// お届け日を生成
					var deliv_date_id_select = $('select[id^=deliv_date]');
					var date_selected_val = deliv_date_id_select.val();
					deliv_date_id_select.empty();
					if(date_required == 0) {
						deliv_date_id_select.append($('<option />').text('指定なし').val(''));
					}
					// 選択状態を復元
					for (var i in data.arrDelivDate) {
						if (i == date_selected_val) {
							var option = $('<option />')
								.val(i)
								.text(data.arrDelivDate[i])
								.attr('selected', 'selected')
								.appendTo(deliv_date_id_select);
						} else {
							var option = $('<option />')
								.val(i)
								.text(data.arrDelivDate[i])
								.appendTo(deliv_date_id_select);
						}
					}
					if (data.arrDelivDate.length==0) {
						deliv_date_id_select.hide();
						$('#date_no_selectable').show();
					} else {
						deliv_date_id_select.show();
						$('#date_no_selectable').hide();
					}

					// お届け便表示制御
					$('input[id^=deliv_express]').val(data.deliv_express);
					showDelivExpressArea(data.deliv_express);
					$('input[id^=express_date]').val(data.express_date);
					$('#express_date_str').text(data.tpl_express_date_str);

					// お届け時間を生成
					var deliv_time_id_select = $('select[id^=deliv_time_id]');
					var time_selected_val = deliv_time_id_select.val();
					deliv_time_id_select.empty();
					deliv_time_id_select.append($('<option />').text('指定なし').val(''));
					// 選択状態を復元
					for (var i in data.arrDelivTime) {
						if (i == time_selected_val) {
							var option = $('<option />')
								.val(i)
								.text(data.arrDelivTime[i])
								.attr('selected', 'selected')
								.appendTo(deliv_time_id_select);
						} else {
							var option = $('<option />')
								.val(i)
								.text(data.arrDelivTime[i])
								.appendTo(deliv_time_id_select);
						}
					}
					if (data.arrDelivTime.length==0) {
						deliv_time_id_select.hide();
						$('#time_no_selectable').show();
					} else {
						deliv_time_id_select.show();
						$('#time_no_selectable').hide();
					}

					// 2回目お届け時間を生成
					var period_delivery_time = $('select[id=period_delivery_time]');
					if (period_delivery_time && period_delivery_time.length) {
						var period_time_selected_val = period_delivery_time.val();
						period_delivery_time.empty();
						period_delivery_time.append($('<option />').text('指定なし').val(''));
						// 選択状態を復元
						for (var i in data.arrDelivTime) {
							if (i == period_time_selected_val) {
								var option = $('<option />')
									.val(i)
									.text(data.arrDelivTime[i])
									.attr('selected', 'selected')
									.appendTo(period_delivery_time);
							} else {
								var option = $('<option />')
									.val(i)
									.text(data.arrDelivTime[i])
									.appendTo(period_delivery_time);
							}
						}
						if (data.arrDelivTime.length==0) {
							period_delivery_time.hide();
							$('#time_no_selectable2').show();
						} else {
							period_delivery_time.show();
							$('#time_no_selectable2').hide();
						}
					}

					// 2回目お届け日を生成
					delivDates = [];
					for (var i in data.arrSecondDate) {
						delivDates.push(i);
					}
					$('span[id=next_period_label]').trigger('click');
				}
			}
		});
	}
}
