var timeHTML, dateHTML;
var timeZone;

function DateTime() {
	clientTime = new Date();

	clientHour = clientTime.getHours();
	clientMinute = clientTime.getMinutes();
	clientSec = clientTime.getSeconds();
	clientDay = clientTime.getDate();
	clientMonth = clientTime.getMonth() + 1;
	clientYear = clientTime.getYear();

	timeZone = clientTime.getTimezoneOffset();

	var seoulTime = TimeConverter(-540);
	var vanTime = TimeConverter(480);

	// for Seoul Time
	hours = seoulTime.getHours();
	minutes = seoulTime.getMinutes();

	timeHTML = "" + hours;
	timeHTML = timeHTML + ((minutes < 10) ? ":0" : ":") + minutes;

	document.all.id_time.innerText = timeHTML;

	date = seoulTime.getDate();
	month = seoulTime.getMonth() + 1;
	year = seoulTime.getYear();
	day = seoulTime.getDay();

	dateHTML = DayConverter(day);

	document.all.id_date.innerText = dateHTML;

	// for Vancouver Time
	hours = vanTime.getHours();
	minutes = vanTime.getMinutes();

	timeHTML = "" + hours;
	timeHTML = timeHTML + ((minutes < 10) ? ":0" : ":") + minutes;

	document.all.van_time.innerText = timeHTML;

	date = vanTime.getDate();
	month = vanTime.getMonth() + 1;
	year = vanTime.getYear();
	day = vanTime.getDay();

	dateHTML = DayConverter(day);

	document.all.van_date.innerText = dateHTML;

	Timer = setTimeout("DateTime()", 1000);
}

function MonthConverter(strMonth) {
	switch (strMonth) {
		case 1 :
			strMonth = "Jan.";
			break;
		case 2 :
			strMonth = "Feb.";
			break;
		case 3 :
			strMonth = "Mar.";
			break;
		case 4 :
			strMonth = "Apr.";
			break;
		case 5 :
			strMonth = "May.";
			break;
		case 6 :
			strMonth = "Jun.";
			break;
		case 7 :
			strMonth = "Jul.";
			break;
		case 8 :
			strMonth = "Aug.";
			break;
		case 9 :
			strMonth = "Sep.";
			break;
		case 10 :
			strMonth = "Oct.";
			break;
		case 11 :
			strMonth = "Nov.";
			break;
		case 12 :
			strMonth = "Dec.";
			break;
	}
	return strMonth;
}

function DayConverter(strDay) {
	switch (strDay) {
		case 0 :
			strDay = "Sunday";
			break;
		case 1 :
			strDay = "Monday";
			break;
		case 2 :
			strDay = "Tuesday";
			break;
		case 3 :
			strDay = "Wednesday";
			break;
		case 4 :
			strDay = "Thursday";
			break;
		case 5 :
			strDay = "Friday";
			break;
		case 6 :
			strDay = "Saturday";
			break;
	}
	return strDay;
}

function DateConverter(strDate) {
	switch (strDate % 10) {
		case 1 :
			if (strDate != 11) {
				strDate = strDate + "st"
			}
			else {
				strDate = strDate + "th"
			}
			break;
		case 2 :
			if (strDate != 12) {
				strDate = strDate + "nd"
			}
			else {
				strDate = strDate + "th"
			}
			break;
		case 3 :
			if (date != 13) {
				strDate = strDate + "rd"
			}
			else {
				strDate = strDate + "th"
			}
			break;
		default :
			strDate = strDate + "th"
			break;
	}

	return strDate;
}

function TimeConverter(strOffset) {
	var timeHour = (timeZone - strOffset) / 60;
	timeHour = Math.floor(timeHour);
	var timeMin = (timeZone - strOffset) % 60;

	var returnHour = clientHour + timeHour;
	var returnMin = clientMinute + timeMin;
	var returnDay = clientDay;
	var returnMonth = clientMonth;
	var returnYear = clientYear;

	if (returnHour >= 24) {
		returnHour = returnHour % 24;
		returnDay = clientDay + 1;
	}

	var timeDiff = MonthConverter(returnMonth) + " " + returnDay + ", " + returnYear + " " + returnHour + ":" + returnMin + ":" + clientSec;
	var returnTime = new Date(timeDiff);

	return returnTime;
}
