// Returns a date string in the specifed format
//
// Monday, 5th June 2005      dddd, dth mmmm yyyy
// Mon 02 Aug 04              ddd dd mmm yy
// 1/2/04                     d/m/yy
// 01/04/2004                 dd/mm/yy
//
function getFullDate( formatString )
{
   var d = new Date();
   var daysOfWeek = new Array( "Sunday", "Monday", "Tuesday", "Wednesday",
                               "Thursday", "Friday", "Saturday");
   var monthsOfYear = new Array( "January", "February", "March",
                                 "April", "May", "June",
                                 "July", "August", "September",
                                 "October", "November", "December" );
   var day = d.getDate();
   var day2 = (day < 10) ? "0" + day.toString() : day.toString();
   var dayOfWeek = daysOfWeek[d.getDay()];

   var th = ((day == 1) || (day == 21) || (day == 31)) ? "st" :
      ((day == 2) || (day == 22)) ? "nd" :
      ((day == 3) || (day == 23)) ? "rd" : "th";

   var month = d.getMonth();
   var month2 = (month < 10) ? "0" + month.toString() : month.toString();
   var monthOfYear = monthsOfYear[month];

   var year = d.getFullYear();
   var year2 = year.toString().substr(2,2);

   var result = formatString;
   result = result.replace( /(\W|^)dth(\W|$)/i, "$1" + day.toString() + th + "$2");
   result = result.replace( /(\W|^)dddd(\W|$)/i, "$1" + dayOfWeek + "$2");
   result = result.replace( /(\W|^)ddd(\W|$)/i, "$1" + dayOfWeek.substr(0,3) + "$2" );
   result = result.replace( /(\W|^)dd(\W|$)/i, "$1" + day2 + "$2" );
   result = result.replace( /(\W|^)d(\W|$)/i, "$1" + day + "$2" );

   result = result.replace( /(\W|^)mmmm(\W|$)/i, "$1" + monthOfYear + "$2" );
   result = result.replace( /(\W|^)mmm(\W|$)/i, "$1" + monthOfYear.substr(0,3) + "$2" );
   result = result.replace( /(\W|^)mm(\W|$)/i, "$1" + month2 + "$2" );
   result = result.replace( /(\W|^)m(\W|$)/i, "$1" + month + "$2" );

   result = result.replace( /(\W|^)yyyy(\W|$)/i, "$1" + year + "$2" );
   result = result.replace( /(\W|^)yy(\W|$)/i, "$1" + year2 + "$2" );

   return result;
}
