//<![CDATA[
var map;
var mgr;
var icons = {};

function loadShippingMap() {
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("shipping_map"));
		map.addControl(new GLargeMapControl());
		map.addControl(new GNavLabelControl());

		map.setCenter(new GLatLng(35.000000, -15.000000), 2);
		map.enableDoubleClickZoom();
		mgr = new MarkerManager(map, {trackMarkers:true});
		window.setTimeout(setupShippingMarkers, 0);

		G_PHYSICAL_MAP.getMinimumResolution = function () { return 2 };
		G_NORMAL_MAP.getMinimumResolution = function () { return 2 };
		G_SATELLITE_MAP.getMinimumResolution = function () { return 2 };
		G_HYBRID_MAP.getMinimumResolution = function () { return 2 };

		G_PHYSICAL_MAP.getMaximumResolution = function () { return 9 };
		G_NORMAL_MAP.getMaximumResolution = function () { return 9 };
		G_SATELLITE_MAP.getMaximumResolution = function () { return 9 };
		G_HYBRID_MAP.getMaximumResolution = function () { return 9 };

		var point = new GLatLng('41.085148','-85.149270');
		var icon = getIcon(["baddad", "baddad-shadow"]);
		var BadDadmarker = createBadDadMarker(point, 'BadDad', '630 High Street<br />Fort Wayne, IN 46808','(260)407-2000', '41.085148','-85.149270',icon);
		map.addOverlay(BadDadmarker);
	}
}

function getIcon(images) {
	var icon = null;
	if (images) {
		if (icons[images[0]]) {
			icon = icons[images[0]];
		} else {
			icon = new GIcon();
			icon.image = "../images/google/" + iconData[images[0]].img + ".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 = "../images/google/" + images[1] + ".png";
			size = iconData[images[1]];
			icon.shadowSize = new GSize(size.width, size.height);
			icons[images[0]] = icon;
		}
	}
	return icon;
}

function setupShippingMarkers() {
	for (var i in shippingLayer) {
		var layer = shippingLayer[i];
		var markers = [];
		for (var j in layer["places"]) {
			var place = layer["places"][j];
			var icon = getIcon(place["icon"]);
			var title = place["date"];
			var address = place["address"];
			var lat = place["posn"][0];
			var lng = place["posn"][1];
			var position = new GLatLng(lat,lng);
			var marker = createMarker(position,title,address,icon); 
			markers.push(marker);
		}
		mgr.addMarkers(markers, layer["zoom"][0], layer["zoom"][1]);
	}
	mgr.refresh();
}

function createMarker(position, title, address, icon2) {
	var marker = new GMarker(position, {title: title, icon: icon2, draggable:false });
	var html = '<b>' + title + '</b> <br/>' + address;
	GEvent.addListener(marker, 'click', function() { marker.openInfoWindowHtml(html); });
	return marker;
}

function createBadDadMarker(position, name, address, phone, lat, lng, icon2) {
	var marker = new GMarker(position, {title: name, icon: icon2, draggable:false });
	var html = '<b>' + name + '</b> <br/>' + address + '<br/>Phone: ' + phone + '<br/><a href="http://maps.google.com/maps?saddr=' + lat + ',' + lng + '&h1=en&daddr=' + position + '" target="_blank">Get Directions</a>';
	GEvent.addListener(marker, 'click', function() { marker.openInfoWindowHtml(html); });
	return marker;
}
//]]>