// 表示モードの設定
var radiation_display_mode='normal';
// 言語設定
var lang='japanese';
// JSONデータを取得するURL
var jsonUrl='http://ilk-portal.net/radio/hokkaidoradio.jsonp?jsoncallback=?';

// 初期表示する場所の設定
var place_position=0;
var places = {
	"sapporo" : 0,
	"iwamizawa" : 1,
	"kutchan" : 2,
	"muroran" : 3,
	"urakawa" : 4,
	"hakodate" : 5,
	"esashi" : 6,
	"asahikawa" : 7,
	"rumoi" : 8,
	"wakkanai" : 9,
	"abashiri" : 10,
	"obihiro" : 11,
	"kushiro" : 12,
	"nemuro" : 13
};

// 表示するテキスト変数の設定
var text_title = '北海道の空間放射線量率の測定結果';
var text_summary = 'この表は、北海道の空間放射線量率の測定結果を示す';
var text_datetime = '日時';
var text_place = '場所';
var text_value = '測定値';
var text_waiting ='※表が全て表示されるまで、少々時間がかかります。';
var text_detail ='→詳細はこちらへ';
var text_nodanger='札幌市の過去の平常値の最大値(0.105)以下で全く問題ありません。';
var text_danger='北海道の放射線値が札幌市の過去の平常値の範囲を超えた場所があります。';
var text_hour='時';

// 詳細はこちらURL
var detailUrl='http://ilk.co.jp/hokkaido_is_safe/radio_detail.html';

// 引数を処理する
var configs = new Object;
var params='';
var scripts = document.getElementsByTagName("script");
for (var i = 0; i < scripts.length; i++) {
  var s = scripts[i];
  // englishチェック
  if (s.src && s.src.match(/\/english\/js\/sappororadiation.*/)) {
	lang='english';
  }
  if (s.src && s.src.match(/sappororadiation.*\.js(\?.*)?/)) {
    params = s.src.replace(/.+\?/, '');
    break;
  }
}
params = params.split('&');
for(var i = 0; i < params.length; i++) {
  var tmp = params[i].split('=');
  configs[tmp[0]] = unescape(tmp[1]);
}

// 引数で設定された場所を取得する
if ( places[configs['place']] )
{
	place_position=places[configs['place']];
}

// 英語の場合
if ( lang == 'english' )
{
	text_title = 'Monitoring results of the radiation dose rate in the air in Hokkaido';
	text_summary = 'This table shows the monitoring results of the radiation dose rate in the air in Hokkaido.';
	text_datetime = 'Date&amp;Time';
	text_place = 'Place';
	text_value = 'Measured Value';
	text_waiting ='Jus wait for a moment.';
	text_detail ='Go into detail';
	text_nodanger='Within past normal maximum value in Sapporo City (0.105) . No danger at all.';
	text_danger='Over past normal maximum value in Sapporo City (0.105) somewhere.';
	text_hour='';
	
	jsonUrl='http://ilk-portal.net/radio/english/hokkaidoradio.jsonp?jsoncallback=?';
	detailUrl='http://ilk.co.jp/hokkaido_is_safe/english/radio_sapporo.html';
}

jQuery(function(){
	var borderWidth = 330;
	var clientWidth = jQuery("div#sapporo_radiation").width();
	var html_code_select='';
	var englishBorderWidth = borderWidth;
	
	if ( lang == "english" )
	{
		englishBorderWidth = 390;
	}
	
	var html_code = '<p style="text-align:center;font-weight:normal;line-height:150%;font-size:90%;margin:0 0 0 0; padding:5px 0;width:100%; color:#000;">'
					+  text_title + '</p>\n';
										
	var html_code_style = '<style type="text/css">\n'
					+ '<!--\n'
					+ '#sapporo_radiation {'
					+  'margin:0 auto; padding:5px; text-align:center; background-color:#fff;font-size:90%; color:#000;'
					+ '}\n'
					+ '#radiation_place_select {'
					+  'margin:5px 0 6px;'
					+ '}\n'
					+ '#radiation_hokkaido_table th {'
					+ 'border: solid 1px #aaa; padding:5px; background-color:#6699FF; color:#fff; *font-size: small; *font: x-small; word-break: break-all;'
					+ '}\n'
					+ '#radiation_hokkaido_table th span.msvh {'
					+ 'font-size:70%;'
					+ '}\n'
					+ '#radiation_hokkaido_table td {'
					+ 'border: solid 1px #aaa; padding:5px; background-color:#fff; *font-size: small; *font: x-small;'
					+ '}\n'
					+ 'select {font-size: 100%;}\n'
					+ '-->\n'
					+ '</style>\n';
					
	var html_code_table = '<table border="0" summary="' + text_summary + '" style="border-collapse: collapse; border: solid 1px #aaa; margin:0 auto;">'
					+ '<tbody id="radiation_hokkaido_table">';	
	
	if ( clientWidth < borderWidth )
	{
		radiation_display_mode="small";

		// widthが狭い時はセレクトメニューをテーブルの外に出す
		html_code_select='<p id="radiation_place_select"></p>';
		
		html_code_table +='<tr>'
					    + '<th align="center">' + text_datetime + '</th>'  
						+ '<th align="center">' 
						+ text_value 
						+ '<br /><span class="msvh">(&micro;Sv/h)</span></th>' 
						+ '</tr>\n' ;
	}
	else
	{
		if ( lang=="english" && clientWidth <= englishBorderWidth )
		{
			radiation_display_mode="middle";
		}
		
		html_code_table +='<tr>'
						+ '<th>' + text_place + '</th>' 
					    + '<th align="center">' + text_datetime + '</th>'  
						+ '<th align="center">' + text_value + '<span class="msvh">(&micro;Sv/h)</span></th>' 
						+ '</tr>\n' ;
	}
	html_code_table += '</tbody>\n'
			+ '</table>\n';	

	html_code += html_code_select 
			+ html_code_style
			+ html_code_table
			+ '<p id="state_message" style="font-weight:normal; line-height:150%; font-size:90%; margin:0 0 0 0; padding:5px; color:#000;">' + text_waiting
			+ '<br />(<a href="' + detailUrl + '" target="_blank" style="color:#000;">' + text_detail + '</a>)</p>\n';
	//html_code += clientWidth;
	jQuery("div#sapporo_radiation").prepend(''+ html_code);
});


// JSONデータの取得
jQuery(function(){
	jQuery.ajaxSetup({ scriptCharset: "utf-8" , contentType: "application/json; charset=utf-8"});
	jQuery.getJSON(jsonUrl);
});

// 初期設定

var radio_data = new Array();

function hokkaidoradioCallback(data) {
	var place;
	var date;
	var hour;
	var radio;
	var radiation_arr;
	var url= '' + document.URL;
	var ilk_radio = 'ilk.co.jp/hokkaido_is_safe/radio_detail.html' ;
	var html_code='';
	var select_menu='';
	var months = {
		"January" : 1,
		"February" : 2,
		"March" : 3,
		"April" : 4,
		"May" : 5,
		"June" : 6,
		"July" : 7,
		"August" : 8,
		"September" : 9,
		"October" : 10,
		"November" : 11,
		"December" : 12
	};
	
	if ( url.match(ilk_radio) == null ){
			html_code += '<br />(<a href="' + detailUrl + '" target="_blank" style="color:#000;">' + text_detail + '</a>)</p>\n';
			//html_code += radiation_display_mode ;
			//html_code += clientWidth + " borderWidth:"+ borderWidth ;
	}
	
	// オプションメニューを作成し、データを格納する。
	var cnt=0;
	var selected;
	var unstable_lockd=false;
	jQuery.each(data,function(){
		place = this.place;
		// 一番最初のデータをselectedに設定する
		if( cnt == place_position )
		{
			select_menu += '<option selected="selected">' + place + '</option>\n';
			selected =place;
		}
		else
		{
			select_menu += '<option>' + place + '</option>\n';
		}
		
		if ( !unstable_lockd && this.state == "stable" ){
			jQuery("p#state_message").text(text_nodanger)
								.append('' + html_code )
								.css("font-size", "80%");
		}else if ( this.state == "unstable" ){
			jQuery("p#state_message").text(text_danger)
								.append('' + html_code )
								.css("font-size", "80%");
			unstable_lockd = true;
		}
		
		// 各地のデータ処理
		radiation_arr = this.data;
		if ( place == this.place )
		{
			for (var i = 0, len = radiation_arr.length; i < len; i ++)
			 {
			 	if ( !radiation_isset(radiation_arr[i].hour) )
				{
					break;
				}
				
			 	date = radiation_arr[i].date;
				hour = radiation_arr[i].hour ;
				
				if ( lang == "japanese" )
				{
					hour = (hour.split(':'))[0];
				}
				
				if ( radiation_display_mode == "small" || radiation_display_mode == "middle")
				{
					if ( lang == "english" )
					{
						var date_tmp = date.split(' ');
						var month = months[date_tmp[0]];
						var day = date_tmp[1];
						date = month + '/' + day ;
						date = date + ' ' + hour + text_hour;
					}
					else
					{
						date = date + hour + text_hour;
					}
				}
				else
				{
					date = date + ' ' + hour + text_hour;
				}
				radio = radiation_arr[i].radio;
			 }
			 
			//radio_data[place] = {d:date , h:hour, r:radio};
			radio_data[place] = {d:date , r:radio};
		 }
		 cnt++;
	});
	
	// モードにより、セレクトメニューの配置位置を変更する。
	if ( radiation_display_mode == "small" )
	{
		jQuery('p#radiation_place_select').html('<select id="hokkaido_radio_select">' + select_menu + '</select>');
			
		jQuery('#radiation_hokkaido_table').append(''
			+ '<tr>'
			+ '<td align="center" id="date">'
			+ radio_data[selected]['d']
			+ '</td><td align="center" id="radio">'
			+ radio_data[selected]['r']
			+ '</td>'
		    + '</tr>');
	}
	else
	{
		jQuery('#radiation_hokkaido_table').append(''
				+ '<tr>'
				+ '<td id="place"><select id="hokkaido_radio_select">'
				+ select_menu
				+ '</select></td><td align="center" id="date">'
				+ radio_data[selected]['d']
				+ '</td><td align="center" id="radio">'
				+ radio_data[selected]['r']
				+ '</td>'
		    	+ '</tr>');
	}
}

// selectメニュー操作
jQuery(document).ready(function(){
    jQuery("select#hokkaido_radio_select").live("change",function(){
	      var p = "";
		  var d = "";
		  //var h ="";
		  var r ="";
          jQuery("select#hokkaido_radio_select option:selected").each(function () {
				p = jQuery(this).text();
				d = radio_data[p]['d'];
				//h = radio_data[p]['h'];
				r = radio_data[p]['r'];
                jQuery("td#date").text(d);
				//jQuery("td#hour").text(h);
				jQuery("td#radio").text(r);
              });
        })
});

function radiation_isset( data ){
    return ( typeof( data ) != 'undefined' );
}

