/*
spaceweather.js
*/
// タイマー実行間隔(1秒＝1000) 
var SW_INTERVAL=600000;
// タイムアウト時間(1秒＝1000) 
var SW_TIMEOUT=30000;
// 画像タグ 
var SW_IMG_TAG_LOAD  = '<img src="/common/images/spaceweather/status_load.gif" alt="image:loading" width="86" height="48">';
var SW_IMG_TAG_ERROR = '<img src="/common/images/spaceweather/status_error.gif" alt="image:error" width="86" height="48">';
// 情報取得URL 
var SW_URL_STATUS_A = 'http://www2.nict.go.jp/y/y223/spaceweather/status_a.html';
var SW_URL_STATUS_B = 'http://www2.nict.go.jp/y/y223/spaceweather/status_b.html';
// プログラムURL 
var SW_URL_PROGRAM = 'http://www2.nict.go.jp/cgi-bin/getspaceweather.cgi';

function ajax_get(url, div) {
	var divScript = $(div + 'Script');
	if (divScript) {
		while (divScript.firstChild) {
			divScript.removeChild(divScript.firstChild);
		}
	} else {
		divScript = document.createElement('div');
		divScript.id = div + 'Script';
		divScript['onloaderror'] = function () {
			ajax_failure(div);
		}
		document.body.appendChild(divScript);
	}
	if (divScript.loadtimer) {
		clearTimeout(divScript.loadtimer);
		divScript.loadtimer = undefined;
	}
	var script = document.createElement('script');
	script.type = "text/javascript"; 
	script.src = SW_URL_PROGRAM + '?url=' + url + '&callback=ajax_setWeather&divId=' + div + '&time=' + new Date().getTime();
	divScript['loadtimer'] = setTimeout(divScript.onloaderror, SW_TIMEOUT);
	divScript.appendChild(script);
}
function ajax_setWeather(data){
	var html = data['html'];
	var div = data['divId'];
	var divScript = $(div + 'Script');
	if (divScript && divScript.loadtimer) {
		clearTimeout(divScript.loadtimer);
		divScript.loadtimer = undefined;
	}
	if (html && html.substring(0,5)!="error" && $(div)){
		$(div).innerHTML = html;
	} else {
		ajax_failure(div);
	}
}
function ajax_failure(div){
	$(div).innerHTML = SW_IMG_TAG_ERROR;
}
function ajaxTimer(){
	ajax_get(SW_URL_STATUS_A, 'solarImg');
	ajax_get(SW_URL_STATUS_B, 'ionoImg');
}
function timerLoad(){
	ajaxTimer();
	setInterval( ajaxTimer, SW_INTERVAL );
}
Event.observe(window, 'load', timerLoad, true);
