function isIE(){ //ie? 
  		if (window.navigator.userAgent.toLowerCase().indexOf("msie")>=1) 
   		return true; 
  		else 
   		return false; 
} 

if(!isIE()){ //firefox innerText define
 	HTMLElement.prototype.__defineGetter__(     "innerText", 
	 	function(){
	   		var anyString = "";
	   		var childS = this.childNodes;
	   		for(var i=0; i<childS.length; i++) {
	    			if(childS[i].nodeType==1)
	     				anyString += childS[i].tagName=="BR" ? '\n' : childS[i].innerText;
	    			else if(childS[i].nodeType==3)
	     				anyString += childS[i].nodeValue;
	   		}
	   		return anyString;
	   	} 
   	); 
   	HTMLElement.prototype.__defineSetter__(     "innerText", 
    	function(sText){ 
     		this.textContent=sText; 
    	} 
   	); 
}

function getDefaultCalendar(requestYear, requestMonth, requestDay) {
	document.getElementById("yearCell").innerText = requestYear;
	document.getElementById("monthCell").innerText = requestMonth;
	getAppointedCalendar(requestDay);
	return;
}

function getAppointedCalendar(today) {
	var iYear = parseInt(document.getElementById("yearCell").innerText);
      //var iMonth = parseInt(document.getElementById("monthCell").innerText);
	var iMonth = document.getElementById("monthCell").innerText;
	if (!iMonth) {
		iMonth = 1;
	}
	if (!today) {
		today = 0;
	}
	getCalendarTable(iYear, iMonth, today);
	return;
}

function getCalendarTable(pYear, pMonth, pDay) {
	sCalender = "";
	sCalender = sCalender + "<table border=0 cellspacing=2 cellpadding=2 width=246 class=moon_table>";
	sCalender = sCalender + "  <tr><td class=bg_pink>\u65e5</td>";
	sCalender = sCalender + "      <td class=bg_gray>\u6708</td>";
	sCalender = sCalender + "      <td class=bg_gray>\u706b</td>";
	sCalender = sCalender + "      <td class=bg_gray>\u6c34</td>";
	sCalender = sCalender + "      <td class=bg_gray>\u6728</td>";
	sCalender = sCalender + "      <td class=bg_gray>\u91d1</td>";
	sCalender = sCalender + "      <td class=bg_green>\u571f</td></tr>";
	var sCalender;
	var dDate = new Date(pYear, pMonth - 1, 1);
	var iFirstDayWeekDay = dDate.getDay();
	var iMonthDays = getDaysNumOfMonth(pYear, pMonth);
	var k = 1;
	for (var i = 0; i < Math.ceil((iMonthDays + iFirstDayWeekDay) / 7); i++) {
		sCalender = sCalender + "<tr height = '20px'>";
		for (var j = 0; j < 7; j++) {
			var sDate = "&nbsp;";
			if ((k > iFirstDayWeekDay) && (k <= iMonthDays + iFirstDayWeekDay)) {
				sDate = (k - iFirstDayWeekDay).toString();
			}
			if ((j == 0) || (j == 6)) {
				if (sDate != "&nbsp;") {
					if (formatDateString(sDate) == pDay) {
						sCalender = sCalender + "<td align=center><a class=today style='color:red;' href='?beginDate="+pYear+"/"+formatDateString(pMonth)+"/"+formatDateString(sDate)+"'>" + sDate + "</a></td>";
					} else {
						sCalender = sCalender + "<td align=center><a class=holidayText href='?beginDate="+pYear+"/"+formatDateString(pMonth)+"/"+formatDateString(sDate)+"'>" + sDate + "</a></td>";
					}
				} else {
					sCalender = sCalender + "<td align=center>" + sDate + "</td>";
				}
			} else {
				if (sDate != "&nbsp;") {
					if (formatDateString(sDate) == pDay) {
						sCalender = sCalender + "<td align=center><a class=today style='color:red; href='?beginDate="+pYear+"/"+formatDateString(pMonth)+"/"+formatDateString(sDate)+"'>" + sDate + "</a></td>";
					} else {
						sCalender = sCalender + "<td align=center><a class=workdayText href='?beginDate="+pYear+"/"+formatDateString(pMonth)+"/"+formatDateString(sDate)+"'>" + sDate + "</an></td>";
					}
				} else {
					sCalender = sCalender + "<td align=center>" + sDate + "</td>";
				}
			}
			k++;
		}
		sCalender = sCalender + "</tr>";
	}
	
    //sCalender = sCalender + "<tr align = 'center' height = '20px'><td colspan = '7'><a href='#' name = 'cancel' class = 'holidayText' style = 'cursor: hand' onclick = 'javascript: returnDate(this)'>ﾈ｡ﾏ・/a></td></tr>";
	sCalender = sCalender + "</table>";
	document.getElementById("calendarCell").innerHTML = sCalender;
}

function getDaysNumOfMonth(pYear, pMonth) {
	var iDaysNumOfMonth = 31;
	if (pMonth == 4 || pMonth == 6 || pMonth == 9 || pMonth == 11) {
		iDaysNumOfMonth = 30;
	} else {
		if (pMonth == 2) {
			iDaysNumOfMonth = 28;
		}
	}
	if ((pMonth == 2) && isLeapYear(pYear)) {
		iDaysNumOfMonth = 29;
	}
	return iDaysNumOfMonth;
}

function isLeapYear(pYear) {
	var bLeapYear;
	bLeapYear = true;
	if (pYear % 4 == 0) {
		if ((pYear % 100 == 0) && (pYear % 400 != 0)) {
			bLeapYear = false;
		}
	} else {
		bLeapYear = false;
	}
	return bLeapYear;
}

function yearDecrease() {
	document.getElementById("yearCell").innerText = (parseInt(document.getElementById("yearCell").innerText) - 1).toString();
	getAppointedCalendar();
	return;
}

function yearIncrease() {
	document.getElementById("yearCell").innerText = (parseInt(document.getElementById("yearCell").innerText) + 1).toString();
	getAppointedCalendar();
	return;
}

function monthDecrease() {
	var monthValue = parseInt(parseFloat(document.getElementById("monthCell").innerText)) - 1;
	if (monthValue < 1) {
		monthValue = 12;
		document.getElementById("yearCell").innerText = (parseInt(document.getElementById("yearCell").innerText) - 1).toString();
	}
	document.getElementById("monthCell").innerText = formatDateString(monthValue+"");
	getAppointedCalendar();
	return;
}

function monthIncrease() {
	var monthValue = parseInt(parseFloat(document.getElementById("monthCell").innerText)) + 1;
	if (monthValue > 12) {
		monthValue = 1;
		document.getElementById("yearCell").innerText = (parseInt(document.getElementById("yearCell").innerText) + 1).toString();
	}
	document.getElementById("monthCell").innerText = formatDateString(monthValue+"");
	getAppointedCalendar();
	return;
}

function returnDate(dateText) {
	dateText.style.color = "red";
}

function setToday(today) {
}

function formatDateString(dateString) {
	var returnString = dateString;
	if (dateString.length == 1) {
		returnString = "0" + dateString;
	}
	return returnString;
}



