function getArtistTappa(numero) { 

	if (numero > maxMilestones) {
		showMapOnScale();
		return;
	}

	//http://urix.sytes.net/prova011.php?artist=the%20low%20lows&tappa=0&photo_size=square&format=json
	var url = 'lastfm/getMilestone.php?artist=' + encodeURIComponent(curArtist) + '&photo_size=square&format=json&tappa=' + numero; 
 
 	var successo = function(transport) { 
	
						var retObj = transport.responseText.evalJSON(); 
						if (retObj != null)
							showArtistTappa(retObj);										
						else {
							showMapOnScale();
							toggleWaitingMessage(false);
						}
						
					} 
					
	doQuery(url, successo);	

}

function showMapOnScale() {
	var viewpoint = new GLatLng((maxLat+minLat)/2, (minLon+maxLon)/2);
	var zlevel;
	
	if (minLat == 999999)
		zlevel = 2;
	else
		zlevel = map.getBoundsZoomLevel( new GLatLngBounds(new GLatLng(minLat, minLon), new GLatLng(maxLat, maxLon) ));
		
	map.setCenter(viewpoint, zlevel);
}

function showArtistTappa(retObj){

	if (retObj.artist == curArtist) {
		getArtistTappa(parseInt(retObj.num_tappa) +1);
		
		var point;
		if (retObj.lat != "") {			
			var lat = parseFloat(retObj.lat);
			var lon = parseFloat(retObj.lon);
			
			if (minLat > lat) minLat = lat;
			if (minLon > lon) minLon = lon;
			if (maxLat < lat) maxLat = lat;
			if (maxLon < lon) maxLon = lon;
			
			point = new GLatLng(lat, lon);
			
			curMilestones[parseInt(retObj.num_tappa)] = retObj;
			curMilestones[parseInt(retObj.num_tappa)].gpoint = point;			
								
			//gicon = new GIcon(G_DEFAULT_ICON, retObj.photo_url);
			//gicon.iconSize = new GSize(100,100);
			
			gicon = new GIcon(G_DEFAULT_ICON, bluPin);
			gicon.iconSize = new GSize(32,32);								
									
			var marker = new GMarker(point, gicon);
			
			GEvent.addListener(marker, "click", function() {
				responseMarkerClick(marker, TOUR, parseInt(retObj.num_tappa));
			  });	
			
			map.addOverlay(marker);
			
			addImageAtHolder(retObj.photo_url, marker, TOUR, parseInt(retObj.num_tappa));

			//var viewpoint = new GLatLng((maxLat+minLat)/2, (minLon+maxLon)/2);
			//map.panTo(viewpoint);
			//map.setZoom(map.getBoundsZoomLevel( new GLatLngBounds(new GLatLng(minLat, minLon), new GLatLng(maxLat, maxLon) )));
			//map.panTo(point);
			
			//Precaricamento immagini
			/*var imgtag = document.createElement('img');
			imgtag.setStyle({
				display: "none",
			});
			imgtag.src = retObj.photo_url;
			$("preDownload").appendChild(imgtag);
				*/	
			var polyOptions = {geodesic:false};
			
			if (lastPoint){
				var linea = Array(lastPoint, point);
				curPolyline = new GPolyline(linea, "#ff0000", 2, 1, polyOptions);
				map.addOverlay(curPolyline);
			}
			lastPoint = point;
			
		}
		
	}
	
}
