//------------------------------------------------------------
//Modified by shirane,kajiwara
//------------------------------------------------------------

// ------------- 設定部分 ------------- //
// 制限をかける
// 使用しない場合は、LimitYear = 0, LimitMonth = 0, LimitDay = 0
// 全部に0を設定する。
// 使用する際は必ず年月日を入れる。

//	maxMonthNum 表示最大年月は奇数で。
var maxMonthNum =  5;

var iniDate = new Date();
var iniDateY = iniDate.getFullYear();
var iniDateM = iniDate.getMonth()+1;
var iniDateD = iniDate.getDate();
var iniDateYM;

var maxTemp = eval(iniDateM+maxMonthNum);
var plusLimitYear = 0;
var plusLimitMonth = maxTemp;

if(maxTemp>12) {
	plusLimitYear = 1;
	plusLimitMonth = maxMonthNum - eval(12 - iniDateM);
} 

now = new Date();
y = now.getFullYear();
var LimitYear = y+plusLimitYear;	//年 yyyy
var LimitMonth = plusLimitMonth;		//月 mm
var LimitDay = 0;		//日 dd

//alert("limit year "+LimitYear);


var Tcolor1 			= "#FFFFFF";	//カレンダー年月の背景色
var Tcolor2 			= "#000000";	//カレンダー年月の文字色
var SundayColor 		= "#FF0000";	//日曜日の文字色
var SaturdayColor 		= "#0000FF";	//土曜日の文字色
var HolidayBackColor 	= "#FECCCB";	//日曜・祝日・振り替え休日の背景色
var SaturdayBackColor 	= "#A5D1FE";	//土曜日の背景色
var toDayColor 			= "#D71920";	//今日の日付色
var deleteDayColor 		= "#A9A9A9";	//今日以前の日付、または制限日以降の日付の色


// 日付を設定して自分を閉じる
function setStayDate(nYear, nMonth, nDay, oj1,oj1name,oj2,oj2name,oj3,oj3name) 
{
	
	var nGamen;

	if(window.opener.document.forms[oj1].elements[oj1name].options.length == 5){
		nGamen = 0;
	}else{
		nGamen = 1;
	}
	
	

	/*alert(
		  "nYear = "+nYear+"\n"+
		  "nMonth = "+nMonth+"\n"+
		  "nDay = "+nDay+"\n"+
		  "oj1 = "+oj1+"\n"+
		  "oj1name = "+oj1name+"\n"+
		  "oj2 = "+oj2+"\n"+
		  "oj2name = "+oj2name+"\n"+
		  "oj3 = "+oj3+"\n"+
		  "oj3name = "+oj3name+"\n");
	*/

	for( i = 0; i < window.opener.document.forms[oj1].elements[oj1name].length; i++ ){
		if( eval(window.opener.document.forms[oj1].elements[oj1name].options[i].value) == nYear ){
			window.opener.document.forms[oj1].elements[oj1name].selectedIndex = i;
		}
	}
	for( i = 0; i < window.opener.document.forms[oj2].elements[oj2name].length; i++ ){
		if( eval(window.opener.document.forms[oj2].elements[oj2name].options[i].firstChild.nodeValue) == nMonth ){
			window.opener.document.forms[oj2].elements[oj2name].selectedIndex = i;
		}
	}
	for( i = 0; i < window.opener.document.forms[oj3].elements[oj3name].length; i++ ){
		if( eval(window.opener.document.forms[oj3].elements[oj3name].options[i].value) == nDay ){
			window.opener.document.forms[oj3].elements[oj3name].selectedIndex = i;
		}
	}

	if(oj1=="form"){
		if(oj1name=="startYear"){
			leisure_nd = new Date(nYear, nMonth-1, nDay);
			y = leisure_nd.getFullYear();
			m = leisure_nd.getMonth();
			d = leisure_nd.getDate();
			dt = addDate(y, m ,d, 2);
			
			window.opener.document.form.endYear.selectedIndex = yearIndex(dt.getFullYear(),nGamen);
			window.opener.document.form.endMonth.selectedIndex = dt.getMonth();
			window.opener.document.form.endDay.selectedIndex = dt.getDate() -1;
		}
	}
	
	if(oj1=="quick"){
		if(oj1name=="ciDateY"){

			leisure_nd = new Date(nYear, nMonth-1, nDay);
			y = leisure_nd.getFullYear();
			m = leisure_nd.getMonth();
			d = leisure_nd.getDate();
			dt = addDate(y, m ,d, 0);
			
			//　ここからチェックインの日付選択機能の補正を付け加え
		
			/*var ref_coDateYM = window.opener.document.quick.coDateYM.value;
			var ref_coDateY = window.opener.document.quick.coDateY.value;
			var ref_coDateM = window.opener.document.quick.coDateM.value;
			var ref_coDateD = window.opener.document.quick.coDateD.value;
			*/
				
	var ref_coDateYM = eval(window.opener.document.getElementById("coDateYM").options[window.opener.document.getElementById("coDateYM").options.selectedIndex].value);
	var ref_coDateY = window.opener.document.getElementById("coDateY").options[window.opener.document.getElementById("coDateY").options.selectedIndex].firstChild.nodeValue;
	var ref_coDateM = window.opener.document.getElementById("coDateM").options[window.opener.document.getElementById("coDateM").options.selectedIndex].firstChild.nodeValue;
	var ref_coDateD = window.opener.document.getElementById("coDateD").options[window.opener.document.getElementById("coDateD").options.selectedIndex].value;
			
			//alert("ref_coDateYM = "+ref_coDateYM);


			if(ref_coDateD<=dt.getDate()-1 && ref_coDateM<=dt.getMonth()+1 || ref_coDateM!=dt.getMonth()+1) {
			dt = addDate(y, m ,d, 1);

		
			//window.opener.document.getElementById("coDateYM").selectedIndex =  eval(dt.getMonth()-iniDateM+1)+eval(yearIndex(dt.getFullYear(),nGamen)*12);		
			window.opener.document.getElementById("coDateY").selectedIndex = yearIndex(dt.getFullYear(),nGamen);
			window.opener.document.getElementById("coDateM").selectedIndex = dt.getMonth();
			window.opener.document.getElementById("coDateD").selectedIndex = dt.getDate()-1;

			}

			dt = addDate(y, m ,d, 0);
			window.opener.document.getElementById("ciDateY").selectedIndex = yearIndex(dt.getFullYear(),nGamen);
			var sa = dt.getMonth()+(eval(dt.getFullYear())-eval(iniDateY))*12-eval(iniDateM)+1;
			
		  	window.opener.document.getElementById("ciDateYM").selectedIndex = sa;
			//window.opener.checkDate();
			
			window.opener.change_DateYM("ciDateYM","coDateYM","calendar");
			}
		
		//　ここからチェックアウトの日付選択機能の補正を付け加え
		
else	if(oj1name=="coDateY"){
			
			leisure_nd = new Date(nYear, nMonth-1, nDay);
			y = leisure_nd.getFullYear();
			m = leisure_nd.getMonth();
			d = leisure_nd.getDate();
			dt = addDate(y, m ,d, 0);
		
		/*
			var ref_ciDateYM = window.opener.document.quick.ciDateYM.value;
			var ref_ciDateY = window.opener.document.quick.ciDateY.value;
			var ref_ciDateM = window.opener.document.quick.ciDateM.value;
			var ref_ciDateD = window.opener.document.quick.ciDateD.value;
			*/
			
	var ref_ciDateYM = eval(window.opener.document.getElementById("ciDateYM").options[window.opener.document.getElementById("ciDateYM").options.selectedIndex].value);
	var ref_ciDateY = window.opener.document.getElementById("ciDateY").options[window.opener.document.getElementById("ciDateY").options.selectedIndex].firstChild.nodeValue;
	var ref_ciDateM = window.opener.document.getElementById("ciDateM").options[window.opener.document.getElementById("ciDateM").options.selectedIndex].firstChild.nodeValue;
	var ref_ciDateD = window.opener.document.getElementById("ciDateD").options[window.opener.document.getElementById("ciDateD").options.selectedIndex].value;
			


			if(ref_ciDateD>=dt.getDate()-1 && ref_ciDateM >=dt.getMonth()+1 || ref_ciDateM>dt.getMonth()+1) {
		
			dt = addDate(y, m ,d, -1);
			window.opener.document.quick.ciDateYM.selectedIndex = eval(dt.getMonth()-iniDateM+1)+eval(yearIndex(dt.getFullYear(),nGamen)*12);	// 付け加え
			window.opener.document.quick.ciDateY.selectedIndex = yearIndex(dt.getFullYear(),nGamen);
			window.opener.document.quick.ciDateM.selectedIndex = dt.getMonth();
			window.opener.document.quick.ciDateD.selectedIndex = dt.getDate() -1;
			}
		
		
			var sa = dt.getMonth()+(eval(dt.getFullYear())-eval(iniDateY))*12-eval(iniDateM)+1;
		
			window.opener.document.quick.coDateY.selectedIndex = yearIndex(dt.getFullYear(),nGamen);
			window.opener.document.quick.coDateYM.selectedIndex = sa;
			//window.opener.checkDate();

			window.opener.change_DateYM("coDateYM","ciDateYM","calendar");
		}
		
	}
	
	window.close();
}
// ------------- カレンダー部分 ------------- //
//カレンダーを書き出す。
function ShowCalender(nYear, nMonth, oj1,oj1name,oj2,oj2name,oj3,oj3name) //nYearに年度,　nMonthに月を渡してください。
{
	var strCalString;
	var dtCal = new Date;
	var strYear;
	var strMonth;
	var strDate;
	var nRemain;
	var weekCnt;
	var monDayCnt;
	var syuku;
	var furikae;
	var fullYear;
	var Limit;
	var trFlg=0;
	var weekCnt2=0;
	var strDay = new Array("日","月","火","水","木","金","土");
	var nMonthCount = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

	//年月日を取得
	getStrYear = dtCal.getYear();
	fullYear = dtCal.getFullYear();
	getStrMonth = dtCal.getMonth();
	getStrDate = dtCal.getDate();
	
	strYear = nYear;	//年度
	strMonth = nMonth - 1;	//月-1

	//alert("strYear = "+strYear);
	//alert("strMonth = "+strMonth);
	//alert("eval(strMonth)  = "+eval(strMonth));
	//alert("eval(LimitMonth)  = "+eval(LimitMonth));
	//alert("full year "+fullYear);
																		  
	//表示のための準備
	dtCal.setYear(strYear);
	dtCal.setDate(1);
	dtCal.setMonth(strMonth);
	strTodaysMonth = dtCal.getMonth()+1;
	var nDayCount = nMonthCount[strMonth];
	if ((strMonth == 1)&&(((strYear%4 == 0)&&(strYear%100 != 0))||(strYear%400 == 0))) {
		nDayCount = 29;
	}

	//ここから表示
	strCalString = "";


	strCalString = strCalString + "<TABLE border='0' CELLSPACING='0' CELLPADDING='0'>";
	strCalString = strCalString + "<TR><TD>";

	//年月を表示

	strCalString = strCalString + "<center><TABLE border='0' CELLSPACING='0' CELLPADDING='0'>";
	strCalString = strCalString + "<TR><TD BGCOLOR='" + Tcolor1 + "' ALIGN='CENTER'><FONT COLOR='" + Tcolor2 + "' SIZE='2'><B>"+strYear+"年"+strTodaysMonth+"月</B></FONT></TD></TR>";
	strCalString = strCalString + "</TABLE></center>";


	strCalString = strCalString + "<TABLE BGCOLOR='#808080' border='0' CELLSPACING='0' CELLPADDING='0'>";
	strCalString = strCalString + "<TR><TD>";


	strCalString = strCalString + "<TABLE border='0' CELLSPACING='1' CELLPADDING='3'><TR>";
	//一行目は曜日
	for(nLoop=0; nLoop < 7; nLoop++) {

		strCalString = strCalString + "<TD BGCOLOR='#DCDCDC'>";
		if(nLoop == 0){
			strCalString = strCalString + "<FONT COLOR='" + SundayColor + "' SIZE='2'>" + strDay[nLoop] + "</FONT>";
		}else if(nLoop == 6){
			strCalString = strCalString + "<FONT COLOR='" + SaturdayColor + "' SIZE='2'>" + strDay[nLoop] + "</FONT>";
		}else{
			strCalString = strCalString + "<FONT SIZE='2'>" + strDay[nLoop] + "</FONT>";
		}

		strCalString = strCalString + "</TD>";

	}
	strCalString = strCalString + "</TR>";

	weekCnt = 0;
	monDayCnt = 0;
	furikae = 0;
	//ブランクを挿入
	for(nLoop = 0; nLoop < dtCal.getDay(); nLoop++) {
		strCalString = strCalString + "<TD BGCOLOR='#FFFFFF'><BR></TD>";
		if(weekCnt == 0){
			weekCnt = weekCnt + 1;
		}
	}
	//日付を挿入
	for(nLoop = 0; nLoop < nDayCount; nLoop++) {
		if(dtCal.getDate() > nLoop) {
			if (dtCal.getDay() == 0) {
				strCalString = strCalString + "<TR>";
				weekCnt = weekCnt + 1;
			}


			if (dtCal.getDay() != 7) {
				syuku = 0;
				//月曜日のカウント
				if(dtCal.getDay() == 1){
					monDayCnt = monDayCnt + 1;
				}
				// 第2月曜
				if (monDayCnt == 2) {
					// 1月 成人の日
					if (strTodaysMonth == 1 && dtCal.getDay() == 1) {syuku = 1;}
					// 10月 体育の日
					if (strTodaysMonth == 10 && dtCal.getDay() == 1) {syuku = 1;}
				}
				// 第3月曜
				if (monDayCnt == 3) {
					// 7月 海の日 (2003〜)
					if (strYear >= 2003 && strTodaysMonth == 7 && dtCal.getDay() == 1) {syuku = 1;}
					// 9月 敬老の日 (2003〜)
					if (strYear >= 2003 && strTodaysMonth == 9 && dtCal.getDay() == 1) {syuku = 1;}
				}
				// 7月20日 海の日 (〜2002)
				if(strYear < 2003 && strTodaysMonth == 7 && dtCal.getDate() == 20) {syuku = 1;}
				//  9月15日 敬老の日 (〜2002)
				if(strYear < 2003 && strTodaysMonth == 9 && dtCal.getDate() == 15) {syuku = 1;}
				// 天文学的に周期が変わるため
				// 春分の日 2099年まで対応
				if (strTodaysMonth == 3) {
					if (dtCal.getDate() == Math.floor(20.8431+0.242194*(strYear - 1980) - Math.floor((strYear - 1980)/4))) {syuku = 1;}
				}
				// 秋分の日 2099年まで対応
				if (strTodaysMonth == 9) {
					if (dtCal.getDate() == Math.floor(23.2488+0.242194*(strYear - 1980) - Math.floor((strYear - 1980)/4))) {syuku = 1;}
				}
				//  1月 1日 元日
				if (strTodaysMonth == 1 && dtCal.getDate() == 1) {syuku = 1;}
				//  2月11日 建国記念の日
				if (strTodaysMonth == 2 && dtCal.getDate() == 11) {	syuku = 1;}
				//  4月29日 みどりの日
				if (strTodaysMonth == 4 && dtCal.getDate() == 29) {	syuku = 1;}
				//  5月 3日 憲法記念日
				if (strTodaysMonth == 5 && dtCal.getDate() == 3) {syuku = 1;}
				//  5月 4日 国民の休日
				if (strTodaysMonth == 5 && dtCal.getDate() == 4) {	syuku = 1;	}
				//  5月 5日 こどもの日
				if (strTodaysMonth == 5 && dtCal.getDate() == 5) {	syuku = 1;	}
				// 11月 3日 文化の日
				if(strTodaysMonth == 11 && dtCal.getDate() == 3) {	syuku = 1;	}
				// 11月23日 勤労感謝の日
				if(strTodaysMonth == 11 && dtCal.getDate() == 23) {	syuku = 1;	}
				// 12月23日 天皇誕生日
				if(strTodaysMonth == 12 && dtCal.getDate() == 23) {	syuku = 1;	}

				// 振り替え休日のフラグチェック
				if(furikae == 0){
					if (dtCal.getDay() == 0) {
						strCalString = strCalString + "<TD BGCOLOR='" +HolidayBackColor+"' ALIGN='CENTER'>";
						//振り替え休日のフラグを立てる
						if(syuku == 1){
							furikae = 1;
						}
					}else if (dtCal.getDay() == 6) {
						if(syuku == 1){
							strCalString = strCalString + "<TD BGCOLOR='" +HolidayBackColor+"' ALIGN='CENTER'>";
						}else{
							strCalString = strCalString + "<TD BGCOLOR='" + SaturdayBackColor +"' ALIGN='CENTER'>";
						}
					}else{
						if(syuku == 1){
							strCalString = strCalString + "<TD BGCOLOR='" +HolidayBackColor+"' ALIGN='CENTER'>";
						}else{
							strCalString = strCalString + "<TD  BGCOLOR='#FFFFFF' ALIGN='CENTER'>";
						}
					}
				}else{
					//振り替え休日
					strCalString = strCalString + "<TD BGCOLOR='"+HolidayBackColor+"' ALIGN='CENTER'>";
					//振り替え休日のフラグ初期化
					furikae = 0;
				}

				//日付制限
				Limit = 0;
				if(LimitYear > 0){
					if(LimitMonth > 0 ){
						if(LimitDay > 0){
							var LimitDate = new Date(LimitYear, LimitMonth, LimitDay);
							var LimitToDay = new Date(strYear, strTodaysMonth, dtCal.getDate());
							if(LimitDate < LimitToDay){
								Limit = 1;
							}
						}
					}
				}

				//日付表示の作成
				
				if(Limit == 0){
					if(getStrYear == dtCal.getYear()){
						if(getStrMonth == dtCal.getMonth()){
							if(getStrDate == dtCal.getDate()){
								//今日
								strCalString = strCalString + '<A HREF="javaScript:setStayDate(' + strYear + ',' + strTodaysMonth + ',' + dtCal.getDate() +',\'' + oj1 + '\',\''+oj1name+'\',\''+oj2+'\',\''+oj2name+'\',\''+oj3+'\',\''+oj3name+'\')"><FONT COLOR="'+toDayColor+'" SIZE="2"><B>'+dtCal.getDate()+'</B></FONT></A></TD>';
							}else if(getStrDate > dtCal.getDate()  || ((eval(strMonth) >= eval(LimitMonth-1)) && (eval(LimitYear)==eval(strYear))) ) {
								//今日以前
							strCalString = strCalString + "<FONT SIZE='2' COLOR='"+deleteDayColor+"'>"+dtCal.getDate()+"</FONT></TD>";
							}else{
								//今日以降
								strCalString = strCalString + '<A HREF="javaScript:setStayDate(' + strYear + ',' + strTodaysMonth + ',' + dtCal.getDate() +',\'' + oj1 + '\',\''+oj1name+'\',\''+oj2+'\',\''+oj2name+'\',\''+oj3+'\',\''+oj3name+'\')"><FONT SIZE="2">'+dtCal.getDate()+'</FONT></A></TD>';
							}
						} else {
							if(getStrMonth >= dtCal.getMonth() || ((eval(LimitYear)==eval(strYear))) ){
	
								strCalString = strCalString + "<FONT SIZE='2' COLOR='"+deleteDayColor+"'>"+eval(strMonth)+","+eval(LimitMonth)+"<br>"+"limit="+LimitYear+"<br>"+"strYear="+strYear+"<br>"+dtCal.getDate()+"</FONT></TD>";
							}else {
								strCalString = strCalString + '<A HREF="javaScript:setStayDate(' + strYear + ',' + strTodaysMonth + ',' + dtCal.getDate() +',\'' + oj1 + '\',\''+oj1name+'\',\''+oj2+'\',\''+oj2name+'\',\''+oj3+'\',\''+oj3name+'\')"><FONT SIZE="2">'+dtCal.getDate()+'</FONT></A></TD>';
							}
						}
					}else{
						if(getStrYear >= dtCal.getYear()   || ((eval(strMonth) >= eval(LimitMonth-1)) && (eval(LimitYear)==eval(strYear))) ){
							strCalString = strCalString + "<FONT SIZE='2' COLOR='"+deleteDayColor+"'>"+dtCal.getDate()+"</FONT></TD>";
						}else{
								strCalString = strCalString + '<A HREF="javaScript:setStayDate(' + strYear + ',' + strTodaysMonth + ',' + dtCal.getDate() +',\'' + oj1 + '\',\''+oj1name+'\',\''+oj2+'\',\''+oj2name+'\',\''+oj3+'\',\''+oj3name+'\')"><FONT SIZE="2">'+dtCal.getDate()+'</FONT></A></TD>';
						}
					}
				}else{
					if(getStrYear == dtCal.getYear()){
						if(getStrMonth == dtCal.getMonth()){
							if(getStrDate == dtCal.getDate()){
								//今日
								strCalString = strCalString + "<FONT COLOR='"+toDayColor+"' SIZE='2'><B>"+dtCal.getDate()+"</B></FONT></TD>";
							}else{
								strCalString = strCalString + "<FONT SIZE='2' COLOR='"+deleteDayColor+"'>"+dtCal.getDate()+"</FONT></TD>";
							}
						} else {
							strCalString = strCalString + "<FONT SIZE='2' COLOR='"+deleteDayColor+"'>"+dtCal.getDate()+"</FONT></TD>";
						}
					}else{
						strCalString = strCalString + "<FONT SIZE='2' COLOR='"+deleteDayColor+"'>"+dtCal.getDate()+"</FONT></TD>";
					}
				}
			trFlg=1;
			}
			if (dtCal.getDay() == 7) {
				trFlg=0;
				strCalString = strCalString + "</TR>";
			}
		}
		dtCal.setDate(dtCal.getDate()+1);
		nRemain = 7-dtCal.getDay();
	}
	if(dtCal.getDay()>0 && dtCal.getDay()<7){

	//ブランクを挿入
	for(nLoop = dtCal.getDay() ; nLoop < 7 ; nLoop++) {
		strCalString = strCalString + "<TD BGCOLOR='#FFFFFF'><BR></TD>";
	}

		strCalString = strCalString + "</TR>";
	}
	strCalString = strCalString + "</TABLE>";
	strCalString = strCalString + "</TD></TR></TABLE>";

	strCalString = strCalString + "</TD></TR></TABLE>";

	return strCalString;
}

//次の月を表示
function nextShowMnoth(nYear, nMonth, oj1,oj1name,oj2,oj2name,oj3,oj3name) 
{
	
	strMonthString = "";
	strMonthString = "<FONT SIZE='2'><a href='cal.html?year=" + getNxetYaer(nYear,nMonth+1) +"&mon=" + getNxetMonth(getNxetMonth(nMonth)) + "&oj1=" + oj1 + "&oj1name=" +oj1name +"&oj2=" + oj2 + "&oj2name=" +oj2name +"&oj3=" + oj3 + "&oj3name=" +oj3name+"'>次の月を表示 &gt;&gt;</a></FONT>";

	return strMonthString;
}

//前の月を表示
function lastShowMnoth(nYear, nMonth, oj1,oj1name,oj2,oj2name,oj3,oj3name) 
{
	strMonthString = "";
	strMonthString = "<FONT SIZE='2'><a href='cal.html?year=" + getLastYaer(nYear, nMonth) +"&mon=" + getLastMonth(nYear, nMonth) + "&oj1=" + oj1 + "&oj1name=" +oj1name +"&oj2=" + oj2 + "&oj2name=" +oj2name +"&oj3=" + oj3 + "&oj3name=" +oj3name+"'>&lt;&lt; 前の月を表示</a></FONT>";
	return strMonthString;
}

//カレンダーの表示
function ShowTwoCalender(nYear, nMonth, oj1,oj1name,oj2,oj2name,oj3,oj3name) 
{
	var strCalString;
	var dtCal = new Date;
	//年月日を取得
	Year = dtCal.getYear();
	Month = dtCal.getMonth()+1;
	
	strCalString = "";
	//年月日を取得
	strYear = nYear;
	strMonth = nMonth;

	strNextMonth = getNxetMonth(nMonth);
	strNextYaer = getNxetYaer(nYear, nMonth);

	strThreeMonth = getNxetMonth(strNextMonth);
	strThreeYaer = getNxetYaer(strNextYaer,strThreeMonth);

	strCalString = strCalString + "<TABLE BORDER='0' width='345'><TR><TD ALIGN='CENTER'>";
	strCalString = strCalString + "<TABLE BORDER='0' width='345'><TR><TD>";

	//前の月表示
	if(Year != nYear){
		strCalString = strCalString + lastShowMnoth(nYear, nMonth, oj1,oj1name,oj2,oj2name,oj3,oj3name);
	}else{
		if(Month != nMonth){
			strCalString = strCalString + lastShowMnoth(nYear, nMonth, oj1,oj1name,oj2,oj2name,oj3,oj3name);
		}else{
			strCalString = strCalString + "<br>";
		}
	}
	strCalString = strCalString + "</TD><TD VALIGN='TOP' ALIGN='RIGHT'>";

	//次の月表示
	if(getNxetYaer(nYear,nMonth+1) == LimitYear){
		
		if(getNxetMonth(getNxetMonth(nMonth)) < LimitMonth){
			strCalString = strCalString + nextShowMnoth(nYear, nMonth, oj1,oj1name,oj2,oj2name,oj3,oj3name);
		}else if(getNxetMonth(getNxetMonth(nMonth)) == LimitMonth){
			strCalString = strCalString + nextShowMnoth(nYear, nMonth, oj1,oj1name,oj2,oj2name,oj3,oj3name);
		}else{
			strCalString = strCalString + "<BR>";
		}
	}else if(getNxetYaer(nYear,nMonth+1) < LimitYear){
		strCalString = strCalString + nextShowMnoth(nYear, nMonth, oj1,oj1name,oj2,oj2name,oj3,oj3name);
	}else{
		if(LimitYear == 0){
			strCalString = strCalString + nextShowMnoth(nYear, nMonth, oj1,oj1name,oj2,oj2name,oj3,oj3name);
		}else{
			strCalString = strCalString + "<br>";
		}
	}
	var yearSa = -eval(strNextYaer - iniDateY)+1;
	//alert(yearSa);
	//alert(eval(getNxetMonth(getNxetMonth(nMonth)))-eval(iniDateM*yearSa));
	//alert(LimitMonth);
	//alert("month sa = "+eval(eval(nMonth)-eval(iniDateM*yearSa)) );
	//alert("nMonth = "+nMonth);
	//if(eval(eval(getNxetMonth(getNxetMonth(nMonth)))-eval(iniDateM*yearSa)) < LimitMonth && eval(nMonth)!=LimitMonth-1) {
	
	strCalString = strCalString + "</TD></TR></TABLE>";
	strCalString = strCalString + "</TD></TR></TABLE>";

	strCalString = strCalString + "<TABLE BORDER='0' CELLSPACING='1' CELLPADDING='0'><TR><TD VALIGN='TOP' BGCOLOR='#808080'>";
	strCalString = strCalString + "<TABLE BORDER='0' CELLSPACING='1' CELLPADDING='15'><TR><TD VALIGN='TOP' BGCOLOR='#FFFFFF'>";
	strCalString = strCalString + "<TABLE BORDER='0'><TR><TD VALIGN='TOP'>";
	strCalString = strCalString + ShowCalender(strYear, strMonth, oj1,oj1name,oj2,oj2name,oj3,oj3name);
	strCalString = strCalString + "</TD><TD VALIGN='TOP'>";
	strCalString = strCalString + ShowCalender(strNextYaer, strNextMonth, oj1,oj1name,oj2,oj2name,oj3,oj3name);
	strCalString = strCalString + "</TD></TR></TABLE>";
	strCalString = strCalString + "</TD></TR></TABLE>";
	strCalString = strCalString + "</TD></TR></TABLE>";
	
	return strCalString;
	/*} else {
	strCalString = strCalString + "</TD></TR></TABLE>";
	strCalString = strCalString + "</TD></TR></TABLE>";

	strCalString = strCalString + "<TABLE BORDER='0' CELLSPACING='1' CELLPADDING='0'><TR><TD VALIGN='TOP' BGCOLOR='#808080'>";
	strCalString = strCalString + "<TABLE BORDER='0' CELLSPACING='1' CELLPADDING='15'><TR><TD VALIGN='TOP' BGCOLOR='#FFFFFF'>";
	strCalString = strCalString + "<TABLE BORDER='0'><TR><TD VALIGN='TOP'>";
	strCalString = strCalString + ShowCalender(strYear, strMonth, oj1,oj1name,oj2,oj2name,oj3,oj3name);
	strCalString = strCalString + "</TD><TD VALIGN='TOP'>";
	//strCalString = strCalString + ShowCalender(strNextYaer, strNextMonth, oj1,oj1name,oj2,oj2name,oj3,oj3name);
	strCalString = strCalString + "</TD></TR></TABLE>";
	strCalString = strCalString + "</TD></TR></TABLE>";
	strCalString = strCalString + "</TD></TR></TABLE>";
	return strCalString;
	}*/
}
//来月の取得
function getNxetMonth(nMonth) 
{
	n_mon = nMonth + 1;
	if( n_mon >= 13 ){
	    n_mon = 1;
	}
	return n_mon;
}
//来年の取得
function getNxetYaer(nYear, nMonth) 
{
	n_mon = nMonth + 1;
	if( n_mon >= 13 ){
	    n_year = nYear + 1;
	}else{
	    n_year = nYear;
	}
	return n_year;
}
//先月の取得
function getLastMonth(nYear, nMonth) 
{
	l_mon = nMonth - 1 ;
	if( l_mon == 0 ){
	    l_mon = 12;
	    l_year = nYear -1 ;
	}else{
	    l_year = nYear;
	}
	return l_mon;
}
//去年の取得
function getLastYaer(nYear, nMonth) 
{
	l_mon = nMonth - 1 ;
	if( l_mon == 0 ){
	    l_mon = 12;
	    l_year = nYear -1 ;
	}else{
	    l_year = nYear;
	}
	return l_year;
}
function makeCalender(oj1, oj2, oj3)
{
	var getStrYear = "";
	var getStrMonth = "";
	var url = "";
	getStrYear = window.document.forms[oj1.form.name].elements[oj1.name].options[window.document.forms[oj1.form.name].elements[oj1.name].selectedIndex].value;
	getStrMonth = window.document.forms[oj2.form.name].elements[oj2.name].options[window.document.forms[oj2.form.name].elements[oj2.name].selectedIndex].value;
	url = ""
	url += "pages/cal.html?year=" + getStrYear + "&mon=" + getStrMonth;
	url += "&oj1="+oj1.form.name;
	url += "&oj1name="+oj1.name;
	url += "&oj2="+oj2.form.name;
	url += "&oj2name="+oj2.name;
	url += "&oj3="+oj3.form.name;
	url += "&oj3name="+oj3.name;
	
//	var scx = (screen.width - 400) / 2;
//	var scy = (screen.height - 280) / 2;
	var scx = (screen.width - 650) / 2+150;
	var scy = (screen.height - 480) / 2;

	window.open(url,"cal","width=400,height=280,screenX="+scx+",screenY="+scy+",left="+scx+",top="+scy);
}

function yearIndex(yearIdx)
{

	var now = new Date();
	var year = now.getFullYear();

	ry = yearIdx - year;
/*
	if (yearIdx == year) {
		ry = 0;
	}
	else if (yearIdx == year+1) {
		ry = 1;
	}
	*/
/*
    if (yearIdx == 2009) { ry = 0;}
    else if (yearIdx == 2010) { ry = 1;}
    else if (yearIdx == 2011) { ry = 2;}
	else if (yearIdx == 2012) { ry = 3;}
	else if (yearIdx == 2013) { ry = 4;}
 */
	return(ry);
}
function addDate(year, month, date, n)
{
	var leisure_number = n * 1000 * 60 * 60 * 24;
	var targetDate = new Date(year, month, date);
	var DateInMS = targetDate.getTime();
	DateInMS += leisure_number;
	targetDate.setTime(DateInMS);
	var theYear = targetDate.getFullYear();
	var theMonth = targetDate.getMonth();
	var theDate = targetDate.getDate();
	rdt  = new Date(theYear, theMonth, theDate);
	return(rdt);
}


function checkDate() {
	var ref_ciDateYM = eval(document.getElementById("ciDateYM").options[document.getElementById("ciDateYM").options.selectedIndex].value);
	var ref_ciDateY = document.getElementById("ciDateY").options[document.getElementById("ciDateY").options.selectedIndex].firstChild.nodeValue;
	var ref_ciDateM = document.getElementById("ciDateM").options[document.getElementById("ciDateM").options.selectedIndex].firstChild.nodeValue;
	var ref_ciDateD = document.getElementById("ciDateD").options[document.getElementById("ciDateD").options.selectedIndex].value;

	var ref_coDateYM = eval(document.getElementById("coDateYM").options[document.getElementById("coDateYM").options.selectedIndex].value);
	var ref_coDateY = document.getElementById("coDateY").options[document.getElementById("coDateY").options.selectedIndex].firstChild.nodeValue;
	var ref_coDateM = document.getElementById("coDateM").options[document.getElementById("coDateM").options.selectedIndex].firstChild.nodeValue;
	var ref_coDateD = document.getElementById("coDateD").options[document.getElementById("coDateD").options.selectedIndex].value;
	
		
		alert(
			  "ref_ciDateYM = "+ref_ciDateYM+"\n"+
			  "ref_ciDateY = "+ref_ciDateY+"\n"+
			  "ref_ciDateM = "+ref_ciDateM+"\n"+
			  "ref_ciDateD = "+ref_ciDateD+"\n"+
			  "ref_coDateYM = "+ref_coDateYM+"\n"+
			  "ref_coDateY = "+ref_coDateY+"\n"+
			  "ref_coDateM = "+ref_coDateM+"\n"+
			  "ref_coDateD = "+ref_coDateD+"\n");
		return;
}





