I have a JSON array of Marker positions being pulled into a Google map - This works fine.
I also have infoWindows linked to each of those markers - These also work fine.
However, when I click a marker (in any browser), the infoWindow only appears over the last added marker.
Here is a fiddle: http://jsfiddle.net/neuroflux/8WDwn/10/ and here is my loop:
for (var a = 0; a < dealer_markers.length; a++) {
    var tmpLat = dealer_markers[a].lat;
    var tmpLng = dealer_markers[a].lng;
    var tmpName = dealer_markers[a].name;
    var tmpAdr = dealer_markers[a].adr;
    var tmpTel = dealer_markers[a].pc;
    var tmpPc = dealer_markers[a].tel;
    contentString[a] = '<div id="bg"><h2 class="title">'+tmpName+'</h2><h3 class="address">'+tmpAdr+'</h3><h3 class="pc">'+tmpPc+'</h3><h3 class="telephone">'+tmpTel+'</h3></div>';
    var content = contentString[a];
    dealer[a] = new google.maps.LatLng(tmpLat,tmpLng);
    deal = dealer[a];
    marker[a] = new google.maps.Marker({ 
        map:map,
        position: deal,
        icon:'dealer.png',
        title: "|"+new google.maps.LatLng(dealer[a].Ja,dealer[a].Ka)
    });
    lat = marker[a].position.Ja;
    lng = marker[a].position.Ka;
    compositeLatLng = new google.maps.LatLng(lat,lng);
    mark = marker[a];
    google.maps.event.addListener(mark, 'click', function(a) {
        if (mark.infowindow) {
            mark.infowindow.close();
        }
        mark.infowindow = new google.maps.InfoWindow({ 
            content: contentString[marker.indexOf(this)]
        });
        mark.infowindow.open(map,mark);
    });
}