var map = null;
var geocoder = null;
var libraries = null;

function loadMap() {
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map"));
		map.addControl(new GLargeMapControl());
		map.addControl(new GOverviewMapControl());
		map.addControl(new GMapTypeControl());
		map.setCenter(new GLatLng(39.31, 137.31),5);
		map.enableDoubleClickZoom();

		icon_un = iconset('http://myrmecoleon.sytes.net/img/un_pin.png');
		icon_alis = iconset('http://myrmecoleon.sytes.net/img/alis_pin.png');
	}
}
function iconset(image){
		icon = new GIcon();
		icon.image = image;
		icon.shadow = 'http://myrmecoleon.sytes.net/img/shadow.png';
		icon.iconAnchor = new GPoint( 10, 34 );	// 画像の「基準点」
		icon.infoWindowAnchor = new GPoint( 5, 1 );	// 情報ウィンドウの基準点
		return icon;
}
function loadMarkers(id,type) {

//ISBN等なし
	if(!id)return false;

//マーカー初期化
	GEvent.clearInstanceListeners(map);
	map.clearOverlays();

//AJAX開始	
	switch(type){
		case "nc":
			var requrl = "liblist.php";
			break;
		case "alis" :
			var icon = icon_alis;
			var requrl = "liblist.php";
			break;
		case "un" :
			var icon = icon_un;
			var requrl = "liblist.php";
			break;
		case "nc_fa":
			var requrl = "fa.php";
			break;
		default:
			return false;
	}
	var request = GXmlHttp.create();
	switch(type){
		case "nc":
			if(id.match(/^[AB][AN]\d+[\dX]$/)){
				request.open("GET",requrl+"?ncid="+id, true);
			}else if(id.match(/^[\d\-]{9,16}[\dX]$/)){
				request.open("GET",requrl+"?isbn="+id.replace(/[\-]/,''), true);
			}else{
				return false;
			}
			break;
		case "nc_fa":
			if(id.match(/^FA\d+[\dX]$/)){
				request.open("GET",requrl+"?fa="+id, true);
			}else{
				return false;
			}
			break;
		default:
			if(id.match(/^[\d\-]{9,16}[\dX]$/)){
				request.open("GET",requrl+"?type="+type+"&isbn="+id.replace(/[\-]/,''), true);
			}else{
				return false;
			}
	}
	request.onreadystatechange = function(){
		if(request.readyState == 4){
			var manager = new GMarkerManager(map);
			var libmap = request.responseXML;

			var item = libmap.documentElement.getElementsByTagName("item");			
			if(type == 'un'){
				var link = libmap.documentElement.getElementsByTagName("searchlink")[0].firstChild.nodeValue;
			}
			var i = 0;
			var j = 0;
			markers = Array();
			while(item[j]){
				var libraries = item[j].getElementsByTagName("library");
				if(type != 'un'){
					var link = item[j].getElementsByTagName("link")[0].firstChild.nodeValue;
				}
				var k = 0;
				while(lib = libraries[k]){
					markers[i] = marker_set(lib,link,icon);
					i++;
					k++;
				}
				j++;
			}
			manager.addMarkers(markers,0);
			manager.refresh();
		}
	}
	request.send(null);
}
function marker_set(lib,link,icon){
	var x = Number(lib.getElementsByTagName("lat")[0].firstChild.nodeValue);
	var y = Number(lib.getElementsByTagName("lng")[0].firstChild.nodeValue);
	var point = new GLatLng(x,y);
	var marker = new GMarker(point,icon);
	
	var name  = lib.getElementsByTagName("name")[0].firstChild.nodeValue;
	var liblink = lib.getElementsByTagName("liblink")[0].firstChild.nodeValue;
	var text = "<p style=\"padding:0.5em;\">"+name+"</p><hr />"
		+"<div><a href=\""+liblink+"\" target=\"_blank\">図書館の詳細</a></div>"
		+"<div><a href=\""+link+"\" target=\"_blank\">書誌へのリンク</a></div>";

	GEvent.addListener(marker, 'click', function() {
	     	marker.openInfoWindowHtml(text);
     	});
	return marker;
}
