/**
 * Class to manage the internationalization.
 **/
Vn.Locale =
{
	strings: {}
	
	,language: null
	
	,init: function ()
	{
		if (!this.language)
		{
			var language = navigator.language.substr (0, 2);
			this.language = language ? language : 'es';
		}
	}
	
	,load: function (path, callback)
	{
		this.init ();
	
		var file = 'locale/'+ this.language +'/'+ path +'.json'
			+'?'+ Vn.Cookie.get ('hedera_version');

		var request = new XMLHttpRequest ();
		request.open ('get', file, true);
		request.onreadystatechange = this.loadDone.bind (this, request, callback);
		request.send ();
	}
	
	,loadScript: function (path, callback)
	{
		this.init ();
		Vn.includeJs ('locale/'+ this.language +'/'+ path, callback);
	}

	,loadDone: function (request, callback)
	{
		if (request.readyState != 4)
			return;
			
		var success = false;

		if (request.status == 200)
		{
			try {
				this.add (eval ('('+ request.responseText +')'));
				success = true;
			}
			catch (e) {
				console.log ('Locale: %s', e);
			}
		}		

		callback (success);
	}
	
	,add: function (strings)
	{
		for (var stringId in strings)
			this.strings[stringId] = strings[stringId];
	}
}

function _(stringId)
{
	var string = Vn.Locale.strings[stringId];
	return (string) ? string : stringId;
}

