// JavaScript code by Mark A. Agius, (c) 2/05/2004
  // var VersionOfThisCode = "0.00.0001  1/08/2004"
  // var VersionOfThisCode = "0.00.0002  2/08/2004"
  var VersionOfThisCode = "0.00.0003 16/08/2004"

  // Before you can call this code you must add the following line;
  // <SCRIPT LANGUAGE="JavaScript" SRC="Script/DatesScript.js"></SCRIPT>

function ListFunctions(){
  // This function will return a list of all the functions within this js file.
  var FunctionList = "ListFunctions() will list all the functions in file DatesScript.js\n"
  FunctionList = FunctionList+"\nListFunctions()\n"
  FunctionList = FunctionList+"TodaysDateIs()\nDateTimeString([value])\nLongDateString([value])\nWeekdayDateString([value])\nMonthString([1-12])\nStNdRdTh([1-31])\n"
  FunctionList = FunctionList+"\nListFunctions()\n"
  // FunctionList = FunctionList+ "?.. \n"
  FunctionList = FunctionList+"\nVersion "+VersionOfThisCode+"\n"
  FunctionList = FunctionList+"\nThe page or frame ("+this.document.title+ ") using this JavaScript file was last updated on;\n"+this.document.lastModified+"\n"
  return FunctionList;
}
function TodaysDateIs(){
  // This function will return todays date in the universal standard format and not the US format.
  // Eg. Christmas day 2004 = '25/12/2004'
/*
  var todays_date=new Date();
  var dd=todays_date.getDate();
  var mm=todays_date.getMonth()+1;
  // var yy=todays_date.getYear();
  var yy=todays_date.getFullYear();
  if (dd<10)   {dd=" "+dd}
  if (mm<10)   {mm="0"+mm}
  if (yy<1200) {yy=yy %100;}
  if (yy<=80)  {yy=yy+2000;}
  if (yy<=99)  {yy=yy+1900;}
  return dd+"/"+mm+"/"+yy;
*/
  return DateTimeString().substring(0,10);
}
function DateTimeString(DateTimeValue){
  // This function will return a date and time in the universal standard format and not the US format.
  // Eg. Christmas day 2004 = '25/12/2004 -  9:50:23pm'
  if(!DateTimeValue){
    // No date value, so use todays date.
    var ADate = new Date();
  } else {
     var ADate = DateTimeValue;
  }
  var dd   = ADate.getDate();
  var mm   = ADate.getMonth()+1;
  // var yyyy = ADate.getYear();
  var yyyy = ADate.getFullYear();
  var Hr   = ADate.getHours();
  var Mi   = ADate.getMinutes();
  var Se   = ADate.getSeconds();
  var AmPm = "am";
  if(dd<10)     {dd=" "+dd}
  if(mm<10)     {mm="0"+mm}
  if(yyyy<1200) {yyyy=yyyy %100;}
  if(yyyy<=80)  {yyyy=yyyy+2000;}
  if(yyyy<=99)  {yyyy=yyyy+1900;}
  if(Hr>11){AmPm="pm"}
  Hr=Hr%12
  if(Hr==0){Hr=12}
  if(Hr<10){Hr=" "+Hr}
  if(Mi<10){Mi="0"+Mi}
  if(Se<10){Se="0"+Se}
  return dd+"/"+mm+"/"+yyyy+" - "+Hr+":"+Mi+":"+Se+AmPm;
}
function MonthString(month_number){
  // This function will return a month name from a number. Eg. 1=January, 12=December.
  if (month_number== 1) {return "January";}
  if (month_number== 2) {return "February";}
  if (month_number== 3) {return "March";}
  if (month_number== 4) {return "April";}
  if (month_number== 5) {return "May";}
  if (month_number== 6) {return "June";}
  if (month_number== 7) {return "July";}
  if (month_number== 8) {return "August";}
  if (month_number== 9) {return "September";}
  if (month_number==10) {return "October";}
  if (month_number==11) {return "November";}
  if (month_number==12) {return "December";}
  return " #"+month_number+"# "
}
function StNdRdTh(number){
  // This function returns 'st' for first, 'nd' for second etc.
  number = number %100
  if(number>=10 & number<=19) {return "th"} // teens
  if(number %10==1) {return "st"}
  if(number %10==2) {return "nd"}
  if(number %10==3) {return "rd"}
  return "th"
}
function LongDateString(ShortDateString){
  // This function was added on;  1/08/2004
  // This function will read the date in string ShortDateString (as dd/mm/yyyy when dd=day, mm=month and yyyy=year)
  // and return the date in long date string (as dd of mm-nane, yyyy)
  // Eg. ' 5/08/1962' = ' 5th of August, 1962'
  if (ShortDateString==undefined || ShortDateString==""){
    // ShortDateString is not set, so let's use todays date.
    ShortDateString=TodaysDateIs()
  }
  var LocalPointer = ShortDateString.indexOf("/")
  var day = ShortDateString.substring(LocalPointer-3,LocalPointer)
  var ReturnString = day+"<SUP>"+StNdRdTh(day)+"</SUP> of "+MonthString(ShortDateString.substring(LocalPointer+1,LocalPointer+3))+", "
  LocalPointer = ShortDateString.indexOf("/",LocalPointer+1)
  var LocalYear = ShortDateString.substring(LocalPointer+1,LocalPointer+5)
  if (LocalYear<=80) {LocalYear=2000+eval(LocalYear);}
  if (LocalYear<=99) {LocalYear=eval(LocalYear)+1900;}
  ReturnString = ReturnString + LocalYear
  return ReturnString;
}
function WeekdayDateString(ShortDateString){
  // This function was added on; 26/07/2004
  // This function will read the week-day in string ShortDateString (as dd/mm/yyyy when dd=day, mm=month and yyyy=year)
  // and return the week-day name. Eg. Monday, Tuesday, Wednesday,... (12/08/1962=Sunday)
  if (ShortDateString==undefined || ShortDateString==""){
    // ShortDateString is not set, so let's use todays date.
    var DateValue=new Date();
  } else {
    // ShortDateString is a date in the form of 'dd/mm/yyyy', so convert it into a date value.
    var Year_is = ShortDateString.substring(6,10)
    var Month_is= ShortDateString.substring(3,5)-1;
    var MDay_is = ShortDateString.substring(0,2)
    var DateValue=new Date(Year_is,Month_is,MDay_is);
//alert("Year_is="+Year_is+"\nMonth_is="+Month_is+"\nMDay_is="+MDay_is)
  }
  var WDay_is=DateValue.getDay();
  if (WDay_is==0) {return "Sunday";}
  if (WDay_is==1) {return "Monday";}
  if (WDay_is==2) {return "Tuesday";}
  if (WDay_is==3) {return "Wednesday";}
  if (WDay_is==4) {return "Thursday";}
  if (WDay_is==5) {return "Friday";}
  if (WDay_is==6) {return "Saturday";}
  if (WDay_is==7) {return "Sunday";}
  // It must be a bad date string as your still in this function, so lets return.
  return " #"+MDay_is+"# "
}

