/******************************************************************************
dateutilities.js
	Copyright (C) 2007 Atlantic Database Systems, Inc. All rights reserved.
	Define global items.
******************************************************************************/


/******************************************************************************
MkDateYMD (szDate)
	Helper to construct a Date from YYYY-MM-DD.
******************************************************************************/

function MkDateYMD (szDate)
{
	// Date constructor doesn't work on YYYY-MM-DD.

	var	parts = szDate.split ('-');
	var	year = parseInt (parts [0], 10);
	var	month = parseInt (parts [1], 10);
	var	day = parseInt (parts [2], 10);

	return new Date (year, month - 1, day);
}

/******************************************************************************
MkDateYMDHMS (szDate)
	Helper to construct a Date from YYYY-MM-DD HH:MM:SS.
******************************************************************************/

function MkDateYMDHMS (szDate)
{
	// Date constructor doesn't work on YYYY-MM-DD.

	try {
		var	parts = szDate.split (/[-: ]/);
	} catch (ex) {
		alert ("MkDateYMDHMS failed on '" + szDate + "'");
		return false;
	}

	var	year = parts.length > 0 ? parseInt (parts [0], 10) : 0;
	var	month = parts.length > 1 ? parseInt (parts [1], 10) : 0;
	var	day = parts.length > 2 ? parseInt (parts [2], 10) : 0;
	var	hour = parts.length > 3 ? parseInt (parts [3], 10) : 0;
	var	minute = parts.length > 4 ? parseInt (parts [4], 10) : 0;
	var	second = parts.length > 5 ? parseInt (parts [5], 10) : 0;

	return new Date (year, month - 1, day, hour, minute, second);
}

/******************************************************************************
MkDateString (date)
	Helper to format a date as YYYY-MM-DD.
******************************************************************************/

function MkDateString (date)
{
	return date.getFullYear () + "-" + 
			numToString (date.getMonth () + 1, 2) + "-" + 
			numToString (date.getDate (), 2)
}

/******************************************************************************
MkDateStringMD (date)
	Helper to format a date as MM/DD.
******************************************************************************/

function MkDateStringMD (date)
{
	return (date.getMonth () + 1) + "/" + date.getDate ();
}

/******************************************************************************
MkDateStringLocal (date)
	Helper to format a date as MM/DD/YYYY.
******************************************************************************/

function MkDateStringLocal (date)
{
	return (date.getMonth () + 1) + "/" + date.getDate () + "/" + 
			date.getFullYear ();
}

/******************************************************************************
MkTimeString (date)
	Helper to format a date as HH:MM:SS.
******************************************************************************/

function MkTimeString (date)
{
	return numToString (curTime.getHours (), 2) + ":" + 
			numToString (curTime.getMinutes (), 2) + ":" + 
			numToString (curTime.getSeconds (), 2);
}

/******************************************************************************
MkTimeHMString (date)
	Helper to format a date as HH:MM.
******************************************************************************/

function MkTimeHMString (date)
{
	return numToString (curTime.getHours (), 2) + ":" + 
			numToString (curTime.getMinutes (), 2);
}

/******************************************************************************
MkDateTimeString (date)
	Helper to format a date as YYYY-MM-DD HH:MM:SS.
******************************************************************************/

function MkDateTimeString (date)
{
	return MkDateString (date) + " " + MkTimeString (date);
}

/******************************************************************************
MkDateTimeHMString (date)
	Helper to format a date as YYYY-MM-DD HH:MM.
******************************************************************************/

function MkDateTimeHMString (date)
{
	return MkDateString (date) + " " + MkDateTimeHMString (date);
}

/******************************************************************************
numToString (num, nlz)
	Helper to format a number as a string with leading zeros.
******************************************************************************/

function numToString (num, nlz)
{
	var	szRes = num.toString ();

	while (szRes.length < nlz)
		szRes = '0' + szRes;

	return szRes;
}

/******************************************************************************
MkDateString (date)
	Helper to format a date as YYYY-MM-DD HH:MM:SS.
******************************************************************************/

function MkDateTimeString (date)
{
	var	szMon = numToString (date.getMonth () + 1, 2);
	var	szDay = numToString (date.getDate (), 2);
	var szHour = numToString (date.getHours (), 2);
	var szMin = numToString (date.getMinutes (), 2);
	var szSec = numToString (date.getSeconds (), 2);

	return date.getFullYear () + "-" + szMon + "-" + szDay + 
			" " + szHour + ":" + szMin + ":" + szSec;
}

