<!-- This script and many more are available free online at -->

<!-- The JavaScript Source!! http://javascript.internet.com -->

<!-- Original:  KK Chan -->

<!-- Begin

var timerID ;

function tzone(tz, os, dst, dsa, cl)

{

	this.ct = new Date(0) ;		// datetime

	this.tz = tz ;		// code

	this.os = os ;		// GMT offset

	this.dst = dst ;		// type of daylight savings:
	                    // 0: none
	                    // 1: new zealand
	
	this.dsa = dsa ;    // amount to adjust daylight savings in hours

	this.cl = cl ;		// font color

}



function UpdateClocks()

{

	// www.timeanddate.com/worldclock
	var ct = new Array(
		new tzone('Auckland ', +12, 2, 1, '#000000'),
		new tzone('| Adelaide ', +9.5, 1, 1, '#000000'),
		new tzone('| Shanghai ', +8, 0, 0, '#000000'),
		new tzone('| Singapore ', +8, 0, 0, '#000000'),
		new tzone('| UK ',  0, 3, 1, '#000000'),
		new tzone('| Cleveland, Ohio ', -5, 4, 1, '#000000')

	) ;

	var dt = new Date() ;	// [GMT] time according to machine clock
	
	var m = dt.getMonth() + 1;
	var d = dt.getDate();
	var wd = dt.getDay();
	for (n = 0; n < ct.length; ++n) {
		var ds_active = 0;
		var dst = ct[n].dst;
		if (dst == 1) {
			// Australia
			if (m < 3 || m > 10 || (m == 3 && d - wd < 25) || (m == 10 && d - wd > 24)) {
				ds_active = 1;
			}
		} else if (dst == 2) {
			// New Zealand
			if (m < 3 || m > 10 || (m == 3 && d - wd < 18) || (m == 10 && d - wd > 6)) {
				ds_active = 1;
			}
		} else if (dst == 3) {
			// Europe
			if ((m > 3 && m < 10) || (m == 3 && d - wd > 24) || (m == 10 && d - wd < 25)) {
				ds_active = 1;
			}
		} else if (dst == 4) {
			// North America
			if ((m > 4 && m < 10) || (m == 4 && d - wd > 6) || (m == 10 && d - wd < 25)) {
				ds_active = 1;
			}
		}
		if (ds_active == 1) {
			ct[n].os += ct[n].dsa;
		}
	}

	// 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 =
		'<font color="' + ct[0].cl + '">' + ct[0].tz + ClockString(ct[0].ct) + '</font>' ;
	document.getElementById('Clock1').innerHTML =
		'<font color="' + ct[1].cl + '">' + ct[1].tz + ClockString(ct[1].ct) + '</font>' ;
	document.getElementById('Clock2').innerHTML =
		'<font color="' + ct[2].cl + '">' + ct[2].tz + ClockString(ct[2].ct) + '</font>' ;
	document.getElementById('Clock3').innerHTML =
		'<font color="' + ct[3].cl + '">' + ct[3].tz + ClockString(ct[3].ct) + '</font>' ;
	document.getElementById('Clock4').innerHTML =
		'<font color="' + ct[4].cl + '">' + ct[4].tz + ClockString(ct[4].ct) + '</font>' ;
	document.getElementById('Clock5').innerHTML =
		'<font color="' + ct[5].cl + '">' + ct[5].tz + ClockString(ct[5].ct) + '</font>' ;
	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 = dt_hour + ":" + dt_minute + ":" + dt_second + ' ';

	return stemp ;

}

//  End -->

