﻿/****************************************
* 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 monthNumber = this.getMonth() + 1;
  monthNumber = ( monthNumber < 10 ? "0" : "" ) + monthNumber;

  var dateNumber = this.getDate();
  dateNumber = ( dateNumber < 10 ? "0" : "" ) + dateNumber;
  
  var yearNumber = this.getFullYear()

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