bounds = {};

$(document).ready( function() {
  $('#searchformtable, div.filterbox, #links table.catlist').corner();
  $('table.calendar tr th:first').corner("top-left");
  $('table.calendar tr th:last').corner("top-right");
  
  
  $( '#map' ).show().gmap3( 
    { action: 'init',
      options: {
        center: gmaps_init,
        zoom: gmaps_depth
      },
      events: {
        dragend: function(map) {
          updateBounds( '#map' );
          try {
            reloadMapData();
          } catch( err ) {}            
        },
        zoom_changed: function(map) {
          updateBounds( '#map' );
          try {
            reloadMapData();
          } catch( err ) {}            
        }  
      }
    }
  );


  var markers = [];  
  var map = $('#map').gmap3('get');
  
  $('#map').gmap3({ action:'addinfowindow' });
  var infowindow = $('#map').gmap3({action:'get', name:'infowindow'});
  
  
  
  //find company results and create markers for them
  $('span.gm_address').each( function( i, v ) {
    
    var latlng = $(this).html().split(',');
    
    //create marker
    var marker = new google.maps.Marker( {
      map: map,
      position: new google.maps.LatLng( latlng[0], latlng[1] )
    });    
    marker.set( 'id', $(this).attr( 'id' ) );
    marker.set( 'data', $('#c-' + $(this).attr( 'id' ) ).html() );
    markers.push( marker );
    
    //listen to click on marker, to open infowindow
    google.maps.event.addListener( marker, 'click', function() {
      infowindow.setContent( $('#c-' + $(this).attr( 'id' ) ).html() );
      infowindow_open = true;
      infowindow.open( map,marker );
    });    
    
    //bind click event to "show on map" link and trigger marker click (which will open infowindow)
    $('#cl-' + $(this).attr( 'id' )).click( function() { 
      google.maps.event.trigger(marker, 'click');
      return false;
    });

  });
  

});

function updateBounds(map) {
  $(map).gmap3( {
    action: 'getBounds',
    callback: function( b ) {
      if (!b) return;
      
      var sw = b.getSouthWest();
      var sw_lat = sw.lat();
      var sw_lng = sw.lng();
      
      var ne = b.getNorthEast();
      var ne_lat = ne.lat();
      var ne_lng = ne.lng();
        
      bounds = {ne_lat:ne_lat,ne_lng:ne_lng,sw_lat:sw_lat,sw_lng:sw_lng};
    }
  });  
}
