var map;
var cid;
var catdir;
var gmaplist = "http://www.bandaisan.tv/lib/getlist2.php"; // 地図データ
var bapiid;
var List = {};

function onLoad(cid, catdir) {
	bapiid = arguments[2];
	cid = parseInt(cid);
	catdir = catdir;
	gmaplist = gmaplist + "?cid=" + cid;
	if (bapiid != 0) {gmaplist = gmaplist + "&bapiid=" + bapiid;}
	map = new GMap2(document.getElementById("map"));
	map.addControl(new GOverviewMapControl(new GSize(120,120))); 
	map.addControl(new GSmallMapControl()); 
	map.addControl(new GMapTypeControl(true));
	map.addControl(new GScaleControl()); // 距離スケール
	//マウスホイールのイベントを追加
	map.enableContinuousZoom();
	map.enableScrollWheelZoom();
	point_x = 140.07362365722656; // デフォルト経度
	point_y = 37.60716014465307; // デフォルト緯度
	map.setCenter(new GLatLng(point_y, point_x), 11);
	function addMarker(lon, lat, msg) {
		var point = new GLatLng(lon, lat);
		var marker = new GMarker(point); // マーカー表示
		GEvent.addListener(marker, "click", function() {
			marker.openInfoWindowHtml(msg);
		});
		map.addOverlay(marker);
		return marker;
	}
	// API用のマーカー作成処理
	function addMarker4API (blat, blon, bmsg) {
		var icon = new GIcon();
		icon.image  = "http://maps.google.co.jp/mapfiles/ms/icons/yellow-dot.png";
		icon.shadow = "http://maps.google.co.jp/mapfiles/ms/icons/msmarker.shadow.png";
		icon.iconSize   = new GSize(32, 32);
		icon.shadowSize = new GSize(59, 32);
		icon.iconAnchor = new GPoint(16, 32);
		icon.infoWindowAnchor = new GPoint(14, 2);
		var point = new GLatLng(blat, blon);
		// 初めから情報を表示したい場合
		map.openInfoWindowHtml(point, bmsg);
		var marker_b = new GMarker(point, icon)
		GEvent.addListener(marker_b, "click", function() {
			marker_b.openInfoWindowHtml(bmsg);
		});
		map.addOverlay(marker_b);
		return marker_b;
	}
	var request = GXmlHttp.create();
	request.open("GET", gmaplist, true);
	request.onreadystatechange = function() { 
		if (request.readyState == 4) {
			var res = GXml.parse(request.responseText);
			var markers = res.documentElement.getElementsByTagName("marker");
			var ml = markers.length;
			// API
			if (bapiid != 0) {
				var bapi = res.documentElement.getElementsByTagName("bapi");
				var bmt_id = parseInt(bapi[0].getAttribute("bmtid"));
				if (bmt_id != 0 && bapiid == bmt_id) {
					var bmttitle = bapi[0].getAttribute("bmttitle");
					var bmturl = bapi[0].getAttribute("bmturl");
					var blat = parseFloat(bapi[0].getAttribute("blat"));
					var blon = parseFloat(bapi[0].getAttribute("blng"));
					if (bmturl != "0") {
						var bmsg = '<div style="white-space: nowrap"><p class="ajgmp"><a href="'+bmturl+'" target="_top">'+bmttitle+'</a></p></div>';
					} else {
						var bmsg = '<div style="white-space: nowrap"><p class="ajgmp">'+bmttitle+'</p></div>';
					}
					var bmarker = addMarker4API(blon, blat, bmsg); // 地図へ表示
					List[0] = bmarker;
				}
			}
			var ii = 1;
			for (var i=0; i<ml; i++) {
				var lat = parseFloat(markers[i].getAttribute("lat"));
				var lon = parseFloat(markers[i].getAttribute("lng"));
				var mttitle = markers[i].getAttribute("mttitle");
				var mturl = markers[i].getAttribute("mturl");
				if (mturl != "0") {
					if (bapiid != 0) {
						var msg = '<div style="white-space: nowrap"><p class="ajgmp"><a href="http://www.bandaisan.tv/'+catdir+'/'+mturl+'" target="_top">'+mttitle+'</a></p><p class="root">経路を表示:<a href="http://www.google.co.jp/maps?saddr='+lon+'%2C'+lat+'&daddr='+blon+'%2C'+blat+'&ie=UTF8&hl=ja&ct=clnk&cd=1&f=d&dirflg=d" target="_blank">出発地点</a> － <a href="http://www.google.co.jp/maps?saddr='+blon+'%2C'+blat+'&daddr='+lon+'%2C'+lat+'&ie=UTF8&hl=ja&ct=clnk&cd=1&f=d&dirflg=d" target="_blank">到着地点</a></p></div>';
					} else {
						var msg = '<div style="white-space: nowrap"><p class="ajgmp"><a href="http://www.bandaisan.tv/'+catdir+'/'+mturl+'" target="_top">'+mttitle+'</a></p></div>';
					}
				} else {
					if (bapiid != 0) {
						var msg = '<div style="white-space: nowrap"><p class="ajgmp">'+mttitle+'</p><p class="root">経路を表示:<a href="http://www.google.co.jp/maps?saddr='+lon+'%2C'+lat+'&daddr='+blon+'%2C'+blat+'&ie=UTF8&hl=ja&ct=clnk&cd=1&f=d&dirflg=d" target="_blank">出発地点</a> － <a href="http://www.google.co.jp/maps?saddr='+blon+'%2C'+blat+'&daddr='+lon+'%2C'+lat+'&ie=UTF8&hl=ja&ct=clnk&cd=1&f=d&dirflg=d" target="_blank">到着地点</a></p></div>';
					} else {
						var msg = '<div style="white-space: nowrap"><p class="ajgmp">'+mttitle+'</p></div>';
					}
				}
				var marker = addMarker(lon, lat, msg); // 地図へ表示
				if (bapiid != 0) {
					List[ii] = marker;
				} else {
					List[i] = marker;
				}
				ii++;
			}
			initZoom(ii); // センター・ズーム変更
		}
	}
	request.send(''); //この引数をnullにするとOpera8.02/8.5/9bが動作しなくなります
}
function initZoom (ii) {
	var gb;
	var first = 1;
	for (var index in List) {
		var marker = List[index];
		if (first){
			gb = new GLatLngBounds(marker.getPoint(), marker.getPoint());
			first = 0;
		} else {
			var point = marker.getPoint();
			gb.extend(point);
		}
	}
	if (ii == 2) {
		map.setCenter(gb.getCenter(), 13);
	} else {
		map.setCenter(gb.getCenter(), map.getBoundsZoomLevel(gb));
	}
}
