// Source: www.proglogic.com/code/javascript/time/worldclock.php

function myWorldClock(zone, region) {
	var dst = 0;
	var datetimeSeparator = " - ";
	var time = new Date();
	var gmtMS = time.getTime() + (time.getTimezoneOffset() * 60000);
	var gmtTime = new Date(gmtMS);
	var day = gmtTime.getDate();
	var month = gmtTime.getMonth();
	var year = gmtTime.getFullYear();
	var monthArray = new Array("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
	var monthDays = new Array("31", "28", "31", "30", "31", "30", "31", "31", "30", "31", "30", "31");
	if (year%4 == 0) {
		monthDays = new Array("31", "29", "31", "30", "31", "30", "31", "31", "30", "31", "30", "31");
	}
	if (year%100 == 0 && year%400 != 0) {
		monthDays = new Array("31", "28", "31", "30", "31", "30", "31", "31", "30", "31", "30", "31");
	}

	var hr = gmtTime.getHours() + zone;
	var min = gmtTime.getMinutes();
	var sec = gmtTime.getSeconds();

	if (hr >= 24) {
		hr = hr-24;
		day -= -1;
	}
	if (hr < 0) {
		hr -= -24;
		day -= 1;
	}
	if (hr < 10) {
		hr = " " + hr;
	}
	if (min < 10) {
		min = "0" + min;
	}
	if (sec < 10) {
		sec = "0" + sec;
	}
	if (day <= 0) {
		if (month == 0) {
			month = 11;
			year -= 1;
		} else {
			month = month -1;
		}
		day = monthDays[month];
	}
	if (day > monthDays[month]) {
		day = 1;
		if (month == 11) {
			month = 0;
			year -= -1;
		} else {
			month -= -1;
		}
	}

	switch(region) {
		case 'Australia':
			datetimeSeparator = "<br>";
			var startDST = new Date(year, 9, 31, 2);
			var dayDST = startDST.getDay();
			startDST.setDate(31-dayDST);
			var endDST = new Date(year, 2, 31, 2);
			dayDST = endDST.getDay();
			endDST.setDate(31-dayDST);
			break;
		case 'Europe':
			datetimeSeparator = "<br>";
			var startDST = new Date(year, 2, 31, 1);
			var dayDST = startDST.getDay();
			startDST.setDate(31-dayDST);
			var endDST = new Date(year, 9, 31, 0);
			dayDST = endDST.getDay();
			endDST.setDate(31-dayDST);
			break;
		case 'Fiji':
			switch(year) {
				case 2011:
					var endDST = new Date(2011, 2, 6, 3);
					var startDST = new Date(2011, 9, 23, 2);
					break;
				case 2012:
					var endDST = new Date(2012, 2, 4, 3);
					var startDST = new Date(2012, 9, 21, 2);
					break;
				case 2013:
					var endDST = new Date(2013, 2, 3, 3);
					var startDST = new Date(2013, 9, 27, 2);
					break;
				case 2014:
					var endDST = new Date(2014, 2, 2, 3);
					var startDST = new Date(2014, 9, 26, 2);
					break;
				case 2015:
					var endDST = new Date(2015, 2, 1, 3);
					var startDST = new Date(2015, 9, 25, 2);
					break;
				case 2016:
					var endDST = new Date(2016, 2, 6, 3);
					var startDST = new Date(2016, 9, 23, 2);
					break;
				case 2017:
					var endDST = new Date(2016, 2, 5, 3);
					var startDST = new Date(2017, 9, 22, 2);
					break;
				case 2018:
					var endDST = new Date(2018, 2, 4, 3);
					var startDST = new Date(2018, 9, 21, 2);
					break;
				case 2019:
					var endDST = new Date(2019, 2, 3, 3);
					var startDST = new Date(2019, 9, 27, 2);
					break;
				default:
					var endDST = new Date(year, 2, 6, 3);
					var startDST = new Date(year, 9, 27, 2);
					break;
			}
			break;
	}

	var currentTime = new Date(year, month, day, hr);
	if (currentTime >= startDST || currentTime < endDST) {
		dst = 1;
	}

	if (dst == 1) {
		hr -= -1;
		if (hr >= 24) {
			hr = hr-24;
			day -= -1;
		}
		if (hr < 10) {
			hr = " " + hr;
		}
		if (day > monthDays[month]) {
			day = 1;
			if (month == 11) {
				month = 0;
				year -= -1;
			} else {
				month -= -1;
			}
		}
		return day + ". " + monthArray[month] + datetimeSeparator + hr + ":" + min + ":" + sec + " DST";
	} else {
		return day + ". " + monthArray[month] + datetimeSeparator + hr + ":" + min + ":" + sec;
	}
}

function myFijiClock() {
	document.getElementById("Fiji2").innerHTML = myWorldClock(12, "Fiji");
	setTimeout("myFijiClock()", 1000);
}

function addOnloadEvent(fnc) {
	if (typeof window.addEventListener != "undefined") {
		window.addEventListener("load", fnc, false);
	} else if (typeof window.attachEvent != "undefined") {
		window.attachEvent("onload", fnc);
	} else {
		if (window.onload != null ) {
			var oldOnload = window.onload;
			window.onload = function (e) {
				oldOnload(e);
				window[fnc]();
			};
		} else {
			window.onload = fnc;
		}
	}
}

addOnloadEvent(myFijiClock);

