/***********************************************
 * DATEUTILS.js - functions for date and time  *
 * Copyright 1998 Abaqix Technologies *
 ***********************************************/

// Days in a month : array size is 13 so that array index corresponds to month value, because
// array starts from 0.
month = new Array(13);
month[1] = 31; month[2] = 28; month[3] = 31; month[4] = 30; month[5] = 31; month[6] = 30;
month[7] = 31; month[8] = 31; month[9] = 30; month[10] = 31; month[11] = 30; month[12] = 31;

// Names of months
monthName = new Array(13);
monthName[1] = "Jan"; monthName[2] = "Feb"; monthName[3] = "Mar"; monthName[4] = "Apr";
monthName[5] = "May"; monthName[6] = "Jun"; monthName[7] = "Jul"; monthName[8] = "Aug";
monthName[9] = "Sep"; monthName[10] = "Oct"; monthName[11] = "Nov"; monthName[12] = "Dec";

function IsLeapYear(yr) {
// Checks whether a year is a leap year
	if (((yr % 4) == 0) & (((yr % 100) != 0) || ((yr % 400) == 0))) {
		return true
	}
	return false;
}
function IsDate(dy, mth, yr) {
// Checks whether a date given is a valid date
	if (dy <= month[mth]) {
		return true;
	} else {
		// Valid also if it is a leap year or no year is supplied
		if ((mth == 2) & ((IsLeapYear(yr)) || (yr == ""))) {
			if (dy == 29) {
				return true;
			}
		}
	}
	return false;
}

function CheckDate(dy, mth, yr, datename) {
// Checks whether the date fields are all filled
	if ((dy == "") & (mth == "") & (yr == "")) {
		// Date fields completely empty. That's ok.
	} else {
		// At least one field is NOT empty.
		if ((dy != "") & (mth != "") & (yr != "")) {
			// All filled up. That's ok too... so far
			if (IsDate(dy, mth, yr)) {
				// OK
			} else {
				alert(datename + " is invalid!");
				return false;
			}
		} else {
			// Some scolding needed...
			alert(datename + " is invalid");
			return false;
		}
	}
	return true;
}

function FormDate(dy, mth, yr) {
// Form a date from the 3 fields if they are not empty
	d = "";
	if ((dy == "") & (mth == "") & (yr == "")) {
	} else {
		if (mth == "")
			d = "" + dy + " " + mth + " " + yr;
		else
			d = "" + dy + " " + monthName[mth] + " " + yr;
	}
	return (d);
}
