<!--

var alarmMode = null;	// 알람 관련
var arbType   = null;	// 선택된 아르바이트 종류
var weekIdx   = null;	// 요일효과 관련
var AjaxCheck = 0;

var WeekdayEffects;
var PriceSequence;
var PriceViewSeq;
var WeatherData;


var prototype = {
	initDoc : function() {
		alarmMode = $('alarmMode')[$('alarmMode').selectedIndex].value;
		arbType   = $('arbType')[$('arbType').selectedIndex].value;

		this.ajax();
		this.ajax_weather();
	},

	ajax : function(sType) {
		var nTimestemp = Math.floor(new Date().getTime() / 1000);
		var sHintUrl = '/ajax/mabinogi_hint.php?dummy=' + nTimestemp;

		new Ajax.Request(sHintUrl,
		{
			method: 'POST',
			parameters: {'type':'ALL'},
			onSuccess: function(oResult) {
				var Temp;
				Temp = oResult.responseText.evalJSON();

				WeekdayEffects		= Temp.WeekdayEffects;
				PriceSequence		= Temp.Price;
				PriceViewSeq		= Temp.PriceView;

				prototype.tick();
			}
		});
	},

	ajax_weather : function() {
		new Ajax.Request('/ajax/weather_main_hint.php',
		{
			method: 'POST',
			parameters: {'type':$('WeatherArea').value},
			onSuccess: function(oResult) {
				WeatherData = oResult.responseText.evalJSON();
				prototype.weather(WeatherData);
			}
		});
	},

	weather : function() {
		var sWeather, sTmp, nCnt, i;

		sWeather = '';
		nCnt = WeatherData.length;

		for(i=0; i<nCnt; i++) {
			sTmp = '';

			switch(WeatherData[i]['weather']) {
				case 'STOM':
					sTmp  = '<img src="/v1/images/weather-storm_16x16.png" alt="천둥/번개" />';
					sTmp += '' + WeatherData[i]['rainvalue'];
					break;

				case 'RAIN_HEAVY':
					sTmp = '<img src="/v1/images/weather-showers_16x16.png" alt="비(강)" />';
					sTmp += '' + WeatherData[i]['rainvalue'];
					break;

				case 'RAIN_LIGHT':
					sTmp = '<img src="/v1/images/weather-showers-scattered_16x16.png" alt="비(약)" />';
					sTmp += '' + WeatherData[i]['rainvalue'];
					break;

				case 'CLOUD':
					sTmp = '<img src="/v1/images/weather-overcast_16x16.png" alt="흐림" />';
					break;

				case 'CLEAR':
					sTmp = '<img src="/v1/images/weather-sunny_16x16.png" alt="맑음" />';
					break;
			}

			if(sWeather.length) {
				sWeather += ' → ';
			}

			sWeather += '[' + WeatherData[i]['date'] + '] ' + sTmp;
		}

		$('WeatherInfo').innerHTML = sWeather;
	},

	sec2minsec : function(secs) {
		var hrs = Math.floor(secs / 60);	if (hrs < 10) hrs = "0" + hrs;
		var min = secs % 60;				if (min < 10) min = "0" + min;
		return hrs + ":" + min;
	},

	alarmMode : function(obj) {
		alarmMode = obj.value;
	},

	arbType : function(obj) {
		arbType = obj.value;
	},

	// 1초마다 실행할 작업내역
	tick : function() {
		var midnightTime = new Date(); midnightTime.setHours(0,0,0,0); // 자정
		var current      = new Date(); // 문게이트 및 프라이스 시간표를 위한 오리지널 Date 객체
		var pcurrent     = new Date(); // 해외사용자 시차를 고려, 한국 표준시로 변환 지원용

		// 마비노기 서버가 실제시간 설정과 차이가 나서 표시시간을 보정하기 위한 부분
		// adjTimeErinn: 타임즈시간 대비 게임시간이 에린10분이 빠르면 adjTimeErinn을 10으로 표시 (느리면 음수로)
		// 보정치 필요없이 일치하면 0으로 설정한다.
		// 에린 24시간 = 현실 36분 / 에린 1시간 = 현실 1.5분(90초) / 에린 1분 = 현실 1.5초
		var adjTimeErinn = 0; // 에린 분단위 보정치
		var adjTime = Math.round(adjTimeErinn * 1.5); // 현실 초단위 보정치로 변환

		current.setHours(current.getHours(), current.getMinutes(), current.getSeconds() + adjTime);
		pcurrent.setHours(
			pcurrent.getHours(),
			pcurrent.getMinutes() + pcurrent.getTimezoneOffset() + 540,
			pcurrent.getSeconds() + adjTime
		);

		// 현실시각 표시갱신
		var hrs = pcurrent.getHours();		if (hrs < 10) hrs = "0" + hrs;
		var min = pcurrent.getMinutes();	if (min < 10) min = "0" + min;
		var sec = pcurrent.getSeconds();	if (sec < 10) sec = "0" + sec;
		$('realTime').innerHTML = hrs + ":" + min + ":" + sec;

		// 에린시각 표시갱신 (에린의 하루는 현실시각으로 36분, 2160초)
		var erinnTime = Math.round((pcurrent - midnightTime)/1000) % 2160;
		window.status = "에린시각 " + ($('erinnTime').innerHTML = this.sec2minsec(Math.round(erinnTime * 2 / 3)));


		// 아르바이트 표시갱신
		var arbBeginTime;
		var arbEndTime;
		switch (arbType) {
			case "꽃가게":	// 에린시각 기준 08:00 ~ 16:00
				arbBeginTime = 720; arbEndTime = 1440; break;
			case "대장간":	// 에린시각 기준 12:00 ~ 19:00
				arbBeginTime = 1080; arbEndTime = 1710; break;
			case "도서관":	// 에린시각 기준 09:00 ~ 19:00
				arbBeginTime = 810; arbEndTime = 1710; break;
			case "레스토랑":	// 에린시각 기준 12:00 ~ 21:00
				arbBeginTime = 1080; arbEndTime = 1890; break;
			case "무기점":	// 에린시각 기준 15:00 ~ 22:00
				arbBeginTime = 1350; arbEndTime = 1980; break;
			case "서점":	// 에린시각 기준 13:00 ~ 20:00
				arbBeginTime = 1170; arbEndTime = 1800; break;
			case "성당":	// 에린시각 기준 12:00 ~ 21:00
				arbBeginTime = 1080; arbEndTime = 1890; break;
			case "식료품점":	// 에린시각 기준 12:00 ~ 21:00
				arbBeginTime = 1080; arbEndTime = 1890; break;
			case "여관":	// 에린시각 기준 07:00 ~ 19:00
				arbBeginTime = 630; arbEndTime = 1710; break;
			case "의류점":	// 에린시각 기준 07:00 ~ 19:00
				arbBeginTime = 630; arbEndTime = 1710; break;
			case "음악상점":	// 에린시각 기준 10:00 ~ 15:00
				arbBeginTime = 900; arbEndTime = 1350; break;
			case "잡화점":	// 에린시각 기준 07:00 ~ 19:00
				arbBeginTime = 630; arbEndTime = 1710; break;
			case "전망대":	// 에린시각 기준 07:00 ~ 19:00
				arbBeginTime = 630; arbEndTime = 1710; break;
			case "힐러집":	// 에린시각 기준 06:00 ~ 15:00
				arbBeginTime = 540; arbEndTime = 1350; break;
			case "채굴장":	// 에린시각 기준 10:00 ~ 23:00
				arbBeginTime = 900; arbEndTime = 2070; break;
		} // end of switch
		if (erinnTime > arbBeginTime && erinnTime <= arbEndTime) {
			$('arb0Stat').innerHTML = "<B>진행</B>";
			$('arb0Wait').innerHTML = this.sec2minsec(arbEndTime - erinnTime);
			$('arb0Stat2').innerHTML = "종료";
		} else {
			$('arb0Stat').innerHTML = "대기";
			var arbWaitSecs = arbBeginTime - erinnTime;
			if (arbWaitSecs < 0) arbWaitSecs += 2160;
			$('arb0Wait').innerHTML = this.sec2minsec(arbWaitSecs);
			$('arb0Stat2').innerHTML = "시작";
		}

		// 요일효과 갱신 체크
		var newweekIdx = pcurrent.getDay();
		if (newweekIdx != weekIdx) {
			weekIdx = newweekIdx;
			$('weekdayEffect').innerHTML = WeekdayEffects[weekIdx];
		}

		// 프라이스 표시갱신 (프라이스 갱신주기도 에린의 하루; 2160초)
		var prIdx0 = Math.floor(current / 2160000) % PriceSequence.length;
		var prIdx1 = (prIdx0 + 1) % PriceSequence.length;
		var prIdx2 = (prIdx1 + 1) % PriceSequence.length;
		$('price0').innerHTML = PriceSequence[prIdx0];
		$('price1').innerHTML = PriceSequence[prIdx1];
		$('price2').innerHTML = PriceSequence[prIdx2];
		$('priceView0').href = PriceViewSeq[prIdx0];
		// 다음 이동까지 남은시각 표시
		$('priceWait').innerHTML = this.sec2minsec(2160 - erinnTime);
		window.status += " / 프라이스: " + PriceSequence[prIdx0];

		// 팔라딘/다크나이트 변신알람: 에린시각 05:30에...
		//window.status += erinnTime;
		if (erinnTime == 495 && alarmMode == 'ON')
			$('Player').controls.play();

		// 재실행 예약 - 1초후 재실행
		setTimeout('prototype.tick()', 1000);
	},

	showAlarmHelp : function() {
		alert("이 기능은 팔라딘/다크나이트 변신시간 알람을 위한 기능으로,\n에린시각 05:30에 변신타임이 임박했음을 음성으로 알려드리는\n기능입니다. OFF로 설정시에는 동작하지 않습니다.");
	},

	showErinMsg : function() {
		alert("[ Comming Soon~! ]\n\nMabinogi Times 이관 작업 중 ....... *^^*\n\n[하프]금순이스토커님 제공");
	}
};



window.onload = function() {
	prototype.initDoc();
};


//-->
