function Datum(day, month, year) {
	this.day = day;
	this.month = month;
	this.year = year;
}

/* validates a date input directly in a form */
function validateDateInput(inputDay, inputMonth, inputYear) {
	var dateToValidate = new Datum(parseInt(inputDay.value), parseInt(inputMonth.value), parseInt(inputYear.value));
	var validatedDate = validateDate(dateToValidate);
	inputDay.value = validatedDate.day;
	inputMonth.value = validatedDate.month;
	inputYear.value = validatedDate.year;
}

function validateDate(datum) {
  //alert("Incoming="+datum.day+"."+datum.month+"."+datum.year);
 	var maxDays = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
 	if (datum.day > maxDays[datum.month]) {
	  if ((isLeapYear(datum.year))&&(datum.month==1)&&(datum.day==29)) {
	  	//  29th on Feb of leap year is allowed
	  } else {
			datum.day -= maxDays[datum.month];
			datum.month += 1;
		}
	}	
	//alert("Validated="+datum.day+"."+datum.month+"."+datum.year);
	return datum;
}	


function isLeapYear(y) {
  return ((y % 4 == 0) && ((y % 100!= 0) || (y % 400 == 0)));
}

function getTime() {
	return (new Date (this.year, this.month, this.day).getTime());
}
	


