<!--
// @author 	: ryad hassine 

var cellulesDeRecherche = new Array();
var filtres = new Array();
var motsClefs;
var motsClefsForHighLight='';
var keyDownListener=false;
var nbrExecution=0;

function onKeyDownListener(){
	keyDownListener=true;
}

function initKeyDownListener(){
	keyDownListener=false;
	nbrExecution--;
}

function isKeyDown(){
	return keyDownListener;
}

function initRecherche(arg)
{
	if(arg.length==null) 
		cellulesDeRecherche[0] = arg;
	else 
		cellulesDeRecherche = arg;

}

function verifierInitialisation(listeTR){
	if (cellulesDeRecherche.length==0) 
	{
		for(var n=0;n<listeTR[0].getElementsByTagName('th').length;n++)
		{
			cellulesDeRecherche[n] = n+1;
		}
	}
}

function attendreInterruption(){
	// A revoir ......
	//while(isKeyDown()||(nbrExecution<=0));    
}


function ajouterFiltre(nbrBlock)
{
	filtres = new Array();
	var elements = document.getElementsByName("filtres_options");
	for(i=0;i<elements.length;i++)
	{
		if (elements[i].checked)
			filtres.push(elements[i].value);
	}
	
	if (motsClefs==null)	
		rechercher(" ",nbrBlock);
	else
		rechercher(motsClefs.join(" "),nbrBlock);
		
	//alert("#"+filtres.grep("akaet"));
	//alert(filtres.join(",")+":"+filtres.length);
}

function rechercher(chaine,nbrBlock)
{	
	nbrExecution++;
	attendreInterruption();
	motsClefs = chaine.split(" ");		

	for(var i=1;i<=nbrBlock;i++)
	{
		if (isKeyDown()) break;
		
		var idBlock = 'blockDeRecherche';
		if (i!=1) idBlock = idBlock+i;

		var table = document.getElementById(idBlock);

		if(table==null) continue;
		var listeTR = table.getElementsByTagName('tr');
		
		if(listeTR==null) continue;
		verifierInitialisation(listeTR);
		startAffichage(listeTR);
	}
	initKeyDownListener();
}

function extraireTexte(listeTD)
{
	var texteDeRecherche = '';		
	for(var j=0;j<cellulesDeRecherche.length;j++)
	{
		var noeud = listeTD.item(cellulesDeRecherche[j]-1);		
		if(noeud==null) continue;
		
		var tmpTXT = '';			

		if(document.all){tmpTXT = noeud.innerText;} 
		else{tmpTXT = noeud.textContent;}			
		
		texteDeRecherche += tmpTXT.toLowerCase();
	}
	return texteDeRecherche;
}

function contientChaineRecherche(texteDeRecherche){
	var trouve = true;		
	for(var k=0; k < motsClefs.length; k++)
	{
		if (isKeyDown()) break;
		var motClef = motsClefs[k];
		var conditionContientChaine = (texteDeRecherche.indexOf(motClef.toLowerCase()) > -1);

		var conditionContientFiltre = true;
		if (conditionContientChaine==true)
		{
			for(l=0;l<filtres.length;l++)
			{
				conditionContientFiltre = (texteDeRecherche.indexOf(filtres[l]) > -1);
				if (conditionContientFiltre==true) break;
			}
		}
					
		trouve = trouve && conditionContientChaine && conditionContientFiltre;
	}
	return trouve;
}

function getSearchTermForHighLight(){
	
	if (motsClefsForHighLight!='') return motsClefsForHighLight;
	
	for(var k=0; k < motsClefs.length; k++)
	{
		motsClefsForHighLight = motsClefsForHighLight + motsClefs[k];
		if (k<motsClefs.length) motsClefsForHighLight = motsClefsForHighLight + ' ';
	}
	return motsClefsForHighLight;	
}

function startAffichage(listeTR)
{
	// commencement ? 1 car 0 est le header d'un tableau
	for(var l=1;l<listeTR.length;l++)
	{						
		if (isKeyDown()) break;
		var listeTD = listeTR[l].getElementsByTagName('td');
		
		if (listeTD==null) continue;
		
		texteDeRecherche = extraireTexte(listeTD)
		//highlightSearchTerms(getSearchTermForHighLight(),listeTD)
		
		var ligne = listeTR[l];
		if (!contientChaineRecherche(texteDeRecherche)) ligne.style.display='none';
		else ligne.style.display='';
	}
}
-->

