>
http://www.felixweb.it/italia2011f.html
Your variable 'map' is undeclared, may give different results in
different browsers (doesn't work at all in IE for me)
Your code
geocoder.geocode( { 'address': luogo}, function(results, status) {
....
data = riga[2];
Your variable 'riga' is undeclared, different browsers etc. Some will
assume you meant a global variable.
The geocode() call just fires off a request, your loop rolls on and
replaces 'riga' with the values for the next marker, fires off another
request, etc.
At the end of the loop, 'riga' is left at the last set of values.
Sometime later, the results come back from Google and the callback
function runs, using riga[2] ... which will be that for the last
marker.