
var map_ids = [];
var map_service = '/ClassLibrary/com/InntopiaExt/Public.cfc?method=';
var map_center = new GLatLng(44.081712, -103.230711);

function doMap(id) {
	map_ids.push(id);
}

$(document).ready(function() {
	for(var x=map_ids.length - 1; x>=0; x--) {
		var id = "map_" + map_ids[x];
		var div = document.getElementById(id);
		while(div.firstChild != null)
			div.removeChild(div.firstChild);
		div.appendChild(document.createTextNode("Loading..."));
		jQuery.getJSON(map_service + "listFeaturedSuppliersOnMap", { supplierType: map_ids[x] }, got_map);
	}
});

function got_map(data, status) {
	var supplierType = parseInt(data.SUPPLIERTYPE);
	var id = "map_" + supplierType;
	
	var map = new GMap2(document.getElementById(id));
	map.setCenter(map_center, 10);
	
	var d = data.SUPPLIERS.DATA;
	if(d.length == 0)
		return;
	
	var bounds = new GLatLngBounds();
	
	for(var x = d.length - 1; x>=0; x--) {
		var lat = parseFloat(d[x][7]);
		var lng = parseFloat(d[x][8]);
		var title = d[x][1];
		var address = d[x][3] + "<br />" +
			d[x][4] + "," + d[x][5] + " " + d[x][6];
		var website = d[x][2];
		website = '<a href="' + website + '">' + website + "</a>";
		
		if(!isNaN(lat) && !isNaN(lng)) {
			var point = new GLatLng(lat, lng);
			var marker = createMarker(point, title, address, website);
			map.addOverlay(marker);
			bounds.extend(point);
		}
	}

	// map.setZoom();
	// map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
	map.addControl(new GSmallMapControl());
	map.addControl(new GMapTypeControl());
}

function createMarker(point, title, address, website) {
	var marker = new GMarker(point);
	var message = "<b>" + title + "</b><br />" +
		address + "<br />" +
		website;
	GEvent.addListener(marker, "click", function() {
		marker.openInfoWindowHtml(
			message
		);
	});
	return marker;
}

