var LastDayArray=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
var DayOfWeek=new Array("<font color=red>日</font>" , "月" , "火" , "水" , "木" , "金" , "<font color=blue>土</font>");
var TimerStr;			// 현재시각 데이터  , 콤마(,)로 구분 yyyy,mm,dd,hh,ii,ss,weekofday
var TimerType;		// USA 시각 기준 Type (PDT, PST)
var TimerID_JST;	// 현재시각을 출력할 객체 JST
var TimerID_USA;	// 현재시각을 출력할 객체 USA
var TimerID_CST;	// 현재시각을 출력할 객체 CST

function DisplayClocks()
{
	if(!TimerStr) return;
	// parseInt로 하면 '09' 는 '0'으로 인식되므로 eval을 사용함.
	var arr = TimerStr.split(',');
	var year = eval(arr[0]);
	var month = eval(arr[1]);
	var day = eval(arr[2]);
	var hour = eval(arr[3]);
	var minute = eval(arr[4]);
	var second = eval(arr[5]);
	var dayofweek = eval(arr[6]);
	var time_term = (TimerType == "PST") ? 17 : 16;	// KST 기준  PDT:-16시간 , PST:-17시간

	second++;	//1초 증가
	if(second > 59) { second = 0; minute++; }
	if(minute > 59) { minute = 0; hour++; }
	if(hour > 23) { hour = 0; day++; dayofweek++; }
	if(day > LastDayArray[month-1]) { day = 1; month++; }
	if(month > 12) { month = 1; year++; }
	if(dayofweek > 6) dayofweek = 0;

	// 현재시각 데이터 재셋팅
	TimerStr = year + "," + month + "," + day + "," + hour + "," + minute + "," + second + "," + dayofweek;
	//alert(TimerStr);

	// 현재시각 출력
	DisplayClocks_JST(year, month, day, hour, minute, second, dayofweek);
	DisplayClocks_USA(year, month, day, hour, minute, second, dayofweek, time_term);
	DisplayClocks_CST(year, month, day, hour, minute, second, dayofweek, time_term);

	window.setTimeout("DisplayClocks()", 1000);

}

function DisplayClocks_JST(year, month, day, hour, minute, second, dayofweek)
{
	var clocks = '';
	
	clocks = year + "." + ClockString(month,2) + '.' + ClockString(day,2) + " (" + DayOfWeek[dayofweek] + ") ";
	clocks = clocks + " " + ClockString(hour,2) + ':' + ClockString(minute,2) + ':' + ClockString(second,2);
	// default 출력
	if (document.all["__JST_CLOCKS__"]) {
		document.all["__JST_CLOCKS__"].innerHTML = clocks;
	}
	// 출력할 객체가 지정된 경우
	if (document.all[TimerID_JST]) {
		document.all[TimerID_JST].innerHTML = clocks;
	}
}

function DisplayClocks_USA(year, month, day, hour, minute, second, dayofweek, time_term)
{
	var clocks = '';
	// 시차를 계산한다.
	hour = hour - time_term;
	if(hour < 0) { hour = 24 + hour; day--; dayofweek--; }
	if(day <= 0) { day = LastDayArray[month-2] + day; month--; }
	if(month <= 0) { month = 12 + month; year--; }
	if(dayofweek < 0) dayofweek = 6 + dayofweek;

	clocks = year + '.' + ClockString(month,2) + '.' + ClockString(day,2) + " (" + DayOfWeek[dayofweek] + ") ";
	clocks = clocks + ' ' + ClockString(hour,2) + ':' + ClockString(minute,2) + ':' + ClockString(second,2);
	// default 출력
	if (document.all['__USA_CLOCKS__']) {
		document.all['__USA_CLOCKS__'].innerHTML = clocks;
	}
	// 출력할 객체가 지정된 경우
	if (document.all[TimerID_USA]) {
		document.all[TimerID_USA].innerHTML = clocks;
	}
}


function DisplayClocks_CST(year, month, day, hour, minute, second, dayofweek)
{
	var clocks = '';
	// 시차를 계산한다.
	hour = hour - 1;	// 중국과의 시차 1시간 , JST기준
	if(hour < 0) { hour = 24 + hour; day--; dayofweek--; }
	if(day <= 0) { day = LastDayArray[month-2] + day; month--; }
	if(month <= 0) { month = 12 + month; year--; }
	if(dayofweek < 0) dayofweek = 6 + dayofweek;

	clocks = year + '.' + ClockString(month,2) + '.' + ClockString(day,2) + " (" + DayOfWeek[dayofweek] + ") ";
	clocks = clocks + ' ' + ClockString(hour,2) + ':' + ClockString(minute,2) + ':' + ClockString(second,2);
	// default 출력
	if (document.all['__CST_CLOCKS__']) {
		document.all['__CST_CLOCKS__'].innerHTML = clocks;
	}
	// 출력할 객체가 지정된 경우
	if (document.all[TimerID_CST]) {
		document.all[TimerID_CST].innerHTML = clocks;
	}
}


function ClockString(data, len)
{
	var str = data.toString();
	for(i=0 ; str.length < len ; i++) {
		str = "0" + str;
	}
	return str;
}