﻿/**
 * 記事に地図を貼り付ける
 */
function individualMap(lat, lon, zoom, msg) {

	var map = new GMap(document.getElementById("google-map"));
	//map.centerAndZoom(new GLatLng(lat, lon), 14);
	map.setCenter(new GLatLng(lat, lon), zoom);
	// 地図にコントロールを追加
	map.addControl(new GLargeMapControl());
	//map.addControl(new GMapTypeControl());
	
	// アイコン設定
	var icon = setIcon();

	//情報ウインドウ内の文字列を指定します
    	//var msg = "<font size=2>山田税理士事務所<br /><br />愛知県一宮市</font>";

    	//情報ウインドウ表示
    	map.openInfoWindowHtml(map.getCenterLatLng(),msg);


	GEvent.addListener(map, "moveend", function() {
		var center = map.getCenter().toString();;
		center = center.substring(1, center.length - 1);
		center.match(/^(.*?),\s(.*)$/);
		var latitude = RegExp.$1;
		var longitude = RegExp.$2;
		var zoomLevel = map.getZoom().toString();

		document.geocoder_form.latitude.value = latitude;
		document.geocoder_form.longitude.value = longitude;
		document.geocoder_form.zoom_level.value = zoomLevel;

	});
	
	// マーカー表示
	var marker = new GMarker(new GLatLng(lat, lon), icon);
	map.addOverlay(marker);
	
	// クリックで情報表示
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml(document.getElementById("information").innerHTML);
	});


}


/**
 * 全体地図を描画する
 */
function wholeMap(lat, lot, zoom, key) {
	
	var map = new GMap2(document.getElementById("google-map"));
	map.setCenter(new GLatLng(lat, lot), zoom);
	map.addControl(new GLargeMapControl());
	map.addControl(new GMapTypeControl());
	// サブウィンドウ
	//map.showMapBlowup(map.getCenter());

	// アイコン設定
	var icon = setIcon();
	
	// draw icons
	addIcon(map, icon, key);
		
	// 地図が移動したときのイベント
	GEvent.addListener(map, "move", function() {
		
		document.getElementById("input_area").style.visibility = "hidden";
		map.removeOverlay(center_marker);
		center_marker = new GMarker(map.getCenter(), center_cursor);
		map.addOverlay(center_marker);
	});

}


/**
 * 描画するアイコンを設定する
 */
function setIcon() {
	var icon = new GIcon();
	//icon.image = "/share/imgs/googlemaps_pin.png";
	icon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
	icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
	icon.iconSize = new GSize(12, 20);
	icon.shadowSize = new GSize(22, 20);
	icon.iconAnchor = new GPoint(6, 20);
	icon.infoWindowAnchor = new GPoint(5, 1);
	return icon;
}

/**
 * 全体地図にアイコンを追加する。
 */
function addIcon(map, icon, key) {

	var url = "/tools/JsonEventData";
	//var query = "cid=3";
	//alert(key);
	//var xml = new JKL.ParseXML.JSON( url, key, "GET" ); 
	var xml = new JKL.ParseXML.JSON( url + "?" + key ); 
	var data = xml.parse();
	var obj = data.events;
	for (i in obj) {
		var marker = new GMarker(new GLatLng(Number(obj[i].latitude), Number(obj[i].longitude)), icon);
		map.addOverlay(marker);
		
		var html = "<div id='information'>";
		html += "<p class='title'>\n";
		html += "<a href='" + obj[i].url + "'>" + obj[i].title + "</a>\n";
		if (obj[i].calendar_dt != undefined && obj[i].calendar_dt != "") {
			html += "<br />開催日：" + obj[i].calendar_dt + "\n";
		}
		html += "</p>\n";
		html += "</div>";

		openInfoWindow(marker, html);
	}
}



/**
 * infowindowを表示
 */
function openInfoWindow(marker, html) {
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml(html);
	});
}


