var Orange;
if (!Orange) Orange = {};
Orange.StreetView = {};

($.browser.safari ? $(window).load : $).call($(window), function () {
	Orange.StreetView.display($("#get_lat").val(), $("#get_lon").val(),
							  $("#get_lat_jp").val(), $("#get_lon_jp").val())

});

Orange.StreetView.display = function(lat, lon, lat_jp, lon_jp) {
	var stPanorama = new GStreetviewPanorama(document.getElementById("itemGglStv01"));
	if (lat_jp && lon_jp) {
		var p = ZdcCommon.TKY2WGS(lon_jp, lat_jp);
		lat = p.lat;
		lon = p.lon;
	}
	lat = Math.floor(lat * 10000) / 10000;
	lon = Math.floor(lon * 10000) / 10000;

	var targetLatLng = new GLatLng(lat, lon);
	stClient = new GStreetviewClient();
	stClient.getNearestPanoramaLatLng(targetLatLng, function(latlng) {
	    if (latlng == null) {
	        return Orange.StreetView.onError(600);
	    }


			var yaw = Orange.StreetView.calcYaw(latlng, targetLatLng);
			$("#enlargeStreetView").attr("href", "http://maps.google.co.jp/maps?cbp=0,"+ yaw + ",0,0,-10&cbll=" + latlng.lat() + "," + latlng.lng() + "&ll=" + latlng.lat() + "," + latlng.lng() + "&layer=c");

			if (yaw < 0) {
       yaw = 0;
      }

			var pov = {
					yaw: yaw
			};

	    stPanorama.setLocationAndPOV(latlng, pov);
	});
	
}

Orange.StreetView.onError = function (error_code) {
    if (error_code == 600) {
		$("#blockSurrondingArea01").hide();
        return;
    } else if (error_code == 603) {
		$("#blockSurrondingArea01").hide();
        return;
    }	
}

Orange.StreetView.calcYaw = function (fromLatLng, toLatLng) {
		if (fromLatLng.equals(toLatLng)) {
				return -1;
		}

		var lat_f = fromLatLng.lat();
		var lng_f = fromLatLng.lng();
		var lat_t = toLatLng.lat();
		var lng_t = toLatLng.lng();

		var yaw = 90 - Math.atan2(lat_t - lat_f, lng_t - lng_f) * 180 / Math.PI;
		if (yaw < 0) {
				yaw += 360;
		}
		return yaw;
}

