/*
SCRIPT de recherche dans une liste déroulante par robloche
Récupéré sur http://robloche.free.fr
Modifié par Clip Multimédia pour permettre la prise en compte d'une arborescence des options par +/-
*/

// Détection du navigateur (enfin, presque)
var browser   = navigator.userAgent;
var isOpera   = (browser.indexOf("Opera") != -1);
var isIE      = (!isOpera && browser.indexOf("MSIE") != -1);
var isMozilla = (!isOpera && !isIE && browser.indexOf("Mozilla") != -1);

var deb = "";
var timer;
var lastChoice = 0;
function checkKey(ev)
{
	// Mise à zéro du timer
	clearTimeout(timer);
	
	// récupération de la touche
	var c = "";
	if(ev && ev.which) c = ev.which;
	if(isIE)           c = window.event.keyCode;
	
	// Test des caractères du pavé numérique 0123456789 pour les références comprenant des chiffres
	if (c >= 96 && c <= 105)
	{
		var pavenumerique=c-96;
		deb+=pavenumerique;
	}
	else
	{
		// Transformation du code de la touche en lettre minuscule
		deb += String.fromCharCode(c).toLowerCase();
	}
	// Récupération de l'objet à tester
	var s = document.forms["accesproduits"].elements["ChoixProduit"];
	// Pour chacune des options à tester
	for(var i=0; i<s.options.length; ++i)
	{
		// Récupération du texte de l'option
		textecourant=s.options[i].text;
		// Suppression de l'arborescence -/+
		testplus = textecourant.lastIndexOf("+");
		testmoins = textecourant.lastIndexOf("-");
		if (testplus != -1)
		{
			textecourant=textecourant.substr(testplus+2,textecourant.length);
		}
		else if (testmoins != -1)
		{
			textecourant=textecourant.substr(testmoins+2,textecourant.length);
			
		}
		// Test de l'option : si le début de l'option est strictement égal aux lettres saisies
		if(textecourant.substr(0,deb.length).toLowerCase() == deb)
		{
			// Sélection de l'option trouvée
			s.selectedIndex = i;
			lastChoice      = i;
			// Mise à jour du timer : 1 seconde pour taper une nouvelle lettre
			timer = setTimeout('resetString()', 1000);
			return;
		}
	}
	// aucune option ne recorrespond : remise à jour du timer
	timer = setTimeout('resetString()', 500);
	// l'option pré-selectionnée reste sélectionnée
	s.selectedIndex = lastChoice;
}

function resetString()
{
	deb = "";
}
