/**
 * Objecto para disponibilizar strings traduzidas ao javascript
 *
 *  *  *  *  * *
 * PARAMETROS  *
 *  *  *  *  * * 
 * language: o identificador da linguagem, o valor é dependente do sistema usado
 *
 * fnReady: funcao a executar quando o objecto terminar de carregar
 *
 * options:
 	languageInputFile : ficheiro que devolverá um json no formato: nomeDoValor:valor
	paramName : nome do parametro a enviar ao ficheiro de input para que ele escolha a tradução a devolver
 *
 **/
var Lang = new Class(
{
	options :
	{
		languageInputFile : 'lang/language.php',
		paramName : 'cached'
	},
	Implements : [Options],
	initialize : function(fnReady, options)
	{
		this.setOptions(options);
		this.ready = false;	//flag para consulta que indica se o objecto está carregado ou não
		this.fnReady = fnReady;
		this.getContent();	//obter a tradução
	},
	getContent : function(language)
	{
		var a = new Request(
		{
			url:this.options.languageInputFile,
			method:'post',
			data:this.options.paramName+'=1',
			noCache : true,
			evalScripts : true,
			onComplete: function(result)
			{
				//linha mágica, transforma o resultado(tem que ser json) e junta-o ao this,
				//assim podemos referir obj como "lang.nomeDaLabel"
				Object.append(this,JSON.decode(result));
				this.ready = true;
				//caso se tenha passado uma callback, executa-a
				if (this.fnReady) this.fnReady();
			}.bind(this),
			evalScripts:true,
			//não assincrono - importantissimo, o carregamento das strings tem que estar pronto antes de tudo
			async:false
		}).send();
	}
});



function doChangeLang(locale)
{
	var a = new Request({
		url:'langhandler.php',
		method:'post',
		data: 'changeLang='+locale,
		evalScripts:true
	}).send();
	
}

