Q:

Выполнение callback функции в "Объекте" в js

Надо спарсить координаты горнолыжных курортов по названиям. 
Использую gmlocalsearch.js из Google API
      var map;
      var resorts = [];
      var grespoints = [];
      geocoder = new GClientGeocoder();
function MyGRes(id,title,lat,lon,adr){
          this.id = id;
          this.title = title;
          this.lat = lat;
          this.lon = lon;
          this.adress = adr;
        }
    //объект для поиска, чтобы у него сделать свою callback-функцию
     function MySearchRes(id,title){
          this.id = id;
          this.title = title;
        }
      //callback-функция у каждого своя. вот тут this ничего не выдает
      MySearchRes.prototype.searchComplete = function (response){
          if (!response || response.Status.code != 200) {
            //alert("Status Code:" + response.Status.code);
          } else {
            place = response.Placemark[0];
            var lat = place.Point.coordinates[1];
            var lon = place.Point.coordinates[0];
            var adress = place.adress;
            grespoints.push(new MyGRes(this.id,this.title,lat,lon,adress));
          }
      }

    function initialize() {
    // кусок из джанго шаблона, если вкратце, то просто цикл, который в js-код вставит 2400*2 строк, раньше без var делал, тут уже шаманю, хотя конечно без var Надо делать я думаю
          {% for item in resorts %}
          var serobj{{forloop.counter0}} = new MySearchRes({{item.id}},"{{item.title|safe}}");
          resorts.push(serobj{{forloop.counter0}});
          {% endfor %}
      }
    // сама функция которая поиск делает
    function addMarkers() {
          for ( var i = 0;i<resorts.length;i++)
              {
          geocoder.getLocations(
                  resorts[i].title,
                  resorts[i].searchComplete
            );
          }
      }

Суть такая что при вызове getLocations результат асинхронно в callback приходит, поэтому пришлось делать свой объект на каждую, чтобы записать результат и указать id для него, чтобы потом в базу все это передать.
Почему-то this в searchComplete не проходит. Уже такие штуки проворачивал, и никаких проблем это не предвещало, а вот тут такое... еще кстати я создал MyGRes потому что все тотже this не виден, он добавляет DOM объект в масссив grespoints.     P.S. В отдельные файлы ничего не выносил, так как это не имеет значения, верно? =)

A:

var initialize = function() {
    {% for item in resorts %}
        addMarker({{item.id}}, "{{item.title|safe}}");
    {% endfor %}
}

var addMarker = function(id, title) {
    geocoder.getLocations(
        title,
        function (response){
            if (!response || response.Status.code != 200) {
                //alert("Status Code:" + response.Status.code);
            } else {
                place = response.Placemark[0];
                grespoints.push({
                    id: id,
                    title: title,
                    lat: place.Point.coordinates[1],
                    lng: place.Point.coordinates[0],
                    address: place.address
                });
            }
        }
    );
}

