﻿/**************************************
* JavaScript: Ashgrove Program Library
* Develop: 2006.02.22 By: Sitepoint
* Created: 2006.08.30 By: Lee Eschen
* Updated: 2008.04.02 By: Lee Eschen
*	Version: 1.1
* Changed: Fixed bugs in replaceElement
***************************************
* Display Date Functions
**************************************/

//	Date Prototype methods

Date.prototype.getDateString = function (dateString)
{
  var dayNames		= ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"];
  var monthNames	= ["January","February","March","April","May","June","July","August","September","October","November","December"];
  var numbers			= ["01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20", "21","22","23","24","25","26","27","28","29","30","31"];

  dateString = dateString.replace("%year", this.getFullYear());
  dateString = dateString.replace("%monthnum", numbers[this.getMonth()]);
  dateString = dateString.replace("%month", monthNames[this.getMonth()]);
  dateString = dateString.replace("%datenum", numbers[this.getDate()]);
  dateString = dateString.replace("%date", this.getDate());
  dateString = dateString.replace("%ordinal", this.getDateOrdinal());
  dateString = dateString.replace("%day", dayNames[this.getDay()]);
  return dateString;
};

Date.prototype.getDateOrdinal = function ()
{
  var n = this.getDate();
  var ordinalString = "th";
  if (n % 10 == 1 && n % 100 != 11)
  {
    ordinalString = "st";
  }
  else if (n % 10 == 2 && n % 100 != 12)
  {
    ordinalString = "nd";
  }
  else if (n % 10 == 3 && n % 100 != 13)
  {
    ordinalString = "rd";
  }
  return ordinalString;
};

Date.prototype.getISODate = function ()
{
  var yearNumber  = this.getFullYear();
  var monthNumber = this.getMonth() + 1;
  var dateNumber  = this.getDate();
  monthNumber = ( monthNumber < 10 ? "0" : "" ) + monthNumber;
  dateNumber  = ( dateNumber  < 10 ? "0" : "" ) + dateNumber;
  return yearNumber + monthNumber + dateNumber;
};

//	Functions

function replaceTextNode( dateNode,dateString )
{
	var textNode = null;

  if ( typeof dateNode != "undefined" )
  {
		textNode = document.createTextNode(dateString);
		dateNode.replaceChild(textNode,dateNode.firstChild);
	  return true;
  }
  else
  {
		alert("Element type: " + typeof dateNode);
  	return false;
  }
};

function init()
{
//Get today's date, format it, and put it on the page

	var today = new Date();
	var dateFormat = null;
	var dateString = null;
	var dateNode = null;
	var success = false;

	dateNode = document.getElementById("showdate");//Get the element the date will be displayed in
  dateFormat = dateNode.firstChild.nodeValue;//Extract the date format string from its text node
  dateFormat = dateFormat != null ? dateFormat : "%month %date, %year"
	dateString = today.getDateString( dateFormat );//Format today's date according to the format string
	success = replaceTextNode( dateNode,dateString );//Replace the format string with the formatted date string
	dateNode.style.display = "inline";
	return success;

}

//Mainline

addLoadListener(init);

/*End of JavaScript*/