var geograffiti = geograffiti ||
{};
geograffiti.i18n = {
    resourceRoot: "/i18n",
    ready: false,
    stringTable: $H(),
    load: function(){
        this.initialize();
        this.exportSelf()
    },
    og: null,
    ogStrings: null,
    initialize: function(){
        var self = this;
        var url = self.resourceRoot + "/geograffiti-resources-en_us.json";
        new Ajax.Request(url, {
            onSuccess: function(transport){
                if (gg.debug) {
                    gg.log("i18n got onSuccess with %o", transport)
                }
                self.og = transport;
                var strings = transport.responseText.evalJSON(true);
                self.ogStrings = strings;
                if (strings) {
                    for (var key in strings) {
                        self.stringTable.set(key, strings[key])
                    }
                    self.ready = true
                }
            },
            onFailure: function(){
                if (gg.debug) {
                    gg.log("i18n fetch failure!")
                }
            }
        })
    },
    exportSelf: function(){
        geograffiti.$S = geograffiti.i18n.getString.bind(this)
    },
    getString: function(key){
        var self = this;
        return geograffiti.i18n.stringTable.get(key)
    }
};
geograffiti.i18n.load();

