

Top10.Map = Ext.apply(Ammap, {
	
    load: function(context, context_id, callback) {
        var data = this.findData(context, context_id);
        
        if (data) {
            this.loadMap(data, callback);
        } else {
            Ext.Ajax.request({
            	scope: this,
                url: Top10.APP_URL + 'widgets/map/ajax',
                params: {context: context, context_id: context_id},
                success: function(response) {
                    var r = Ext.decode(response.responseText);
                    Top10.Cache.add(this.getCacheKey(context, context_id), r);
                    this.loadMap(r, callback);
                }
            });
        }
    },
    
    loadMap: function(o, callback) {
    	if (o.success) {
            //this.setSettings(o.settings);
            this.setData(o.data);
    	}
    	
    	if (Ext.isDefined(callback)) {
            callback.call(this, o);
        }
    },
    
    getCacheKey: function(context, context_id) {
        return String.format('map_{0}#{1}', context, context_id);
    },
    
    findData: function(context, context_id) {
    	var key = this.getCacheKey(context, context_id);
        var data = Top10.Cache.get(key);
        
        return Ext.isDefined(data) ? (data.success ? data : false) : null;
    }
});