var
  icons = [],
  last_z = 9000001,
  current_nid = 0;

function initialize() {
	var map = new google.maps.Map2(document.getElementById("cost_map"));
	
	if (reviews.length == 1) {
		map.setCenter(new google.maps.LatLng(reviews[0].lat, reviews[0].lon), 4);
	}
	else {
		map.setCenter(new google.maps.LatLng(38.2, -98), 4);
	}
	
	map.addControl(new google.maps.LargeMapControl());
	map.addControl(new google.maps.MapTypeControl());
	map.enableScrollWheelZoom();
	map.enableDoubleClickZoom();
	map.enableContinuousZoom();
	
	for (var i = 0; i < 5; i++) {
		icons[i] = new google.maps.Icon();
		icons[i].image = '/themes/renewal/img/marker_' + i + '.png';
		icons[i].transparent = '/themes/renewal/img/marker_trans.png';
		icons[i].iconSize = new google.maps.Size(20, 34);
		icons[i].iconAnchor = new google.maps.Point(9,33);
		icons[i].infoWindowAnchor = new google.maps.Point(9, 3);
	}
	
	$(reviews).each(function() {
		var marker = create_marker(
			new google.maps.LatLng(this.lat, this.lon),
			'<div style="float: left; margin-right: 10px;"><a href="/node/' + this.nid + '">' + this.data + '</a></div>',
			this.color
		);
		marker.nid = this.nid;
		map.addOverlay(marker);
	});
}

function setZIndex() {
  return last_z++;
}

function create_marker(point, html, color) {
  var options = {
    zIndexProcess: setZIndex,
    icon: new google.maps.Icon(icons[color])
  }
  
	var marker = new google.maps.Marker(point, options);
	
	google.maps.Event.addListener(marker, 'mouseover', function() {
		if (current_nid != marker.nid) {
      current_nid = marker.nid;
      marker.openInfoWindowHtml(html);
    }
	});
	
	return marker;
}

$(function() {
	RS.gmaps.init(initialize);
});