//*******************************
function firstField() { //v1.0
	document.forms[0].elements[0].focus();
return;
}
//*******************************
function isDate(sdate) {
var daysInMonth =  new Array(12);
daysInMonth[1] = 31;
daysInMonth[2] = 29;   // must programmatically check this
daysInMonth[3] = 31;
daysInMonth[4] = 30;
daysInMonth[5] = 31;
daysInMonth[6] = 30;
daysInMonth[7] = 31;
daysInMonth[8] = 31;
daysInMonth[9] = 30;
daysInMonth[10] = 31;
daysInMonth[11] = 30;
daysInMonth[12] = 31;

//break the value entered into its components
var sdmy=sdate.split('/');
if (sdmy.length != 3) {
	alert("Incorrect date format, expected 'dd/mm/yyyy'\nPlease try again.");
	return '';
	}

//Check year
intYY=parseInt(sdmy[2],10);
if (isNaN(intYY)) {
	alert("Error : Year is not a number.\nPlease try again.");
	return '';
}
if (intYY < 100) {
	if (intYY >= 30) {
		intYY = 1900 + intYY;
		}
	if (intYY < 30) {
		intYY = 2000 + intYY;
		}
} 
if (intYY < 1700) {
	alert("Date before 1700 - "+intYY+"\nPlease try again.");
	return '';
}
if (intYY > 2100) {
	alert("Date after 2100 - "+intYY+"\nPlease try again.");
	return '';
}

//Check Month
intMM=parseInt(sdmy[1],10);
if (isNaN(intMM)) {
	alert("Error : Month is not a number.\nPlease try again.");
	return '';
   }
if (intMM <1 || intMM >12) {
	alert("Month out of range - "+intMM+"\nPlease try again.");
	return '';
}	
if(intMM < 10) intMM="0"+intMM;

//Check Days
intDD=parseInt(sdmy[0],10);
if (isNaN(intDD)) {
	alert("Error : Day is not a number.\nPlease try agian.");
	return '';
}
daysInMonth[2] = ((intYY % 4 == 0) && ( (!(intYY % 100 == 0)) || (intYY % 400 == 0) ) ) ? 29 : 28;
if (intDD <1 || intDD > daysInMonth[parseInt(intMM,10)]) {
	alert("Days out of range - "+intDD+"\nPlease try again.");
	return '';
}
if(intDD < 10) intDD="0"+intDD;

//All OK, return date string
sdate=intDD + "/" + intMM + "/" + intYY;
return sdate;
}
//**************
function dateCompare(date1, date2) {
// compares date1 to date2, returns -ve if date1 before date2, +ve if after
	var date1, date2;
	var dmy1 = new Array(3);
	var dmy2 = new Array(3);
	if (date1 == null) return -1;
	if (date2 == null) return +1
	dmy1 = date1.split('/');
	dmy2 = date2.split('/');
	d1 = new Date( dmy1[2], dmy1[1], dmy1[0] );
	d2 = new Date( dmy2[2], dmy2[1], dmy2[0] );
	return ( d2.getTime() - d1.getTime() );
}
//*******************************
function dateToday() {   //v1.0
var Today = new Date();
var year = Today.getYear();
if (year < 2000) year = 1900 + year;
var day = Today.getDate();
if (day < 10) day = "0"+day;
var month = (Today.getMonth()+1);
if (month < 10) month = "0"+month;
return(day+"/"+month+"/"+year);
}
//********************************
function dateTodayText()  {  //v1.0

// Array of day names
var dayNames = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");

// Array of month Names
var monthNames = new Array("January","February","March","April","May","June","July","August","September","October","November","December");

var now = new Date();
var textDate=dayNames[now.getDay()] + " " + monthNames[now.getMonth()] + " " + now.getDate() + ", " + now.getYear();

return(textDate);
}
//**************************
// Removes leading whitespace characters from s.
function trim (s)  {
    var whitespace = " \t\n\r";
    var i = 0;

    while ((i < s.length) && (whitespace.indexOf(s.charAt(i)) != -1))
    i++;
    
    return s.substring (i, s.length);

}
//*************************
function maximise() {
self.moveTo(screen.availTop,screen.availLeft);
self.resizeTo(screen.availWidth,screen.availHeight);
}
//** javascript routines used to highlight table row or cell
var bgColour, textColour
function menuHover(param1, param2) {
	if(param2 == 0) {
		bgColour = param1.style.backgroundColor;
		textColour = param1.style.color;
		param1.style.backgroundColor = "#CCCCFF";
		param1.style.color = "yellow";
		return;
	}
	if(param2 == 1) {
		param1.style.backgroundColor = bgColour;
		param1.style.color = textColour;
		return;
	}
}
//***
