var validDays = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
var mos = new Array('January','February','March','April','May','June','July','August','September','October','November','Decmeber');
var valueT = 0, valueL = 0;
var eleMod;
var now = new Date();
var currentMonth = now.getMonth();
var currentYear = now.getFullYear();

incMonth();
hideDatePicker();

var clickedID;
function calClick(whichImg, whichBox, posx, posy)
{
	var temp = new Date(document.getElementById(whichBox).value);
	if(temp == 'NaN')
	{
    	temp = new Date();
    }
	currentMonth = temp.getMonth();
	currentYear = temp.getFullYear();
	incMonth();
	
	if(clickedID == whichImg)
	{
		hideDatePicker();
		clickedID = '';
	}
	else
	{
		clickedID = whichImg;
		eleMod = document.getElementById(whichBox);
		ele = document.getElementById(whichImg);
		cumulativeOffset(ele);
		showDatePicker(valueL + posx, valueT + posy);
	}
}

function cumulativeOffset(element)
{
	valueT = 0;
	valueL = 0;
	do
	{
		valueT += element.offsetTop  || 0;
		valueL += element.offsetLeft || 0;
		element = element.offsetParent;
	} while (element);
};

function hideDatePicker()
{
	document.getElementById('ATSDatePicker').style.display = 'none'
}

function showDatePicker(posx, posy)
{
    var datePicker = document.getElementById('ATSDatePicker');
	datePicker.setAttribute('style', 'display: block; position:absolute; left: ' + posx + 'px; top: ' + posy + 'px; z-index: 50;');
	datePicker.style.display = 'block'
	datePicker.style.position = 'absolute'
	datePicker.style.posLeft = posx;
	datePicker.style.posTop = posy;
	datePicker.style.left = posx;
	datePicker.style.top = posy;
	datePicker.style.zIndex = '50';
}

function writeDatePicker(date)
{
	var month = date.getMonth();
	var year = date.getFullYear();
	var day = date.getDate();
	
	var content = '<table cellspacing="0px" cellpadding="0px" class="datePicker"><tr><td class="datePickerMonthRow" colspan="7">'+ mos[month] +'</td></tr>';
	content += '<tr class="datePickerPrevNextRow"><td class="datePickerPrevCell" colspan="2"><a href="javascript:decMonth()">prev</a></td><td colspan="3" class="datePickerYearCell"><a href="javascript:decYear()">&lt;&lt;</a>&nbsp;' + year + '&nbsp;<a href="javascript:incYear()">&gt;&gt;</a></td><td class="datePickerNextCell" colspan="2"><a href="javascript:incMonth()">next</a></td></tr>'
	content += '<tr class="datePickerDaysOfWeekRow"><td width="15%" class="datePickerDaysOfWeek">Sun</td><td width="14%" class="datePickerDaysOfWeek">Mon</td><td width="14%" class="datePickerDaysOfWeek">Tue</td><td width="14%" class="datePickerDaysOfWeek">Wed</td><td width="14%" class="datePickerDaysOfWeek">Thu</td><td width="14%" class="datePickerDaysOfWeek">&nbsp;Fri&nbsp;</td><td width="15%" class="datePickerDaysOfWeek">Sat</td></tr>';
	var firstDay = new Date(year,month,1);
	if (year % 4 == 0)
	{
	    validDays[1] = 29;
	}
	else
	{
	    validDays[1] = 28;
	}
	
	var numDays = validDays[month];

	var cnt = (firstDay.getDay() - 1) * -1;

	var classname = '';
	for (var i=0; i<42; i++)
	{
		if (i % 7 == 0) content += '<tr class="datePickerDaysRow">';
		
		if(cnt < 1)
		{
			content += '<td class="datePickerPreDays">&nbsp;</td>';
		}
		else
		{
			if(cnt <= validDays[month])
			{
				mo = month + 1;
				var dateStr = '' + mo + '/' + cnt + '/' + year;
				content += '<td class="datePickerInDays" onClick="dateClicked(\'' + dateStr + '\')">' +cnt+ '</td>';
			}
			else
			{
				content += '<td class="datePickerPostDays">&nbsp;</td>';
			}
		}

		if (i+1 % 7 == 0) content += "</tr>";
		cnt++;
	}
	content += '<tr class="datePickerFootRow"><td colspan="7">&nbsp;</td></tr></table>';
	document.getElementById('ATSDatePicker').innerHTML = content;
}

function incYear()
{
	currentYear++;
	var temp = new Date(currentYear,currentMonth-1,1);
	writeDatePicker(temp);
}

function decYear()
{
	currentYear--;
	var temp = new Date(currentYear,currentMonth-1,1);
	writeDatePicker(temp);
}

function incMonth()
{
	currentMonth++;
	if (currentMonth > 12)
	{
		currentMonth = 1;
		currentYear++;
	}
	var temp = new Date(currentYear,currentMonth-1,1);
	writeDatePicker(temp);
}

function decMonth()
{
	currentMonth--;
	if (currentMonth < 1)
	{
		currentMonth = 12;
		currentYear--;
	}
	var temp = new Date(currentYear,currentMonth-1,1);
	writeDatePicker(temp);
}

function dateClicked(field)
{
	clickedID = '';
	eleMod.value = field;
	hideDatePicker();
}
