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 + "年 " + sgm + "月" + "</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 + "日" + "</option>";
		}
		else {
			str=str + "<option value=" + sgm + " >" + 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('チェックイン日・チェックアウト日が不正です。');
        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;

    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 =
		[
			"池袋・新宿",
			"上野・浅草・秋葉原",
			"赤坂・品川・浜松町",
			"町田",
			"川崎",
			"横浜",
			"舞浜・新浦安",
			"関西（大阪・京都）",
			"福岡",
			"すべてのエリア"
		];

	var hotels =
		[

			[["ウィークリーマンション東池袋",            8, 0],
/*			 ["ウィークリーマンション池袋",              7, 0],*/
			 ["ウィークリーマンション池袋北",            5, 0],
			 ["ウィークリーマンション巣鴨",              9, 0],
			 ["ウィークリーマンション江古田",            6, 0],
			 ["ウィークリーマンション常盤台",            4, 0],
			 ["ウィークリーマンション東十条",            3, 0],
/*			 ["ウィークリーマンション高田馬場",          1, 0],*/
			 ["ウィークリーマンション飯田橋",            2, 0],
			 ["西新宿ホテルマイステイズ",            44, 0]],

			[["ウィークリーマンション亀戸",             21, 1],
			 ["ウィークリーマンション上野",             16, 1],
			 ["ウィークリーマンション東上野",           17, 1],
			 ["ウィークリーマンション日暮里",           18, 1],
			 ["ウィークリーマンション浅草",             15, 1],
			 ["ウィークリーマンション日本橋",           19, 1],
			 ["ウィークリーマンション深川",             20, 1],
			 ["フレックステイ神田イン",             32, 1],
			 ["ホテルマイステイズ御茶ノ水",     34, 1],
			 ["マイステイズイン浅草橋",        43, 1]],
			 //["ウィークリーマンション飯田橋",            2, 1],
			 
			 

			[["ウィークリーマンション赤坂",             13, 2],
			 ["ウィークリーマンション白金",             14, 2],
			 ["ウィークリーマンション五反田",           12, 2],
			 ["ウィークリーマンション中延",             10, 2],
			 ["ウィークリーマンション品川",             11, 2],
			 ["ホテルマイステイズ浜松町",               33, 2]],
			 //["マイステイズイン蒲田",                   41, 2],

			[["ウィークリーマンション町田",             22, 3]],

			[["ウィークリーマンション川崎貝塚",         24, 4],
			 ["ウィークリーマンション川崎小川町",       23, 4],
			 ["ウィークリーマンション多摩川",           26, 4],
			 ["マイステイズイン蒲田",          41, 4]],

			 [["ウィークリーマンション横浜",         27, 5],
			 ["ウィークリーマンション桜木町",           28, 5],
			 ["ホテルマイステイズ横浜",         35, 5]],

			 [["ウィークリーマンション新浦安",       29, 6],
			 ["ホテルマイステイズ舞浜",         36, 6],
			 ["マイステイズ新浦安",       37, 6]],

			[["ウィークリーマンション大手前",           30, 7],
			 ["フレックステイ心斎橋イン",           31, 7],
			 ["ホテルマイステイズ京都四条",       38, 7],
			 ["マイステイズイン堺筋本町",      42, 7]],

			[["ホテルマイステイズ福岡天神",     39, 8],
			 ["マイステイズイン福岡天神南", 40, 8]],

			[["ウィークリーマンション東池袋",           8 , 0],
/*			 ["ウィークリーマンション池袋",             7 , 0],*/
			 ["ウィークリーマンション池袋北",           5 , 0],
			 ["ウィークリーマンション巣鴨",             9 , 0],
			 ["ウィークリーマンション江古田",           6 , 0],
			 ["ウィークリーマンション常盤台",           4 , 0],
			 ["ウィークリーマンション東十条",           3 , 0],
/*			 ["ウィークリーマンション高田馬場",         1 , 0],*/
			 ["ウィークリーマンション飯田橋",           2 , 0],
			 ["ウィークリーマンション亀戸",             21, 1],
			 ["ウィークリーマンション上野",             16, 1],
			 ["ウィークリーマンション東上野",           17, 1],
			 ["ウィークリーマンション日暮里",           18, 1],
			 ["ウィークリーマンション浅草",             15, 1],
			 ["ウィークリーマンション日本橋",           19, 1],
			 ["ウィークリーマンション深川",             20, 1],
			 ["ウィークリーマンション赤坂",             13, 2],
			 ["ウィークリーマンション白金",             14, 2],
			 ["ウィークリーマンション五反田",           12, 2],
			 ["ウィークリーマンション中延",             10, 2],
			 ["ウィークリーマンション品川",             11, 2],
			 ["ウィークリーマンション町田",             22, 3],
			 ["ウィークリーマンション川崎貝塚",         24, 4],
			 ["ウィークリーマンション川崎小川町",       23, 4],
			 ["ウィークリーマンション多摩川",           26, 4],
			 ["ウィークリーマンション横浜",         27, 5],
			 ["ウィークリーマンション桜木町",           28, 5],
			 ["ウィークリーマンション新浦安",       29, 6],
			 ["ウィークリーマンション大手前",           30, 7],
			 ["フレックステイ神田イン",                 32, 1],
			 ["フレックステイ心斎橋イン",           31, 7],
			 ["ホテルマイステイズ御茶ノ水",             34, 1],
			 ["ホテルマイステイズ浜松町",               33, 2],
			 ["ホテルマイステイズ横浜",         35, 5],
			 ["ホテルマイステイズ舞浜",         36, 6],
			 ["ホテルマイステイズ京都四条",       38, 7],
			 ["ホテルマイステイズ福岡天神",     39, 8],
			 ["マイステイズイン浅草橋",                 43, 1],
			 ["マイステイズイン蒲田",                   41, 2],
			 ["マイステイズ新浦安",       37, 6],
			 ["マイステイズイン堺筋本町",      42, 7],
			 ["マイステイズイン福岡天神南", 40, 8],
			 ["西新宿ホテルマイステイズ",            44, 0]]
		];


	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('ホテルを選択してください');
		return false;
	}

	window.open('https://advance.reservation.jp/wmt/stay_pc/rsv/cnf_rsv_ent.aspx?lang=ja-JP&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('選択された日付が正しくありません');
		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 setCheckinDate() {

	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((checkout_ym.split("/")[0] * 1), (checkout_ym.split("/")[1] * 1), (checkout_d * 1))) {
		alert('選択された日付が正しくありません');
		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;
			}
		}
	}
}


//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;
}


