Application = (function() {
  var map, popupId;
  
  // Load google map API
  function init(center, zoom, id) {
    google.load("maps", "2");
    google.setOnLoadCallback(function() {
      initCallback.defer(center, zoom);
    });
  }
  
  function initCallback(center, zoom) {
    if (GBrowserIsCompatible()) {

      // Create a new google map
      map = new GMap2($('map'));

      // Set default center/zoom if not specified
      if (typeof zoom == 'undefined') {
        center  = [25, 0];
        popupId = false;
        zoom   = map.getBoundsZoomLevel(new GLatLngBounds(new GLatLng(-50,-90), new GLatLng(50,90)));
      }
      map.setCenter(new GLatLng(center[0], center[1]), zoom);

      // Add controls
      map.addMapType(G_PHYSICAL_MAP);
      map.addControl(new GLargeMapControl());
      map.addControl(new GMapTypeControl());
      map.setMapType(G_PHYSICAL_MAP);

      // Attach maptimize plugin and set callbacks
      maptimizeMap = new Maptimize.Map(map, {labels: [1]});
    }
  }
  
  return {init: init}
})();





