﻿function fitMap(map, overlay) {
 var bounds = null;
 var failed = false;

 if (overlay) {
  try {
   map.addOverlay(overlay);
  } catch(err) {
   failed = true;
  }
 }

 try {
  bounds = map.getBounds();

  if (map.Markers.length > 0) {
   for (var i=0; i<map.Markers.length; i++) {
    bounds.extend(new GLatLng(map.Markers[i].Latitude, map.Markers[i].Longitude));
   }         

   map.setZoom(map.GMap.getBoundsZoomLevel(bounds));
  
   if (map.Markers.length > 1) {
    map.setCenter(bounds.getCenter());
   } else {
    map.setCenter(new google.maps.LatLng(map.Markers[0].Latitude, map.Markers[0].Longitude), 13);
   }
  } else {
   if (polygon) {
    bounds.extend(polygon.getBounds().getSouthWest());
    bounds.extend(polygon.getBounds().getNorthEast());
    map.setCenter(bounds.getCenter(), map.GMap.getBoundsZoomLevel(bounds));
   }
  } 
 } catch(err) {
  failed = true;
 }
 
 if (failed == true) {
  try {
   map.addOverlay(overlay);
  } catch(err) {
  }
 }
}
