In the below code, inside for loop variable 'i' seems to have the value 5 for all iterations. What have i done wrong? Code: http://pastebin.com/aHZ6HFKK
  var message = ['one', 'five', 'seven', 'nine', 'eight'];
  var loc = ["Moscow", "Delhi", "New York", "Tokyo", "Barcelona"];
  var geocoder = new google.maps.Geocoder();
  var i = 0;
  function initialize()
  {
    var p;
    var mapOptions = {zoom: 4, center: new google.maps.LatLng(22,75)};
    var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
    for (i = 0; i < 5; i++)
    {
      geocoder.geocode({'address': loc[i]}, function(results, status){
        if(status == google.maps.GeocoderStatus.OK)
        {
          map.setCenter(results[0].geometry.location);
          var marker = new google.maps.Marker({
            map: map,
            position: results[0].geometry.location
          });
        }
        attachSecretMessage(marker, i);
      });
    }
  }
  function attachSecretMessage(marker, num)
  {
    var infowindow = new google.maps.InfoWindow({
      content: message[num]
    });
    google.maps.event.addListener(marker, 'click', function() {
      infowindow.open(marker.get('map'), marker);
    });
  }
  google.maps.event.addDomListener(window, 'load', initialize);
 
     
    