//------------------------------------------------------------
//javascript by nakamura
//------------------------------------------------------------

// ------------- �ݒ蕔�� ------------- //
// ������������
// �g�p���Ȃ��ꍇ�́ALimitYear = 0, LimitMonth = 0, LimitDay = 0
// �S����0��ݒ肷��B
// �g�p����ۂ͕K���N��������B
var LimitYear = 0;	//�N yyyy
var LimitMonth = 0;		//�� mm
var LimitDay = 0;		//�� dd

var Tcolor1 			= "#FFFFFF";	//�J�����_�[�N���̔w�i�F
var Tcolor2 			= "#000000";	//�J�����_�[�N���̕����F
var SundayColor 		= "#000000";	//��j��̕����F
var SaturdayColor 		= "#000000";	//�y�j��̕����F
var HolidayBackColor 	= "#FFFFFF";	//��j�E�j��E�U��ւ��x��̔w�i�F
var SaturdayBackColor 	= "#FFFFFF";	//�y�j��̔w�i�F
var toDayColor 			= "#000000";	//����̓�t�F
var deleteDayColor 		= "#000000";	//����ȑO�̓�t�A�܂��͐�����ȍ~�̓�t�̐F


// -----------------��������������͂�����Ȃ��ŉ������B������----------------- //
// ��t��ݒ肵�Ď��������
function setStayDate(nYear, nMonth, nDay, oj1,oj1name,oj2,oj2name,oj3,oj3name) 
{
	var nGamen;		

	//�N�v���_�E����5�N�����Ǝ{�݊Ǘ���ʁ|�����ύX
	if(window.opener.document.forms[oj1].elements[oj1name].options.length == 5){
		nGamen = 0;
	}else{
		nGamen = 1;
	}

	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].value) == 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;
		}
	}else if(oj1=="quick"){
		if(oj1name=="chkin_yy"){
			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, 1);
			window.opener.document.quick.chkout_yy.selectedIndex = yearIndex(dt.getFullYear(),nGamen);
			window.opener.document.quick.chkout_mm.selectedIndex = dt.getMonth();
			window.opener.document.quick.chkout_dd.selectedIndex = dt.getDate() -1;
		}
	}
	window.close();
}
// ------------- �J�����_�[���� ------------- //
//�J�����_�[�������o���B�i�ꂩ�����j
function ShowCalender(nYear, nMonth, oj1,oj1name,oj2,oj2name,oj3,oj3name) //nYear�ɔN�x,�@nMonth�Ɍ���n���Ă��������B
{
	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("sun","mon","tue","wed","thu","fri","sat");
	var nMonthCount = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

	//�N������擾
	getStrYear = dtCal.getYear();
	fullYear = dtCal.getFullYear();
	getStrMonth = dtCal.getMonth();
	getStrDate = dtCal.getDate();
	
	strYear = nYear;	//�N�x
	strMonth = nMonth - 1;	//��-1

	//�\���̂��߂̏���
	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 = "";

	//�N����\��

	strCalString = strCalString + "<TABLE border='0' CELLSPACING='0' CELLPADDING='0'>";
	strCalString = strCalString + "<TR><TH>"+strYear+"�N"+strTodaysMonth+"��</TH></TR>";
	strCalString = strCalString + "</TABLE></center>";


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


	strCalString = strCalString + "<TABLE border='0' CELLSPACING='0' CELLPADDING='0'><TR>";
	//��s�ڂ͗j��
	for(nLoop=0; nLoop < 7; nLoop++) {

		strCalString = strCalString + "<TD>";
		if(nLoop == 0){
			strCalString = strCalString + strDay[nLoop];
		}else if(nLoop == 6){
			strCalString = strCalString + strDay[nLoop];
		}else{
			strCalString = strCalString + strDay[nLoop];
		}

		strCalString = strCalString + "</TD>";

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

	weekCnt = 0;
	monDayCnt = 0;
	furikae = 0;
	//�u�����N��}��
	for(nLoop = 0; nLoop < dtCal.getDay(); nLoop++) {
		strCalString = strCalString + "<TD>&nbsp;<BR></TD>";
		if(weekCnt == 0){
			weekCnt = weekCnt + 1;
		}
	}
	//��t��}��
	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;
				//���j��̃J�E���g
				if(dtCal.getDay() == 1){
					monDayCnt = monDayCnt + 1;
				}
				// ��2���j
				if (monDayCnt == 2) {
					// 1�� ���l�̓�
					if (strTodaysMonth == 1 && dtCal.getDay() == 1) {syuku = 1;}
					// 10�� �̈�̓�
					if (strTodaysMonth == 10 && dtCal.getDay() == 1) {syuku = 1;}
				}
				// ��3���j
				if (monDayCnt == 3) {
					// 7�� �C�̓� (2003�`)
					if (strYear >= 2003 && strTodaysMonth == 7 && dtCal.getDay() == 1) {syuku = 1;}
					// 9�� �h�V�̓� (2003�`)
					if (strYear >= 2003 && strTodaysMonth == 9 && dtCal.getDay() == 1) {syuku = 1;}
				}
				// 7��20�� �C�̓� (�`2002)
				if(strYear < 2003 && strTodaysMonth == 7 && dtCal.getDate() == 20) {syuku = 1;}
				//  9��15�� �h�V�̓� (�`2002)
				if(strYear < 2003 && strTodaysMonth == 9 && dtCal.getDate() == 15) {syuku = 1;}
				// �V���w�I�Ɏ��ς�邽��
				// �t���̓� 2099�N�܂őΉ�
				if (strTodaysMonth == 3) {
					if (dtCal.getDate() == Math.floor(20.8431+0.242194*(strYear - 1980) - Math.floor((strYear - 1980)/4))) {syuku = 1;}
				}
				// �H���̓� 2099�N�܂őΉ�
				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�� �����L�O�̓�
				if (strTodaysMonth == 2 && dtCal.getDate() == 11) {	syuku = 1;}
				//  4��29�� �݂ǂ�̓�
				if (strTodaysMonth == 4 && dtCal.getDate() == 29) {	syuku = 1;}
				//  5�� 3�� ���@�L�O��
				if (strTodaysMonth == 5 && dtCal.getDate() == 3) {syuku = 1;}
				//  5�� 4�� �����̋x��
				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�� �ΘJ���ӂ̓�
				if(strTodaysMonth == 11 && dtCal.getDate() == 23) {	syuku = 1;	}
				// 12��23�� �V�c�a����
				if(strTodaysMonth == 12 && dtCal.getDate() == 23) {	syuku = 1;	}

				// �U��ւ��x��̃t���O�`�F�b�N
				if(furikae == 0){
					if (dtCal.getDay() == 0) {
						strCalString = strCalString + "<TD ALIGN='CENTER'>";
						//�U��ւ��x��̃t���O�𗧂Ă�
						if(syuku == 1){
							furikae = 1;
						}
					}else if (dtCal.getDay() == 6) {
						if(syuku == 1){
							strCalString = strCalString + "<TD BGCOLOR='" +HolidayBackColor+"' ALIGN='CENTER'>";
						}else{
							strCalString = strCalString + "<TD ALIGN='CENTER'>";
						}
					}else{
						if(syuku == 1){
							strCalString = strCalString + "<TD BGCOLOR='" +HolidayBackColor+"' ALIGN='CENTER'>";
						}else{
							strCalString = strCalString + "<TD  ALIGN='CENTER'>";
						}
					}
				}else{
					//�U��ւ��x��
					strCalString = strCalString + "<TD BGCOLOR='"+HolidayBackColor+"' ALIGN='CENTER'>";
					//�U��ւ��x��̃t���O����
					furikae = 0;
				}

				//��t����
				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;
							}
						}
					}
				}

				//��t�\���̍쐬
				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()){
								//����ȑO
								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()){
								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()){
							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){

	//�u�����N��}��
	for(nLoop = dtCal.getDay() ; nLoop < 7 ; nLoop++) {
		strCalString = strCalString + "<TD>&nbsp;<BR></TD>";
	}

	}

	return strCalString;
}

//���̌���\��
function nextShowMnoth(nYear, nMonth, oj1,oj1name,oj2,oj2name,oj3,oj3name) 
{
	strMonthString = "";
	strMonthString = "<a href='/stay/cal.html?year=" + getNxetYaer(nYear,nMonth+1) +"&mon=" + getNxetMonth(getNxetMonth(nMonth-1)) + "&oj1=" + oj1 + "&oj1name=" +oj1name +"&oj2=" + oj2 + "&oj2name=" +oj2name +"&oj3=" + oj3 + "&oj3name=" +oj3name+"'>��</a>";

	return strMonthString;
}


//�O�̌���\��
function lastShowMnoth(nYear, nMonth, oj1,oj1name,oj2,oj2name,oj3,oj3name) 
{
	strMonthString = "";
	strMonthString = "<font size='-1'><a href='/stay/cal.html?year=" + getLastYaer(nYear, nMonth) +"&mon=" + getLastMonth(nYear, nMonth) + "&oj1=" + oj1 + "&oj1name=" +oj1name +"&oj2=" + oj2 + "&oj2name=" +oj2name +"&oj3=" + oj3 + "&oj3name=" +oj3name+"'>��</a></font>�@�@�@�@�@�@�@�@�@";
	return strMonthString;
}

//�J�����_�[�̕\��
function ShowTwoCalender(nYear, nMonth, oj1,oj1name,oj2,oj2name,oj3,oj3name) 
{
	var strCalString;
	var dtCal = new Date;
	//�N������擾
	Year = dtCal.getYear();
	Month = dtCal.getMonth()+1;

	strCalString = "";
	//�N������擾
	strYear = nYear;
	strMonth = nMonth;
	strNextMonth = getNxetMonth(nMonth);
	strNextYaer = getNxetYaer(nYear, nMonth);

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

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

	//�O�̌��\��
	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 + "&nbsp;";
		}
	}
	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 + "&nbsp;";
		}
	}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 + "&nbsp;";
		}
	}

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

	strCalString = strCalString + ShowCalender(strYear, strMonth, oj1,oj1name,oj2,oj2name,oj3,oj3name);

	return strCalString;

}
//�����̎擾
function getNxetMonth(nMonth) 
{
	n_mon = nMonth + 1;
	if( n_mon >= 13 ){
	    n_mon = 1;
	}
	return n_mon;
}
//���N�̎擾
function getNxetYaer(nYear, nMonth) 
{
	n_mon = nMonth + 1;
	if( n_mon >= 14 ){
	    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;
}
//���N�̎擾
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 += "/stay/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;
	window.open(url,"cal","width=400,height=280");
}
function yearIndex(yearIdx,n)
{
//    if (yearIdx == 2005) { ry = 0;}
//    else if (yearIdx == 2006) { ry = 1;}
//    else if (yearIdx == 2007) { ry = 2;}
//    if (yearIdx == 2006) { ry = 0;}
//    else if (yearIdx == 2007) { ry = 1;}
//    else if (yearIdx == 2008) { ry = 2;}
//    if (yearIdx == 2007) { ry = 0;}
//    else if (yearIdx == 2008) { ry = 1;}
//    else if (yearIdx == 2009) { ry = 2;}
//   return(ry);

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

	//�{�݊Ǘ���ʁ|�����ύX�ł͑O�N����5�N���A�g���x��TOP�ł͓��N����3�N����\��
	if (yearIdx == year - 1) { index = 0;}				//���N�|1�N	�i2006�N�j
	else if (yearIdx == year) { index = 1 - n;}			//���N		�i2007�N�j
	else if (yearIdx == year + 1) { index = 2 - n;}		//���N�{1�N	�i2008�N�j
	else if (yearIdx == year + 2) { index = 3 - n;}		//���N�{2�N	�i2009�N�j
	else if (yearIdx == year + 3) { index = 4;}			//���N�{3�N	�i2010�N�j
	return(index);
}
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);
}

