<!-- Begin
if (document.all)	// MSIE object model available
	document.write("<span ID=clock></span>");
else			// MSIE object model not available	
	document.write("<span>&nbsp;&nbsp;<INPUT NAME=clockfield SIZE=10 TYPE=text READONLY style=\"border: 0px; background-color: #FFFFFF;\"></span>");

var timerRunning = false;
var adjust = 0;

//=== START TIMER ===
function timeCheck(diff)			// required time difference between displayed time and UTC time - the number that is displayed rigth the timezone name - e.g. GMT+001
						// (including DST if set - _you_ must handle DST detection when calling this function!!!)
{
	if (timerRunning)
	{
		clearTimeout(updatetime);
		timerRunning = false;
	}
	gmtOffset=-diff;	// convert to negative offset to be compatible with GetTimeZoneOffset()
	checkDateTime();	// call displaying routine (it sets timing recalls for itself)
}

//=== DISPLAY THE TIME ===
function checkDateTime ()
{
	// --- 1) get browser's time ---
	var today = new Date();
	var year = today.getYear() + 1900;
	var month = today.getMonth()+1;
	var date = today.getDate();
	var day = today.getDay();
	var hour = today.getHours();
	var minute = today.getMinutes();
	var second = today.getSeconds();

	// --- 2) count difference ---
	yourOffset = (new Date()).getTimezoneOffset();		// offset between browsers's time (including DST) and UTC
	ourDifference = eval(gmtOffset - yourOffset);		// difference between browser's time and required display time

	// --- 3) and now try to add or subtract time difference to gain the date and time to display ---
	var half = eval(ourDifference % 60);
	ourDifference = Math.round(ourDifference / 60);
	hour = eval(hour - ourDifference);
	var m = new Array("",
	"Jan","Feb","Mar",
	"Apr","May","Jun",
	"Jul","Aug","Sept",
	"Oct","Nov","Dec");
	var leap = eval(year % 4);

	if ((half == -30) || (half == 30)) minute += 30;
	if (minute > 59) minute -= 60, hour++;
	if (minute < 0) minute += 60, hour--;
	if (hour > 23) hour -= 24, date += 1;
	if (((month == 4) || (month == 6) ||
	(month == 9) || (month == 11)) && (date==31)) date = 1, month ++;
	if (((month == 2) && (date > 28)) && (leap != 0)) date = 1, month ++;
	if ((month == 2) && (date > 29)) date = 1, month++;
	if (hour < 0) hour += 24, date --;
	if ((date == 32) && (month == 12)) month = m[1], date = 1, year++;
	if (date == 32) date = 1, month++;
	if ((date < 1) && (month == 1)) month= m[12], date = 31, year--;
	if (date < 1) date = 31, month --;
	if (((month == 4) || (month == 6) ||
	(month== 9) || (month == 11)) && (date == 31)) date = 30;
	if ((month == 2) && (date > 28)) date = 29;
	if (((month == 2) && (date > 28)) && (leap != 0)) date=28;
	for (i=1; i<13; i++)
	{
		if (month == i)
		{
			month = m[i]; break;
		}
	}

	// --- 4) convert display time (and date) to string ---
	var dateTime = hour;
	dateTime = ((dateTime < 10) ? "0":"") + dateTime;
	dateTime += ((minute < 10) ? ":0" : ":") + minute;
	dateTime += ((second < 10) ? ":0" : ":") + second;
	//dateTime += (hour >= 12) ? " PM, " : " AM, ";
	//dateTime += month + " " + date + ", " + year;
	

	// --- 5) display the time ---
	if (document.all) 			// MSIE object model
		document.all.clock.innerText = dateTime;
	else
		document.clockform.clockfield.value = dateTime;
	
	updatetime=setTimeout("checkDateTime()", 900);
	timerRunning = true;
}

//==== INITIALIZATION ===

//--- count DST adjust for displayed time ---
//(the browser could not know neihter displayed time's timezine nor DST) 

var DSTadjust = 60;
var today = new Date();
var month = today.getMonth()+1;
var day = today.getDay();
var date = today.getDate();

var lastSat = date - (day+1);
while (lastSat < 32) lastSat+=7;
if (lastSat > 31) lastSat+=-7;
var firstSat = date - (day+1);
while (firstSat > 0) firstSat+=-7;
if (firstSat < 1) firstSat+=7;

if (
    ( ((month == 4) && (date >= firstSat)) 
       || month > 4) 
    &&
    ( month < 10 
       || ((month == 10) && date <= lastSat))
   )
   DSTadjust = 60;

//-- start the timer displaying routine ---
timeCheck(0+DSTadjust);	// 60 = display time in GMT+001 zone, -60 zimni cas

// End -->
