var RadarUtil = {
	// レーダー画像のURL
	urlPrefix : 'http://www.jma.go.jp/jp/radnowc/imgs/radar/214/',
	urlSuffix : '-00.png',

	// レーダーの更新間隔
	interval : 5,

	initialize : function() {
		// 再読込を行った回数
		RadarUtil.counter = 0;

		// 現在時刻
		RadarUtil.currentTime = new Date();

		//	デバッグ用
		//	時間を100分進める
//		RadarUtil.currentTime.setTime(RadarUtil.currentTime.getTime() + 100 * 60 * 1000);

		// 画像読み込みクラス
		RadarUtil.imageLoader = new Image();

		// 画像読み込みに成功した場合
		RadarUtil.imageLoader.onload = function() {
			RadarUtil.writeImage();
		};

		// 画像読み込みに失敗した場合
		RadarUtil.imageLoader.onerror = function() {
			RadarUtil.retry();
		};

		RadarUtil.loadImage();
	},

	loadImage : function() {
		// URLを作る
		var year = this.currentTime.getFullYear();
		var month = this.currentTime.getMonth() + 1;
		if (month < 10) {
			month = "0" + month;
		}

		var date = this.currentTime.getDate();
		if (date < 10) {
			date = "0" + date;
		}

		var hour = this.currentTime.getHours();
		if (hour < 10) {
			hour = "0" + hour;
		}

		var minute = this.currentTime.getMinutes();
		minute = minute - (minute % this.interval);
		if (minute < 10) {
			minute = "0" + minute;
		}

		var imgurl = this.urlPrefix + year + month + date + hour + minute + this.urlSuffix;

		// 画像読み込みクラスに読み込ませる
		this.imageLoader.src = imgurl;
	},

	retry : function() {
		// 再読込回数をカウントアップし
		if (++this.counter > (60 / this.interval)) {
			// 一時間以上さかのぼったら読み込みを中止
			var img = document.getElementById("radar");
			img.parentNode.innerHTML = "レーダー画像を読み込めませんでした";
			return;
		}

		// 現在時刻から「更新間隔」分を引く
		this.currentTime.setTime(
			this.currentTime.getTime() - this.interval * 60 * 1000);

		// 再度読み込みを行う
		this.loadImage();
	},

	// 画像をはめ込む
	writeImage : function() {
		// ラベルを作る
		var year = this.currentTime.getFullYear();
		var month = this.currentTime.getMonth() + 1;
		var date = this.currentTime.getDate();
		var hour = this.currentTime.getHours();
		var minute = this.currentTime.getMinutes();
		minute = minute - (minute % this.interval);

		var labelTxt = year + "年" + month + "月" + date + "日"
					+ hour + "時" + minute + "分現在のレーダー画像";

		var img = document.getElementById('radar');
		img.src = this.imageLoader.src;
		img.alt = labelTxt;

		var label = document.getElementById('radar_label');
		label.src = this.imageLoader.src;
		label.alt = labelTxt;
	}
};

// HTML読み込み後に画像を読み込むように、イベントリスナを追加する
if (window.addEventListener) {
	// 一般的なブラウザの場合
	window.addEventListener("load", RadarUtil.initialize, true);
} else if (window.attachEvent) {
	// IEの場合
	window.attachEvent("onload", RadarUtil.initialize);
}
