﻿
var page;
var zip;
var no;

var lat;
var lon;
var lat_c;
var lon_c;
var zoom = 15;
var map;
var g_markers = [];


var baseIcon = new GIcon();

//
baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";

// maker icon
// baseIcon.iconSize = new GSize(20, 34);
// baseIcon.iconSize = new GSize(24, 34);
baseIcon.iconSize = new GSize(28, 42);

//
// baseIcon.shadowSize = new GSize(37, 34);
baseIcon.shadowSize = new GSize(49, 42);

//
// baseIcon.iconAnchor = new GPoint(9, 34);
baseIcon.iconAnchor = new GPoint(13, 42);

//
// baseIcon.infoWindowAnchor = new GPoint(9, 2);
baseIcon.infoWindowAnchor = new GPoint(13, 2);

//
// baseIcon.infoShadowAnchor = new GPoint(18, 25);
baseIcon.infoShadowAnchor = new GPoint(18, 25);



function load(lt,ln,zp,n){
	
	lat = lt;
	lon = ln;
	lat_c = lt;
	lon_c = ln;
	zip = zp;
	no = n;
	
	mapMake();
	tableMake();
}

function tableMake(){
	var parameter = $H({no:no,zip:zip,page:page}).toQueryString();
	var req = new Ajax.Request(
		'ajax/tableParkingMake.php',
		{
			method		:	'post',
			postBody	:	parameter,
			onSuccess	:	function (http){
				$('tableHtml').innerHTML = http.responseText;
			}
		}
	);
}

function mapMake(){
	if (GBrowserIsCompatible()) {
		g_markers = [];
		g_markers_use = [];
		g_markers_prev = [];
		g_markers_next = [];
		var wk_prev = -1;
		var wk_next = -1;
		map = new GMap2(document.getElementById("map"));
		map.addControl(new GLargeMapControl());
		// map.addControl(new GOverviewMapControl());
		map.addControl(new GMapTypeControl());
		map.setCenter(new GLatLng(lat,lon), zoom);
		var marker = new GMarker(new GLatLng(lat_c,lon_c));
		map.addOverlay(marker)
		var parameter = $H({no:no,zip:zip,page:page}).toQueryString();
		var req = new Ajax.Request(
			'ajax/gmapParkingMake.php',
			{
				method		:	'post',
				postBody	:	parameter,
				onSuccess	:	function (http){
					var json = eval("(" + http.responseText + ")");

					for(var i=0;i<json.informations.length;i++)
					{
						if(json.informations[i].lat=='' || json.informations[i].lot=='')
						{
							g_markers_use[i]=0;
						}
						else
						{
							g_markers_use[i]=1;
						}
					}
					for(i=0;i<json.informations.length;i++)
					{
						g_markers_prev[i]=-1;
						g_markers_next[i]=-1;

						for(var j=i-1;j>=0;j--)
						{ if(g_markers_use[j]==1) { g_markers_prev[i]=j; break; } }

						for(j=i+1;j<json.informations.length;j++)
						{ if(g_markers_use[j]==1) { g_markers_next[i]=j; break; } }
					}

					for(i=0;i<json.informations.length;i++){
						var marker = createMarker(json.informations[i],json.informations[0].idx);
						g_markers.push(marker);
						if(g_markers_use[i]==1) { map.addOverlay(marker); }
					}
				}
			}
		);



	}
}

function createMarker(info,start_idx){
	var latlng = new GLatLng(info.lat, info.lon);
	if (info.idx <= 100){
		var icon = new GIcon(baseIcon);
		icon.image = "/image/gmarker/marker" + info.idx + ".png";
		var marker = new GMarker(latlng,icon);
	}else{
		var marker = new GMarker(latlng);
	}
	GEvent.addListener(marker, "click", function(){
			var parameter = $H({info_key:info.key,start_idx:start_idx,info_no:(info.no+1),info_idx:info.idx,markermax:g_markers.length,marker_prev:g_markers_prev[info.no],marker_next:g_markers_next[info.no]}).toQueryString();
			var req = new Ajax.Request(
				'ajax/mapOne.php',
				{
					method		:	'post',
					postBody	:	parameter,
					onSuccess	:	function (http){
						var res = http.responseText;
						var tabHtml = res.split('**********');

						var tabList = [
							new GInfoWindowTab("観光情報",tabHtml[0]),
							new GInfoWindowTab("解説",tabHtml[1])
						];
						marker.openInfoWindowTabsHtml(tabList);
					}
				}
			);
		}
	);
	return marker;
}
function showTabs(no){
	var marker = g_markers[no];
	GEvent.trigger(marker, 'click');
	// window.scroll(0,0);
}

function changePage(p){
	page = p;
	getMapAttr()
	mapMake();
	tableMake();
	setDisplay();
}

function getMapAttr(){
	lat = (map.getCenter()).lat();
	lon = (map.getCenter()).lng();
	zoom = map.getZoom();
}
function viewPrint(){
	getMapAttr();
	var parameter = $H({no:no,zip:zip,page:page,lat:lat,lon:lon,zoom:zoom}).toQueryString();
	window.location.href = "parking-print.php?" + parameter;
}

function unload(){
	GUnload();

}

