//<![CDATA[
			
function load(startlat, startlong, zoom) {
  if (GBrowserIsCompatible()) {
	var map = new GMap2(document.getElementById("GoogleMap"), G_NORMAL_MAP);
	map.addControl(new GSmallMapControl());
	map.addControl(new GMapTypeControl());
	map.setCenter(new GLatLng(startlat, startlong), zoom);

	GDownloadUrl("../mapmarkerxml.php", function(data) {
	  var xml = GXml.parse(data);
	  var markers = xml.documentElement.getElementsByTagName("marker");
	  for (var i = 0; i < markers.length; i++) {
		var name = markers[i].getAttribute("name");
		var address = markers[i].getAttribute("address");
		var city = markers[i].getAttribute("city");
		var category = markers[i].getAttribute("category");
		var product_id = markers[i].getAttribute("product_id");
		var star_rating = markers[i].getAttribute("star_rating");
		var image_path = markers[i].getAttribute("image_path");
		var description = markers[i].getAttribute("description");
		var phone = markers[i].getAttribute("phone");
		var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
								parseFloat(markers[i].getAttribute("lng")));
		var marker = createMarker(point, name, address, city, category, product_id, star_rating, image_path, description, phone);
		map.addOverlay(marker);
		if (markers[i].getAttribute("lat") == startlat && markers[i].getAttribute("lng") == startlong)
			GEvent.trigger(marker, "click");
	  }
	});
	/*
	GEvent.addListener(map, "moveend", function() {
		  var center = map.getCenter();
		  document.getElementById("GoogleMessage").innerHTML = center.toString();
	 });
	*/

	AddPolylines(map);
	
  }
}

function createMarker(point, name, address, city, category, product_id, star_rating, image_path, description, phone) {
	var marker = new GMarker(point, createIcon(category));
	var html = "<div class=\"MapInfoWindow\">";
	if (image_path.length > 0) {
		html = html + "<img src=\"" + image_path + "\" height=\"75\" width=\"100\" alt=\"" + name + "\" class=\"MapInfoWindowPic\" />";
	}
	html = html + "<p><strong>" + name + "</strong><br />";
	if (star_rating.length > 0) {
		html = html + "<img src=\"../images/stars_" + star_rating + ".jpg\" height=\"13\" width=\"70\" alt=\"" + star_rating + " stars\" />";
	}
	html = html + "<span class=\"smaller\">" + address + "<br />" + city;
	if (phone.length > 0) {
		html = html + "<br />Phone: " + phone;
	}
	html = html + "</span></p>";
	if (description.length > 0) {
		html = html + "<p class=\"smaller\">" + description + "</p>";
	}
	if (product_id.length > 0) {
		if (category == "ACCOMM") {
			html = html + "<p class=\"smaller\"><a href=\"../accommodation/details.php?product_id=" + product_id + "\" target=\"_blank\">More Information...</a></p>";
		} else {
			html = html + "<p class=\"smaller\"><a href=\"../attractions/details.php?product_id=" + product_id + "\" target=\"_blank\">More Information...</a></p>";
		}
	}
	html = html + "</div>";
	GEvent.addListener(marker, 'click', function() {
		marker.openInfoWindowHtml(html);
	});
	return marker;
}

function createIcon(category) {
	var colour = "";
	switch (category) {
		case "ACCOMM":
			colour = "http://labs.google.com/ridefinder/images/mm_20_red.png";
			break;
		case "ATTRACTION":
			colour = "http://labs.google.com/ridefinder/images/mm_20_blue.png";
			break;
		case "TOUR":
			colour = "http://labs.google.com/ridefinder/images/mm_20_blue.png";
			break;
		case "FOOD":
			colour = "http://labs.google.com/ridefinder/images/mm_20_yellow.png";
			break;
		case "WINE":
			colour = "http://labs.google.com/ridefinder/images/mm_20_green.png";
			break;
		default:
			colour = "http://labs.google.com/ridefinder/images/mm_20_gray.png";
	}
	var icon = new GIcon(); 
	icon.image = colour;
	icon.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
	icon.iconSize = new GSize(12, 20);
	icon.shadowSize = new GSize(22, 20);
	icon.iconAnchor = new GPoint(6, 20);
	icon.infoWindowAnchor = new GPoint(5, 1);
	return icon;
}

function AddPolylines(map) {
	// Add Bruny Island cruise
	//map.addOverlay(AddEncodedPolyline("l_ugGqijb[ox@|LwXwXaM_\qN}[gEcjAr\wv@d~Ae_@|zClc@jVbyAfl@`Nfa@jnAtx@?ng@|i@|Wa]`pApGnYztAhxDzi@lxBwXj|AlTpfA`dCp@vnCjjBbyAt_@slC}e@aqDitCeuCguMcyA_hGe~Es{FiCyfAllB}Iv_Cl}@~vAxt@pGba@go@", "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"));
	/*															  
	// Bruny Island Cruise
	map.addOverlay(AddPolyline(-43.366467277,147.35017776,-43.35726303498,147.3479461669922));
	map.addOverlay(AddPolyline(-43.35726303498,147.3479461669922,-43.35314407444696,147.35206604003906));
	map.addOverlay(AddPolyline(-43.35314407444696,147.35206604003906,-43.35089725085812,147.3567008972168));
	map.addOverlay(AddPolyline(-43.35089725085812,147.3567008972168,-43.348400682647366,147.36133575439453));
	map.addOverlay(AddPolyline(-43.348400682647366,147.36133575439453,-43.3470202660968,147.37335205078125));
	map.addOverlay(AddPolyline(-43.3470202660968,147.37335205078125,-43.35214549645438,147.3822784423828));
	//map.addOverlay(AddPolyline(-43.35214549645438,147.3822784423828));
	*/
}

function AddEncodedPolyline(points, levels) {
	var encodedPolyline = new GPolyline.fromEncoded({
		color: "#7070CC",
		weight: 5,
		points: points,
		levels: levels,
		zoomFactor: 32,
		numLevels: 4
	});
	return encodedPolyline;
}

function AddPolyline(lat1, lng1, lat2, lng2) {
	var polyline = new GPolyline([new GLatLng(lat1, lng1),new GLatLng(lat2, lng2)], "#ff0000", 5);
	return polyline;
}

//]]>