function date_dropdown_make(year_and_month_id, day_id, add_day, ym_change_func, d_change_func) {

	//■■年月セレクトボックス作成
/*
	if (navigator.platform.indexOf("Win") != -1){
	  gy = new Date().getYear();
	  if (navigator.appName == "Netscape"){
	    gy += 1900;
	  }  
	}else{
	  gy = new Date().getYear();
	  if (navigator.appName == "Microsoft Internet Explorer"){
	  }else{
	    gy += 1900;
	  }
	}
*/
	  gy = new Date().getFullYear();
	  gm = new Date().getMonth()+1;

	str = "";
	sgm = "";
	
	if (undefined != ym_change_func) {
		str = "<select name='" + year_and_month_id + "' id='" + year_and_month_id + "' size='1' onchange='" + ym_change_func + "'>";
	}
	else {
	str = "<select name='" + year_and_month_id + "' id='" + year_and_month_id + "' size='1'>";
	}
	//str = str + "<option value='2005/03/01' selected >-------- </option>"

	for (i=1; i <= 12; i++ ){

		if(gm > 12){
			gm = 1;
			gy = gy + 1;
		}
		if(gm < 10){
			sgm="0" + gm;
		}
		else {
			sgm="" + gm;
		}
		str=str + "<option value=" + gy + "/" + sgm + "/" + "01 >" + gy + "Years " + sgm + "Month" + "</option>";
		gm=gm+1;
	}

	str = str + "</select>　";
	document.write(str);

	//■日セレクトボックス作成
	str = "";
	
	if (undefined != d_change_func) {
		str = "<select name='" + day_id + "' id='" + day_id + "' size='1' onchange='" + d_change_func + "'>";
	}else {
	str = "<select name='" + day_id + "' id='" + day_id + "' size='1'>";
	}
	//str = str + "<option value='1' selected >--</option>"

	  gd = new Date().getDate();
	  gd = gd + add_day;
	for (i=1; i <= 31; i++ ){
		sgm=""+ i

		if(sgm==gd){
			str=str + "<option value=" + sgm + " selected >" + i + "Days" + "</option>";
		}
		else {
			str=str + "<option value=" + sgm + " >" + i + "Days" + "</option>";
		}
	}

	str = str + "</select>"
	document.write(str);
}


function date_dropdown_make2(year_id, month_id, day_id, add_day, y_change_func, m_change_func, d_change_func) {

	//■■年月セレクトボックス作成
/*
	if (navigator.platform.indexOf("Win") != -1){
	  gy = new Date().getYear();
	  if (navigator.appName == "Netscape"){
	    gy += 1900;
	  }  
	}else{
	  gy = new Date().getYear();
	  if (navigator.appName == "Microsoft Internet Explorer"){
	  }else{
	    gy += 1900;
	  }
	}
*/
	now = new Date();
	def_date = new Date(now.getFullYear(), now.getMonth(), now.getDate() + add_day);

	gy = def_date.getFullYear();
	gm = def_date.getMonth()+1;

	str = "";
	sgm = "";

	//	年ドロップダウン
	if (undefined != y_change_func) {
		str = "<select name='" + year_id + "' id='" + year_id + "' size='1' onchange='" + y_change_func + "'>";
	}
	else {
		str = "<select name='" + year_id + "' id='" + year_id + "' size='1'>";
	}
	str += "<option value=" + gy + ">" + gy + "</option>";
	if (gm != 1) {
		//	年の繰り上がり有
		str += "<option value=" + (gy + 1) + ">" + (gy + 1) + "</option>";
	}
	str = str + "</select> / ";

	//	月ドロップダウン
	if (undefined != m_change_func) {
		str += "<select name='" + month_id + "' id='" + month_id + "' size='1' onchange='" + m_change_func + "'>";
	}
	else {
		str += "<select name='" + month_id + "' id='" + month_id + "' size='1'>";
	}
	for (i = 1 ; i < 13 ; i ++) {
		if (gm == i) {
			str += "<option value=" + i + " selected >" + i + "</option>";
		}
		else {
			str += "<option value=" + i + ">" + i + "</option>";
		}
	}
	str = str + "</select> / ";

	//	日ドロップダウン
	gd = def_date.getDate();
	if (undefined != d_change_func) {
		str += "<select name='" + day_id + "' id='" + day_id + "' size='1' onchange='" + d_change_func + "'>";
	}else {
		str += "<select name='" + day_id + "' id='" + day_id + "' size='1'>";
	}
	for (i = 1 ; i <= 31 ; i ++) {
		if (gd == i) {
			str += "<option value=" + i + " selected >" + i + "</option>";
		}
		else {
			str += "<option value=" + i + ">" + i + "</option>";
		}
	}
	str = str + "</select>　";
	document.write(str);
}



//	チェックアウト日付を宿泊日数に変更する
function conv_checkout()
{
	
}

/*
* 検索ボックスの日付が正しいか確認する
*/
function search_date_check(stay_max) {
    var rsv_year_month = document.getElementById('dt_yyyymm');
    rsv_year_month = rsv_year_month.options[rsv_year_month.selectedIndex].value;
	var rsv_year = rsv_year_month.substr(0, 4);
	var rsv_month = rsv_year_month.substr(5, 2);
    var rsv_day = document.getElementById('dt_dd');
    rsv_day = rsv_day.options[rsv_day.selectedIndex].value;

	var rsv_date = new Date(rsv_year, rsv_month - 1, rsv_day);


    var rsv_end_year_month = document.getElementById('co_dt_yyyymm');
    rsv_end_year_month = rsv_end_year_month.options[rsv_end_year_month.selectedIndex].value;
    var rsv_end_year = rsv_end_year_month.substr(0, 4);
    var rsv_end_month = rsv_end_year_month.substr(5, 2);
    var rsv_end_day = document.getElementById('co_dt_dd');
    rsv_end_day = rsv_end_day.options[rsv_end_day.selectedIndex].value;
	var rsv_end_date = new Date(rsv_end_year, rsv_end_month, rsv_end_day);

    var now = new Date();
    var limit_date = calcDay(now.getFullYear(), now.getMonth(), now.getDate(), stay_max);

    // 日付妥当性チェック
    if (!checkDate(rsv_year, rsv_month, rsv_day) || 
        !checkDate(rsv_end_year, rsv_end_month, rsv_end_day)) {
        alert('Check-in date Check-out date is invalid');
        return false;
    }

    //  検索日＜検索終了日チェック
    if (rsv_date.getTime() > rsv_end_date.getTime()) {
        alert('Check-in date Check-out date is invalid');
        return false;
    }

    //  宿泊最大日チェック
	//	宿泊日数を計算
	var day_diff = datediff(rsv_year, rsv_month, rsv_day, rsv_end_year, rsv_end_month, rsv_end_day);
//    if (rsv_date.getTime() > limit_date.getTime() || rsv_end_date.getTime() > limit_date.getTime()) {
	if (day_diff > stay_max) {
        alert('(' + stay_max + 'days)is over the maximum number of nights reserved');
        return false;
    }

    //  過去日チェック
    if (compareYMD(now, rsv_date) < 0 || compareYMD(now, rsv_end_date) < 0) {
        alert('Can not find the last day');
        return false;
    }

    //  同日検索
    if (compareYMD(rsv_date, rsv_end_date) == 0) {
        alert('Please enter at least one night');
        return false;
    }

    //  問題ない
	//	宿泊日数計算
	document.getElementById('le').value = day_diff;

    return true;
}


/*
* 検索ボックスの日付が正しいか確認する
*/
function search_date_check2(stay_max) {
    var rsv_year = document.getElementById('dt_yyyy');
    rsv_year = rsv_year.options[rsv_year.selectedIndex].value;
    var rsv_month = document.getElementById('dt_mm');
    rsv_month = rsv_month.options[rsv_month.selectedIndex].value;
    var rsv_day = document.getElementById('dt_dd');
    rsv_day = rsv_day.options[rsv_day.selectedIndex].value;

	var rsv_date = new Date(rsv_year, rsv_month - 1, rsv_day);


    var rsv_end_year = document.getElementById('co_dt_yyyy');
    rsv_end_year = rsv_end_year.options[rsv_end_year.selectedIndex].value;
    var rsv_end_month = document.getElementById('co_dt_mm');
    rsv_end_month = rsv_end_month.options[rsv_end_month.selectedIndex].value;
    var rsv_end_day = document.getElementById('co_dt_dd');
    rsv_end_day = rsv_end_day.options[rsv_end_day.selectedIndex].value;
	var rsv_end_date = new Date(rsv_end_year, rsv_end_month, rsv_end_day);

    var now = new Date();
    var limit_date = calcDay(now.getFullYear(), now.getMonth(), now.getDate(), stay_max);

    // 日付妥当性チェック
    if (!checkDate(rsv_year, rsv_month, rsv_day) || 
        !checkDate(rsv_end_year, rsv_end_month, rsv_end_day)) {
        alert('チェックイン日 / チェックアウト日が不正です。');
        return false;
    }

    //  検索日＜検索終了日チェック
    if (rsv_date.getTime() > rsv_end_date.getTime()) {
        alert('チェックイン日 / チェックアウト日が不正です。');
        return false;
    }

    //  宿泊最大日チェック
	//	宿泊日数を計算
	var day_diff = datediff(rsv_year, rsv_month, rsv_day, rsv_end_year, rsv_end_month, rsv_end_day);
//    if (rsv_date.getTime() > limit_date.getTime() || rsv_end_date.getTime() > limit_date.getTime()) {
	if (day_diff > stay_max) {
        alert('予約最大泊数(' + stay_max + '日)を超えています。');
        return false;
    }

    //  過去日チェック
    if (compareYMD(now, rsv_date) < 0 || compareYMD(now, rsv_end_date) < 0) {
        alert('過去日の検索はできません');
        return false;
    }

    //  同日検索
    if (compareYMD(rsv_date, rsv_end_date) == 0) {
        alert('1泊以上入力してください');
        return false;
    }

    //  問題ない
	//	宿泊日数計算
	document.getElementById('le').value = day_diff;
	document.getElementById('dt_yyyymm').value = rsv_year + "/" + rsv_month + "/01";

    return true;
}


/**
* 日付の妥当性チェック
* year 年
* month 月
* day 日
*/
function checkDate(year, month, day) {
    var dt = new Date(year, month - 1, day);
    if (dt == null || dt.getFullYear() != year || dt.getMonth() + 1 != month || dt.getDate() != day) {
        return false;
    }
    return true;
}

/**
* 日付比較
* return -1 : d1の方が大きい
*         0 : d1 = d2
*         1 : d1の方が小さい
*/
function compareYMD(d1, d2) {
    //  年の比較
    if (d1.getFullYear() > d2.getFullYear()) {
        return -1;
    }
    else if (d1.getFullYear() < d2.getFullYear()) {
        return 1;
    }

    if (d1.getMonth() > d2.getMonth()) {
        return -1;
    }
    else if (d1.getMonth() < d2.getMonth()) {
        return 1;
    }

    if (d1.getDate() > d2.getDate()) {
        return -1;
    }
    else if (d1.getDate() < d2.getDate()) {
        return 1;
    }
   
   return 0;
}

/**
* 年月日と加算日からn日後、n日前を求める関数
* year 年
* month 月
* day 日
* addDays 加算日。マイナス指定でn日前も設定可能
*/
function calcDay(year, month, day, addDays) {
    var dt = new Date(year, month, day);
    var baseSec = dt.getTime();
    var addSec = addDays * 86400000; //日数 * 1日のミリ秒数
    var targetSec = baseSec + addSec;
    dt.setTime(targetSec);
    return dt;
}


/**
 * 2つの日付の差を求める関数
 * year1 1つのめ日付の年
 * month1 1つめの日付の月
 * day1 1つめの日付の日
 * year2 2つのめ日付の年
 * month2 2つめの日付の月
 * day2 2つめの日付の日
 */
function datediff(year1, month1, day1, year2, month2, day2) {
    var dt1 = new Date(year1, month1 - 1, day1);
    var dt2 = new Date(year2, month2 - 1, day2);
    var diff = dt2 - dt1;
    var diffDay = diff / 86400000;//1日は86400000ミリ秒
    return diffDay;
}

/**
 * ホテルのドロップダウンリストをエリアに絞る
 */
function change_hotels_from_area() {

	var area_no = document.getElementById('area').options[document.getElementById('area').selectedIndex].value;
	
	var areas =
		[
			"Ikebukuro / Shinjyuku",
			"Ueno / Asakusa / Akihabara",
			"Akasaka / Shinagawa / Hamamatsucho",
			"Machida",
			"Kawasaki",
			"Yokohama",
			"Maihama / Shin-Urayasu",
			"Kansai（Osaka / Kyoto）",
			"Fukuoka",
			"All area"
		];

	var hotels =
		[

			[["Flexstay Higashi-Ikebukuro Inn",            8, 0],
			 //["Weekly Mansion Ikebukuro",              7, 0],
			 ["Weekly Mansion Ikebukuro-Kita",            5, 0],
			 ["Weekly Mansion Sugamo",              9, 0],
			 ["Weekly Mansion Ekoda",            6, 0],
			 ["Weekly Mansion Tokiwadai",            4, 0],
			 ["Weekly Mansion Higashi-Jujo",            3, 0],
			 //["Weekly Mansion Takadanobaba",          1, 0],
			 ["Weekly Mansion Iidabashi",            2, 0],
			 ["Nishi-Shinjuku Hotel MyStays",        44, 0]],

			[["Weekly Mansion Kameido",             21, 1],
			 ["Weekly Mansion Ueno",             16, 1],
			 ["Weekly Mansion Higashi-Ueno",           17, 1],
			 ["Flexstay Nippori Inn",           18, 1],
			 ["Weekly Mansion Asakusa",             15, 1],
			 ["Weekly Mansion Nihonbashi",           19, 1],
			 ["Weekly Mansion Fukagawa",             20, 1],
			 ["Flexstay Kanda Inn",             32, 1],
			 ["Hotel MyStays Ochanomizu",     34, 1],
			 ["MyStays inn Asakusa-bashi",        43, 1]],			
			 //["Weekly Mansion Iidabashi",            2, 1],
			 
			 

			[["Weekly Mansion Akasaka",             13, 2],
			 ["Weekly Mansion Shirogane",             14, 2],
			 ["Flexstay Gotanda Inn",           12, 2],
			 ["Weekly Mansion Nakanobu",             10, 2],
			 ["Weekly Mansion Shinagawa",             11, 2],
			 ["Hotel MyStays Hamamatsucho",               33, 2]],
			 //["MyStays インKamata",                   41, 2],

			[["Weekly Mansion Machida",             22, 3]],

			 [["Weekly Mansion Kawasaki-Nishiguchi",         25, 4],
			 ["Weekly Mansion Kawasaki-Kaizuka",         24, 4],
			 ["Weekly Mansion Kawasaki-Ogawacho",       23, 4],
			 ["Weekly Mansion Tamagawa",           26, 4],
			 ["MyStays inn Kamata",          41, 4]],

			 [["Weekly Mansion Yokohama",         27, 5],
			 ["Weekly Mansion Sakuragicho",           28, 5],
			 ["Hotel MyStays Yokohama",         35, 5]],

			 [["Weekly Mansion Shin-Urayasu",       29, 6],
			 ["Hotel MyStays Maihama",         36, 6],
			 ["MyStays Shin-Urayasu",       37, 6]],

			[["Weekly Mansion Otemae",           30, 7],
			 ["Flexstay Shinsaibashi Inn",           31, 7],
			 ["Hotel MyStays Kyoto-shijo",       38, 7],
			 ["MyStays inn Sakaisuji-Honmachi",      42, 7]],

			[["Hotel MyStays Fukuoka Tenjin",     39, 8],
			 ["MyStays inn Fukuoka Tenjin-Minami", 40, 8]],

			[["Flexstay Higashi-Ikebukuro Inn",           8 , 0],
			 //["Weekly Mansion Ikebukuro",             7 , 0],
			 ["Weekly Mansion Ikebukuro-Kita",           5 , 0],
			 ["Weekly Mansion Sugamo",             9 , 0],
			 ["Weekly Mansion Ekoda",           6 , 0],
			 ["Weekly Mansion Tokiwadai",           4 , 0],
			 ["Weekly Mansion Higashi-Jujo",           3 , 0],
			 //["Weekly Mansion Takadanobaba",         1 , 0],
			 ["Weekly Mansion Iidabashi",           2 , 0],
 			 ["Nishi-Shinjuku Hotel MyStays",        44, 0],
			 ["Weekly Mansion Kameido",             21, 1],
			 ["Weekly Mansion Ueno",             16, 1],
			 ["Weekly Mansion Higashi-Ueno",           17, 1],
			 ["Flexstay Nippori Inn",           18, 1],
			 ["Weekly Mansion Asakusa",             15, 1],
			 ["Weekly Mansion Nihonbashi",           19, 1],
			 ["Weekly Mansion Fukagawa",             20, 1],
			 ["Flexstay Kanda Inn",                 32, 1],
			 ["Hotel MyStays Ochanomizu",             34, 1],
			 ["MyStays inn Asakusa-bashi",                 43, 1],
			 ["Weekly Mansion Akasaka",             13, 2],
			 ["Weekly Mansion Shirogane",             14, 2],
			 ["Flexstay Gotanda Inn",           12, 2],
			 ["Weekly Mansion Nakanobu",             10, 2],
			 ["Weekly Mansion Shinagawa",             11, 2],
			 ["Hotel MyStays Hamamatsucho",               33, 2],
			 ["MyStays inn Kamata",                   41, 2],
			 ["Weekly Mansion Machida",             22, 3],
			 ["Weekly Mansion Kawasaki-Nishiguchi",         25, 4],
			 ["Weekly Mansion Kawasaki-Kaizuka",         24, 4],
			 ["Weekly Mansion Kawasaki-Ogawacho",       23, 4],
			 ["Weekly Mansion Tamagawa",           26, 4],
			 ["MyStays inn Kamata",                   41, 4],
			 ["Weekly Mansion Yokohama",         27, 5],
			 ["Weekly Mansion Sakuragicho",           28, 5],
			 ["Hotel MyStays Yokohama",         35, 5],
			 ["Weekly Mansion Shin-Urayasu",       29, 6],
			 ["Hotel MyStays Maihama",         36, 6],
			 ["MyStays Shin-Urayasu",       37, 6],
			 ["Weekly Mansion Otemae",           30, 7],
			 ["Flexstay Shinsaibashi Inn",           31, 7],
			 ["Hotel MyStays Kyoto-shijo",       38, 7],
			 ["MyStays inn Sakaisuji-Honmachi",      42, 7],
			 ["Hotel MyStays Fukuoka Tenjin",     39, 8],
			 ["MyStays inn Fukuoka Tenjin-Minami", 40, 8]]
		];


	var ddl_hotels = document.getElementById('hi_id');

	removeChildren(ddl_hotels);
	
	var i;
	var bef_area = -1;
	for (i = 0 ; i < hotels[area_no].length ; i ++) {
		
		if (bef_area != hotels[area_no][i][2]) {
			var optgp = document.createElement('optgroup');
			optgp.label = areas[hotels[area_no][i][2]];

			ddl_hotels.appendChild(optgp);
			bef_area = hotels[area_no][i][2];
		}
		
		ddl_hotels.options[ddl_hotels.options.length] = new Option(hotels[area_no][i][0], hotels[area_no][i][1]);
	}

}

/**
 * 子要素をすべて削除
 */
function removeChildren(x)
{
    if (x.hasChildNodes()) {
        while (x.childNodes.length > 0) {
            x.removeChild(x.firstChild)
        }
    }
}


function gotoRsvConfirmPage() {
	var hi_id = document.getElementById('hi_id').options[document.getElementById('hi_id').selectedIndex].value;
	
	if (hi_id <= 0) {
		alert('Hotel');
		return false;
	}

	window.open('https://advance.reservation.jp/wmt/stay_pc/rsv/cnf_rsv_ent.aspx?lang=en-US&hi_id=' + hi_id, 'smart');
}


function setCheckoutDate() {
	var checkin_ym = document.getElementById('dt_yyyymm').options[document.getElementById('dt_yyyymm').selectedIndex].value;
	var checkin_d = document.getElementById('dt_dd').options[document.getElementById('dt_dd').selectedIndex].value;
	var checkout_ym = document.getElementById('co_dt_yyyymm').options[document.getElementById('co_dt_yyyymm').selectedIndex].value;
	var checkout_d = document.getElementById('co_dt_dd').options[document.getElementById('co_dt_dd').selectedIndex].value;

	//	日付妥当性チェック
	if (!checkDate((checkin_ym.split("/")[0] * 1), (checkin_ym.split("/")[1] * 1), (checkin_d * 1))) {
		alert('The selected date is not valid');
		return;
	}

	var checkin_date = new Date((checkin_ym.split("/")[0] * 1), (checkin_ym.split("/")[1] * 1) - 1, (checkin_d * 1));
	var checkout_date = new Date((checkout_ym.split("/")[0] * 1), (checkout_ym.split("/")[1] * 1) - 1, (checkout_d * 1));

	if (checkin_date.getTime() >= checkout_date.getTime()) {
		//	チェックアウト日を超えている
		checkout_date = computeDate(checkin_date.getFullYear(), checkin_date.getMonth() + 1, checkin_date.getDate(), 1);

		var i;
		var co_dt_yyyymm = document.getElementById('co_dt_yyyymm');
		for (i = 0 ; i < co_dt_yyyymm.options.length ; i ++) {
			if ((co_dt_yyyymm.options[i].value.split("/")[0] * 1) == checkout_date.getFullYear() &&
				(co_dt_yyyymm.options[i].value.split("/")[1] * 1) == (checkout_date.getMonth() + 1)) {
				co_dt_yyyymm.options.selectedIndex = i;
				break;
			}
		}
		
		var co_dt_dd = document.getElementById('co_dt_dd');
		for (i = 0 ; i < co_dt_dd.options.length ; i ++) {
			if (co_dt_dd.options[i].value == checkout_date.getDate()) {
				co_dt_dd.options.selectedIndex = i;
				break;
			}
		}
	}
}


function setCheckoutDate2() {
	var checkin_y = document.getElementById('dt_yyyy').options[document.getElementById('dt_yyyy').selectedIndex].value * 1;
	var checkin_m = document.getElementById('dt_mm').options[document.getElementById('dt_mm').selectedIndex].value * 1;
	var checkin_d = document.getElementById('dt_dd').options[document.getElementById('dt_dd').selectedIndex].value * 1;
	var checkout_y = document.getElementById('co_dt_yyyy').options[document.getElementById('co_dt_yyyy').selectedIndex].value * 1;
	var checkout_m = document.getElementById('co_dt_mm').options[document.getElementById('co_dt_mm').selectedIndex].value * 1;
	var checkout_d = document.getElementById('co_dt_dd').options[document.getElementById('co_dt_dd').selectedIndex].value * 1;

	//	日付妥当性チェック
	if (!checkDate(checkin_y, checkin_m, checkin_d)) {
		alert('選択された日付が正しくありません');
		return;
	}

	var checkin_date = new Date(checkin_y, checkin_m - 1, checkin_d);
	var checkout_date = new Date(checkout_y, checkout_m - 1, checkout_d);

	if (checkin_date.getTime() >= checkout_date.getTime()) {
		//	チェックアウト日を超えている
		checkout_date = computeDate(checkin_date.getFullYear(), checkin_date.getMonth() + 1, checkin_date.getDate(), 1);

		var co_dt_yyyy = document.getElementById('co_dt_yyyy');
		for (i = 0 ; i < co_dt_yyyy.options.length ; i ++) {
			if ((co_dt_yyyy.options[i].value * 1) == checkout_date.getFullYear()) {
				co_dt_yyyy.options.selectedIndex = i;
			}
		}

		var co_dt_mm = document.getElementById('co_dt_mm');
		for (i = 0 ; i < co_dt_mm.options.length ; i ++) {
			if ((co_dt_mm.options[i].value * 1) == (checkout_date.getMonth() + 1)) {
				co_dt_mm.options.selectedIndex = i;
			}
		}

		var co_dt_dd = document.getElementById('co_dt_dd');
		for (i = 0 ; i < co_dt_dd.options.length ; i ++) {
			if ((co_dt_dd.options[i].value * 1) == checkout_date.getDate()) {
				co_dt_dd.options.selectedIndex = i;
			}
		}
	}
}
	
function setCheckinDate() {

	var checkin_y = document.getElementById('dt_yyyy').options[document.getElementById('dt_yyyy').selectedIndex].value;
	var checkin_d = document.getElementById('dt_dd').options[document.getElementById('dt_dd').selectedIndex].value;
	var checkout_ym = document.getElementById('co_dt_yyyymm').options[document.getElementById('co_dt_yyyymm').selectedIndex].value;
	var checkout_d = document.getElementById('co_dt_dd').options[document.getElementById('co_dt_dd').selectedIndex].value;

	//	日付妥当性チェック
	if (!checkDate((checkout_ym.split("/")[0] * 1), (checkout_ym.split("/")[1] * 1), (checkout_d * 1))) {
		alert('The selected date is not valid');
		return;
	}

	var checkin_date = new Date(parseInt(checkin_ym.split("/")[0]), (checkin_ym.split("/")[1] * 1) - 1, checkin_d * 1);
	var checkout_date = new Date(parseInt(checkout_ym.split("/")[0]), (checkout_ym.split("/")[1] * 1) - 1, checkout_d * 1);

	if (checkin_date.getTime() >= checkout_date.getTime()) {
		//	チェックアウト日を超えている
		checkin_date = computeDate(checkout_date.getFullYear(), checkout_date.getMonth() + 1, checkout_date.getDate(), -1);

		var i;
		var dt_yyyymm = document.getElementById('dt_yyyymm');
		for (i = 0 ; i < dt_yyyymm.options.length ; i ++) {
			if ((dt_yyyymm.options[i].value.split("/")[0] * 1) == checkin_date.getFullYear() &&
				(dt_yyyymm.options[i].value.split("/")[1] * 1) == (checkin_date.getMonth() + 1)) {
				dt_yyyymm.options.selectedIndex = i;
				break;
			}
		}

		var dt_dd = document.getElementById('dt_dd');
		for (i = 0 ; i < dt_dd.options.length ; i ++) {
			if (dt_dd.options[i].value == checkin_date.getDate()) {
				dt_dd.options.selectedIndex = i;
				break;
			}
		}
	}
}


function setCheckinDate2() {

	var checkin_y = document.getElementById('dt_yyyy').options[document.getElementById('dt_yyyy').selectedIndex].value * 1;
	var checkin_m = document.getElementById('dt_mm').options[document.getElementById('dt_mm').selectedIndex].value * 1;
	var checkin_d = document.getElementById('dt_dd').options[document.getElementById('dt_dd').selectedIndex].value * 1;
	var checkout_y = document.getElementById('co_dt_yyyy').options[document.getElementById('co_dt_yyyy').selectedIndex].value * 1;
	var checkout_m = document.getElementById('co_dt_mm').options[document.getElementById('co_dt_mm').selectedIndex].value * 1;
	var checkout_d = document.getElementById('co_dt_dd').options[document.getElementById('co_dt_dd').selectedIndex].value * 1;

	//	日付妥当性チェック
	if (!checkDate(checkin_y, checkin_m, checkin_d)) {
		alert('選択された日付が正しくありません');
		return;
	}

	var checkin_date = new Date(checkin_y, checkin_m - 1, checkin_d);
	var checkout_date = new Date(checkout_y, checkout_m - 1, checkout_d);

	if (checkin_date.getTime() >= checkout_date.getTime()) {
		//	チェックアウト日を超えている
		checkin_date = computeDate(checkout_date.getFullYear(), checkout_date.getMonth() + 1, checkout_date.getDate(), -1);

		var i;
		var dt_yyyy = document.getElementById('dt_yyyy');
		for (i = 0 ; i < dt_yyyy.options.length ; i ++) {
			if ((dt_yyyy.options[i].value * 1) == checkin_date.getFullYear()) {
				dt_yyyy.options.selectedIndex = i;
			}
		}

		var dt_mm = document.getElementById('dt_mm');
		for (i = 0 ; i < dt_mm.options.length ; i ++) {
			if ((dt_mm.options[i].value * 1) == (checkin_date.getMonth() + 1)) {
				dt_mm.options.selectedIndex = i;
			}
		}

		var dt_dd = document.getElementById('dt_dd');
		for (i = 0 ; i < dt_dd.options.length ; i ++) {
			if ((dt_dd.options[i].value * 1) == checkin_date.getDate()) {
				dt_dd.options.selectedIndex = i;
			}
		}
	}
}


//n日後、n日前の日付を求める
/**
 * 年月日と加算日からn日後、n日前を求める関数
 * year 年
 * month 月
 * day 日
 * addDays 加算日。マイナス指定でn日前も設定可能
 */
function computeDate(year, month, day, addDays) {
    var dt = new Date(year, month - 1, day);
    var baseSec = dt.getTime();
    var addSec = addDays * 86400000;//日数 * 1日のミリ秒数
    var targetSec = baseSec + addSec;
    dt.setTime(targetSec);
    return dt;
}


/**
 * 日付の妥当性チェック
 * year 年
 * month 月
 * day 日
 */
function checkDate(year, month, day) {
    var dt = new Date(year, month - 1, day);
    if(dt == null || dt.getFullYear() != year || dt.getMonth() + 1 != month || dt.getDate() != day) {
        return false;
    }
    return true;
}


