// 47netの地図用

// ====================
// 初期設定
// ====================
var map;
var userlay;
var userData = new Array();
var xfile = "medical.xml";
var lat_mst = '37.8608703';
var lng_mst = '139.0239006';

// ====================
// 地図読み込み
// ====================
function load(tp) {
	// データを全て読み込む
	readXml(tp);
}

function readMap(){
	map = new ZdcMap(document.getElementById("47Map"));
	map.setMapType('4');
	map.reflashMap();
	map.setMapLocation(new ZdcPoint(lng_mst,lat_mst),9);
	map.addMapScaleBar(new ZdcScaleBar());
	map.addMapControl(new ZdcControl());
	map.saveMapLocation();
	map.setWheelOff();
	map.setZdcMsgHtmlOption(true,true,"center","small","tag");
	map.setZdcMsgHtmlBorderType(2);

	createTab();
}

// ====================
// ポイントのデータを読み込む
//  ====================
function readXml(tp){
	var request = ZdcXmlHttp.create();
	var nowDate = new Date();
	request.open("GET", xfile+"?"+nowDate.getTime(), true);
	request.onreadystatechange = function() {
		if	(
			 (request.readyState == 4) &&
			 (request.status == 200)
			)
		{
			var xmlDoc = request.responseXML;
			var medicaldataes = xmlDoc.documentElement.getElementsByTagName("medicaldata");
			var loop = medicaldataes.length;
			for (var i = 0; i < loop; i++) {
				userData[i] = {
					lat: parseFloat(medicaldataes[i].getAttribute("latitude")),
					lng: parseFloat(medicaldataes[i].getAttribute("longitude")),
					no: medicaldataes[i].getElementsByTagName("no")[0].childNodes[0].nodeValue,
					name: medicaldataes[i].getElementsByTagName("name")[0].childNodes[0].nodeValue,
					address: medicaldataes[i].getElementsByTagName("address")[0].childNodes[0].nodeValue,
					tel: medicaldataes[i].getElementsByTagName("tel")[0].childNodes[0].nodeValue,
					time: medicaldataes[i].getElementsByTagName("time")[0].childNodes[0].nodeValue,
					non: medicaldataes[i].getElementsByTagName("nonconsultation")[0].childNodes[0].nodeValue,
					prac: medicaldataes[i].getElementsByTagName("practice")[0].childNodes[0].nodeValue,
					img: medicaldataes[i].getElementsByTagName("img")[0].childNodes[0].nodeValue,
					link: medicaldataes[i].getElementsByTagName("link")[0].childNodes[0].nodeValue
				};
			} 
			readMap();
			makeData();
		}
	}
	request.send(null);
}

function makeData(){
//	if (!map.getUserMsgOpenStatus()) {
//		map.clearUserLayer();
//		allClearMarkerListeners();
//		if(jFlg == false){ n = 0; }
//	}

	// マーカーの作成
	editData();
}

//  ====================
// 表示するポインタ抽出
//  ====================
function editData(){
	userlay = new ZdcUserLayer();
	userlay.setLayerScale(1,18);
	userlay.setLayerType('manual');
	var loop = userData.length;
	for (var i = 0; i < loop; i++) {
		createMarker(i);
	}
	map.addUserLayer(userlay); 
}

// ====================
// 各ポインタを作成する
// ====================
function createMarker(i) {
	var lnglat = new ZdcPoint(userData[i].lng,userData[i].lat);
	icon = new ZdcIcon();
	var marker = new ZdcMarker(lnglat,icon);

	var html = createHtml(i);

	ZdcEvent.addListener(marker, "mouseclickmarker", function() {
		//if(map.msgopenstatus) map.closeMsgWindow();
		map.openZdcMsgHtml(html,lnglat,userData[i].name,350,null,new ZdcPixel(0,-9),2);
	});

	userlay.addMarker(marker);
}

function createHtml(i){
	var html = '<div id="balloon">';
	html += "<div id=\"name\"><a href=\"javascript:void(0);\" onclick=\"TB_show(null,'" + userData[i].img + "',false)\">" + userData[i].name + "</a></div>";
	html += '<div id="address">[住所]' + userData[i].address + '</div>';
	html += '<div id="address">[電話番号]' + userData[i].tel + '</div>';
	html += '<div id="time">[診察時間]' + userData[i].time + '</div>';
	html += '<div id="non">[休診日]' + userData[i].non + '</div>';
	html += '<div id="prac">[診療科目]' + userData[i].prac + '</div>';
	if(userData[i].link != "none"){
		html += '<div id="hp">[ホームページ]<a href="' + userData[i].link + '" target="_blank">' + userData[i].link + '</a></div>';
	}
	html += '</div>';

	return html;
}

function createTab(){
	var html = "";
	var loop = userData.length;
	for (var i = 0; i < loop; i++) {
		html += '<div class="tabitem"><a href="javascript: void(0);" onclick="pointDisp(' + userData[i].no + ')">' + userData[i].name + "</a></div>";
	} 
	obj = document.getElementById("tab");
	obj.innerHTML = html;
}

function pointDisp(nn){
	var html = createHtml(nn);
	lnglat = new ZdcPoint(userData[nn].lng,userData[nn].lat);
	map.openZdcMsgHtml(html,lnglat,userData[nn].name,350,null,new ZdcPixel(0,-9),2);

	return false;
}
