function DrawMonth(dtPickerID)
{		
    var selDate = document.getElementById(dtPickerID + 'dSelectedDate');
	var selectedMonth;
	var selectedNextMonth;
	var selectedYear;
	var selectedNextYear;
	var dayCount;
	var weekDayStart;
	var selectedDay;
	var classNameSelected;
	var classNameUnselected;
	var onmouseover;
	var onmouseout;
	
	classNameSelected = document.getElementById(dtPickerID).getAttribute('classNameSelected');
	classNameUnselected = document.getElementById(dtPickerID).getAttribute('classNameUnSelected');
	classNameHover = document.getElementById(dtPickerID).getAttribute('classNameMouseOver');
	
	if (selDate != null)
	{
	    //Parse selected date
	    var dateArray = selDate.value.split('/');
	    
	    selectedDay = dateArray[0];
	    selectedMonth = document.getElementById(dtPickerID + 'dMonth').selectedIndex + 1;
	    selectedYear = document.getElementById(dtPickerID + 'dYear').value;
	}
	else
	{
	    var now = new Date();
	    selectedDay = now.getDate();
	    selectedMonth = now.getMonth();
        selectedYear = now.getYear();
	}
	
	var monthBegin;
	
	if (selectedMonth == 2)
	{
		var monthEnd = new Date(selectedYear + '/03/01');
		monthBegin = new Date(selectedYear + '/02/01');
		
		dayCount = Math.floor((monthEnd - monthBegin) / (1000*60*60*24));	
	}
	else
	{
		monthBegin = new Date(selectedYear + '/' + selectedMonth + '/01');
		
		if (selectedMonth == 1){ dayCount = 31;}
		if (selectedMonth == 3){ dayCount = 31;}
		if (selectedMonth == 4){ dayCount = 30;}
		if (selectedMonth == 5){ dayCount = 31;}
		if (selectedMonth == 6){ dayCount = 30;}
		if (selectedMonth == 7){ dayCount = 31;}
		if (selectedMonth == 8){ dayCount = 31;}
		if (selectedMonth == 9){ dayCount = 30;}
		if (selectedMonth == 10){ dayCount = 31;}
		if (selectedMonth == 11){ dayCount = 30;}
		if (selectedMonth == 12){ dayCount = 31;}
	}	
	
	weekDayStart = monthBegin.getDay() - 1;
	
	if (weekDayStart == -1) weekDayStart = 6;
	
	var curDay = 1;
	var curCell;
	
	for (i = 0; i < 6; i++)
	{
		for (j = 0; j < 7; j++)
		{
			curCell = document.getElementById(dtPickerID + 'c' + (i + 1) + (j + 1));
			curCell.innerHTML = '';
			
			curCell.onmouseout = null;
			curCell.onmouseover = null;
			curCell.className = '';
			
			if (curDay <= dayCount)
			{
				if (weekDayStart > 0)
				{	
					weekDayStart--;
				}
				else
				{
					
					curCell.innerHTML = curDay;
		
					if(selectedDay == curDay)
					{
						curCell.className = classNameSelected;
						curCell.onmouseover = function () {this.style.cursor = 'pointer';}
						curCell.onmouseout = function () {this.style.cursor = 'default';}
					}
					else
					{	
						curCell.className = classNameUnselected;
						curCell.onmouseover = function () {this.className = classNameHover;this.style.cursor = 'pointer';}
						curCell.onmouseout = function () {this.className = classNameUnselected;this.style.cursor = 'default';}
					}
					
					curDay++;
				}
			}
		}
    }
}

function SelectDate(dtPickerID, day)
{
	if (day == null || day == ''){ return; }
	
	var dtPicker = document.getElementById(dtPickerID);
	var selDate = document.getElementById(dtPickerID + 'dSelectedDate');
	var month = document.getElementById(dtPickerID + 'dMonth');
	var year = document.getElementById(dtPickerID + 'dYear');
	var textField = document.getElementById(dtPickerID + 'dtDateSelectedValue');
	
	selDate.value = day + '/' + (month.selectedIndex + 1)  + '/' + year.value;
	textField.innerHTML = selDate.value;
	dtPicker.style.display = 'none';
}

function ShowDtPicker(dtPickerID, e)
{
	var obj = document.getElementById(dtPickerID);
	
	if (!e.pageX)
	{
		obj.style.pixelLeft = event.clientX - 10;
		obj.style.pixelTop = event.clientY - 10;
	}
	else
	{
		obj.style.left = (e.pageX - 10);
		obj.style.top = (e.pageY - 10);
	}
	
	DrawMonth(dtPickerID);
	obj.style.display = 'block';
}