Добрый день.
В общем, сейчас изучаю GMap API и возникла проблема.
Gmap я указал на всякий случай, знание его необязательно, чтобы помочь мне, главное - это javascript.
Gmap предоставляет метод GDownloadUrl(имя_файла, колбек)
Выглядит это примерно так
GDownloadUrl("data.xml", function(data, responseCode) {
  //какой-нибудь код
});
Вот мой код
function Streets() {
      this.map = new GMap2(document.getElementById("map_canvas"));
      this.init();
      // temp - просто переменная для проверки.
      this.temp = 'ok';
      this.load();
    }
    Streets.prototype = {
      init: function() {
        this.map.setCenter(new GLatLng(51.6538, 30.1749), 12);
        this.map.addControl(new GLargeMapControl());
        this.map.addControl(new GMapTypeControl());
      },
      load: function() {
        GDownloadUrl("data.xml", this.parseXML);
      },
      parseXML: function(data, responseCode) {
        // что-нибудь делаем
      }
    };
В моем методе load вызывает гуглевский метод GDownloadUrl, который просто загружает файл data.xml и запускает колбек, которому передает 2 параметра - nodelist и номер статуса.
Я хочу, чтобы колбек вызывал Streets.parseXML и передал ему параметры. Но это у меня пока не получается. 
Если я делаю так:
load: function() {
        GDownloadUrl("data.xml", this.parseXML);
      },
      parseXML: function(data, responseCode) {
        alert(this.temp); // undefined, "потеряли" this
        alert(arguments.length); // все хорошо - 2 аргумента.
      }
если так:
load: function() {
        GDownloadUrl("data.xml", this.parseXML.call(this));
      },
      parseXML: function(data, responseCode) {
        alert(this.temp); // результат - ok
        alert(arguments.length); // результат - 0, параметры не передались
      }
если так:
// Так вообще не работает.
      load: function() {
        GDownloadUrl("data.xml", this.parseXML.call(this, data, responseCode));
      },
      parseXML: function(data, responseCode) {
        alert(this.temp);
        alert(arguments.length);
      }
Если так:
load: function() {
        GDownloadUrl("data.xml", this.parseXML.call(this, arguments[0], arguments[1]));
      },
      parseXML: function(data, responseCode) {
        alert(this.temp); // Результат - ок
        alert(arguments.length); // 2 аргумента
        alert(responseCode); // но оба undefined
      }
если так:
load: function() {
        GDownloadUrl("data.xml", function(data, responseCode) {
          // this здесь не указывает на Streets, т.е.
          // вызвать отсюда this.parseXML не получается.
          // Может есть способ?
        });
      },
      parseXML: function(data, responseCode) {
        //...
      }
Подскажите, пожалуйста, как же все-таки вызвать parseXML, чтобы this  ссылался на Streets и аргументы были бы "на месте".