function trouveElement(id) { return document.getElementById(id); } function obtenirLAttribut(element, attribut) { return element.getAttribute(attribut); } function definirLAttribut(element, attribut, valeur) { return element.setAttribute(attribut, valeur); } function changeDeSens(window, traductions) { var element = trouveElement('mots') var langueDesClefsActuelle = obtenirLAttribut(element, 'data-langue'); var autre = {'anglais': 'francais', 'francais': 'anglais'}; var langueDesClefsNouvelle = autre[langueDesClefsActuelle]; definirLAttribut(element, 'data-langue', langueDesClefsNouvelle); construitListe(window, traductions) } function construitListe(window, traductions) { var document = window.document; document.creeElement = document.createElement; var vrais_mots = traductions["vrais mots"]; var faux_mots = traductions["faux mots"]; function cache(e) { e.style.visibility = 'hidden'; } function montre(e) { e.style.visibility = 'visible'; } var tous_les_mots = vrais_mots.concat(faux_mots); var i; var lien = trouveElement('lienChange'); var index = trouveElement('index'); var mots = trouveElement('mots'); var langueDesClefs = obtenirLAttribut(mots, 'data-langue'); var lettres = new Array(26); var noeud; function enleveLesAccents(s) { s = s.replace("é", "e"); return s; } var lienFR = 'Français'; var lienANG = 'Anglais'; var lienSource = lienFR; var lienDestination = lienANG; if (langueDesClefs === 'anglais') { lienSource = lienANG; lienDestination = lienFR; } lien.innerHTML = lienSource + ' → ' + lienDestination; mots.innerHTML = ''; index.innerHTML = ''; for (i = 0; i < 26; ++i) { var lettre = String.fromCharCode(65 + i); lettres[i] = noeud = document.creeElement('div'); noeud.className = 'groupe-lettre'; noeud.enfants = 0; var ancre = document.creeElement('a'); ancre.name = lettre; noeud.appendChild(ancre); var titre = document.creeElement('h3'); titre.innerHTML = lettre; noeud.appendChild(titre); } // renvoie un nombre entre 0 et 25 function indiceDeLaPremiereLettre(m) { var motSansAccent = enleveLesAccents(m); var motEnMinuscule = motSansAccent.toLowerCase(); var resultat = motEnMinuscule.charCodeAt(0) - "a".charCodeAt(0); return resultat; } for (i = 0; i < tous_les_mots.length; ++i) { var mot = tous_les_mots[i]; noeud = document.createElement('div'); noeud.className = 'definition'; var spanAnglais = ' ' + mot.anglais + ' '; var spanFrancais = '' + mot.francais + ''; var spanClef = spanFrancais; var spanValeur = spanAnglais; var indice = indiceDeLaPremiereLettre(mot.francais); if (langueDesClefs === 'anglais') { spanClef = spanAnglais; spanValeur = spanFrancais; indice = indiceDeLaPremiereLettre(mot.anglais); } noeud.innerHTML = '· ' + spanClef + ' : ' + spanValeur; lettres[indice].appendChild(noeud); lettres[indice].enfants++; } for (i = 0; i < 26; ++i) { var lettre = String.fromCharCode(65 + i); noeud = lettres[i]; if (noeud.enfants > 1) { mots.appendChild(noeud); var lettreIndex = document.creeElement('a'); lettreIndex.href = '#' + lettre; lettreIndex.innerHTML = lettre; index.appendChild(lettreIndex); } } }