/**
 * All things Google maps
 */


// Init google map
function googleMap(targetSelector, latitude, longitude, zoom, large) {
  
  if(GBrowserIsCompatible()) {
    var mapCenter = new GLatLng(latitude, longitude);

    gmap = new GMap2($(targetSelector).get(0));
    gmap.setCenter(mapCenter, zoom);

    if(large) {
      gmap.addControl(new GLargeMapControl3D());
    }
    else {
      gmap.addControl(new GSmallMapControl());
    }
    maptypes = gmap.getMapTypes();

    gmap.setMapType(maptypes[0]);

    return gmap;
  }

  $(targetSelector).html('Maps are not compatible with your browser.');

  return false;
}

function houseIcon() {

  var icon = new GIcon();
  icon.image = "/images/gmap-icon-listing.gif";
  icon.shadow = "/images/gmap-icon-shadow-listing.png";
  icon.iconSize = new GSize(43, 57);
  icon.shadowSize = new GSize(58, 56);
  icon.iconAnchor = new GPoint(21, 57);
  icon.infoShadowAnchor = new GPoint(10, 23);
  
  return icon;

}


function initialiseStreetView(point, targetSelector, referSelector) {
  gSVClient = new GStreetviewClient();
  
  if('object' == typeof(point)){
    gSVClient.getNearestPanorama(point, function(response){
      
      switch(response.code) {
        case GStreetviewClient.ReturnValues.SUCCESS:
          
          var latlng = new GLatLng(response.Location.lat, response.Location.lng);
          gSVPanorama = new GStreetviewPanorama($(targetSelector).get(0));
          gSVPanorama.setLocationAndPOV(latlng);
          
          GEvent.addListener(gSVPanorama, "error", function(code){
            
            if (code == FLASH_UNAVAILABLE) {
              $(targetSelector).html('<p>This content requires the Flash Player. <a href="http://www.adobe.com/go/getflashplayer">Download Flash Player</a>.</p>');
              return;
            }
            
            });
          
          break;
          
        case GStreetviewClient.ReturnValues.SERVER_ERROR:
        case GStreetviewClient.ReturnValues.NO_NEARBY_PANO:
        default:
          $(referSelector).hide();
          break;
      }
      
    });
  }
}
