﻿var idioma = "ES";
var idiomaModulo = "inicio";

/*
	Modulo de Traduccion
*/
var traductor = function(cIdioma, cModulo)
{
	//alert("En el traductor");
	// Volver al numero de version fijo para realizar Cache de los archivos de palabras
	//var idiomaVersion = Math.random(); // "0.2";

	/*
		Reemplazo del texto
	*/
	var formatJSON = function(texto, pReemplazos)
	{
		var str = texto;

		for(var pReemplazo in pReemplazos)
		{
			var re = new RegExp('\\{' + (pReemplazo) + '\\}', 'gm');
			str = str.replace(re, pReemplazos[pReemplazo]);
		}

		return str;
	}

	/*
		ES: Idioma por defecto
	*/
	
		var palabra = {}; // Contenedor de palabras/fraces

		/*
			Primero llama al archivo de traduccion general y luego al del modulo
			por si en el del modulo se desea cambiar alguna palabra segun el contexto
		*/

		try
		{
			/*
				Inicializa el archivo de palabras en base al idioma (general)
			*/
			jQuery.ajax(
				{
					type: "GET",
					async: false,
					url: "idioma-"+idioma+".txt",
					cache: true,
					dataType:"json",
					success: function(json)
						{
							palabra = jQuery.extend(json, palabra);
						}
				}
			);
		}
		catch(ex) { alert (ex.message);}

//		try
//		{
			/*
				Inicializa el archivo de palabras en base al idioma y al modulo
			*/
//			if (typeof(cModulo)!="undefined")
//			{
//				jQuery.ajax(
//					{
//						type: "GET",
//						async: false,
//						url: "../idiomas/idioma-"+idioma+".txt",
//						cache: true,
//						dataType:"json",
//						success: function(json)
//							{
//								palabra = jQuery.extend(json, palabra);
//							}
//					}
//				);
//			}
//		}
//		catch(ex) { alert (ex.message);}

		return function(texto, reemplazar)
		{
			try
			{
				reemplazar = ((typeof(reemplazar) == "undefined"))?{}:reemplazar;
				if (typeof(palabra[texto]) == "undefined")
					return formatJSON(texto, reemplazar);			// Retorna la texto en el idioma por defecto si no existe en el idioma traducido
				else
					return formatJSON(palabra[texto], reemplazar);	// Retorna el texto traducido
			}
			catch(ex)
			{
				return texto;
			}
		}
};
