/*
This function written by Simon Willison:
http://simon.incutio.com/archive/2004/05/26/addLoadEvent
*/

function addLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
} else {
window.onload = function() {
oldonload();
func();
		}
	}
}

//  Clocks onload
addLoadEvent(Updateclocks);

/*
Start clocks
*/

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('New York City', -5, 1, ''),
new tzone('Mumbai', +5.5, 0, ''),
new tzone('Hong Kong', +8, 0, '')
) ;

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 =
'<span class=c1>' + ct[0].tz + '</span>' + '<br />' + DateString(ct[0].ct) + ' ' + TimeString(ct[0].ct);

document.getElementById('Clock1').innerHTML =
'<span class=c2>' + ct[1].tz + '</span>' + '<br>' + DateString(ct[1].ct) + ' ' + TimeString(ct[1].ct);

document.getElementById('Clock2').innerHTML =
'<span class=c3>' + ct[2].tz + '</span>' + '<br>' + DateString(ct[2].ct) + ' ' + TimeString(ct[2].ct);

timerID = window.setTimeout("Updateclocks()", 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_month + '/' + dt_day + '/' + dt_year.substr(2,2) ;
stemp = stemp + ' ' + dt_hour + ":" + dt_minute + ":" + dt_second + ' ' + ampm ;

return stemp ;
}

function DateString(dt)
{
var stemp;
var dt_year = dt.getUTCFullYear() ;
var dt_month = dt.getUTCMonth();
var dt_date = dt.getUTCDate() ;
var dt_day = dt.getUTCDay() ;

day = new Array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat");
month = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
stemp = day[dt_day] + ' ' + month[dt_month] + ' ' + dt_date + ', ' + dt_year;

return stemp ;
}

function TimeString(dt)
{
var stemp, ampm ;
var dt_hour = dt.getUTCHours() ;
var dt_minute = dt.getUTCMinutes() ;
var dt_second = dt.getUTCSeconds() ;

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 + ":" + dt_second + ' ' + ampm ;

return stemp ;
}






