var target;

var stime;
document.write("<div id=minical oncontextmenu='return false' ondragstart='return false' onselectstart='return false' style=\"background:#dbe5f1; margin:5; padding:5;margin-top:2;border-top:1 solid #5e728b;border-left:1 solid #5e728b;border-right:2 solid #5e728b;border-bottom:2 solid #5e728b;width:160;display:none;position:absolute; z-index: 1\"></div>");

function Calendar(obj) {
	var x, y;
	target = obj; // Object save;

	x = (document.layers) ? loc.pageX : event.clientX;
	y = (document.layers) ? loc.pageY : event.clientY;

	minical.style.left = x + document.body.scrollLeft - 50;
	minical.style.top = y + document.body.scrollTop + 10;

	minical.style.display = (minical.style.display == "block") ? "none" : "block";

	if ( obj.value.match(/(19|20)(\d{2})-(\d{2})-(\d{2})/) ) {	// 
		var now = new Array();

		now = obj.value.split("-");
/*
		now[0] = obj.value.substr(0, 4);
		now[1] = obj.value.substr(4, 2);
		now[2] = obj.value.substr(6, 2);
*/
		if(now[1].substr(0, 1) == "0") now[1] = now[1].substr(1, 1);
		if(now[2].substr(0, 1) == "0") now[2] = now[2].substr(1, 1);

		Show_cal(now[0],now[1],now[2]); // 
	} else {
		var now = new Date();
		Show_cal(now.getFullYear(), now.getMonth()+1, now.getDate());//
	}
}

function doOver() {																// 
	var el = window.event.srcElement;
	cal_Day = el.title;

	if (cal_Day.length > 7) {													// 
		el.style.borderTopColor = el.style.borderLeftColor = "buttonhighlight";
		el.style.borderRightColor = el.style.borderBottomColor = "buttonshadow";
	}
	window.clearTimeout(stime);// Clear
}

function doClick() {															// 
	cal_Day = window.event.srcElement.title;
	window.event.srcElement.style.borderColor = "red"; // 
	if (cal_Day.length > 7) {													// 
		target.value=cal_Day; // 
	}
	minical.style.display='none'; // 
}

function doOut() {
	var el = window.event.fromElement;
	cal_Day = el.title;

	if (cal_Day.length > 7) {
		el.style.borderColor = "white";
	}

//	stime=window.setTimeout("minical.style.display='none';", 200);
}

function day2(d) {																// 
	var str = new String();

	if (parseInt(d) < 10) {
		str = "0" + parseInt(d);
	} else {
		str = "" + parseInt(d);
	}
	return str;
}

function Show_cal(sYear, sMonth, sDay) {
	var Months_day = new Array(0,31,28,31,30,31,30,31,31,30,31,30,31)
	var Weekday_name = new Array("日", "月", "火", "水", "木", "金", "土");
	var intThisYear, intThisMonth, intThisDay;
	document.all.minical.innerHTML = "";
	datToday = new Date();	// 

	intThisYear = parseInt(sYear);
	intThisMonth = parseInt(sMonth);
	intThisDay = parseInt(sDay);

	//alert(intThisYear+"/"+intThisMonth+"/"+intThisDay);

	if (intThisYear == 0) intThisYear = datToday.getFullYear(); // 
	if (intThisMonth == 0) intThisMonth = parseInt(datToday.getMonth())+1;	// 
	if (intThisDay == 0) intThisDay = datToday.getDate();

	switch(intThisMonth) {
		case 1:
				intPrevYear = intThisYear -1;
				intPrevMonth = 12;
				intNextYear = intThisYear;
				intNextMonth = 2;
				break;
		case 12:
				intPrevYear = intThisYear;
				intPrevMonth = 11;
				intNextYear = intThisYear + 1;
				intNextMonth = 1;
				break;
		default:
				intPrevYear = intThisYear;
				intPrevMonth = parseInt(intThisMonth) - 1;
				intNextYear = intThisYear;
				intNextMonth = parseInt(intThisMonth) + 1;
				break;
	}

	NowThisYear = datToday.getFullYear();//  
	NowThisMonth = datToday.getMonth()+1;// 
	NowThisDay = datToday.getDate();// 

	datFirstDay = new Date(intThisYear, intThisMonth-1, 1);	// 
	intFirstWeekday = datFirstDay.getDay();// 

	intSecondWeekday = intFirstWeekday;
	intThirdWeekday = intFirstWeekday;

	datThisDay = new Date(intThisYear, intThisMonth, intThisDay);// 
	intThisWeekday = datThisDay.getDay();// 

	varThisWeekday = Weekday_name[intThisWeekday];// 

	intPrintDay = 1; // 
	secondPrintDay = 1;
	thirdPrintDay = 1;

	Stop_Flag = 0

	if ((intThisYear % 4)==0) {	// 
		if ((intThisYear % 100) == 0) {
			if ((intThisYear % 400) == 0) {
				Months_day[2] = 29;
			}
		} else {
			Months_day[2] = 29;
		}
	}
	intLastDay = Months_day[intThisMonth];	// 
	Stop_flag = 0

	Cal_HTML = "<TABLE WIDTH=100% BORDER=0 CELLPADDING=0 CELLSPACING=0 ONMOUSEOVER='doOver();' ONMOUSEOUT='doOut();' STYLE='font-size:8pt;font-family:Tahoma;'>"
			+ "<TR ALIGN=CENTER><TD COLSPAN=7 nowrap=nowrap ALIGN=CENTER><SPAN TITLE='前月' STYLE=cursor:hand; onClick='Show_cal("+intPrevYear+","+intPrevMonth+",1);'><FONT COLOR=Navy>←</FONT></SPAN> "
			+ "<B STYLE=color:#5D738B>"+get_Yearinfo(intThisYear,intThisMonth,intThisDay)+"年"+get_Monthinfo(intThisYear,intThisMonth,intThisDay)+"月</B>"
			+ " <SPAN TITLE='翌月' STYLE=cursor:hand; onClick='Show_cal("+intNextYear+","+intNextMonth+",1);'><FONT COLOR=Navy>→</FONT></SPAN></TD></TR>"
			+ "<TR ALIGN=CENTER BGCOLOR=#dbe5f1 STYLE='color:White;font-weight:bold;'><TD>日</TD><TD>月</TD><TD>火</TD><TD>水</TD><TD>木</TD><TD>金</TD><TD>土</TD></TR>"
            + "<tr><td COLSPAN=7 style='border:1px solid #BABABA'><table width='100%' cellpadding='0' cellspacing='0'>";
;

	for (intLoopWeek=1; intLoopWeek < 7; intLoopWeek++) { // 
		Cal_HTML += "<TR ALIGN=RIGHT BGCOLOR=#ffffff>"
		for (intLoopDay=1; intLoopDay <= 7; intLoopDay++) {	// 
			if (intThirdWeekday > 0) {	// 
				Cal_HTML += "<TD onClick=doClick();>";
				intThirdWeekday--;
			} else {
				if (thirdPrintDay > intLastDay) { // 
					Cal_HTML += "<TD onClick=doClick();>";
				} else { // 
					Cal_HTML += "<TD onClick=doClick(); title="+intThisYear+"-"+day2(intThisMonth).toString()+"-"+day2(thirdPrintDay).toString()+" STYLE=\"cursor:Hand;border:1px solid white;";
//					Cal_HTML += "<TD onClick=doClick(); title="+intThisYear+day2(intThisMonth).toString()+day2(thirdPrintDay).toString()+" STYLE=\"cursor:Hand;border:1px solid white;";
//					if (intThisYear == NowThisYear && intThisMonth==NowThisMonth && thirdPrintDay==intThisDay) {
					if (thirdPrintDay==intThisDay) {
						Cal_HTML += "background-color:#DBE5F1;";
					}

					switch(intLoopDay) {
						case 1:	// 
							Cal_HTML += "color:#b02f2f;"
							break;
						case 7:
							Cal_HTML += "color:#2f7eb0;"
							break;
						default:
							Cal_HTML += "color:black;"
							break;
					}

					Cal_HTML += "\">"+thirdPrintDay;

				}
				thirdPrintDay++;

				if (thirdPrintDay > intLastDay) {								// 
					Stop_Flag = 1;
				}
			}
			Cal_HTML += "</TD>";
		}
		Cal_HTML += "</TR>";
		if (Stop_Flag==1) break;
	}

	Cal_HTML += "</table></td></tr></TABLE><div style='width:100%; text-align:center; padding: 2 0 0 0'><img src='../image/btn/bt_cal_close.gif' style='cursor:hand' onclick=\"minical.style.display='none'\"></div>";

	document.all.minical.innerHTML = Cal_HTML;
}

function get_Yearinfo(year,month,day) {											// 
	var min = parseInt(year) - 100;
	var max = parseInt(year) + 10;
	var i = new Number();
	var str = new String();

	str = "<SELECT onChange='Show_cal(this.value,"+month+","+day+");' ONMOUSEOVER=doOver();>";
	for (i=min; i<=max; i++) {
		if (i == parseInt(year)) {
			str += "<OPTION VALUE="+i+" selected ONMOUSEOVER=doOver();>"+i+"</OPTION>";
		} else {
			str += "<OPTION VALUE="+i+" ONMOUSEOVER=doOver();>"+i+"</OPTION>";
		}
	}
	str += "</SELECT>";
	return str;
}


function get_Monthinfo(year,month,day) {										// 
	var i = new Number();
	var str = new String();

	str = "<SELECT onChange='Show_cal("+year+",this.value,"+day+");' ONMOUSEOVER=doOver();>";
	for (i=1; i<=12; i++) {
		if (i == parseInt(month)) {
			str += "<OPTION VALUE="+i+" selected ONMOUSEOVER=doOver();>"+i+"</OPTION>";
		} else {
			str += "<OPTION VALUE="+i+" ONMOUSEOVER=doOver();>"+i+"</OPTION>";
		}
	}
	str += "</SELECT>";
	return str;
}

