﻿/*
// ===== アイコン指示 =====
  var icon = Array();
  icon[0] = new GIcon();
  icon[0].image = "./img/g20.png";
  icon[0].iconSize = new GSize(20,20);
  icon[0].iconAnchor = new GLatLng(10,10);
  icon[0].infoWindowAnchor = new GLatLng(10,10);
  icon[1] = new GIcon();
  icon[1].image = "./img/g20.gif";
  icon[1].iconSize = new GSize(20,20);
  icon[1].iconAnchor = new GLatLng(10,10);
  icon[1].infoWindowAnchor = new GLatLng(10,10);
  icon[6] = new GIcon();
  icon[6].image = "./img/z20.png";
  icon[6].iconSize = new GSize(20,20);
  icon[6].iconAnchor = new GLatLng(10,10);
  icon[6].infoWindowAnchor = new GLatLng(10,10);
// ===== 以上アイコン指示 =====
*/

//  初期値設定
	FX = 137.977;
	FY = 36.23;
	FZ = 10;

if(GBrowserIsCompatible())
{ 
  var list_html = "";
  var gmarkers = [];
  var htmls = [];
  var ii = 0;
  var map = new GMap2(document.getElementById("googlemap"));
  map.addControl(new GLargeMapControl());
  map.addControl(new GMapTypeControl());
  map.setCenter(new GLatLng(FY,FX),FZ);
	map.addControl(new GScaleControl());
	map.addControl(new GOverviewMapControl(new GSize(140,100)));
  
  // マーカーとリストの作成
  function createMarker(point,name,furi,add,text,tel,url,area,areanum,n,headN,date,text2,add2,tel2,flower,flowernum,place,cate,add3,text3)
	  {
	  var marker = new GMarker(point); // ★独自アイコンを使用するにはpointの後に,icon[1]などを指定
		// リストが1～3の場合
			if(headN=="li1" || headN=="li2" || headN=="li3"){
			var clickmark = '<table id="w-table"><tr><th></th><td></td><td id="w-table_furi">'+furi+'</td></tr><tr><th>施設名</th><td>：</td><td>' + name + '</td></tr><tr><th>住所</th><td>：</td><td>'+add+'</td></tr><tr><th>TEL</th><td>：</td><td>'+tel+'</td></tr><tr><th>URL</th><td>：</td><td><a href="'+url+'" target="_blank">'+url+'</a></td></tr><tr><td colspan="3"><input type="button" id="printbutton" value="プリント用画面へ" onclick="clickPrint('+ii+');changeCSS(\'csss\',\'./css/print.css\');" /></td></tr></table>';
			}
		// リストが4の場合
			if(headN=="li4"){
			var clickmark = '<table id="w-table"><tr><th></th><td></td><td id="w-table_furi">'+furi+'</td></tr><tr><th>イベント名</th><td>：</td><td>' + name + '</td></tr><tr><th>月日</th><td>：</td><td>'+date+'</td></tr><tr><th>場所</th><td>：</td><td>'+add2+'</td></tr><tr><th>問合せ先</th><td>：</td><td>'+tel2+'</td></tr><tr><th>URL</th><td>：</td><td><a href="'+url+'" target="_blank">'+url+'</a></td></tr><tr><td colspan="3"><input type="button" id="printbutton" value="プリント用画面へ" onclick="clickPrint('+ii+');changeCSS(\'csss\',\'./css/print.css\');" /></td></tr></table>';
			}
		// リストが5の場合
			if(headN=="li5"){
			var clickmark = '<table id="w-table"><tr><th></th><td></td><td id="w-table_furi">'+furi+'</td></tr><tr><th>スポット名</th><td>：</td><td>' + place + '</td></tr><tr><th>種類</th><td>：</td><td>'+cate+'</td></tr><tr><th>場所</th><td>：</td><td>'+add3+'</td></tr><tr><th>URL</th><td>：</td><td><a href="'+url+'" target="_blank">'+url+'</a></td></tr><tr><td colspan="3"><input type="button" id="printbutton" value="プリント用画面へ" onclick="clickPrint('+ii+');changeCSS(\'csss\',\'./css/print.css\');" /></td></tr></table>';
			}
	  GEvent.addListener(marker,"click",function(){marker.openInfoWindowHtml(clickmark);});
	  gmarkers[ii] = marker;
	  htmls[ii] = clickmark;
		var URLicon = "";
		if(url){
			URLicon = '<a class="noborder" href="' + url + '" target="_blank"><img src="./img/map/icom_url.gif" alt="URL" width="40" height="12" /></a>';
		}
		// リストが1～3の場合
			if(headN=="li1" || headN=="li2" || headN=="li3"){
			list_html += '<tr><td class="list_shisetsu_'+area+'" id="'+areanum+'"><a class="hborder" onclick="execEffect(\'maptarget\');myclick(' + ii + ')" href="#contents_box1">' + name + '</a>' + URLicon + '</td><td class="list_add">'+add+'</td><td class="list_point">'+text+'</td><td class="list_tel">'+tel+'</td></tr>';	
			}
		// リストが4の場合
			if(headN=="li4"){
			list_html += '<tr><td class="list_event_'+area+'" id="'+areanum+'"><a class="hborder" onclick="execEffect(\'maptarget\');myclick(' + ii + ')" href="#contents_box1">' + name + '</a>' + URLicon + '</td><td class="list_date">'+date+'</td><td class="list_point">'+text2+'</td><td class="list_add2">'+add2+'</td></tr>';	
			}
		// リストが5の場合
			if(headN=="li5"){
			list_html += '<tr><td class="list_flower_'+flower+'" id="'+flowernum+'"><a class="hborder" onclick="execEffect(\'maptarget\');myclick(' + ii + ')" href="#contents_box1">' + place + '</a>' + URLicon + '</td><td class="list_syurui">'+cate+'</td><td class="list_add3">'+add3+'</td><td class="list_point">'+text3+'</td></tr>';	
			}
	  ii++;
	  return marker;
	  }
  
// ===== XML呼出 =====
  function ReadData(url,headN)
  {
	// リストファイルを読み込む
  var request = GXmlHttp.create();
  request.open("GET", url, true);
  request.onreadystatechange = function()
      {
		  if(request.readyState == 4){
		  var xmlDoc = GXml.parse(request.responseText);
		  var markers = xmlDoc.getElementsByTagName("marker");
		  map.getInfoWindow().hide();
		  map.clearOverlays();
		  gmarkers = [];
		  htmls = [];
		  ii = 0;
		  list_html="";
			list_head="";
		  // リストによりテーブルthを変える 
			if(headN=="li1" || headN=="li2" || headN=="li3"){var list_head = '<tr><th>施設名</th><th>住所</th><th>ポイント</th><th>問合せ先</th></tr>';}
			if( headN=="li4" ){var list_head = '<tr><th>イベント名</th><th>月日</th><th>イベント概要／問合せ先</th><th>場所</th></tr>';}
			if( headN=="li5" ){var list_head = '<tr><th>スポット名</th><th>種類</th><th>住所</th><th>ポイント</th></tr>';}
		  for(var i = 0; i < markers.length; i++)
			  {
			  var MY = parseFloat(markers[i].getAttribute("my"));
			  var MX = parseFloat(markers[i].getAttribute("mx"));
			  var point = new GLatLng(MY,MX);// マーカー位置
			  var shisetsu = markers[i].getAttribute("shisetsu");// 施設名
			  var kana = markers[i].getAttribute("furigana");// フリガナ
				var address = markers[i].getAttribute("address");// 住所
			  var text = markers[i].getAttribute("text");// テキスト文
				var tel = markers[i].getAttribute("tel");// 問合せ先
				var url = unescape(markers[i].getAttribute("url"));// URL（※デコード）
				var area = markers[i].getAttribute("area");// m,a,c,nどのエリアか
				var areanum = markers[i].getAttribute("areanum");// リストの番号
			  var n = markers[i].getAttribute("n"); // ★nがアイコン指示
				
				var date = markers[i].getAttribute("date");// イベント：月日
				var text2 = markers[i].getAttribute("text2");// イベント：テキスト文
				var add2 = markers[i].getAttribute("add2");// イベント：住所
				var tel2 = markers[i].getAttribute("tel2");// 問合せ先
				
				var flower = markers[i].getAttribute("flower");// お花：月日
				var flowernum = markers[i].getAttribute("flowernum");// リストの番号
				var place = markers[i].getAttribute("place");// お花：スポット
				var cate = markers[i].getAttribute("cate");// お花：種類
				var add3 = markers[i].getAttribute("add3");// お花：住所
				var text3 = markers[i].getAttribute("text3");// お花：テキスト文
				
			  var marker = createMarker(point,shisetsu,kana,address,text,tel,url,area,areanum,n,headN,date,text2,add2,tel2,flower,flowernum,place,cate,add3,text3); // ★nがアイコン指示
				map.addOverlay(marker); // 表示範囲内のマーカーだけ表示
			  }
			// リストを表示 
			document.getElementById("list_box").innerHTML = '<table id="list_table" cellpadding="0" cellspacing="1" summary="リストを表示しています">' + list_head + list_html + '</table>';
		  }
	  }
  request.send(null);
  }

// ===== XML呼出 =====
NowHash = location.hash; // URIのhashを読み込む
NH = NowHash.split("#"); // #～、&～はサイドなどから直接イベント等のタブを開いた状態で広域マップへアクセスするため
if(NH[1]){ // 以下、#以下がある場合にのみ実行
	UD = NH[1].split("&");
	switch (UD[0]){
		case "onsen":
		RollMapList('m_onsen','13');ReadData('./listdata/list-onsen.xml','li1');RollMapArea('area_button_m','23');ListTB('LTB1');
		break;
		case "shiseki":
		RollMapList('m_shiseki','15');ReadData('./listdata/list-shiseki.xml','li2');RollMapArea('area_button_m','23');ListTB('LTB2');
		break;
		case "sports":
		RollMapList('m_sports','17');ReadData('./listdata/list-sports.xml','li3');RollMapArea('area_button_m','23');ListTB('LTB3');
		break;
		case "events":
		RollMapList('m_event','19');ReadData('./listdata/list-event.xml','li4');RollMapArea('area_button_m','23');ListTB('LTB4');
		break;
		case "flower":
		RollMapList('m_flower','21');ReadData('./listdata/list-flower.xml','li5');RollMapArea('area_button_s','31');ListTB('LTB5');
		break;
		default:
		ReadData('./listdata/list-onsen.xml','li1');
	}
}
else{ReadData('./listdata/list-onsen.xml','li1');}
// ===== 以上XML呼出 =====

// ===== マーカーがクリックされたら====
  function myclick(i)
  {gmarkers[i].openInfoWindowHtml(htmls[i]);}
	
// ===== 印刷ボタンがクリックされたら====
	function clickPrint(i)
	{
		map.closeInfoWindow();
		map.clearOverlays();
		var marker2 = gmarkers[i];
		map.addOverlay(marker2); // 印刷したいマーカーだけ表示
		document.getElementById("printmap").innerHTML = htmls[i] + '<input id="noprint" type="button" onclick="print()" value="プリント"><input id="noprint" type="button" onclick="changeCSS(\'csss\',\'./css/main.css\');document.getElementById(\'printmap\').innerHTML=\'\';" value="戻る">';
		// ここまで情報ウィンドウの内容をcreatedivに書き出す。
	}
	
	// 印刷用スタイルシートに変更
	function changeCSS(id,url){
		if(!document.getElementById) return false;
		var element = document.getElementById(id);
		if(!element || !element.cloneNode) return false;
		var new_node = element.cloneNode(true);
		new_node.href = url;
		element.parentNode.replaceChild(new_node,element);
		return true;
	}	
}
