Penso di avere più di un problema, spero che il titolo sia adeguato.
Innanzitutto il link:
qui
Funziona con safari,ff ma non con ie, che mi dice che alcuni elementi non sono definiti. Incollo una porzione di codice semplificato per chi non ha voglia di spulciarsi l'originale.
Se vi pare troppo lungo anche questo saltate pure e andate direttamente alle domande che seguono 
Codice PHP:
<script type="text/javascript">
//<![CDATA[
var centro = new google.maps.LatLng(42.181723,9.043872);
var Tappa = new Array();
var contenuto=new Array("roba varia");
window.addEvent('domready', function() {
function tappa(){
this.coord="";
this.poly="";
this.bounds="";
this.link="";
this.content="";
this.marker=new marker;}
function marker(){
this.start="";
this.finish="";
}
var myOptions = {
zoom: 8,
center: centro,
mapTypeId: google.maps.MapTypeId.ROADMAP,
mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.DROPDOWN_MENU }
};
window.map = new google.maps.Map(document.getElementById("map"), myOptions);
var i=0; /*contatore globale*/
window.anch=$$('.anch');
window.Tappa[1]=new tappa;
window.Tappa[1].coord= [new google.maps.LatLng(42.70169,9.45268)]; /*molte coordinate*/
window.Tappa.each(function(latappa){
/*collego al <a>*/
latappa.link=window.anch[i];
latappa.content=contenuto[i];
/*Creo una nuova polilinea*/
latappa.poly=new google.maps.Polyline({
path: latappa.coord,
strokeColor: "#FF0000",
strokeOpacity: 0.48,
strokeWeight: 4
});
/*Creo le icone*/
latappa.marker.start = new google.maps.Marker({
position: latappa.coord[0], map: window.map, title:"Start"
});
latappa.marker.finish = new google.maps.Marker({
position: latappa.coord[latappa.coord.length-1], map: window.map, title:"Finish"
});
latappa.marker.finish.setMap(); /*Nascondo il secondo marker di ogni tappa*/
latappa.poly.setMap(window.map); /*Mostro ogni tappa*/
/*Aggiungo l'evento 'onclick' alle singole polylinee*/
google.maps.event.addListener(latappa.poly, 'click', function() {
window.Tappa.each(function(item){item.poly.setMap();
item.marker.start.setMap();item.marker.finish.setMap(); });
latappa.marker.start.setMap(map);
latappa.marker.finish.setMap(map);
latappa.poly.setMap(map);
window.map.fitBounds(latappa.bounds);
$('content').set('html',latappa.content);
});
google.maps.event.addListener(latappa.poly, 'mouseover', function() {
latappa.link.highlight('#FF0');
});
anch[i].addEvent('click',function(){ /*Per ogni pulsante*/
window.Tappa.each(function(item){item.poly.setMap();
item.marker.start.setMap();item.marker.finish.setMap(); });
latappa.marker.start.setMap(map);
latappa.marker.finish.setMap(map);
latappa.poly.setMap(map);
map.fitBounds(latappa.bounds);
$('content').set('html',latappa.content);
})
i++; /*Aumento i*/
}); /*Fine ciclo Tappa.each*/
});//Fine domready
//]]>
Le mie domande sono le seguenti:
1.Perché IE mi da oggetto undefined in questa situazione? la variabile 'latappa' non è passata alla funzione? (Ho sempre usato la funzione .each() di mootools in questo modo e funzionava.)
Codice PHP:
window.Tappa.each(function(latappa){
latappa.link=window.anch[i];
2. Come vedete ho due pezzi di codice esattamente uguali; bene, non riesco a creare una function mostra_tappa(latappa) che funzioni senza darmi errori di variabili indefinite o similia. io avevo pensato ad una cosa del genere:
Codice PHP:
function mostra_tappa(el) {
window.Tappa.each(function(item){item.poly.setMap();
item.marker.start.setMap();item.marker.finish.setMap(); });
el.marker.start.setMap(map);
el.marker.finish.setMap(map);
el.poly.setMap(map);
window.map.fitBounds(el.bounds);
$('content').set('html',el.content);
};
/*Dentro Tappa.each*/
mostra_tappa(latappa);
Dove sbaglio?
3. E' giusto creare gli oggetti come ho fatto io ad inizio codice?
Scusate la noobbaggine, e grazie per eventuali risposte.
Bio.