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 = {
      
zoom8,
      
centercentro,
            
mapTypeIdgoogle.maps.MapTypeId.ROADMAP,  
          
mapTypeControlOptions: { stylegoogle.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({
           
pathlatappa.coord,
            
strokeColor"#FF0000",
            
strokeOpacity0.48,
        
strokeWeight4
      
}); 
              
      
/*Creo le icone*/
     
latappa.marker.start = new google.maps.Marker({ 
                   
positionlatappa.coord[0], mapwindow.maptitle:"Start"
        
});

      
latappa.marker.finish = new google.maps.Marker({ 
                   
positionlatappa.coord[latappa.coord.length-1], mapwindow.maptitle:"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.