var prev_position;
$(function(){
  if (document.getElementById("pano"))
  {
    var pano = new GStreetviewPanorama(document.getElementById("pano"));
    //pano.setLocationAndPOV(new GLatLng(parseFloat($('#map').attr('lat')), parseFloat($('#map').attr('lng'))), {yaw:0, pitch:0});
    
    var panoClient = new GStreetviewClient();
    
    document.getElementById("pano").pano = pano;
    document.getElementById("pano").panoClient = panoClient;
    
    GEvent.addListener(map, "click", function(o,l,ol) {
      if (o == null || o.getLatLng == undefined) return;
      prev_position = o.getLatLng();
      document.getElementById("pano").panoClient.getNearestPanorama(prev_position, showPanoData);
    });
    
    $('li[stop_id] a').click(function() {
      prev_position = new GLatLng(parseFloat($(this).closest('[stop_id]').attr('lat')), parseFloat($(this).closest('[stop_id]').attr('lng')));
      document.getElementById("pano").panoClient.getNearestPanorama(prev_position, showPanoData);
    });
    
    // trip planner, show the starting point
    $('.leg[shape]').eq(0).each(function () {
      prev_position = this.start_point.getLatLng();
      setTimeout("document.getElementById('pano').panoClient.getNearestPanorama(prev_position, showPanoData);", 200);
    });
  }
})
function showPanoData(panoData) {
  if (panoData.code != 200)
  {
    //GLog.write('showPanoData: Server rejected with code: ' + panoData.code);
    return;
  }
  if (prev_position)
  {
    a = panoData.location;
    angle = Math.atan2(prev_position.lng() - a.latlng.lng(), prev_position.lat() - a.latlng.lat())
    if (angle > 0) angle = parseInt(angle/3.14159265*180);
    else if (angle < 0) angle = parseInt((3.14159265+angle)/3.14159265*180+180);
    document.getElementById('pano').pano.setLocationAndPOV(a.latlng, {yaw:parseInt(angle)});
    prev_position = null;
  }
}
