﻿var init = false;	// ページのonLoad完了を示すフラグ。
var contents;		// contents内のinnerHTMLを格納する。

// パン屑リストの開始文字列。
var path = '<p><a href="../index.html" title="ホーム">ホーム</a>' + gt + 'あなたの町のハザードマップを見る';

// 地図用の凡例HTML文字列(「あなたの町のハザードマップを見る」の都道府県用)。
var TizuLegendHtmlPref ='<div id="legend">' +
						'<div id="legend_inner">' +
						'<h3 id="h_joukyou"><span class="reader">公表状況</span></h3>' +
						'<div class="fix">' +
						'<table id="legend_1"><tr><th class="opening">&nbsp;</th><td>ハザードマップインターネット公開市町村</td></tr></table>' +
						'<table id="legend_2"><tr><th class="making">&nbsp;</th><td>ハザードマップ公表市町村</td></tr></table>' +
						'</div></div></div>';

// 地図用の凡例HTML文字列(「あなたの町のハザードマップを見る」の都道府県用)。
var TizuLegendHtml ='<div id="legend">' +
					'<div id="legend_inner">' +
					'<h3 id="h_joukyou"><span class="reader">公表状況</span></h3>' +
					'<div class="fix">' +
					'<table id="legend_1"><tr><th class="opening">&nbsp;</th><td>ハザードマップインターネット公表市町村</td></tr></table>' +
					'</div></div></div>';

// 地図表示用の凡例を設定します。
function setTizuLegend(hazardCode, prefMap)
{
	if (prefMap) {
		$('#tizuLegend').html(TizuLegendHtmlPref).show();
	} else {
		$('#tizuLegend').html(TizuLegendHtml).show();
	}
	$('.opening').css('background-color', TizuLegendColor[hazardCode].opening);
	$('.making').css('background-color', TizuLegendColor[hazardCode].making);
}

// 初回処理です。
$(function(){

	contents = $('#contents_inner').html();
	$('#optHazardIn').load('../common/src/opt_hazard.html',function(){
		var code = $_GET['code'] || 1;
		$('#optHazard' + code).get(0).checked = true;
		changeHazard(code);
		init = true;
	});

	$('#txtAddress').keyup(function(){
		searchAddress(false);
	});
	
	$('#txtZipCode').keyup(function(){
		if ($(this).val().length < 3) return;
		searchZipCode(false);
	});

});

// 災害選択がクリックされた時のイベントです。
function optHazard_clicked(target)
{
	changeHazard(target.value);
}

// 地方選択メニューを変更した時のイベントです。
function selArea_changed(target)
{
	$('#selPref').get(0).selected = true;
	goArea($('#selArea').val());
}

// 都道府県選択メニューを変更した時のイベントです。
function selPref_changed(target)
{
	goPref($('#selPref').val());
}

// ハザードマップの公開URLを開きます。
function goHazardMap(url)
{
	if (url == undefined) return;
	if (url.length < 'http'.length) return;
	if (url.substr(0, 4) != 'http') return;
	window.open(url);
}

// 市区町村選択画面(都道府県地図)を表示します。
function goPref(prefCode)
{
	var opt = getSelectedHazard();
	var hazardCode = opt.value;
	var hazardName = opt.name;
	
	if (prefCode == undefined) prefCode = $('#selPref').val();
	if (prefCode == 0) { goArea(); return; }
	
	$('#contents_inner').html(contents);
	var areaCode = PrefAreaCodePair[prefCode];
	$('#selPref').val(prefCode);
	$('#selArea').val(areaCode);
	
	var areaName = AreaNames[areaCode] + '地方';
	var prefName = $('#selPref option:selected').text();
	
	$('#contentsTitle').html(prefName + 'の' + hazardName + '公表状況');
	$('#contentsDate').load('src/' + hazardCode + '/opening.html');
	setTizuLegend(hazardCode, true);
	$('#txtAddress').val(prefName).keyup();
	$('#hazardinfo').empty();
	
	$('#tizu').get(0).src = 'img/pref/' + hazardCode + '/p' + prefCode + '.gif';
	$('#imgmap').load('src/' + hazardCode + '/map_p' + prefCode + '.html', setTooltip);
	
	$('#topicpath').html(path + gt
		+ '<a href="javascript:changeHazard(' + hazardCode + ',true)" title="' + hazardName + '">' + hazardName + '</a>'
		+ gt + '<a href="javascript:goArea(' + areaCode + ')" title="' + areaName + '">' + areaName + '</a>'
		+ gt + prefName);
}

// 都道府県選択画面(地方地図)を表示します。
function goArea(areaCode)
{
	var opt = getSelectedHazard();
	var hazardCode = opt.value;
	var hazardName = opt.name;
	
	if (areaCode == undefined) areaCode = $('#selArea').val();
	if (areaCode == 0) { changeHazard(hazardCode); return; }
	
	$('#contents_inner').html(contents);
	clearSearch();
	
	var areaName = AreaNames[areaCode] + '地方';
	
	$('#contentsTitle').html('都道府県選択&nbsp;(' + areaName + ')');
	$('#contentsDate').load('src/' + hazardCode + '/opening.html');
	$('#contentsInfo').html('<span id="lookmap">※&nbsp;見たい都道府県をクリックして下さい。</span>');
	$('#tizuLegend').hide();
	$('#selArea').val(areaCode);
	setTizuLegend(hazardCode, false);
	
	$('#selPrefIn').load('../common/src/sel_pref_a' + areaCode + '.html');
	
	$('#imgmap').load('src/' + hazardCode + '/map_a' + areaCode + '.html', setTooltip);
	//$('#tizu').get(0).src = 'img/area/a' + areaCode + '.gif';	// 地方で固定。
	$('#tizu').get(0).src = 'img/area/' + hazardCode + '/a' + areaCode + '.gif';
	
	$('#topicpath').html(path + gt
		+ '<a href="javascript:changeHazard(' + hazardCode + ',true)" title="' + hazardName + '">' + hazardName + '</a>'
		+ gt + areaName);
}

// 災害種別を変更します。
function changeHazard(hazardCode, isTopicPath)
{
	loadHmInfoData(hazardCode);
	
	if (!isTopicPath && init) {
		if ($('#selPref').val() != '0') { goPref(); return; }
		if ($('#selArea').val() != '0') { goArea(); return; }
	}
	
	$('#contents_inner').html(contents);
	clearSearch();
	
	var opt = getSelectedHazard();
	var hazardName = opt.name;
	
	$('#contentsTitle').html('地方選択');
	$('#contentsDate').load('src/' + hazardCode + '/opening.html');
	$('#contentsInfo').html('<span id="lookmap">※&nbsp;見たい都道府県をクリックして下さい。</span>');
	$('#tizuLegend').hide();
	$('#topicpath').html(path + gt + hazardName);
	setTizuLegend(hazardCode, false);
	
	$('#selAreaIn').load('../common/src/sel_area.html');
	$('#selPrefIn').load('../common/src/sel_pref_a0.html');
	
	$('#imgmap').load('../common/src/map_japan.html', setTooltip);
	//$('#tizu').get(0).src = 'img/japan/s1.gif';	// 固定。
	$('#tizu').get(0).src = 'img/japan/s' + hazardCode + '.gif';
}

// 住所検索と郵便番号検索と検索結果をクリアします。
function clearSearch()
{
	$('#txtAddress').val('').keyup();
	$('#txtZipCode').val('');
	$('#hazardinfo').empty();
}

// クリッカブルマップにツールチップを設定します。
function setTooltip()
{
	$('#tizu').attr('alt', '');
	$('#imgmap area').tooltip({
		track: true,
		showURL:false,
		delay:0,
		bodyHandler:function(){
			var text = this.tooltipText;
			text = text.replace(/([都道府県区市町村地方])の.+/, "$1");
			return text;
		}
	});
}

