var GeoAPI = new Object();

GeoAPI.getLocation = function(photoid,callback) {

    var params = { method: 'flickr.photos.geo.getLocation',
	photo_id: photoid
    };
    var url = 'http://flickr.com/services/rest/?' + FlickrAPI_sign(params);

    showLoadingMessage('Call Flickr GeoAPI ...');
    GM_xmlhttpRequest({
	method: 'GET',
	url: url,
	headers: {
	    'User-agent': 'Mozilla/4.0 (compatible) Yuan.CC Maps',
	    'Accept': 'application/atom+xml,application/xml,text/xml,text/plain'
	},
	onload: function(responseDetails) {
	    hideLoadingMessage();
	    var i,id;
	    var parser = new DOMParser();
	    var dom = parser.parseFromString(responseDetails.responseText, "application/xml");
	    var stat = dom.getElementsByTagName('rsp')[0].getAttribute('stat');
	    if( stat == 'ok' ) {
		var lat = 1*dom.getElementsByTagName('location')[0].getAttribute('latitude');
		var lon = 1*dom.getElementsByTagName('location')[0].getAttribute('longitude');

		photos[photoid].lat = lat;
		photos[photoid].lon = lon;
		photos[photoid].datum = 'WGS84';
		photos[photoid].marker = new Array();
		callback(photoid,lat,lon);
	    }
	}
    });
}
