var map;
var mgr;
var icons = {};
var allmarkers = [];

function loadMap() {
if (GBrowserIsCompatible()) {
map = new GMap2(document.getElementById("map"));
map.addControl(new GLargeMapControl());
map.addControl(new GMapTypeControl());
map.addControl(new GOverviewMapControl());
map.setCenter(new GLatLng(map_def_lat, map_def_lon), map_def_zoom);
map.enableDoubleClickZoom();
mgr = new MarkerManager(map, {trackMarkers:true});
window.setTimeout(setupOfficeMarkers, 0);
}
}

function getIcon(images) {
var icon = null;
if (images) {
if (icons[images[0]]) {
icon = icons[images[0]];
} else {
icon = new GIcon();
icon.image = "img/map/" 
+ images[0] + ".png";
var size = iconData[images[0]];
icon.iconSize = new GSize(size.width, size.height);
icon.iconAnchor = new GPoint(size.width >> 1, size.height >> 1);
icon.shadow = "img/map/" 
+ images[1] + ".png";
size = iconData[images[1]];
icon.shadowSize = new GSize(size.width, size.height);
icons[images[0]] = icon;
}
}
return icon;
}

function setupOfficeMarkers() {
allmarkers.length = 0;
for (var i in officeLayer) {
var layer = officeLayer[i];
var markers = [];
for (var j in layer["places"]) {
var place = layer["places"][j];
var icon = getIcon(place["icon"]);
var title = place["name"];
var address = place["addr"];
var posn = new GLatLng(place["posn"][0], place["posn"][1]);
var marker = createMarker(posn,title,icon, address); 
markers.push(marker);
allmarkers.push(marker);
}
mgr.addMarkers(markers, layer["zoom"][0], layer["zoom"][1]);
}
mgr.refresh();
}

function createMarker(posn, title, icon, address) {
var marker = new GMarker(posn, {title: title, icon: icon, draggable:true });
GEvent.addListener(marker, 'click', function() {if (address && address != "undefined" && address != "null") map.openInfoWindowHtml(posn, address); else {map.setCenter(posn,5);} } ); 
return marker;
}

function deleteMarker() {
var markerNum = parseInt(document.getElementById("markerNum").value);
mgr.removeMarker(allmarkers[markerNum]);
}

function clearMarkers() {
mgr.clearMarkers();
}

function reloadMarkers() {
setupOfficeMarkers();
}


