	function MakeArray(n){
			this.length = n;
			return this;
	}
	function getFirstDay(theYear){
			var firstDate = new Date(theYear,this.offset,1);
			return firstDate.getDay();
	}
	function aMonth(name,length,offset) {
			this.name = name;
			this.length = length;
			this.offset = offset;
			this.getFirstDay = getFirstDay;
	}
	function getFebLength(theYear) {
			theYear = (theYear < 1900) ? theYear + 1900: theYear;
			if ((theYear % 4 == 0 && theYear % 100 != 0) || theYear % 400 == 0) {
					return 29;
			}
			return 28;
	}
	theMonths = new MakeArray(12);
	theMonths[1] = new aMonth("1",31,0);
	theMonths[2] = new aMonth("2",28,1);
	theMonths[3] = new aMonth("3",31,2);
	theMonths[4] = new aMonth("4",30,3);
	theMonths[5] = new aMonth("5",31,4);
	theMonths[6] = new aMonth("6",30,5);
	theMonths[7] = new aMonth("7",31,6);
	theMonths[8] = new aMonth("8",31,7);
	theMonths[9] = new aMonth("9",30,8);
	theMonths[10] = new aMonth("10",31,9);
	theMonths[11] = new aMonth("11",30,10);
	theMonths[12] = new aMonth("12",31,11);

	var startyear = 1901;
	var maxprintyear = 120;
	var today = new Date();
	var todayyear = today.getFullYear();
	var todaymonth = today.getMonth()+1;
	var todayday = today.getDate();
	function printThisFrmMonth()
	{
		if(arguments.length > 0) month = arguments[0];
		else month = todaymonth;
		var reVal = "";
		for(i = 1 ; i < 13 ; i++)
		{
			if(Number(i) == Number(month)) selected = " selected";
			else selected = "";
			reVal+="<option value=\""+i+"\""+selected+">"+i+"</option>";
		}
		return reVal;
	}
	function printThisFrmYear()
	{
		var startyear = todayyear - maxprintyear;
		var lastyear = todayyear + maxprintyear;
		if(arguments.length > 0) year = arguments[0];
		else year = todayyear;
		var reVal = "";
		for(i = startyear ; i < lastyear ; i++)
		{
			if(Number(i) == Number(year)) selected = " selected";
			else selected = "";
			reVal+= "<option value=\""+i+"\""+selected+">"+i+"</option>\n";
		}
		return reVal;
	}
	function populateFields(form) {
        var theMonth = form.chooseMonth.options[form.chooseMonth.selectedIndex].text
        var theYear = form.chooseYear.options[form.chooseYear.selectedIndex].text
        var anchorDay = new Date(theYear,form.chooseMonth.selectedIndex,1)
        var monthOffset = anchorDay.getMonth() + 1
        var thisMonth = theMonths[monthOffset].name
        if (monthOffset == 2) {
                theMonths[2].length = getFebLength(anchorDay.getYear())
        }
        var firstDay = theMonths[monthOffset].getFirstDay(anchorDay.getYear())
        var howMany = theMonths[monthOffset].length
		if(document.all.oneMonth) document.all.oneMonth.innerHTML = theYear + " " + theMonth
        for (var i = 0; i < 42; i++) {
                if (i < firstDay || i >= (howMany + firstDay)) {
                        document.all.oneDay[i].innerHTML = ""
                } else {
                        document.all.oneDay[i].innerHTML = i - firstDay + 1
                }
        }
	}
	function goThisDay(dayz){
		if(dayz.length){
			formz = document.calendarFrm;
			applyCalendar(formz.chooseYear.value, formz.chooseMonth.value, dayz);
			hideCalendar();
		}
	}
	function hideCalendar(){
		document.all.oCalendar.style.display="none";
	}
	function showCalendar(){
		calwidth = "120";
		calheight = "200";
		posi = parseInt(event.clientY) + parseInt(calheight);
		cheight = document.body.clientHeight;
		if(!document.all.oCalendar) printCollendar();
		if(posi > cheight) {
			document.all.oCalendar.style.pixelTop = event.clientY + document.body.scrollTop - calheight
			document.all.oCalendar.style.pixelLeft = event.clientX + document.body.scrollLeft - calwidth
		} else {
			document.all.oCalendar.style.pixelTop = event.clientY + document.body.scrollTop
			document.all.oCalendar.style.pixelLeft = event.clientX + document.body.scrollLeft
		}
		oCalendar.style.display="inline";
	}
	function fillZero_Cal(str, len){
		while(str.length < len){
			str = "0"+str;
		}
		return str;
	}
	function printCollendar()
	{
		var collendarHtml = "";
		collendarHtml += "<div style=\"position:absolute;top:0;left:0;display:inline;z-index:10000000\" id=\"oCalendar\">";
		collendarHtml += "<table  class='planebar' handlefor='oCalendar' border=\"0\" cellspacing=0 cellpadding=\"2\" align=\"center\" bgcolor=\"#FFFFFF\" style=\"border:1px solid #DCDCDC;FILTER: progid:DXImageTransform.Microsoft.Shadow(direction=135,color=#BBBBBB,strength=5);\">";
		collendarHtml += "<FORM name=\"calendarFrm\">";
		collendarHtml += "<tr><td align=\"center\">";
		collendarHtml += "<SELECT NAME=\"chooseYear\" onChange=\"populateFields(this.form)\">";
		collendarHtml += printThisFrmYear(todayyear);
		collendarHtml += "</SELECT>";
		collendarHtml += "<SELECT NAME=\"chooseMonth\" onChange=\"populateFields(this.form)\">";
		collendarHtml += printThisFrmMonth(todaymonth);
		collendarHtml += "</SELECT>";

		var activeDateEle;
		var oneField = "<div id='oneDay' onClick=\"if(!isNaN(this.innerText)) goThisDay(this.innerText);\"></div>"
		var content = "<TABLE align=center BORDER=1 cellpadding=1 cellspacing=0 style=\"border-collapse:collapse;\">"
		//content += "<TR><TH COLSPAN=7><div id='oneMonth'>&nbsp;</div></TH></TR>"
		content += "<TR>"
		content += "<TD style=color:red align=center>ÀÏ</TD><TD align=center>¿ù</TD><TD align=center>È­</TD><TD align=center>¼ö</TD>"
		content += "<TD align=center>¸ñ</TD><TD align=center>±Ý</TD><TD style=color:blue align=center>Åä</TD>"
		content += "</TR><TR>"

		for (var i = 1; i < 43; i++) {
				if(i % 7 == 1 ) 
					content += "<TD align=right style=\"color:red;height:20;width:15;padding:0px;text-align:center\">" + oneField + "</TD>"
				else if(i % 7== 0 )
					content += "<TD align=right style=\"color:blue;height:20;width:15;padding:0px;text-align:center\">" + oneField + "</TD>"
				else
					content += "<TD align=right style=\"height:20;width:15;padding:0px;text-align:center\">" + oneField + "</TD>"
				if (i % 7 == 0) {
						content += "</TR><TR>"
				}
		}

		content += "</TR><tr><td colspan=7 align=center><a href=\"javascript:void(0)\" onClick=\"document.calendarFrm.chooseYear.value="+todayyear+";document.calendarFrm.chooseMonth.value="+todaymonth+";populateFields(document.calendarFrm)\">[±Ý¿ùº¸±â]</a><a href=\"javascript:void(0)\" onClick=\"hideCalendar()\">[´Ý±â]</a></td></tr></TABLE>";
		
		collendarHtml += content;
		collendarHtml += "</td></tr></FORM></table></div>";
		oTmp =  document.createElement("DIV");
		oTmp.innerHTML = collendarHtml;
		oTmp.id="oTmpCalendar";
		document.body.insertBefore(oTmp);
		populateFields(document.all.calendarFrm);
	}
	var activeDateEle = null;
	function searchDate(ele){
		activeDateEle = ele;
		showCalendar();
	}
	function applyCalendar(yyyy, mm, dd){
		activeDateEle.value = yyyy+"-"+fillZero_Cal(mm, 2)+"-"+fillZero_Cal(dd, 2);
	}
