﻿/****************************************
* JavaScript: Ashgrove Program Library	*
* Develop: 2006.02.22 By: Sitepoint			*
* Created: 2006.08.30 By: Lee Eschen		*
* Updated: 2006.09.21 By: Lee Eschen		*
*	Version: 1.0													*
*****************************************
* 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;
  monthNumber = ( monthNumber < 10 ? "0" : "" ) + monthNumber;
  var dateNumber = this.getDate();
  dateNumber = ( dateNumber < 10 ? "0" : "" ) + dateNumber;
  return yearNumber + monthNumber + dateNumber;
};

//	Functions

function replaceElement( oldId, dateString )
{
	var oldElement = null;
  var oldTextNode = "";
	var oldType = "";
	var newElement = null;
	var newTextNode = "";
	var oldChild = null;
//Get the old element and its attributes
	oldElement = document.getElementById(oldId);	//get old element#id
  if ( typeof oldElement != "undefined" )
  {
	  oldType  = typeof oldElement;
  }
  else
  {
		alert("Unable to get the old element type: " + oldType);
  	return false;
  }
	oldTextNode = oldElement.firstChild								//find the old content
	newTextNode = document.createTextNode(dateString);//create new text node
	oldChild = oldElement.replaceChild(newTextNode, oldTextNode);//replace old with new
  return true;
};

function init()
{
//Get today's date and format it
	var today = new Date();																				//get today
	var dateString = today.getDateString("%month %date, %year");	//format to string
	var success = replaceElement("showdate",dateString);					//put it on the page
	return success;
};

//Mainline

addLoadListener(init);

/*End of JavaScript*/