﻿/**************************************
* 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
**************************************/

//	Prototype Date 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("%day", dayNames[this.getDay()]);
  dateString = dateString.replace("%date", this.getDate());
  dateString = dateString.replace("%datenum", numbers[this.getDate()]);
  dateString = dateString.replace("%ordinal", this.getDateOrdinal());
  dateString = dateString.replace("%month", monthNames[this.getMonth()]);
  dateString = dateString.replace("%monthnum", numbers[this.getMonth()]);
  dateString = dateString.replace("%year", this.getFullYear());
  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 replaceElement( ident, dateString )
{
	var dateNode = null;
  var textNode = "";
	dateNode = document.getElementById(ident);
  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 dateString = today.getDateString("%month %date, %year");
	var success = replaceElement("showdate",dateString);
	return success;

}

//Mainline

addLoadListener(init);

/*End of JavaScript*/