I am trying to add 3 markers to a map and when click on the markers, an info window will be shown. But every array element inside google.maps.event.addListener becomes undefined.
What's the problem?
<div id="map-canvas2" style="width:100%;height:500px"></div>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp"></script>
<script>
 var num;
 var marker;
 var infoWindow;
 var infoText;
 var lat;
 var lng;
 var map;
 function initialize() {
   num = 3;
   marker = [];
   infoWindow = [];
   infoText = [];
   lat = [];
   lng = [];
   infoText[0] = "test1";
   lat[0] = 22.420845;
   lng[0] = 114.208705; 
   infoText[1] = "test2";
   lat[1] = 22.416026;
   lng[1] = 114.209321; 
   infoText[2] = "test3";
   lat[2] = 22.420841;
   lng[2] = 114.205188; 
   for (var i = 0; i < num; i++) {
     marker[i]=new google.maps.Marker({
       position:new google.maps.LatLng(lat[i], lng[i]),
     });
     infoWindow[i] = new google.maps.InfoWindow({
       content:"<div>"+infoText[i]+"</div>"
     });
   }
   var mapOptions = {
     zoom: 17,
     center: new google.maps.LatLng(22.420458,114.207482)
   };
   map = new google.maps.Map(document.getElementById('map-canvas2'), mapOptions);
   for (var i = 0; i < num; i++) {
     marker[i].setMap(map);   
     google.maps.event.addListener(marker[i], 'click', function() {
       new google.maps.InfoWindow({
     content:"<div>"+infoText[i]+"</div>"
       }).open(map,marker[i]);
     });
   }
 }
 google.maps.event.addDomListener(window, 'load', initialize);
</script>
 
     
     
    