var today = new Date();
var months = new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
var dp_month = today.getMonth();
var dp_year = today.getFullYear();;
var dp_target;

function fill_calendar( id, m, y )
{
	dp_month = m;
	dp_year = y;
	if (dp_month<0)
	{
		dp_month = 11;
		dp_year--;
	}
	if (dp_month>11)
	{
		dp_month = 0;
		dp_year++;
	}
	document.getElementById("monyear").innerHTML = months[dp_month] + " " + dp_year;
	var r, c;
	var mon = new Date(0);
	mon.setUTCFullYear(dp_year);
	mon.setUTCMonth(dp_month);
	mon.setUTCDate(1);
	var wd = mon.getDay();
	for (r=2; r<=7; r++)
	{
		for (c=0; c<=6; c++)
		{
			d = mon.getDate();
			if ((d == 1) && ((c != wd-1) && !((c == 6) && (wd == 0))))
			{
				document.getElementById(id).rows[r].cells[c].innerHTML = "&nbsp;";
				document.getElementById(id).rows[r].cells[c].style.backgroundColor = "#EFEFEF";
			}
			else if (mon.getMonth() != dp_month)
			{
				document.getElementById(id).rows[r].cells[c].innerHTML = "&nbsp;";
				document.getElementById(id).rows[r].cells[c].style.backgroundColor = "#EFEFEF";
			}
			else
			{
				document.getElementById(id).rows[r].cells[c].innerHTML = d;
				document.getElementById(id).rows[r].cells[c].style.backgroundColor = "#FFFFFF";
				mon.setDate(d+1);
			}
		}
	}
}

function next_month( d )
{
	fill_calendar( 'tab_datepicker', dp_month+d, dp_year );
}

function date_picker()
{
	var r, c;
	document.write("<div id='div_datepicker' style='position:absolute; visibility:hidden; top:100px; left:100px'>");
	document.write("<table id='tab_datepicker' border='1' cellpadding='0' cellspacing='0' bgcolor='#FFFFFF'>");
	document.write("<tr>");
	document.write("  <th>&nbsp;<a href='#' onclick='next_month(-1);'>&lt;&lt;</a>&nbsp;</th>");
	document.write("  <th colspan='5'><span id='monyear'>&nbsp;</span></th>");
	document.write("  <th>&nbsp;<a href='#' onclick='next_month(1);'>&gt;&gt;</a>&nbsp;</th>");
	document.write("</tr>");
	document.write("<tr>");
	document.write("  <th>Mo<th>Tu<th>We<th>Th<th>Fr<th>Sa<th>Su");
	document.write("</tr>");
	for (r=1; r<=6; r++)
	{
		document.write("<tr>");
		for (c=0; c<=6; c++)
		{
			document.write("<td align='center' width='25' bgcolor='#EFEFEF' onclick='select_date(" + (r+1) + "," + (c) + ");'>&nbsp;</td>");
		}
		document.write("</tr>");
	}
	document.write("</table>");
	document.write("</div>");
}

function show_datepicker( event, i )
{
	dp_target = i;
	//var target = document.getElementById(i);
	//alert( "top = " + target.style.top );
	//alert( "left = " + target.style.left );
	//var top = target.offsetTop;
	//var left = target.offsetLeft + target.offsetWidth + 5;
	//var div_datepicker = document.getElementById("div_datepicker")
	div_datepicker.style.top = event.clientY;
	div_datepicker.style.left = event.clientX;
	div_datepicker.style.visibility = "visible";
	fill_calendar( "tab_datepicker", dp_month, dp_year );
}

function select_date( r, c )
{
	document.getElementById("div_datepicker").style.visibility = "hidden";
	if (document.getElementById("tab_datepicker").rows[r].cells[c].innerHTML != "&nbsp;")
	{
		var dp_value = dp_year + "-"
		if (dp_month<9) dp_value += "0";
		dp_value += (dp_month+1) + "-"
		var d = document.getElementById("tab_datepicker").rows[r].cells[c].innerHTML;
		if (d<10) dp_value += "0";
		dp_value += d;
		document.getElementById(dp_target).value = dp_value;
	}
}

date_picker();
