function f_DisplayDateTime(vServerTimestamp, vServerTimezone, vPreviousLocalSeconds)
{
	var aDayNames = new Array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday');
	var aMonthNames = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');

	var vServerDate = new Date(vServerTimestamp);
	var vServerYear = vServerDate.getFullYear();
	var vServerMonthFullText = aMonthNames[vServerDate.getMonth()];
	var vServerDay = vServerDate.getDate();
	var vServerDayFullText = aDayNames[vServerDate.getDay()];
	var vServerHour = vServerDate.getHours();
	var vServerMinutes = vServerDate.getMinutes();
	var vServerSeconds = vServerDate.getSeconds();
	var vServerAMPM = '';
	var vServerDayOrdinal = '';

	if (vServerHour < 12)
	{
		vServerAMPM = 'am';
		if (vServerHour == 0)
		{
			vServerHour = 12;
		}
	}
	else
	{
		vServerAMPM = 'pm';
		if (vServerHour != 12)
		{
			vServerHour = vServerHour-12;
		}
	}

	switch(vServerDay)
	{
		case 1:
		case 21:
		case 31:
			vServerDayOrdinal = 'st';
			break;
		case 2:
		case 22:
			vServerDayOrdinal = 'nd';
			break;
		case 3:
		case 23:
			vServerDayOrdinal = 'rd';
			break;
		default:
			vServerDayOrdinal = 'th';
			break;
	}

	var vLocalDate = new Date();
	var vLocalSeconds = vLocalDate.getSeconds();
	if ((vPreviousLocalSeconds == null) || (vPreviousLocalSeconds != vLocalSeconds))
	{
		document.getElementById('displayDateTime').innerHTML = vServerDayFullText+' '+vServerDay+vServerDayOrdinal+' '+vServerMonthFullText+' '+vServerYear+', '+vServerHour+':'+f_AddLeadingZeros(vServerMinutes, '2')+':'+f_AddLeadingZeros(vServerSeconds, '2')+vServerAMPM+' '+vServerTimezone;
		vServerTimestamp = vServerDate.setSeconds(vServerDate.getSeconds()+1);
	}
	vPreviousLocalSeconds = vLocalSeconds;

	setTimeout(function(){f_DisplayDateTime(vServerTimestamp, vServerTimezone, vPreviousLocalSeconds)}, 0);
}

function f_AddLeadingZeros(vTargetValue, vTargetLength)
{
	vTargetValue = ''+vTargetValue+'';
	return Array((vTargetLength-vTargetValue.length)+1).join('0')+vTargetValue;
}

