document.write(unescape("%3Cscript src='" + 'http://gmaps-utility-library.googlecode.com/svn/trunk/markerclusterer/' +
                          "1.0/src/markerclusterer_packed.js' type='text/javascript'%3E%3C/script%3E"));

if(GBrowserIsCompatible && GBrowserIsCompatible()) {

// used to calculate appropriate map zoom level for given extent
var extent_data = [90,45,22.5,11.25,5.625,2.8125,1.40625,0.703125,0.3515625,0.17578125,0.087890625,0.0439453125,0.02197265625,0.010986328125,0.0054931640625,0.00274658203125,0.00137329101562,0.000686645507812,0.000343322753906,0.000171661376953];
var map_extent = {
  lat: 0.0,
  lon: 0.0,
  max_lat: -90.0,
  max_lon: -180.0,
  min_lat: 90.0,
  min_lon: 180.0,
  num_points: 0
};

var map = 'map'; // Set to the map element's ID
var mgr;
var all_markers = [];

function createMap() {
  map = new GMap2(document.getElementById(map));
  map.addControl(new GLargeMapControl3D());
  map.addControl(new GHierarchicalMapTypeControl());
}

function createMarker(point,html) {
  var marker = new GMarker(point);
  GEvent.addListener(marker, "click", function() {
    marker.openInfoWindowHtml(html);
  });
  return marker;
}

function updateExtent(data_point) {
  data_point.lat = data_point.lat * 1.0;
  data_point.lon = data_point.lon * 1.0;
  
  map_extent.lat += data_point.lat;
  map_extent.lon += data_point.lon;
  map_extent.num_points += 1;
  if(data_point.lat > map_extent.max_lat) { map_extent.max_lat = data_point.lat; }
  if(data_point.lon > map_extent.max_lon) { map_extent.max_lon = data_point.lon; }
  if(data_point.lat < map_extent.min_lat) { map_extent.min_lat = data_point.lat; }
  if(data_point.lon < map_extent.min_lon) { map_extent.min_lon = data_point.lon; }
}

function applyExtent() {
  if(map_extent.num_points) {
    map_extent.lat /= map_extent.num_points * 1.0;
    map_extent.lon /= map_extent.num_points * 1.0;
    map_extent.num_points = 0;
  }
  var lat_ext = (map_extent.max_lat - map_extent.min_lat) * 1;
  var lon_ext = (map_extent.max_lon - map_extent.min_lon) * 1;
  var zoom = extent_data.length;
  for(var i = 0; i < extent_data.length; ++i) {
    if(lat_ext > extent_data[i] && lon_ext > extent_data[i]) {
      zoom = i; break;
    }
  }
  map.setCenter(new GLatLng(map_extent.lat, map_extent.lon), zoom);
}

function createMarkers(data_set) {
  // Need the google map api
  if(!GBrowserIsCompatible || !GBrowserIsCompatible()) return;
  // Need the data set
  if(!data_set) return;
  if(!(data_set instanceof Array)) return;
  if(!data_set.length) return;
  for(var i = 0; i < data_set.length; ++i) {
    updateExtent(data_set[i]);
    data_set[i].marker = createMarker(
      new GLatLng(data_set[i].lat, data_set[i].lon),
      '<div><img src="'+data_set[i].image+'" alt="'+data_set[i].title+'" style="display:inline; float:left; padding-bottom:5px; padding-right:5px; width: 60px;/></div>'+
      '<div class="title" style="width: 300px;"><a href="'+data_set[i].link+'">'+data_set[i].title+'</a></div>'+
      '<div style="width: 300px; font-size: smaller;">'+data_set[i].street+'<br/>'+data_set[i].csz+'</div>');
    jQuery('div#'+data_set[i].id+' a.mapLink').get(0).marker = data_set[i].marker;
    jQuery('div#'+data_set[i].id+' a.mapLink').click(function() { GEvent.trigger(this.marker, 'click'); })
    map.addOverlay(data_set[i].marker);
    
    // marker clustering removed 3-01-10 due to linking bugs
    //all_markers[all_markers.length] = data_set[i].marker;
  }
}

function showCluster() {
  if(window.MarkerClusterer == undefined) {
    setTimeout(showCluster, 50);
  } else {
    mgr = new MarkerClusterer(map, all_markers);
  }
}

jQuery(document).ready(function() {
	createMap();
	createMarkers(dealData);
	applyExtent();
	//showCluster();
});

} else {

alert("Sorry, the Google Maps API is not compatible with this browser");

}

