// 部屋数変更処理
function changeLodgers(ev) {
	// 既存の部屋要素配列を取得
	val = $(this).val();
	lodgers = $('[class="lodgers"]').map(function(obj) {
		return $(this);
	});
	num = lodgers.length;

	if ((num - val) <= 0) {
		// 増
		for (i = 0; i < val; i++) {
			if (lodgers[i] == null) {
				ele = ev.data[0].clone(true);
				$('[class="lodgers"]:last').after(ele);
			} else {
				ele = lodgers[i];
			}
			ele.find('[class="combo_adulti"]').attr('name', 'combo_adulti' + (i + 1));
			ele.find('[class="combo_bambini"]').attr('name', 'combo_bambini' + (i + 1));
			ele.find('[class="label"]').text('部屋' + (i+1));
		}
	} else {
		// 減
		for (i = num-1; i >= val; i--) {
			lodgers[i].remove();
		}
	}
}



// 子供人数変更処理
function changeChildren(ev) {
	val = $(this).val();
	ages = $(this).parent().find('[class="age"]').map(function(obj) {
		return $(this);
	});

	num = ages.length;

	if ((num - val) <= 0) {
		for (i = 0; i < val; i++) {
			if (ages[i] == null) {
				ele = ages[0].clone(true);
				$(this).parent().find('[class="age"]:last').after(ele);
			} else {
				ele = ages[i]
			}
			name = $(this).parent().find('[class="combo_bambini"]').attr('name');
			age = ele.find('[class=combo_bambini_eta]');
			age.attr('name', 'combo_bambini_eta' + name.charAt(13) + (i + 1));
			ele.find('label').text('Age' + (i+1));
			ele.css('display', 'block');
		}
	} else {
		for (i = num-1; i >= val; i--) {
			if (i > 0 ) {
				ages[i].remove();
			} else {
				ages[i].css('display', 'none');
				age = ages[i].find('[class=combo_bambini_eta]').removeAttr('name');
			}
		}
	}
}



// 入力値チェック処理（簡易）
function validation1(ev) {
	error = validation();
	ret = true;

	// エラー表示
	if (error != '') {
		alert(error);
		ret = false;
	}

	return ret;
}



// 入力値チェック処理（詳細）
function validation2(ev) {
	combo_max = 4;	// 最大部屋人数
	total_max = 9;	// 最大合計人数
	error = validation();
	ret = true;

	total = 0;
	$('[class="lodgers"]').each(function(idx) {
		combo = parseInt($(this).find('[name^="combo_adulti"]').val());
		combo += parseInt($(this).find('[name^="combo_bambini"]').val());
		if (combo > combo_max) {
			error += 'Room' + (idx+1) + ' ： 人数が' + combo_max + '人を超えています。\n';
		}
		total += combo;

		$(this).find('[name^="combo_bambini_eta"]').each(function(idx2) {
			if ($(this).val() == '') {
				error += 'Room' + (idx+1) + ' ： Age' + (idx2+1) + 'を選択してください。\n';
				return;
			}
		});
	});

	if (total > total_max) {
		error += '合計人数が' + total_max + '人を超えています。\n';
	}

	// エラー表示
	if (error != '') {
		alert(error);
		ret = false;
	}

	return ret;
}



// 入力値チェック処理
function validation(ev) {
	error = '';

	// 連動メニュー優先
	if ($('#d_city').val() != '') {
		$('#destination_result').val($('#d_city').val());
	}

	if ($('#destination_result').val() == '') {
		error += '都市を入力または選択してください。\n';
	}

	val = $('#departure').val();
	if (val == '') {
		error += 'チェックイン日を入力してください。\n';
	} else {
		reg = new RegExp('^([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})$', 'gi');
		res = val.match(reg);
		if (!res) {
			error += 'チェックイン日はyyyy/mm/ddの形式で入力してください。\n';
		} else {
			// 到着日を設定
			date = new Date(val);
			date.setTime(date.getTime() + (parseInt($('[name="COMBO_GIORNI"]').val()) * 24 * 60 * 60 * 1000));
			d	= date.getDate();
			m	= date.getMonth() + 1;
			if (d < 10) { d = "0" + d };
			if (m < 10) { m = "0" + m };
			//$('[name="combo_finemm_aa"]').val(date.getDate() + '/' + (date.getMonth() + 1) + '/' + date.getFullYear());
			$('[name="combo_finemm_aa"]').val(d + '/' + m + '/' + date.getFullYear());

			// 日付形式をdd/mm/yyyyに変換してチェックイン日を設定
			str = val.split('/');
			$('[name="COMBO_INIZIOMM_AA"]').val(str[2] + '/' + str[1] + '/' + str[0])
		}
	}


	return error;
}



