function initList(listVal, listTxt, selectId)
{
	i=0;
	mySelect = document.getElementById(selectId);
	indice = mySelect.options.length;
	while(i < indice)
	{
		listVal[i] = mySelect.options[i].value;
		listTxt[i] = mySelect.options[i].text;
		i += 1;
	}
}

function showOption(selectId, i, listValues, listTexts)
{
	//document.getElementById('testDiv').innerHTML += "showing: " + listTexts[i] + "<br>";
	if (listTexts[i])
	{
		if (document.all) //IE
			document.getElementById(selectId).add(new Option(listTexts[i], listValues[i]));
		else //FF
			document.getElementById(selectId).appendChild(new Option(listTexts[i], listValues[i]));
	}
}

function hideOption(selectId, i, listValues, listTexts)
{
	//document.getElementById('testDiv').innerHTML += "hiding: " + listTexts[i] + "<br>";
	document.getElementById(selectId).remove(i);
}

function hideAll(selectId, indice, listValues, listTexts)
{
	for (i = indice - 1; i >= 0; i -= 1)
		hideOption(selectId, i, listValues, listTexts);
}

function showAll(selectId, indice, listValues, listTexts)
{
//Ancienne version qui show/hide
	/* i=0;
	while(i < indice)
	{
		showOption(selectId, i);
		++i;
	} */

//nouvelle version qui domise
	i=0;
	hideAll(selectId, indice, listValues, listTexts);
	while(i < indice)
	{
		showOption(selectId, i, listValues, listTexts);
		i += 1;
	} 
}

function normalize_string(str)
{
	var nom = str;
	nom = nom.toLowerCase();
	nom = nom.replace('_', ' ');
	nom = nom.replace('-', ' ');
	nom = nom.replace('é', 'e');
	nom = nom.replace('è', 'e');
	nom = nom.replace('à', 'a');
	nom = nom.replace('ö', 'o');
	nom = nom.replace('ù', 'u');
	nom = nom.replace('û', 'u');
	nom = nom.replace('ô', 'o');
	nom = nom.replace('ë', 'e');
	nom = nom.replace('ê', 'e');
	nom = nom.replace('ç', 'c');
	return nom;
}

function is_inside2(val, i, listTexts)
{
	if (!listTexts[i])
		return false;
	var nom = normalize_string(listTexts[i]);
	var rech = normalize_string(val);

	if (nom.indexOf(rech, 0) != -1)
		return true;
	return false;
}

function is_inside(val, i, listTexts)
{
	//val : valeur entree dans le champ de recherche
	// i : indice dans les tableaux des fichiers
	var glob=true;
	tab = val.split(' ');
	for (j = 0; j < tab.length; j += 1)
	{
		if (is_inside2(tab[j], i, listTexts) == false)
			glob = false;
	}
	return glob;
}

function refreshNames2(val, selectId, div, textField, listValues, listTexts)
{
	var tmp2 = document.getElementById(textField).value;
	if (val == tmp2)
	{
		i = 0;
		results = 0;
		indice = listValues.length;
		if (val != "" && val.length != 0)
		{
			hideAll(selectId, indice, listValues, listTexts);
			for (i = indice; i >= 0; i -= 1)
			{
		//		document.getElementById('testDiv').innerHTML += "comparing: " + val + " to: " + listTexts[i] + "<br>";
				if (is_inside(val, i, listTexts) == true)
				{
			//		document.getElementById('testDiv').innerHTML += "comparing: match !<br>";
					showOption(selectId, i, listValues, listTexts);
					results += 1;
					
				}
			}
		}
		else
		{
			showAll(selectId, indice, listValues, listTexts);
			results = document.getElementById(selectId).options.length;
		}
		if (div != "")
		{
//			if (results > 1)
//				document.getElementById(div).innerHTML = '(' + results + ')';
//			else
				document.getElementById(div).innerHTML = '<b>(' + results + ')</b>';
		}
	}
}


/* val est la valeur du champ de texte
** selectId est l'id du select(généré a partir du numéro de question)
** div est le nom du div qui contient le nombre de résultats
** (généré a partir du numéro de question)
** textField est l'id du champ de recherche (généré a partir du num�ro de question)
** listValues est la liste des values du menu déroulant
** listTexts est la liste des textes ------------------
** delay.., 
*/
function refreshNames(val, selectId, div, textField, delay, listValues, listTexts)
{
	setTimeout('refreshNames2(\'' + val + '\', \'' + selectId + '\', \'' + div + '\', \'' + textField + '\', ' + listValues + ', ' + listTexts + ');', delay);
}
