L10N = function(elm) {
	var me = this;
	var localeInfo = null;
	
	me.locale = null;
	me.elm = elm;
	me.url = 'api/l10n/';
	

	me.init = function() {
	}
	
	me.destroy = function() {
	}
	
	me.onLocaleChange = function(e) {
		var locale = $(e.target).val();

		me.setLocale(locale);
	}

	me.setLocale = function(locale, localeSetCallback) {
		me.replaceLocale(locale, localeSetCallback);
	}
	
	me.replaceLocale = function(locale, localeSetCallback) {
		$.getJSON(me.url + 'getall', { locale: locale }, function(result) {
			localeInfo = result;
			
			me.elm.find('.l10n').each(function(k, obj) {
				$obj = $(obj);
				contentKey = $obj.attr('l10n:content');
				//attrKey = $obj.attr('l10n:attribute');
				
				if (result[contentKey] != null) {
					$obj.html(result[contentKey]);
				}
			});

			me.locale = locale;
			
			if (localeSetCallback != null) {
				localeSetCallback();
			}
		});
	}
	
	me.get = function(name) {
		if (localeInfo != null && localeInfo[name] != null) {
			return localeInfo[name];
		} else {
			return null;
		}
	}
	
	me.init();
}