var map = null;
var stv = null;
var geocoder = null;

var myad, mylat, mylng, myyaw, mypitch, myzoom, pov;

function getE(id) {
  return document.getElementById(id);
}

function init() {
	if (GBrowserIsCompatible()) {
		if (getE('gad').value!='') myad = getE('gad').value;
		else return;
		
		isNaN(getE('glat').value) ? mylat = 0 : mylat = parseFloat(getE('glat').value);
		isNaN(getE('glng').value) ? mylng = 0 : mylng = parseFloat(getE('glng').value);
		isNaN(getE('gyaw').value) ? myyaw = 0 : myyaw = parseFloat(getE('gyaw').value);
		isNaN(getE('gpitch').value) ? mypitch = 0 : mypitch = parseFloat(getE('gpitch').value);
		isNaN(getE('gzoom').value) ? myzoom = 0 : myzoom = parseFloat(getE('gzoom').value);
		
		try {map = new GMap2(getE("gmap"));} catch(e){ return; }
		if (getE("pano")) stv = new GStreetviewPanorama(getE("pano"));
		
		if (mylat && mylng) showAd(new GLatLng(mylat,mylng));
		else {
			geocoder = new GClientGeocoder();
			
			if (geocoder) {
				
				geocoder.getLatLng(
					myad,
					showAd
				);
			}
				
		}
	}
}

function showAd(point) {
	if (!point) {
		alert("周辺地図を表示できません");
	} else {
		map.setCenter(point, 16);
		
		
		var marker = new GMarker(point);
		
		map.addOverlay(marker);
		
		if (stv) {
			pov = { yaw:myyaw, pitch:mypitch, zoom:myzoom };
			stv.setLocationAndPOV(point,pov);
			
			GEvent.addListener(stv,"error",onError);
		}
		
	}
}
function onError(eCode) {
	if (eCode==600) {
		getE("pano").innerHTML='<p>ストリートビュー未対応エリアです。</p>';
		return;
	} else if (eCode==603) {
		getE("pano").innerHTML='<p>ブラウザがFlash未対応です。</p>';
		return;
	}
}

function openlocation(url) {
    nwin = window.open(url,'location','scrollbars=1,resizable=1,toolbar=1,width=250px,height=600px');
}
