var g_map = null;
var g_markers = [];
var g_polys = [];
var g_PolydispNo = -1;

function gmap_load()
{
	g_map = new GMap2(document.getElementById("gmap"));
	g_map.addControl(new GOverviewMapControl(new GSize(100,75)));
	g_map.addControl(new GLargeMapControl());
	g_map.addControl(new GMapTypeControl());
	g_map.enableDoubleClickZoom();
	if( navigator.userAgent.match( "MSIE"   ) ){ document.getElementById("gmap").attachEvent( "onmousewheel" , mouseWheelZooming ); }
	if( navigator.userAgent.match( "Gecko"  ) ){ document.getElementById("gmap").addEventListener( "DOMMouseScroll" , mouseWheelZooming , false ); }
	if( navigator.userAgent.match( "Safari" ) ){ document.getElementById("gmap").onmousewheel = mouseWheelZooming; }

	g_map.setCenter(new GLatLng(35.6724403788536, 139.7674548625946),16);

	addPointText(0, 35.671829,139.770896,'エス・フィールドの事務所はこちらです。');
	addRoutePoly();
}

function addPointText(index, lat, lng, infotext)
{
	var point = new GPoint(lng, lat);
	var marker = new GMarker(point);
	g_markers[index] = marker;

	g_map.addOverlay(marker);

	GEvent.addListener(marker, "click", function(){
		marker.openInfoWindowTabsHtml(infotext);
	});
}

function addRoutePoly()
{
	var myPolyArray = [];

	myPolyArray.push(new GLatLng(35.671829,139.770896));
	myPolyArray.push(new GLatLng(35.67179192659591, 139.77086663246155));
	myPolyArray.push(new GLatLng(35.67245432405993, 139.76991713047028));
	myPolyArray.push(new GLatLng(35.672717974152626, 139.77013170719147));
	myPolyArray.push(new GLatLng(35.67291625588, 139.7698152065277));
	myPolyArray.push(new GLatLng(35.67267657460895, 139.76957648992538));
	myPolyArray.push(new GLatLng(35.67518883434671, 139.76592600345612));
	myPolyArray.push(new GLatLng(35.675090785796534, 139.76586431264877));
	myPolyArray.push(new GLatLng(35.675236769149635, 139.76500868797302));
	myPolyArray.push(new GLatLng(35.675413256130426, 139.76420938968658));
	myPolyArray.push(new GLatLng(35.675228053733086, 139.76398944854736));
	g_polys[0] = new GPolyline(myPolyArray, '#0000ff', 3, 0.5);
	myPolyArray = [];
	myPolyArray.push(new GLatLng(35.671829,139.770896));
	myPolyArray.push(new GLatLng(35.67179192659591, 139.77086663246155));
	myPolyArray.push(new GLatLng(35.67161543160729, 139.7711080312729));
	myPolyArray.push(new GLatLng(35.67128423008151, 139.77194219827652));
	myPolyArray.push(new GLatLng(35.67143457831287, 139.77219969034195));
	myPolyArray.push(new GLatLng(35.67124282979414, 139.77268785238266));
	g_polys[1] = new GPolyline(myPolyArray, '#0000ff', 3, 0.5);
	myPolyArray = [];
	myPolyArray.push(new GLatLng(35.671829,139.770896));
	myPolyArray.push(new GLatLng(35.67179192659591, 139.77086663246155));
	myPolyArray.push(new GLatLng(35.67245432405993, 139.76991713047028));
	myPolyArray.push(new GLatLng(35.672717974152626, 139.77013170719147));
	myPolyArray.push(new GLatLng(35.67291625588, 139.7698152065277));
	myPolyArray.push(new GLatLng(35.67267657460895, 139.76957648992538));
	myPolyArray.push(new GLatLng(35.673236556091354, 139.76870477199554));
	myPolyArray.push(new GLatLng(35.67329974441662, 139.76874232292175));
	g_polys[2] = new GPolyline(myPolyArray, '#0000ff', 3, 0.5);
	myPolyArray = [];
	myPolyArray.push(new GLatLng(35.671829,139.770896));
	myPolyArray.push(new GLatLng(35.67179192659591, 139.77086663246155));
	myPolyArray.push(new GLatLng(35.67167208436222, 139.7708398103714));
	myPolyArray.push(new GLatLng(35.67076999341023, 139.76985275745392));
	myPolyArray.push(new GLatLng(35.670364702851835, 139.76939409971237));
	myPolyArray.push(new GLatLng(35.669974663220806, 139.76895153522491));
	myPolyArray.push(new GLatLng(35.669850460256654, 139.76887106895447));
	myPolyArray.push(new GLatLng(35.66905729992804, 139.76793229579926));
	myPolyArray.push(new GLatLng(35.66933403533348, 139.76756751537323));
	g_polys[3] = new GPolyline(myPolyArray, '#0000ff', 3, 0.5);
}

function dispRoute(target)
{
	if(g_PolydispNo == target){
		g_map.removeOverlay(g_polys[target]);
		g_PolydispNo = -1;
	}
	else{
		if(g_PolydispNo >= 0){
			g_map.removeOverlay(g_polys[g_PolydispNo]);
		}
		g_map.addOverlay(g_polys[target]);
		g_PolydispNo = target;
	}
	return false;
}

function mouseWheelZooming(event){
	if( navigator.userAgent.match( "MSIE"   ) ){ var delta = event.wheelDelta;   event.returnValue = false; }	//IE
	if( navigator.userAgent.match( "Gecko"  ) ){ var delta = event.detail * -1;  event.preventDefault();    }	//Gecko
	if( navigator.userAgent.match( "Safari" ) ){ var delta = event.wheelDelta;   event.returnValue = false; }	//Safari
	g_map.setZoom( g_map.getZoom() + ( delta < 0 ? -1 : 1) );
}

function addResizeEvent(func)
{	
	if(typeof window.addEventListener == 'function'){
		window.addEventListener('resize', func, false);
		return true;
	}
	else if(typeof window.attachEvent == 'object'){
		window.attachEvent('onresize', func);
		return true;
	}
	var oldonresize = window.onresize;
	if (typeof window.onresize != 'function'){
    	window.onresize = func;
	} else {
		window.onresize = function(){
		oldonresize();
		func();
		}
	}
}

function addLoadEvent(func)
{	
	if(typeof window.addEventListener == 'function'){
		window.addEventListener('load', func, false);
		return true;
	}
	else if(typeof window.attachEvent == 'object'){
		window.attachEvent('onload', func);
		return true;
	}
	var oldonload = window.onload;
	if (typeof window.onload != 'function'){
    	window.onload = func;
	} else {
		window.onload = function(){
		oldonload();
		func();
		}
	}
}

function addUnloadEvent(func)
{	
	if(typeof window.addEventListener == 'function'){
		window.addEventListener('unload', func, false);
		return true;
	}
	else if(typeof window.attachEvent == 'object'){
		window.attachEvent('onunload', func);
		return true;
	}
	var oldonunload = window.onunload;
	if (typeof window.onunload != 'function'){
    	window.onunload = func;
	} else {
		window.onunload = function(){
		oldonunload();
		func();
		}
	}
}

addLoadEvent(gmap_load);
addUnloadEvent(GUnload);


