// Init
var texts = {en:{}};

// Détection
var lang = false;

// Détection de locale
function detect_locale()
{
	var language = (navigator.language) ? navigator.language : navigator.userLanguage;
	if (language)
	{
		for (var thelang in texts)
		{
			if (!lang)
			{
				lang = thelang;
			}
			
			if (language.indexOf(thelang) > -1)
			{
				lang = thelang;
				break;
			}
		}
	}
}

// Obtention d'un texte traduit
function getLocaleText(code)
{
	if (!lang)
	{
		detect_locale();
	}
	
	return texts[lang][code] ? texts[lang][code] : code;
}

// Changement de langue
function changeLocale(newLang)
{
	if (texts[newLang])
	{
		// Mémorisation
		lang = newLang;
		
		// Titre de la page
		var pageTitle = getLocaleText('page-title');
		if (!$.browser.msie && pageTitle != 'page-title')
		{
			$('title').text(pageTitle);
		}
		
		$('[class*="lang-"]').each(function(i)
		{
			// Récupération de la classe de langue
			var element = $(this);
			var classes = element.attr('className').split(' ');
			
			for (var i = 0; i < classes.length; ++i)
			{
				if (classes[i].substr(0, 5) == 'lang-')
				{
					// Textes
					var id = classes[i].substring(5);
					var newText = getLocaleText(id);
					element.html(newText);
					
					// Titre
					var title = element.attr('title');
					if (title && title.length > 0)
					{
						var newTitle = getLocaleText(id+'-title');
						if (newTitle == id+'-title')
						{
							newTitle = newText;
						}
						element.attr('title', newTitle);
					}
					
					break;
				}
			}
		});
		
		// Fonction de callback
		if (onChangeLocale)
		{
			onChangeLocale();
		}
	}
}
