/**
 * Date Routines.
 * Author: Robert Parlato
 */
var now = new Date();
var currentDay = now.getDay();
var currentMonth = now.getMonth();
var dayOfMonth =now.getDate();
var currentYear = now.getFullYear();
var currentHour = now.getHours();
var curentMinute = now.getMinutes();
var curentSecond = now.getSeconds();
var yesterday = now;
with (yesterday) setDate(getDate()-1);

var months = new Array('January', 'February', 'March', 'April', 'May', 'June','July', 'August', 'September', 
	                      'October', 'November', 'December', 'Jan','Feb','Mar','Apr','May','Jun','Jul', 'Aug','Sep','Oct','Nov','Dec');
var days = new Array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday',
	                    'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat');
var datePattern = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/; //valid format m[m]/d[d]/yyyy. [] = optional values

function makeDate(date) {
  var matchArray=date.match(datePattern);
  var month=matchArray[1];
  var day=matchArray[3];
  var year=matchArray[4];
  return new Date(year,month-1,day);
}

function parseDate(date) {
  var matchArray=date.match(datePattern);
  return matchArray;
}

function dateDiffPast(date, n) {
  var d = makeDate(date);
  with (d) setMonth(getMonth()-n);
  return (d.getMonth()+1)+"/"+d.getDate()+"/"+d.getFullYear();
}
    
function dateRange (date1, date2) {
  var matchArray=date1.match(datePattern);
  var month=matchArray[1];
  var day=matchArray[3];
  var year=matchArray[4];
  var begDate=new Date(year,month-1,day);
  var matchArray=date2.match(datePattern);
  month=matchArray[1];
  day=matchArray[3];
  year=matchArray[4];
  var endDate=new Date(year,month-1,day);
  if(begDate>endDate) {
    alert('The Begin Date cannot be greater than the End Date!');
    return false;
  }
  else
    return true;
}

function displayDate() {
 	var dayName    = days[currentDay];
	var monthName  = months[currentMonth];
  return dayName +', ' + monthName + ' ' + dayOfMonth + ', ' + currentYear;
}

function getCurrentYear() {
  document.write(currentYear);
}

function getTimeStamp() {
	return currentYear+'-'+LZ(currentMonth+1)+'-'+LZ(dayOfMonth)+'-'+
	  LZ(currentHour)+'.'+LZ(curentMinute)+'.'+LZ(curentSecond)+'.000000';
}

//Get number of days in a given Month.	
function daysInMonth(nMonth, nYear) {
	var days = -1;
	var daysInMonth = new Array ( 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 );
	if ((nMonth >= 0) && (nMonth <= 11)) {
		days = daysInMonth[nMonth];	
 		if (nMonth == 1)
			if (isLeapYear(nYear))
				days++;
	}
	return days;
}

//Is year a leap year.
function isLeapYear(nYear) {
	return (nYear%4 == 0 && (nYear%100 != 0 || nYear%400 == 0));
}

function getGMT(){
	return now.toGMTString();
}

