var monTexteATraduire = "";
var monTexteTraduit = "";

//On gère la langue à traduire
function traduire(maLangue){
	//On reset les variables
	monTexteATraduire = "";
	monTexteTraduit = "";

	if(maLangue == "francais"){
		//On va chercher le contenu du texte à traduire
		garderTexte("textFrancais");
		
		//On fait l'encodage des caractères
		traductionCecilien();
	}else if(maLangue == "cecilien"){
		//On va chercher le contenu du texte à traduire
		garderTexte("textCecilien");
	
		//On enlève la ponctuation de facebook
		monTexteATraduire = monTexteATraduire.replace("...","");	
		
		//On traite les sauts de lignes
		var sauts = new RegExp("[\n]", "g");
		monTexteATraduire = monTexteATraduire.replace(sauts,"¶ ");
		//monTexteATraduire = monTexteATraduire.replace("\r","¶ ").replace("\n","¶ ").replace("\r\n","¶ ").replace("\f","¶ ").replace("\s","¶ ");
		
		//On fait l'encodage des caractères
		traductionFrancais();
	}
	
	//On traite les saut
	var sauts = new RegExp("[¶]", "g");
	monTexteTraduit = monTexteTraduit.replace(sauts,"\r\n");
	
	
	//On affiche la traduction
	afficherTraduction(maLangue);
	
	return false
}

//On garde le texte
function garderTexte(monTextArea){
	monTexteATraduire = document.getElementById(monTextArea).value;
}

//On fait la première étape de traduction qui est d'encoder chaque caractère
function traductionCecilien(){
	//On déclare la variable de caractère
	var monCaractere = ""; 
	
	//On boucle chacun des caractères et pour chacun, on envoit un code différent dans la nouvelle chaine
	for(var i=0; i<monTexteATraduire.length; i++ ){
		//On prend le caractère de notre position dans la chaine et on l'encode
		monCaractere = monTexteATraduire.substr(i, 1);
		
		//On encode le caractères en minuscule et on l'ajoute à la chaine
		monTexteTraduit = monTexteTraduit + encoderCaractere(monCaractere.toLowerCase());
	}
}

//On fait la traduction du cécilien en francais
function traductionFrancais(){
	var mesGroupesCaracteres = new Array();
	
	//On divise le contenu en groupe selon les espaces
	mesGroupesCaracteres = monTexteATraduire.split(' ');
	
	for(var i=0; i<mesGroupesCaracteres.length; i++ ){
		//On prend le groupe et on le décode
		monTexteTraduit = monTexteTraduit + decoderCaractere(mesGroupesCaracteres[i]);
	}
}

//On encode un caractère pour la première étape
function encoderCaractere(caractere){
	switch (caractere) {
		case "a":
			return "oula ";
		break;
		case "à":
			return "lalaoulla ";
		break;	
		case "á":
			return "lalaouloula ";
		break;	
		case "â":
			return "lalaouloulla ";
		break;	
		case "b":
			return "laououou ";
		break;
		case "c":
			return "laoulaou ";
		break;
		case "ç":
			return "oulaoulala ";
		break;
		case "d":
			return "laouou ";
		break;
		case "e":
			return "ou ";
		break;
		case "é":
			return "oullalaou ";
		break;	
		case "è":
			return "oullaoula ";
		break;	
		case "ê":
			return "oullalala ";
		break;	
		case "f":
			return "ououlaou ";
		break;
		case "g":
			return "lalaou ";
		break;
		case "h":
			return "ouououou ";
		break;
		case "i":
			return "ouou ";
		break;
		case "î":
			return "ououlalaoula ";
		break;
		case "ï":
			return "ououlalaouou ";
		break;
		case "j":
			return "oulalala ";
		break;
		case "k":
			return "laoula ";
		break;
		case "l":
			return "oulaouou ";
		break;
		case "m":
			return "lala ";
		break;
		case "n":
			return "laou ";
		break;
		case "o":
			return "lalala ";
		break;
		case "ô":
			return "lalalaoula ";
		break;
		case "p":
			return "oulalaou ";
		break;
		case "q":
			return "lalaoula ";
		break;
		case "r":
			return "oulaou ";
		break;
		case "s":
			return "ououou ";
		break;
		case "t":
			return "la ";
		break;
		case "u":
			return "ououla ";
		break;
		case "û":
			return "ououlaoula ";
		break;
		case "v":
			return "ouououla ";
		break;
		case "w":
			return "oulala ";
		break;
		case "x":
			return "oulalaoula ";
		break;
		case "y":
			return "oulaououou ";
		break;
		case "z":
			return "lalaouou ";
		break;
		case "1":
			return "oulalalala ";
		break;
		case "2":
			return "ououlalala ";
		break;
		case "3":
			return "ouououlala ";
		break;
		case "4":
			return "ououououla ";
		break;
		case "5":
			return "ououououou ";
		break;
		case "6":
			return "laouououou ";
		break;
		case "7":
			return "lalaououou ";
		break;
		case "8":
			return "lalalaouou ";
		break;
		case "9":
			return "lalalalaou ";
		break;
		case "0":
			return "lalalalala ";
		break;
		case " ":
			return "oulla ";
		break;
		default: 
			return caractere + " ";
		break;
	}
}

//On encode un caractère pour la première étape
function decoderCaractere(caractere){
	switch (caractere) {
		case "oula":
			return "a";
		break;
		case "lalaoulla":
			return "à";
		break;	
		case "lalaouloula":
			return "á";
		break;	
		case "lalaouloulla":
			return "â";
		break;	
		case "laououou":
			return "b";
		break;
		case "laoulaou":
			return "c";
		break;
		case "oulaoulala":
			return "ç";
		break;
		case "laouou":
			return "d";
		break;
		case "ou":
			return "e";
		break;
		case "oullalaou":
			return "é";
		break;	
		case "oullaoula":
			return "è";
		break;	
		case "oullalala":
			return "ê";
		break;	
		case "ououlaou":
			return "f";
		break;
		case "lalaou":
			return "g";
		break;
		case "ouououou":
			return "h";
		break;
		case "ouou":
			return "i";
		break;
		case "ououlalaoula":
			return "î";
		break;
		case "ououlalaouou":
			return "ï";
		break;
		case "oulalala":
			return "j";
		break;
		case "laoula":
			return "k";
		break;
		case "oulaouou":
			return "l";
		break;
		case "lala":
			return "m";
		break;
		case "laou":
			return "n";
		break;
		case "lalala":
			return "o";
		break;
		case "lalalaoula":
			return "ô";
		break;
		case "oulalaou":
			return "p";
		break;
		case "lalaoula":
			return "q";
		break;
		case "oulaou":
			return "r";
		break;
		case "ououou":
			return "s";
		break;
		case "la":
			return "t";
		break;
		case "ououla":
			return "u";
		break;
		case "ououlaoula":
			return "û";
		break;
		case "ouououla":
			return "v";
		break;
		case "oulala":
			return "w";
		break;
		case "oulalaoula":
			return "x";
		break;
		case "oulaououou":
			return "y";
		break;
		case "lalaouou":
			return "z";
		break;
		case "oulalalala":
			return "1";
		break;
		case "ououlalala":
			return "2";
		break;
		case "ouououlala":
			return "3";
		break;
		case "ououououla":
			return "4";
		break;
		case "ououououou":
			return "5";
		break;
		case "laouououou":
			return "6";
		break;
		case "lalaououou":
			return "7";
		break;
		case "lalalaouou":
			return "8";
		break;
		case "lalalalaou":
			return "9";
		break;
		case "lalalalala":
			return "0";
		break;
		case "oulla":
			return " ";
		break;
		default: 
			return caractere;
		break;
	}
}

function afficherTraduction(maLangue){
	if(maLangue == "francais"){
		//On reset le textAera de destination
		document.getElementById("textCecilien").value = "";	
		
		//On donne la nouvelle valeur au textarea de destination
		document.getElementById("textCecilien").value = monTexteTraduit;	
	}else if(maLangue == "cecilien"){
		//On reset le textAera de destination
		document.getElementById("textFrancais").value = "";	
		
		//On donne la nouvelle valeur au textarea de destination
		document.getElementById("textFrancais").value = monTexteTraduit;	
	}
}
	
