
/**
 * init branches map
 *
 * @param branches as json object { lat:, lon:, content: }
 * @return void
 */
function init_branches_map(branches) {
  if (GBrowserIsCompatible()) {
    var $gmap = $('#gmap');
    var map = new GMap2($gmap.get(0));
    var boundaries = new GLatLngBounds();
    for(var i=0; i<branches.length; i++)
    {
      var point = new GLatLng(branches[i].lat, branches[i].lon);
      boundaries.extend(point);
      var content = branches[i].content;
      var marker = genMarker(point, content, branches[i].is_xxl);
      map.addOverlay(marker);
      if(i == 0) {
        marker.openInfoWindowHtml(content, {onOpenFn: function() {
          var init_bubble = jQuery.Event('init_bubble');
          $('body').trigger(init_bubble);
        }});
      }
    }
    map.setCenter(boundaries.getCenter(), map.getBoundsZoomLevel(boundaries));
    map.addControl(new GLargeMapControl());
    map.addControl(new GMapTypeControl());
    map.addControl(new GScaleControl());
  }
}

function genMarker(point, content, is_xxl)
{
  var icon = new GIcon();
  if(is_xxl) {
    icon.image = "/images/marker_logo_xxl.png";
    icon.shadow = "/images/marker_shadow_xxl.png";
    icon.iconSize = new GSize(31, 36);
    icon.shadowSize = new GSize(46, 36);
    icon.iconAnchor = new GPoint(15, 35);
    icon.infoWindowAnchor = new GPoint(31, 4);
  }
  else {
    icon.image = "/images/marker_logo.png";
    icon.shadow = "/images/marker_shadow.png";
    icon.iconSize = new GSize(31, 36);
    icon.shadowSize = new GSize(46, 36);
    icon.iconAnchor = new GPoint(15, 35);
    icon.infoWindowAnchor = new GPoint(31, 4);
  }

  var marker = new GMarker(point, icon);
    GEvent.addListener(marker, "click", function() {
      marker.openInfoWindowHtml(content, {onOpenFn: function() {
        var init_bubble = jQuery.Event('init_bubble');
        $('body').trigger(init_bubble);
      }});
      
    });
    return marker;
}

function init_events_map(events) {
    if (GBrowserIsCompatible()) {
      var map = new GMap2(document.getElementById("gmap"));
      var boundaries = new GLatLngBounds();
      for(var i=0; i<events.length; i++)
      {
        if(events[i].lat != 0 && events[i].lon != 0)
        {
          var point = new GLatLng(events[i].lat, events[i].lon);
          boundaries.extend(point);
          map.addOverlay(new GMarker(point));
        }
      }
      if(events.length > 1)
      {
        map.setCenter(boundaries.getCenter(), map.getBoundsZoomLevel(boundaries));
      }
      else
      {
        map.setCenter(boundaries.getCenter(), 10);
      }
      map.addControl(new GLargeMapControl());
    }
  }
