var map;
var manager;
var marker_count;

function initialize(){
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("map_canvas"));
		GEvent.addListener(map, "load", onLoad);
		map.addControl(new GLargeMapControl());					// マップコントロール
		map.addControl(new GMapTypeControl());					// マップタイプの選択
		//初期位置 塗装会館
		var zoom = 15;
		if(ilat == "" || ilng == ""){
			ilat = 36.558701;
			ilng = 139.898283;
			zoom = 5;
		}
		map.setCenter(new GLatLng(ilat,ilng), zoom);		// マップ中央の設定
	}
}

function onLoad(){
	//マーカーの追加
	addMarkersXml("data.php?g=1");
}

function onCenterMoved(){
	str = adr + "付近の " + marker_count + " 件を表示";
	document.getElementById('map_result').innerHTML = str;

}

function addMarkersXml(path){
	var markers = [];
	
	manager = new GMarkerManager(map);
	
	GDownloadUrl(path,function(data, responseCode) {
		var xmlGeo = GXml.parse(data);
		var xmlInfo;
		var xmlPR;
		var nodes = xmlGeo.documentElement.getElementsByTagName("marker"); 
		for (var i = 0; i < nodes.length; i++) { 
			markers.push(addMarker(nodes[i]));
		}
		if(markers.length > 0 ){
			manager.addMarkers(markers, 13);
			manager.refresh();
		}
	});
}

function addMarker(node){
	var lats = node.getElementsByTagName("lat");
	var lngs = node.getElementsByTagName("lng");
	var lat = parseFloat(GXml.value(lats[0]));
	var lng = parseFloat(GXml.value(lngs[0]));
	var id = node.getAttribute('id');
	var type = node.getAttribute('type');
	var marker;
	var icon;
	var latlng = new GLatLng(lat, lng);

	switch(type){
	case "branch":	//支部マーカー
		icon = new GIcon(G_DEFAULT_ICON, "http://maps.google.co.jp/mapfiles/ms/icons/blue-dot.png");
		icon.iconAnchor=new GPoint(24,24);
		icon.iconSize=new GSize(32,32);
		marker = new GMarker(latlng, icon);
		break;
	case "head":	//本部マーカー
		icon = new GIcon(G_DEFAULT_ICON, "http://maps.google.co.jp/mapfiles/ms/icons/green-dot.png");
		icon.iconSize=new GSize(32,32);
		marker = new GMarker(latlng, icon);
		break;
	default:		//メンバマーカー
		marker = new GMarker(latlng);
	}

	var adrs = node.getElementsByTagName("addr");
	var info = GXml.value(adrs[0]);
	
	GEvent.addListener(marker, "click", function() {
		GDownloadUrl('data.php?d='+id, function(data, code){
			if(code == 200)
				marker.openInfoWindowHtml(data);
		});
	});
	return(marker);
}

function setCenterByInput(id){
	var adr = document.getElementById(id).value;
	setCenter(adr, 15);

}

function setCenter(adr, zoom){
	var geocoder = new GClientGeocoder();

	geocoder.getLatLng(
		adr,
		function(point) {
			var str;
			if (!point) {
				alert(adr + " が見つかりません。");
			} else {
				//map.panTo(point);
				map.setZoom(zoom);
				map.panTo(point);
			}
		}
	);
}

function savePos(){
	map.savePosition();
//	map.setCenter(map.getCenter(),map.getZoom());
}



////////////////////////////////////////////////////////////


function search(id){
	var key = document.getElementById(id).value;

	var ajaxIndex = ajaxObjects.length;
	ajaxObjects[ajaxIndex] = new sack();
	var url = 'search.php?key=' + key;
	ajaxObjects[ajaxIndex].requestFile = url;
	ajaxObjects[ajaxIndex].onCompletion = function() { searchComplete(ajaxIndex ); };
	ajaxObjects[ajaxIndex].runAJAX();

}

function searchComplete(index)
{
	document.getElementById("list").innerHTML = ajaxObjects[index].response;
}



