// JavaScript Document
var smallmap = [];
var admin = false;
var smallmap_param = [];
function smallLoad(pratique) {
  if (GBrowserIsCompatible()) {
    for ( i=0 ; i<smallmap_param.length ; ++i )
	{
		var param = smallmap_param[i];
		smallmap[i] = new GMap2(document.getElementById("map_"+param.id));
		smallmap[i].controlInit("map_"+param.id, "map_parent_"+param.id, "small");
		smallmap[i].addMarker(param.lat, param.lng, param.itineraire, param.pratique, param.id);
		smallmap[i].setZoom(param.zoom);
		smallmap[i].setMapTypeFromArg(param.type);
	}
  }
}

GMap2.prototype.addMarker = function(lat, lng, itineraire, pratique, id) {
	icon = new GIcon();
	icon.image = "../fr/images/marker_"+pratique+".png";
	icon.shadow = "../fr/images/marker_s.png";
	icon.iconSize = new GSize(18, 26);
	icon.shadowSize = new GSize(29, 26);
	icon.iconAnchor = new GPoint(9, 23);
	icon.infoWindowAnchor = new GPoint(9, 3);
		
	// Add the point
	var point = new GLatLng(lat, lng);
	this.setCenter(point);
	var new_marker = new GMarker(point, icon);
	GEvent.addListener(new_marker, "click", function() {		
		window.location.href = "http://www.rollerenligne.com/fr/spots.php?spot_id=" + id;	
	});

	this.addOverlay(new_marker);
	
	// Add the itineraire if needed
	if ( itineraire.length > 4 )
	{
		encoded_point = itineraire.substr(0, itineraire.lastIndexOf(" "));
		encoded_level = itineraire.substr(itineraire.lastIndexOf(" ")+1);
		var polyline = new GPolyline.fromEncoded({
			color: "#0084FF",
			opacity: 0.8,
			weight: 4,
			points: encoded_point,
			levels: encoded_level,
		    zoomFactor: 2,
		    numLevels: 18
		});
		this.addOverlay(polyline);
		
		// Find the center
		var minLat = 360;
		var minLng = 360;
		var maxLat = -360;
		var maxLng = -360;
		var points_count = polyline.getVertexCount();
		for ( var i=0 ; i<points_count ; ++i ) {
			var vertex = polyline.getVertex(i);
			if ( vertex.lat() < minLat ) minLat = vertex.lat();
			if ( vertex.lat() > maxLat ) maxLat = vertex.lat();
			if ( vertex.lng() < minLng ) minLng = vertex.lng();
			if ( vertex.lng() > maxLng ) maxLng = vertex.lng();
		}
		this.setCenter(new GLatLng(((minLat+maxLat)/2), ((minLng+maxLng)/2)));
	}
	
}