

    //add the extra properties that we need for dates
 	Date.prototype.getMaxDays = fn_dte_MaxDays;
 	Date.prototype.getMonthName = fn_dte_GetMonthName;
	Date.prototype.getUKDateString = fn_dte_GetUKDateString;
	Date.prototype.getUSDateString = fn_dte_GetUSDateString;
	Date.prototype.getWeekDay = fn_dte_GetWeekDay;
	Date.prototype.setNearestDay = fn_dte_SetDay;
	
	var aryMonthYear = new Array()
	/*aryMonthYear["03/01/2002"]= new Array ("March 2002")
	aryMonthYear["04/01/2002"]= new Array ("April 2002")
	aryMonthYear["05/01/2002"]= new Array ("May 2002")
	aryMonthYear["06/01/2002"]= new Array ("June 2002")
	aryMonthYear["07/01/2002"]= new Array ("July 2002")
	aryMonthYear["08/01/2002"]= new Array ("August 2002")
	aryMonthYear["09/01/2002"]= new Array ("September 2002")*/

	dteDate = new Date()
	dteDate.setDate(1)
	for (i=1; i<6; i++){
		aryMonthYear[dteDate.getUSDateString()]= new Array (dteDate.getMonthName() + " " + dteDate.getYear())
		dteDate.setMonth(dteDate.getMonth()+1)
	}

	
function fn_dte_GetWeekDay(){
	var aryDaysOfWeek = new Array()
	aryDaysOfWeek[0]="Sun"
	aryDaysOfWeek[1]="Mon"
	aryDaysOfWeek[2]="Tue"
	aryDaysOfWeek[3]="Wed"
	aryDaysOfWeek[4]="Thu"
	aryDaysOfWeek[5]="Fri"
	aryDaysOfWeek[6]="Sat"
	return aryDaysOfWeek[this.getDay()]
}

function fn_dte_MaxDays() {
//returns the max days of a given month
 days = new Array(13)
 days[1] = 31  // January
 days[2] = (leapyear(this.getYear())) ? 29 : 28 // February
 days[3] = 31  // March
 days[4] = 30  // April
 days[5] = 31  // May
 days[6] = 30  // June
 days[7] = 31  // July
 days[8] = 31  // August
 days[9] = 30  // September
 days[10] = 31 // October
 days[11] = 30 // November
 days[12] = 31 // December
 return days[this.getMonth()+1] //js months are zero based
}

function leapyear(year){
 //checks for leap year
 //allow for year 2000
 if ( (year % 4 == 0 && year % 100 !=0 ) || (year % 400 == 0) ) {
  return true 
    }else{  return false 
    }
}
function fn_dte_GetMonthName(){
    month_name = new Array(13)
    month_name[1]  = 'January'
    month_name[2]  = 'February'
    month_name[3]  = 'March'
    month_name[4]  = 'April'
    month_name[5]  = 'May'
    month_name[6]  = 'June'
    month_name[7]  = 'July'
    month_name[8]  = 'August'
    month_name[9]  = 'September'
    month_name[10] = 'October'
    month_name[11] = 'November'
    month_name[12] = 'December'
    return month_name[this.getMonth()+1] //js months are zero based
}
function fn_dte_GetUKDateString(){
	strDay= "0"+this.getDate();
	strDay= strDay.substring(strDay.length-2,strDay.length);
	strMonth="0"+(this.getMonth()+1);
	strMonth= strMonth.substring(strMonth.length-2,strMonth.length);
	strYear=this.getYear();
	strDate= strDay+"/"+strMonth+"/"+strYear;
	return strDate;
}
function fn_dte_GetUSDateString(){
	strDay= "0"+this.getDate();
	strDay= strDay.substring(strDay.length-2,strDay.length);
	strMonth="0"+(this.getMonth()+1);
	strMonth= strMonth.substring(strMonth.length-2,strMonth.length);
	strYear=this.getYear();
	strDate= strMonth+"/"+strDay+"/"+strYear
	return strDate;
}
function fn_dte_SetDay(strDay){
	while (this.getWeekDay()!=strDay) {
		this.setDate(this.getDate()+1);
	}
}
