// 関数名　：CreateOption
// 機能説明：オプション作成
// 引数　　：なし
// 作成日　：2006/11/12
// 作成者　：H.Urakawa
function CreateOption(){
	BufDate  = new Date();										// 今日の日付データ取得
	BufYear  = BufDate.getFullYear();							// 西暦取得
	BufMonth = BufDate.getMonth()+1;							// 月を取得(1月〜12月)
	BufStartDay = BufDate.getDate();							// 今日の'日'
	BufMonthTbl= new Array(31,28,31,30,31,30,31,31,30,31,30,31);// 月テーブル定義
	if (((BufYear%4)==0 && (BufYear%100)!=0) || (BufYear%400)==0)// うるう年だったら...
	   BufMonthTbl[1] = 29;										// ２月を２９日とする

	BufStartDay++;												// 必ず翌日を初期値に設定(今日以前の予約はできない）
	if (BufStartDay > BufMonthTbl[BufMonth-1]) {				// 指定日が当月限界を超えていたら
		BufStartDay = 1;										// 1日にリセット
		if (BufMonth == 12) {
			BufMonth = 1;										// 12月の時は1月に
			BufYear++;											// 年数アップ
		}
		else                BufMonth++;							// それ以外は1ヶ月加算
	}
	BufHour  = BufDate.getHours();								// 現在時刻を取得
	if (BufHour>=19) {											// 19時以降ならば基準日を更に次の日にずらす
		BufStartDay++;
		if (BufStartDay > BufMonthTbl[BufMonth-1]) {			// 指定日が当月限界を超えていたら
			BufStartDay = 1;									// 1日にリセット
			if (BufMonth == 12) {
				BufMonth = 1;									// 12月の時は1月に
				BufYear++;										// 年数アップ
			}
			else                BufMonth++;						// それ以外は1ヶ月加算
		}
	}
	BufEndYear = BufYear;										// 終了年初期値セット
	BufEndMonth = BufMonth;										// 終了月初期値セット
	BufEndDay = BufStartDay+1;									// 終了日初期値セット(翌日)
	if (BufEndDay > BufMonthTbl[BufEndMonth-1]) {				// 終了日が当月限界を超えていたら
		BufEndDay = 1;											// 1日にリセット
		if (BufEndMonth == 12) {
			BufEndMonth = 1;									// 12月の時は1月に
			BufEndYear++;										// 年数アップ
		}
		else                BufEndMonth++;						// それ以外は1ヶ月加算
	}
	

	// 最初の文言セット
	document.write("ご出発日&nbsp;&nbsp;");

	ntabindex = 3;
	// 開始月日オプション設定
	// 年跨ぎチェック
	// 2008/07/12 カレンダー3ヶ月対応　修正開始
	// 今月の翌月が11月以降なら終了年に翌年を加算
	if (BufMonth >= 11) {
		CreateOption_child("StartYear", "StartMonth", "StartDay", BufYear, (BufEndYear+1), BufYear, BufMonth, BufStartDay, ntabindex);
	} else {
		CreateOption_child("StartYear", "StartMonth", "StartDay", BufYear, BufEndYear, BufYear, BufMonth, BufStartDay, ntabindex);
	}

	// 間の文言セット
	document.write("&nbsp;&nbsp;〜&nbsp;&nbsp;ご到着日&nbsp;&nbsp;");

	ntabindex = 6;
	// 終了月日オプション設定
	// 年跨ぎチェック
	// 今月の翌月が11月以降なら終了年に翌年を加算
	if (BufMonth >= 11) {
	// 2008/07/12 カレンダー3ヶ月対応　修正終了
		CreateOption_child("EndYear", "EndMonth", "EndDay", BufYear, (BufEndYear+1), BufEndYear, BufEndMonth, BufEndDay, ntabindex);
	} else {
		CreateOption_child("EndYear", "EndMonth", "EndDay", BufYear, BufEndYear, BufEndYear, BufEndMonth, BufEndDay, ntabindex);
	}
}
// 関数名　：CreateOption_child
// 機能説明：オプション作成
// 引数　　：strOptionName1		オプション「年」の名称
//			 strOptionName2		オプション「月」の名称
//			 strOptionName3		オプション「日」の名称
//			 nStartYear			開始「年」初期値
//			 nEndYear			終了「年」初期値
//			 nSelectedYear		「年」初期値
//			 nSelectedMonth		「月」初期値
//			 nSelectedDay		「日」初期値
//			 ntabindex			タブインデックス
// 作成日　：2006/11/12
// 作成者　：H.Urakawa
function CreateOption_child( strOptionName1, strOptionName2, strOptionName3, nStartYear, nEndYear, nSelectedYear, nSelectedMonth, nSelectedDay, ntabindex ){

	strBuf = "";
	// もし名称設定されていなかったらエラー
	if (strOptionName1=="") strBuf = "オプション（年）の名称設定エラー";
	else if (strOptionName2=="") strBuf = "オプション（月）の名称設定エラー";
	else if (strOptionName3=="") strBuf = "オプション（日）の名称設定エラー";

	if (strBuf!="") {
		alert(strBuf);
		return;
	}

	// ************************
	// **  オプションの表示  **
	// ************************
																// オプション「年」の作成開始
	document.write("<SELECT name='", strOptionName1, "' tabindex='", ntabindex, "' class='s-date'>");
	for(i=nStartYear; i<nEndYear+1; i++){										// 12ヶ月セット
		if (i==nSelectedYear) document.write("<OPTION value='", i, "' selected>", i, "年</OPTION>");
		else                   document.write("<OPTION value='", i, "'>", i, "年</OPTION>");
	}
	document.write("</SELECT>&nbsp;");

																// オプション「月」の作成開始
	document.write("<SELECT name='", strOptionName2, "' tabindex='", (ntabindex+1), "' class='s-date'>");
	for(i=0; i<12; i++){										// 12ヶ月セット
		if ((i+1)==nSelectedMonth) document.write("<OPTION value='", (i+1), "' selected>", (i+1), "月</OPTION>");
		else                       document.write("<OPTION value='", (i+1), "'>", (i+1), "月</OPTION>");
	}
	document.write("</SELECT>&nbsp;");

																// オプション「日」の作成開始
	document.write("<SELECT name='", strOptionName3, "' tabindex='", (ntabindex+2), "' class='s-date'>");
	for(i=0; i<31; i++){										// 31日セット
		if ((i+1)==nSelectedDay) document.write("<OPTION value='", (i+1), "' selected>", (i+1), "日</OPTION>");
		else                     document.write("<OPTION value='", (i+1), "'>", (i+1), "日</OPTION>");
	}
	document.write("</SELECT>");
}

