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 UpdateClocks()
{

var ct = new Array(
  new tzone('', +3, 1),
  new tzone('', -6, 0),
  new tzone('', -5, 0)
) ;

var dt = new Date() ; // [GMT] time according to machine clock

var startDST = new Date(dt.getFullYear(), 2, 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 ;
//ds_active = 1 ;
//alert(ds_active);
// 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 = '<b>' + ct[0].tz + ClockString(ct[0].ct,ct[0].os) + '</b>';

document.all.Clock1.innerHTML = '<b>' + ct[1].tz + ClockString(ct[1].ct,ct[1].os) + '</b>';

document.all.Clock2.innerHTML = '<b>' + ct[2].tz + ClockString(ct[2].ct,ct[2].os) + '</b>';

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



function ClockString(dt,offs)
{
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 (dt_minute < 10)
  dt_minute = '0' + dt_minute ;

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

if (offs==-1 || offs==-2)
{
	dt.setHours(dt_hour+9) ;
    dt_hour = dt.getUTCHours() ;
	stemp = '<span class="red"><b>' + dt_day +'</b></span class="red"> '+ rusmonth(dt_month) +' <b>'+ dt_year+' </b>' ;
}
else
stemp = dt_hour + ":" + dt_minute;
return stemp ;
}


