var SECOND = 1000;
var MINUTE = 60 * SECOND;
var HOUR = 60 * MINUTE;
var DAY = 24 * HOUR;

function makeArray()    {
	this[0] = makeArray.arguments.length;
	for (i=0; i<makeArray.arguments.length; i++) { this[i+1] = makeArray.arguments[i]; }
}

var daysofmonth   = new makeArray(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var daysofmonthLY = new makeArray(31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

function LeapYear(year) {
	if ((year/4)   != Math.floor(year/4))   return false;
	if ((year/100) != Math.floor(year/100)) return true;
	if ((year/400) != Math.floor(year/400)) return false;
	return true;
}

function NthDay(nth,weekday,month,year) {
	if (nth > 0) return (nth-1)*7 + 1 + (7 + weekday - DayOfWeek((nth-1)*7 + 1,month,year)) % 7;
	if (LeapYear(year)) var days = daysofmonthLY[month];
	else                var days = daysofmonth[month];
	return days - (DayOfWeek(days,month,year) - weekday + 7) % 7;
}

function DayOfWeek(day,month,year) {
    var a = Math.floor((14 - month)/12);
    var y = year - a;
    var m = month + 12*a - 2;
    var d = (day + y + Math.floor(y/4) - Math.floor(y/100) + Math.floor(y/400) + Math.floor((31*m)/12)) % 7;
    return d + 1;
}

function y2k(number) {
	return (number < 1000) ? number + 1900 : number;
}

var today      = new Date();
var year       = y2k(today.getYear());
var DSTstart   = new Date(year,4-1,NthDay(1,1,4,year),2,0,0);
var DSTend     = new Date(year,10-1,NthDay(-1,1,10,year),2,0,0);
var DSTstartMS = getMS(DSTstart);
var DSTendMS   = getMS(DSTend);
var todayMS    = getMS(today);

function getMS(date) {
    return Date.UTC(y2k(date.getYear()),date.getMonth(),date.getDate(),date.getHours(),date.getMinutes(),date.getSeconds());
}


function getDaylightSaving() {
	var daylightTime;
	daylightTime = todayMS > DSTstartMS && todayMS < DSTendMS;
   return daylightTime;
}


function getSwatchTime(d) {
	var BMThour, BMTmin, BMTsec, Ssec;
	BMThour = d.getUTCHours() + 1;
	BTMhour = BMThour % 24;
	BMTmin = d.getUTCMinutes();
	BMTsec = d.getUTCSeconds();
	Ssec = BMThour * 60 * 60 + BMTmin * 60 + BMTsec;
	var s = String(parseInt((Ssec / 86.4)*10));
	s = s.substring(0, s.length-1) + '.' + s.substring(s.length-1);
	return('@' + s );
}

var LJUBLJANA_OFFSET = (getDaylightSaving() ? 2 : 1) * HOUR;

function generateClock() {
	var now = new Date();
	var tz = now.getTimezoneOffset() * MINUTE;
	var now = new Date(now.getTime() + tz + LJUBLJANA_OFFSET);
	var result = '';

	var sec = now.getSeconds();
	var min = now.getMinutes();
	var hour = now.getHours();
	var day = now.getDate();
	var month = now.getMonth();
	var year = now.getFullYear() % 100;

	result += day + '.';


	if(++month<10) { month = '0' + month; }
	result += month + '.';

	if(year<10) { year = '0' + year; }
	result +=  year + ' ob ';

	result += hour;
	result += ':';
	if(min<10) { min = '0' + min; }
	result += min;

	if(sec<10) { sec = '0' + sec; }
	result += ':' + sec;

	result += ' | Internetni cas je: ';
	result += getSwatchTime(now);

	return(result);
}

function writeIEClock() {
	document.all.clock.innerText = generateClock();
	setTimeout("writeIEClock()", 1000);
}

function writeECMAClock() {
	document.getElementById("clock").innerHTML = generateClock();
	setTimeout("writeECMAClock()", 1000);
}

function writeNNClock() {
	clockpos = document.clockPos;
	clockpos.visibility = "show";
	liveclock = clockpos.document.liveClock;
	liveclock.document.write('<span class="date">' + generateClock() + '</span>');
	liveclock.document.close();
	setTimeout("writeNNClock()", 1000);
}

if (document.getElementById) {
	document.write('<span title="Tocen cas" name="clock" id="clock">' + generateClock() + '</span>');
	setTimeout("writeECMAClock()", 1000);
} else if (document.all) {
	document.write('<span title="Tocen cas" name="clock" id="clock">' + generateClock() + '</span>');
	if((navigator.appVersion.substring(0,1)>4)) { // crashes IE browsers 4.0, so let's put it out.
		setTimeout("writeIEClock()", 1000);
	}
} else if (document.layers) {
	document.write('<ilayer id="clockPos"><layer width="160" class="date" id="liveClock">' + generateClock() + '</layer></ilayer>');
	setTimeout("writeNNClock()", 1000);
} else {
	document.writeln( generateClock() );
}
