var cal=new Date();
var thisDate=cal.getDate();
var thisDay=cal.getDay();
var thisMonth=cal.getMonth();
var thisYear=cal.getFullYear();

function buildCalendar(gMonth, gYear, frmObj, divId) {
	if (gMonth == '' && gYear == '') {
		var theDate=new Date();
		gMonth = theDate.getMonth();
		gYear = theDate.getFullYear();
	}
	var txtDay = new Array('Sun','Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat');
	var txtMonth = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
	var monthDays = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

	// rest month if Jan or Dec plus auto change year
	if (gMonth == 12) {
		gMonth = 0;
		gYear = gYear + 1;
	}
	if (gMonth == -1) {
		gMonth = 11;
		gYear = gYear - 1;
	}

	// Check if leap year
	monthDays[1] = (((gYear%100!=0)&&(gYear%4==0))||(gYear%400==0))?29:28;

	var firstDay = new Date(gYear, gMonth, 1).getDay();
	var monthDays = monthDays[gMonth];

	// Begin Calendar Table
	var calString = '<table bgcolor="#339966" width="188" class="clsOTable" cellspacing="1" cellpadding="2" border="0">';
	calString += '<tr bgcolor="#339966" valign=\"top\">';
	calString += '<td align="left"><a href="javascript:buildCalendar('+gMonth+', '+(gYear-1)+',\''+frmObj+'\',\''+divId+'\')"><<<td align="left"><a href="javascript:buildCalendar('+(gMonth-1)+', '+(gYear)+',\''+frmObj+'\',\''+divId+'\')"><</td>';
	calString += '<td colspan="3" align="center" class="nuggethead">'+txtMonth[gMonth]+' '+gYear+'</td>';
	calString += '<td align="right" class="body"><a href="javascript:buildCalendar('+(gMonth+1)+', '+gYear+',\''+frmObj+'\',\''+divId+'\')">><td align="right"><a href="javascript:buildCalendar('+gMonth+', '+(gYear+1)+',\''+frmObj+'\',\''+divId+'\')">>></td>';
	calString += '</tr>';

	// Add Day Topbar
	calString += '<tr valign=\"top\">';
	for (wkDay=0; wkDay<=6; wkDay++) {
		calString += '<td bgcolor="#99CC99"><font color="#000000" face="tahoma, verdana" size="2">'+txtDay[wkDay]+'</font></td>';
	}
	calString += '</tr>';

	// Build main calendar
	calString += '<tr valign=\"top\">';
	for (wkDay = 0; wkDay <42; wkDay++) {
		var wkNum = (wkDay-firstDay+1);
		if (wkDay < firstDay){
			calString += '<td bgcolor="#FFFFFF" width="70" class="bodytextsmaller">&nbsp;</td>';
		}
		else if (wkNum==thisDate && thisMonth==gMonth && thisYear==gYear) {
			if (wkNum < 10) {
				wkNum = "0" + wkNum;
			}
			if (gMonth < 9) {
				gMonthT = "0" + (gMonth+1);
			}
			else {
				gMonthT = (gMonth+1);
			}
			calString += '<td width="70" class="bodytextsmaller" bgcolor="#EFEFEF" id="Id_' + wkNum + gMonthT + gYear + '"><a href="javascript:setDate(\'' + wkNum + '/' + gMonthT + '/' + gYear + '\',\'' + frmObj + '\',\'' + divId + '\')">' + wkNum + '</a></td>';
		}
		else if (wkNum > monthDays) {
			calString += '<td bgcolor="#FFFFFF" width="70" class="bodytextsmaller">&nbsp;</td>';
		}
		else {
			if (wkNum < 10) {
				wkNum = "0" + wkNum;
			}
			if (gMonth < 9) {
				gMonthT = "0" + (gMonth+1);
			}
			else {
				gMonthT = (gMonth+1);
			}
			calString += '<td bgcolor="#FFFFFF" width="70" class="bodytextsmaller" id="Id_' + wkNum + gMonthT + gYear + '"><a href="javascript:setDate(\'' + wkNum + '/' + gMonthT + '/' + gYear + '\',\'' + frmObj + '\',\'' + divId + '\')">' + wkNum + '</a></td>';
		}
		if (wkDay%7==6) {
			calString += '</tr><tr valign=\"top\">';
		}
	}
	calString += '</tr>';

	// Details of today
	todayYear = thisYear;
	if (thisMonth <= 9) {
		todayMonth = "0" + (thisMonth+1);
	}
	else {
		todayMonth = thisMonth+1;
	}
	if (thisDate <= 9) {
		todayDay = "0" + thisDate;
	}
	else {
		todayDay = thisDate;
	}
	calString += '<tr bgcolor="#ffffff" valign=\"top\">';
	calString += '<td align="left" class="body" colspan="6">Today : <a href="javascript:setDate(\'' + todayDay + "/" + todayMonth + "/" + todayYear + '\',\'' + frmObj + '\',\'' + divId + '\')">' + todayDay + '/' + todayMonth + '/' + todayYear + '</a></td>';
	calString += '<td align="center"><a href="javascript:closeCal(\'' + divId + '\')">X</a></td>';
	calString += '</tr>';

	// Close Calendar Table
	calString += '</table>';

	document.getElementById(divId).innerHTML = calString;
	document.getElementById(divId).style.visibility="";

}

function closeCal(divId) {
	eval("document.getElementById('"+divId+"').style.visibility =\"hidden\";")
}

function setDate(dateVal, frmObj, divId) {
	eval("document.form."+frmObj+".value = dateVal;")
	closeCal(divId);
}

