	var dDate = new Date();
	var dCurMonth = dDate.getMonth();
	var dCurDayOfMonth = dDate.getDate();
	var dCurYear = dDate.getFullYear();

	function mover(obj) {
		obj.bgColor = "#ffffff";
	}

	function mout(obj, clr) {
		if (clr == 0) {
			obj.bgColor = "#f2f2f2";
		} else {
			obj.bgColor = "#d0d0d0"; }
	}

	function PrevMonth(objYear, objMonth, ObjIdx) {
		var idx = objMonth.selectedIndex;
		idx = idx -1;
		if (idx < 0) {
			idx = 11;
			objYear.selectedIndex = objYear.selectedIndex -1;
			}
		objMonth.selectedIndex = idx;
		fUpdateCal(objYear.value, objMonth.value, ObjIdx);
	}

	function NextMonth(objYear, objMonth, ObjIdx) {
		var idx = objMonth.selectedIndex;
		idx = idx +1;
		if (idx > 11) {
			idx = 0;
			objYear.selectedIndex = objYear.selectedIndex +1;
			}
		objMonth.selectedIndex = idx;
		fUpdateCal(objYear.value, objMonth.value, ObjIdx);
	}

	function fourdigits(number)	{
		return (number < 1000) ? number + 1900 : number;
	}

	function fSetSelectedDay(myElement, objIdx){
		var strHTML = myElement.innerHTML;
		idx = strHTML.indexOf(">")
		if (idx != 0) {
			strHTML = strHTML.substring(idx + 1);
		}
		idx = strHTML.indexOf("<")
		if (idx != 0) {
			strHTML = strHTML.substring(0, idx);
		}
		if (!isNaN(strHTML)) {
			if (strHTML.length > 0) {
				var objDateField = document.getElementById("DateField" + objIdx);
				var objMonth = document.getElementById("tbSelMonth" + objIdx);
				var objYear = document.getElementById("tbSelYear" + objIdx);
				var retDate = new Date(objYear.value, objMonth.value-1, strHTML);
				objDateField.value = retDate.getMonth()+1 + "/" + retDate.getDate() + "/" + (fourdigits(retDate.getYear()))
				var objCal = document.getElementById("calendar" + objIdx);
				objCal.style.display = "none";
			}
		}
	}

	function fGetDaysInMonth(iMonth, iYear) {
		var dPrevDate = new Date(iYear, iMonth, 0);
		return dPrevDate.getDate();
	}

	function fBuildCal(iYear, iMonth, iDayStyle) {
		var aMonth = new Array();
		aMonth[0] = new Array(7);
		aMonth[1] = new Array(7);
		aMonth[2] = new Array(7);
		aMonth[3] = new Array(7);
		aMonth[4] = new Array(7);
		aMonth[5] = new Array(7);
		aMonth[6] = new Array(7);
		var dCalDate = new Date(iYear, iMonth-1, 1);
		var iDayOfFirst = dCalDate.getDay();
		var iDaysInMonth = fGetDaysInMonth(iMonth, iYear);
		var iVarDate = 1;
		var i, d, w;
		if (iDayStyle == 2) {
			aMonth[0][0] = "Sunday";
			aMonth[0][1] = "Monday";
			aMonth[0][2] = "Tuesday";
			aMonth[0][3] = "Wednesday";
			aMonth[0][4] = "Thursday";
			aMonth[0][5] = "Friday";
			aMonth[0][6] = "Saturday";
		} else if (iDayStyle == 1) {
			aMonth[0][0] = "Sun";
			aMonth[0][1] = "Mon";
			aMonth[0][2] = "Tue";
			aMonth[0][3] = "Wed";
			aMonth[0][4] = "Thu";
			aMonth[0][5] = "Fri";
			aMonth[0][6] = "Sat";
		} else {
			aMonth[0][0] = "S";
			aMonth[0][1] = "M";
			aMonth[0][2] = "T";
			aMonth[0][3] = "W";
			aMonth[0][4] = "T";
			aMonth[0][5] = "F";
			aMonth[0][6] = "S";
		}
		for (d = iDayOfFirst; d < 7; d++) {
			aMonth[1][d] = iVarDate;
			iVarDate++;
		}
		for (w = 2; w < 7; w++) {
			for (d = 0; d < 7; d++) {
				if (iVarDate <= iDaysInMonth) {
					aMonth[w][d] = iVarDate;
					iVarDate++;
					}
				}
			}
		return aMonth;
	}

	function fDrawCal(iYear, iMonth, iCellWidth, iCellHeight, sDateTextSize, sDateTextWeight, iDayStyle, objIdx) {
		var myMonth;
		var flg;
		var bg;
		myMonth = fBuildCal(iYear, iMonth, iDayStyle);
		document.write("<table cellspacing='0' cellpadding='2' border='1' width='100%'>")
		document.write("<tr>");
		document.write("<td align='center' bgcolor='#2A6961' style='color:#ffffff; font-family:arial;font-size:10px;font-weight: bold'>" + myMonth[0][0] + "</td>");
		document.write("<td align='center' bgcolor='#7DB3B2' style='font-family:arial;font-size:10px;font-weight: bold'>" + myMonth[0][1] + "</td>");
		document.write("<td align='center' bgcolor='#7DB3B2' style='font-family:arial;font-size:10px;font-weight: bold'>" + myMonth[0][2] + "</td>");
		document.write("<td align='center' bgcolor='#7DB3B2' style='font-family:arial;font-size:10px;font-weight: bold'>" + myMonth[0][3] + "</td>");
		document.write("<td align='center' bgcolor='#7DB3B2' style='font-family:arial;font-size:10px;font-weight: bold'>" + myMonth[0][4] + "</td>");
		document.write("<td align='center' bgcolor='#7DB3B2' style='font-family:arial;font-size:10px;font-weight: bold'>" + myMonth[0][5] + "</td>");
		document.write("<td align='center' bgcolor='#2A6961' style='color:#ffffff; font-family:arial;font-size:10px;font-weight: bold'>" + myMonth[0][6] + "</td>");
		document.write("</tr>");
		for (w = 1; w < 7; w++) {
			document.write("<tr>")
			for (d = 0; d < 7; d++) {
				bg = "bgcolor='#f2f2f2'";
				flg = 0
				if (d == 0) {
					bg = "bgcolor='#d0d0d0'";
					flg = 1;
				} else if (d == 6) {
					bg = "bgcolor='#d0d0d0'";
					flg = 1;
				}
				
				document.write("<td align='center' " + bg + " valign='top' width='" + iCellWidth + "' height='" + iCellHeight + "' id='calCell" + objIdx + w + d + "' style='cursor: hand;' onMouseOver='mover(this)' onMouseOut='mout(this, " + flg + ")' onclick='fSetSelectedDay(this, " + objIdx + ");'>");
				
				if (!isNaN(myMonth[w][d])) {
				document.write("<font id='calDateText" + objIdx + w + d + "' onMouseOver='mover(this)' style='cursor:hand; font-family: arial;font-size:" + sDateTextSize + ";font-weight:" + sDateTextWeight + "' onMouseOut='mout(this, " + flg + ")' onclick='fSetSelectedDay(this, " + objIdx + ");'> " + padValue(myMonth[w][d]) + " </font>");
				} else {
				document.write("<font id='calDateText" + objIdx + w + d + "' style='font-family:arial; font-size:" + sDateTextSize + "; font-weight:" + sDateTextWeight + "'>&nbsp;</font>");
			}
			document.write("</td>")
		}
		document.write("</tr>");
		}
		document.write("</table>")
	}

	function padValue(dy) {
		dy = "0" + dy;
		if (dy.length == 3) {
			dy = dy.substring(1, 3);
		}
		return (dy);
	}

	function fUpdateCal(iYear, iMonth, objIdx) {
		myMonth = fBuildCal(iYear, iMonth);
		var nm;

		for (w = 1; w < 7; w++) {
			for (d = 0; d < 7; d++) {
				nm = "calDateText" + objIdx + w + d;
				if (!isNaN(myMonth[w][d])) {
					document.getElementById(nm).innerHTML = padValue(myMonth[w][d]);}
				else {document.getElementById(nm).innerHTML = "&nbsp;";}
			}
		}
	}
