/**
 * uutuu resource
 *
 * namespace: uutuu
 */

uutuu.Namespace("uutuu");

uutuu.Export("Resource");

uutuu.Resource = uutuu.Class({
name: "uutuu.Resource",
construct:
	function () {
		for (className in uutuu.Classes) {
			uutuu.Classes[className].prototype.resource = this;
		}
		this.lang = this.Resource.LANG_DEFAULT;
		this.library = {};
	},
methods: {
	entry: function(category, code) {
		return this.langEntry(this.lang, category, code);
	},
	langEntry: function(lang, category, code) {
		if (!this.library[lang])
			return "";

		if (category && this.library[lang][category])
			return this.library[lang][category][code];
		else
			return this.library[lang][code];
	},
	use: function(lang) {
		if (this.library[lang])
			this.lang = lang;
	},
	register: function(lang, entries) {
		this.library[lang] = entries;
	}
},
statics: {
	LANG_DEFAULT: "en",
	getResource: function() {
		if (!uutuu.Resource.prototype.resource)
			uutuu.Resource.prototype.resource = new uutuu.Resource();
		return uutuu.Resource.prototype.resource;
	},
	register: function(lang, entries, apply) {
		var resource = this.getResource();
		resource.register(lang, entries);
		if (apply)
			resource.use(lang);
	}
}
});
