//<![CDATA[
var gmap;
var gmarker = {};
var markerP = null;
var markerM = null;
var marker_info = null;
var usertype = null;

function gmapLoad(mapid, aid, utype) {
	usertype = utype;
	if (GBrowserIsCompatible()) {
		var opts = {mapTypes : [G_NORMAL_MAP,G_HYBRID_MAP]};
		gmap = new GMap2(document.getElementById(mapid),opts);
		gmap.enableContinuousZoom();
		gmap.enableDoubleClickZoom();
		gmap.addControl(new GScaleControl());
		gmap.addControl(new GMapTypeControl());
		gmap.addControl(new GSmallZoomControl());
		gmapReWriteCenter(aid);

		// ズーム変更時のイベント
		GEvent.addListener(gmap, "moveend", function() {
			gmapClearMarker();
			gmapRewiteMarker();
		});
	}
}

function gmapSetCenter(zoom, maptype, lat, lng) {
	if(zoom == undefined) zoom = gmap.getZoom();

	var mtype;
	switch (maptype) {
		case 'map':
			mtype = G_NORMAL_MAP;
			break;
		case 'satellite':
			//mtype = G_SATELLITE_MAP;
			mtype = G_HYBRID_MAP;
			break;
		case 'hybrid':
			//mtype = G_SATELLITE_MAP;
			mtype = G_HYBRID_MAP;
			break;
		default:
			mtype = G_NORMAL_MAP;
			break;
	}

	gmap.setCenter(new GLatLng(lat, lng), Number(zoom));
	gmapClearMarker();
	gmapRewiteMarker();
}

function gmapClearMarker() {
	gmap.clearOverlays();
	delete gmarker;
	gmarker = {};
	markerP = null;
	markerM = null;
}

function gmapReWriteCenter(stid) {
	var async = false;
	sendRequest(gmapReWriteCenterCallback, "&fnc=0&stid="+stid, 'POST', "./lib/gmap_search.php", async, false);
}

function gmapReWriteCenterCallback(resJSON) {

	// サーバーから取得した値をGoogleMapに反映する
	eval('var jsonData = ' + decodeURIComponent(resJSON.responseText));
	if (jsonData.error == "") {
		var zoom		= jsonData.googlezoom;
		var maptype	= jsonData.googletype;
		var lat			= jsonData.googleido;
		var lng			= jsonData.googlekeido;
		gmapSetCenter(zoom, maptype, lat, lng);
	}
	else {
		gmapClearMarker();
		alert(jsonData.error);
	}
}

function gmapRewiteMarker() {
	var bounds = gmap.getBounds();
	var sw = bounds.getSouthWest();
	var ne = bounds.getNorthEast();

	var async = false;
	sendRequest(gmapRewiteMarkerCallback, "&fnc=3&type="+usertype+"&minX="+sw.lat()+"&maxX="+ne.lat()+"&minY="+sw.lng()+"&maxY="+ne.lng(), 'POST', "./lib/gmap_search.php", async, false);
}

function gmapRewiteMarkerCallback(resJSON) {

	// サーバーから取得した値をGoogleMapに反映する
	eval('var jsonData = ' + decodeURIComponent(resJSON.responseText));

	var maxCnt = 300;
	
	if(jsonData.error == "") {
		if(jsonData.rowcnt > maxCnt) {
			gmapClearMarker();
			alert(maxCnt + ' 件を超えるため、表示できません');
		}
		else {
			var entry_id;
			var lat;
			var lng;
			var point;
			var cont;
			var nick;

			for(var i = 0; i < Number(jsonData.rowcnt); i++) {
				addMarker(gmap, jsonData[i].googleido, jsonData[i].googlekeido, jsonData[i].user_no, jsonData[i].customer_nm, jsonData[i].comment, jsonData[i].targetfish, jsonData[i].holiday);
			}
		}
	} else {
		gmapClearMarker();
		alert(jsonData.error);
	}
}

function addMarker(map, lat, lng, userno, customernm, comment, targetfish, holiday) {

	// マーカーアイコン設定
	var icon = new GIcon();
	if (userno.substr(0,2) == "SI") {
		icon.image = "./img/pin_01.png";
		icon.iconSize = new GSize(26, 30);
		icon.iconAnchor = new GPoint(6, 20);
		icon.infoWindowAnchor = new GPoint(6, 20);
	}
	else if(userno.substr(0,2) == "SO") {
		icon.image = "./img/pin_02.png";
		icon.iconSize = new GSize(26, 30);
		icon.iconAnchor = new GPoint(6, 20);
		icon.infoWindowAnchor = new GPoint(6, 20);
	}
	else {
		icon.image = "./img/marker.gif";
		icon.iconSize = new GSize(39, 39);
		icon.iconAnchor = new GPoint(6, 20);
		icon.infoWindowAnchor = new GPoint(6, 20);
	}

	// マーカー生成
	var mOption = {icon:icon, title:customernm};
	var gll = new GLatLng(lat, lng);
	var marker = new GMarker(gll, mOption);

	if (userno.substr(0,2) == "SI") {
		GEvent.addListener(marker, "click", function() { marker.openInfoWindowHtml("<a href=shipdetail.php?id=" + userno + "><b>" + customernm + "</b></a><br>" + comment + "<br>" + "釣り物：" + targetfish); });
	}
	else if (userno.substr(0,2) == "SO") {
		GEvent.addListener(marker, "click", function() { marker.openInfoWindowHtml("<a href=shopdetail.php?id=" + userno + "><b>" + customernm + "</b></a><br>" + comment + "<br>" + "定休日：" + holiday); });
	}else{
		GEvent.addListener(marker, "click", function() { marker.openInfoWindowHtml("<a href=shipdetail.php?id=" + userno + "><b>" + customernm + "</b></a><br>" + comment + "<br>" + "釣り物：" + targetfish); });
	}
	gmap.addOverlay(marker);}
//]]>

