// Routines de gestion du lexique : ouverture / fermeture des définition, scroll du slider, atteinte d'une 1ère lettre

// Ouverture / fermeture d'une définition + MAJ du slider
// on positionne la définition ouverte en haut de la fenêtre
var lexique_last=-1		// Nr de la définition ouverte (1..n), -1 ->aucune
function lexique(nb) {
	var	lx_off=lexique_last==-1? '' : lexique_last,
		lx_on=nb,
		modif=false

	if(lx_on==lx_off) lx_on=''
	if(lx_off) {
		modif=true;
		document.getElementById('lx-'+lx_off).style.display='none';
		document.getElementById('lxa-'+lx_off).className='lexique-title';
		lexique_last=-1
	}
	if(lx_on) {
		modif=true;
		document.getElementById('lx-'+lx_on).style.display='block';
		document.getElementById('lxa-'+lx_on).className='lexique-atitle';
		lexique_last=lx_on
	}
	if(modif) x_update('scroll2-slider',0,false,0,lx_on? 'lx-'+lx_on : -1)
	return false
}


// Atteinte de la première définition avec la lettre l
var lexique_letters=new Array()		// Mémo de la position de chaque première lettre
function lexique_l1(l) {
	if(lexique_last!=-1) lexique(lexique_last)		// Fermeture de l'éventuelle définition ouverte
	if(!lexique_letters) lexique_build()
}


// Construction du tableau des lettres, à placer dans l'élément where
var lx_model='<span class="lx_letter"><a href="#" onclick="return x_update(\'scroll2-slider\',0,false,0,\'lxt-[nb]\',0)">[letter]</a></span>'
function lexique_ldisplay(where) {
	if(!lexique_letters.length) lexique_build()
	var html=''; for(var i in lexique_letters) html+=lx_model.replace('[letter]',i).replace('[nb]',lexique_letters[i])
	document.getElementById(where).innerHTML=html
}



// Construction du tableau des offsets des premières lettres
function lexique_build() {
	var j=1,last='',nom
	while(document.getElementById('lxt-'+j)) {
		nom=document.getElementById('lxt-'+j).innerHTML
		if(nom && nom.charAt(0)!=last) {
			last=nom.charAt(0).toUpperCase()
			if(last=='Î') last='I';
			lexique_letters[last]=j
		}
		j++
	}
}


