/*####################################################################*/
/*# CALENDAR #*/
/*####################################################################*/

/*# OBJECT #*/
function calendarDateObject()
{
	this.seperator = "/";
	this.inputBox = null;
}
/*# FUNCTIONS #*/
function printCalendarControl(element)
{
	this.inputBox = document.createElement('input');
	this.inputbox.onkeyup = function() { this.oRef.formatDate(this, this.value,'1',''); };
	this.inputbox.onblur = function() { this.oRef.validDate(this,startField,endField); };
	this.inputbox.setAttribute('maxLength','10');
	this.inputbox.setAttribute('size','10');

	this.inputBox.oRef = this;

	element.innerHTML = this.inputBox;
}
function viewCalendar(startField, endField, e)
{
	
	this.showCalendar(startField,endField,'','','');
}
function showCalendar(startField,endField,theYear,theMonth,theDay)
{
	// force day to be 1 - dont need it to increment when flicking through months
	the_day = 1;
	if ((startField != "" && startField.value != "") && this.inputBox.value == "")
	{
		if (theMonth == "" || theYear == "") 
		{
			var startFieldValue = startField.value.split(this.seperator);
			var startDay = startFieldValue[0];
			var startMonth = parseInt(startFieldValue[1],10)-1;
			var startYear = startFieldValue[2];
		}
		else
		{ 
			var startDay = theDay; 
			var startMonth = theMonth; 
			var startYear = theYear;
		}
		theYear = startYear;
		theMonth = parseInt(startMonth,10);
		theDay = parseInt(startDay,10);
	}
	// if a date is already selected then when gui comes up go to that date
	else if (this.inputBox.value != "")
	{
		if (theMonth == "" || theYear == "")
		{
			var fieldValue = this.inputBox.value;
			fieldValue = fieldValue.split(seperator);
			theDay = parseInt(fieldValue[0],10);
			theMonth = parseInt(fieldValue[1],10)-1;
			theYear = fieldValue[2];
		}
	}
	else
	{
		// if no date passed assume current date
		var calendarNow = new Date();

		if (theYear == '') theYear = calendarNow.getFullYear();
		if (theMonth == '') theMonth = calendarNow.getMonth();
		if (theDay == '') theDay = calendarNow.getDay();
	}

	// if start field specified work out year, month, day (this is for start / end date feature 
	if (startField == "" || startField == undefined || !startField) 
	{
		startField = "";
		var startValue = "01/01/1001";
	}
	else
	{
		if (startField.value == "") var startValue = "01/01/1001";
		else var startValue = startField.value;
	}
	startValue = startValue.split(this.seperator);
	var startDay = startValue[0];
	var startMonth = startValue[1];
	var startYear = startValue[2];
	var calendarStart = new Date(startYear, (startMonth-1), startDay);
	var startSecs = calendarStart.getTime();

	if (endField == "" || endField == undefined || !endField) 
	{
		endField = "";
		var endValue = "01/01/9005";
	}
	else
	{
		if (endField.value == "") var endValue = "01/01/9005";
		else var endValue = endField.value;
	}
	endValue = endValue.split(this.seperator);
	var endDay = endValue[0];
	var endMonth = endValue[1];
	var endYear = endValue[2];
	var calendarEnd = new Date(endYear, (endMonth-1), endDay);
	var endSecs = calendarEnd.getTime();
}
/*# PROTOTYPES #*/
calendarDateObject.prototype.viewCalendar = viewCalendar;
calendarDateObject.prototype.showCalendar = showCalendar;
calendarDateObject.prototype.printCalendarControl = printCalendarControl;
