var timerID ;
arday = new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")
armonth = new Array("January ","February ","March ","April ","May ","June ","July ","August ","September ", "October ","November ","December ")
ardate = new Array("0th","1st","2nd","3rd","4th","5th","6th","7th","8th","9th","10th","11th","12th","13th","14th","15th","16th","17th","18th","19th","20th","21st","22nd","23rd","24th","25th","26th","27th","28th","29th","30th","31st");

function tzone(tz, os, ds)
{
	this.ct = new Date(0) ;		// datetime
	this.tz = tz ;		// code
	this.os = os ;		// GMT offset
	this.ds = ds ;		// has daylight savings
}

function UpdateClocks()
{
	// www.timeanddate.com/worldclock
	var ct = new Array(
// Oz Summer		new tzone('<b>Adelaide: </b> ',  +10.5, 0),
// Oz Summer		new tzone('<b>England: </b> ', 0, 1)

// UK Summer		new tzone('<b>Adelaide: </b> ',  +9.5, 0),
// UK Summer		new tzone('<b>England: </b> ', +1, 1)

		new tzone('<b>Adelaide: </b> ',  +9.5, 0),
		new tzone('<b>England: </b> ', +1, 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(n=0 ; n<ct.length ; n++)
		if (ct[n].ds == 1 && ds_active == 1) ct[n].os++ ;

	// compensate time zones
	gmdt = new Date() ;
	for (n=0 ; n<ct.length ; n++)
		ct[n].ct = new Date(gmdt.getTime() + ct[n].os * 3600 * 1000) ;

	document.all.Clock0.innerHTML =
		ct[0].tz + ClockString(ct[0].ct);

	document.all.Clock1.innerHTML =
		ct[1].tz + ClockString(ct[1].ct);

	timerID = window.setTimeout("UpdateClocks()", 1001) ;
}

function ClockString(dt)
{
	var stemp, ampm ;
	var dt_year = dt.getUTCFullYear() ;
	var dt_day = dt.getUTCDay();
	var dt_month = dt.getUTCMonth();
	var dt_weekday= dt.getUTCDate();
	var dt_hour = dt.getUTCHours() ;
	var dt_milliseconds = dt.getUTCMilliseconds() ;
	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 = arday[dt_day] +", " + armonth[dt_month] + " " + ardate[dt_weekday] + " " + dt_year ;
	stemp = stemp + ' ' + dt_hour + ":" + dt_minute + ":" + dt_second + ' ' + ampm ;
	return stemp ;
}




