$().ready(function(){
  if(GBrowserIsCompatible()){
    function addMap(elem,address,html,callback){
      var geo = new GClientGeocoder();
      geo.getLatLng(address,function(point){
        if(!point) return;
        var map = new GMap2(document.getElementById(elem));
        map.setCenter(point, 13);
        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl(useShortNames=true));
        map.enableScrollWheelZoom();
        var marker = new GMarker(point);
        if(html){
          GEvent.addListener(marker,"click",function(){ marker.openInfoWindowHtml(html); });
        }
        map.addOverlay(marker);
        if(callback){ callback(); }
      });
    }
    var idx=0;
    $('.address').each(function(){
      var parent = $(this).parent();
      if(!parent.attr('id')){ parent.attr('id','mc'+idx); idx++; }
      var addr   = $(this).html().replace(/<[^>]+>/g,' ');
      var info   = ''+parent.html().replace(/\s+class="address"/,'');
      var btn_id = parent.attr('id')+'_btn';
      var map_id = btn_id+'_map';
      var btn    = $('<button id="'+btn_id+'" class="btn_map">&nbsp;</button>');
      var map    = $('<div id="'+map_id+'" class="map"></div>');
      $(this).after(btn);
      btn.after(map);
      btn.click(function(){ map.toggle('slow'); return false; });
      addMap(map_id,addr,info,function(){ map.hide(); });
    });
  }
});
