var map;
var markers = new Object();
function fitMap()
{
var bounds = new GLatLngBounds();
for (var i in markers)
bounds.extend(markers[i].getPoint());
var zoomlev = Math.min(map.getBoundsZoomLevel(bounds), 12);
map.setZoom(zoomlev);
map.setCenter(bounds.getCenter());
var distMarkX = Math.abs(bounds.getSouthWest().x - bounds.getNorthEast().x);
var distMarkY = Math.abs(bounds.getSouthWest().y - bounds.getNorthEast().y);
var distMapX = Math.abs(map.getBounds().getSouthWest().x - map.getBounds().getNorthEast().x);
var distMapY = Math.abs(map.getBounds().getSouthWest().y - map.getBounds().getNorthEast().y);
if (distMarkX/distMapX > 0.9 || distMarkY/distMapY > 0.9)
map.setZoom(zoomlev - 1);
}
function toggleInfo(marker, id, title, text, price, img)
{
var infoWin = map.getInfoWindow();
var s = "
";
if (img)
{
s+= " ";
if (price > 0)
s += "
$" + formatNumbers(price);
s += " | ";
}
s += "" + title + " " + text;
if (price > 0 && !img)
s += "
$" + formatNumbers(price);
s += "
Ver anuncio |
";
if (infoWin.isHidden() || !marker.getLatLng().equals(infoWin.getPoint()))
marker.openInfoWindowHtml(s);
else
infoWin.hide();
}
function highlightIcon(id)
{
var img = markers[id].getIcon().image;
var img2 = img.substring(0, img.length - 4) + "2.png";
markers[id].setImage(img2);
}
function normalizeIcon(id)
{
markers[id].setImage(markers[id].getIcon().image);
}
function addMarker(icon, id, lat, lng, title, text, price, img)
{
var gi = new GIcon(G_DEFAULT_ICON);
gi.iconSize = new GSize(20,34);
gi.image = "/img/markers/" + icon + ".png";
var marker = new GMarker(new GLatLng(lat, lng), gi);
map.addOverlay(marker);
GEvent.addListener(marker, "click", function() {
toggleInfo(marker, id, title, text, price, img);
});
markers[id] = marker;
}
function drawMap(lat, lng)
{
var mapElem = document.getElementById("map");
map = new GMap2(mapElem);
map.enableDoubleClickZoom();
map.addControl(new GLargeMapControl());
map.addControl(new GMapTypeControl());
map.setCenter(new GLatLng(lat, lng), 11);
}