var timerID;

function tzone(tz, os, ds, cl)	{
	this.ct = new Date(0);		// datetime
	this.tz = tz;		// code
	this.os = os;		// GMT offset
	this.ds = ds;		// has daylight savings
	this.cl = cl;		// font color
}


function UpdateClock()	{
	var ct = new Array(
		new tzone('',  0, 1, '')
	);

	var dt = new Date();	// [GMT] time according to machine clock
	var startDST = new Date(dt.getFullYear(), 3, 1);
	while (startDST.getDay() != 0)
		startDST.setDate(startDST.getDate() + 1);


	var endDST = new Date(dt.getFullYear(), 9, 31);
	while (endDST.getDay() != 0)
		endDST.setDate(endDST.getDate() - 1);


	var ds_active;		// DS currently active
	if (startDST < dt && dt < endDST)
		ds_active = 1;
	else
		ds_active = 0;


	// Adjust each clock offset if that clock has DS and in DS.
	for(z=0; z<ct.length; z++)
	if (ct[z].ds == 1 && ds_active == 1) ct[z].os++;


	// compensate time zones
	gmdt = new Date();
	for (z=0; z<ct.length; z++)
		ct[z].ct = new Date(gmdt.getTime() + ct[z].os * 3600 * 1000);
		document.getElementById('fldTime').innerHTML = ct[0].cl + ct[0].tz + ClockString(ct[0].ct);
		setTimeout("UpdateClock()", 1001);
}


function ClockString(dt)	{

	var stemp, ampm;
	var dt_year = dt.getUTCFullYear();
	var dt_month = dt.getUTCMonth() + 1;
	var dt_day = dt.getUTCDate();
	var dt_hour = dt.getUTCHours();
	var dt_minute = dt.getUTCMinutes();
	var dt_second = dt.getUTCSeconds();

	dt_year = dt_year.toString();

	if (0 <= dt_hour && dt_hour < 12)	{
		ampm = 'am';
		if (dt_hour == 0) dt_hour = 12;		
	} else {
		ampm = 'pm';
		dt_hour = dt_hour - 12;
		if (dt_hour == 0) dt_hour = 12;		
	}

	if (dt_minute < 10)
		dt_minute = '0' + dt_minute;

	if (dt_second < 10)
		dt_second = '0' + dt_second;

	stemp = dt_hour + ":" + dt_minute + " " + ampm + " GMT";
	return stemp;
}

UpdateClock();