// JavaScript Document
// timezoneclocks.js

var timerID ;

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()
{
	var ct = new Array(
	new tzone('NY ', -5 , 1),
	new tzone('LDN ', 0, 1),
	new tzone('ZUR ', +1, 1),
	new tzone('MSK ', +2, 1),
	new tzone('DUB ', +4, 1),
	new tzone('SNG ', +7, 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.getElementById('Clock0').innerHTML = ct[0].tz + ClockString(ct[0].ct) ;
	document.getElementById('Clock1').innerHTML = ct[1].tz + ClockString(ct[1].ct) ;
	document.getElementById('Clock2').innerHTML = ct[2].tz + ClockString(ct[2].ct) ;
	document.getElementById('Clock3').innerHTML = ct[3].tz + ClockString(ct[3].ct) ;
	document.getElementById('Clock4').innerHTML = ct[4].tz + ClockString(ct[4].ct) ;
	document.getElementById('Clock5').innerHTML = ct[5].tz + ClockString(ct[5].ct) ;
	timerID = window.setTimeout("UpdateClocks()", 1001) ;
}

function ClockString(dt)
{
	var stemp;
	var dt_hour = dt.getUTCHours() ;
	var dt_minute = dt.getUTCMinutes() ;

	if (dt_hour < 10)
		dt_hour = '0' + dt_hour ;

	if (dt_minute < 10)
		dt_minute = '0' + dt_minute ;

	stemp = dt_hour + ":" + dt_minute;
	return stemp ;
}
