/* Begin: Time functions */

var timerID;
var DaysOfWeek=["Sun","Mon","Tue","Wed","Thu","Fri","Sat","Sun"];

// Get the difference in time between the local machine and web server, so that we can use the web server clock rather than the local clock
function getTimeOffset(serverYear, serverMonth, serverDay, serverHour, serverMinute, serverSecond)	{
	
//get local machine date : getDate() 0-31, getMonth() 0-11, getFullYear() 4 digit year, getHours() 0-23, getMinutes() 0-59, getSeconds() 0-59 
	var localDate = new Date();	
	// alert(localDate);
	var tempServDate = new Date(serverYear, serverMonth-1, serverDay, serverHour, serverMinute, serverSecond);	
	// alert(tempServDate);
	var clockOffset = (tempServDate - localDate); //offset in milliseconds between local time and server time
	return clockOffset;
}

function timeZone(cityName, GMTOffset, div) {
	this.officeDateTime = new Date(0) ;// datetime
	this.cityName = cityName;
	this.GMTOffset = GMTOffset;
	this.div = div;
}

function UpdateClocks(offset) {
	var clockOffset = offset;
	
	/*
	var officeClocks = new Array(
		new timeZone('London',1, "Clock0"),	
		new timeZone('New York',-4,"Clock1"),	
		new timeZone('Sydney',10,"Clock2"),
		new timeZone('Bangkok',7,"Clock3")
	);
	*/

	// alert("The UpdateClocks offset is: " + clockOffset);
	// compensate time zones
	var gmdt = new Date();
	// alert("gmdt is set to:" + gmdt);
	// alert(gmdt);
	gmdt.setMilliseconds(clockOffset); //modify time to use server clock		
	// alert("gmdt is adjusted to:" + gmdt);
	for (n=0 ; n<officeClocks.length ; n++) {
		officeClocks[n].officeDateTime = new Date(gmdt.getTime() + (officeClocks[n].GMTOffset * 3600000));
		document.getElementById(officeClocks[n].div).innerHTML = ClockString(officeClocks[n].officeDateTime, officeClocks[n].cityName);
	};
	
	timerID = window.setTimeout(function(){UpdateClocks(clockOffset);}, 1001) ;
}

function ClockString(dt, location) {
	var stemp;
	var dt_year = dt.getUTCFullYear();
	var dt_month = dt.getUTCMonth() + 1 ;
	var dt_day = dt.getUTCDate() ;
	var dt_hour = dt.getHours() ;
	var dt_minute = dt.getMinutes() ;
	var dt_second = dt.getSeconds() ;

	dt_year = dt_year.toString() ;
	if (0 <= dt_hour && dt_hour < 10) {
		dt_hour = '0' + dt_hour;
	}

	if (dt_minute < 10)
		dt_minute = '0' + dt_minute ;

	if (dt_second < 10)
		dt_second = '0' + dt_second ;

	stemp = '<span class="time">' + dt_hour + ":" + dt_minute + '</span>';
	stemp = stemp + '<span class="timeZone"><strong>' + location + ' :</strong><br />';
	stemp = stemp + DaysOfWeek[dt.getDay()] + ' ' + dt_day + '/' + dt_month + '</span>';
	return stemp ;
}
/* END: Time functions */
