function tfomoteur_initialiser(){
	var blocs = $$('li.tfoMoteurLiPere');
	var nbBlocs = blocs.length;
	// pour chaque bloc moteur
	for(i=0; i<nbBlocs; i++){
		var elTitreBloc = blocs[i].getElementsByTagName('span')[0];
		// on valorise le tableau des objets bloc
		tfo_blocs_moteur.push({titre:elTitreBloc.innerHTML, id:blocs[i].id});
		// un ecouteur sur le titre du bloc
		Event.observe(elTitreBloc, "click", tfomoteur_onClickTitreBloc);
		
		// selon le type de input
		var nodeListInput = blocs[i].getElementsByTagName('input');
		var nbInput = nodeListInput.length;
		// pour chaque input
		// on commence a 1 car le premier est un hidden
		for(j=1; j<nbInput; j++){ 
			// un ecouteur sur le input
			Event.observe(nodeListInput[j], "click", tfomoteur_onClickInput);					
		}
		
		var nodeListSelect = blocs[i].getElementsByTagName('select');
		var nbSelect = nodeListSelect.length;
		// pour chaque select
		for(j=0; j<nbSelect; j++){ 
			// un ecouteur sur le input
			Event.observe(nodeListSelect[j], "change", tfomoteur_onClickInput);					
		}


		
		//on reecrit le titre du bloc
		tfomoteur_refreshTitreBloc(blocs[i].id);
	}
}

function tfomoteur_onClickInput(event){
	var target = event.target || event.srcElement;
	// a quel bloc il appartient
	var liBloc = target.parentNode.parentNode.parentNode;	
	//alert(liBloc.id);
}


function tfomoteur_refreshTitreBloc(idBloc, effacer){
	//alert("tfomoteur_refreshTitreBloc " + idBloc);
	var liBloc = $(idBloc);
	
	// construire le resume des criteres pour ce bloc
	var resume = '';
	if(!effacer){
		var nodeListInput = liBloc.getElementsByTagName('input');
		var nbInput = nodeListInput.length;
		
		// pour chaque input
		// on commence a 1 car le premier est un hidden
		for(j=1; j<nbInput; j++){ 
			switch(nodeListInput[j].type){
				case 'text':
					if(nodeListInput[j].value!=''){
						resume += nodeListInput[j].value + ', ';
					}
					break;
				case 'checkbox':
					if(nodeListInput[j].checked){
						resume += nodeListInput[j].title + ', ';
					}
					break;
			}
		}	
		
		var nodeListInput = liBloc.getElementsByTagName('option');
		var nbInput = nodeListInput.length;
		// pour chaque input
		for(j=0; j<nbInput; j++){ 
			if(nodeListInput[j].selected){
				resume += nodeListInput[j].innerHTML + ', ';
			}
		}	
		
		resume = resume.substr(0, resume.length -2);
	}
	// ecrire le resume
	var elTitreBloc = liBloc.getElementsByTagName('span')[0];
	var indexBloc = tfomoteur_getBlocIndex(liBloc.id);
	elTitreBloc.innerHTML = tfo_blocs_moteur[indexBloc].titre + '<span>' + resume + '</span>';
	
}


function tfomoteur_onClickTitreBloc(event){
	var elt = Event.findElement(event, 'li.tfoMoteurLiPere');
	var inputs = elt.getElementsByTagName('input');
	var blocs = $$('li.tfoMoteurLiPere');
	var nbBlocs = blocs.length;
	// on change les styles
	for(i=0; i<nbBlocs; i++){
		// si on est sur le bloc clique
		if(blocs[i].id == elt.id){
			// si le bloc est actif
			if($(blocs[i].id).hasClassName('actif')){
				// on le passe inactif
				$(blocs[i].id).removeClassName('actif');
				$(blocs[i].id).addClassName('inactif');
				// on affiche le resume
				tfomoteur_refreshTitreBloc(blocs[i].id, false);
			}else{
				// on le passe actif
				$(blocs[i].id).removeClassName('inactif');
				$(blocs[i].id).addClassName('actif');
				// on masque le resume
				tfomoteur_refreshTitreBloc(blocs[i].id, true);
			}
		}else{
			// on met tous les autres inactifs
			$(blocs[i].id).removeClassName('actif');
			$(blocs[i].id).addClassName('inactif');		
			// on affiche le resume
			tfomoteur_refreshTitreBloc(blocs[i].id, false);			
		}
	}
}


function tfomoteur_getBlocIndex(idBloc){
	var nbBlocs = tfo_blocs_moteur.length;
	for(i=0; i<nbBlocs; i++){
		if(idBloc==tfo_blocs_moteur[i].id){
			return i;
		}
	}
	return -1;
}

// vince 11-08

function tfo_searchSubmit(myFormName,maClasseMoteur,maClasseListe)
{
	var formObject=document.getElementById(myFormName);
	var tfoInstName=myFormName.substring(0,myFormName.lastIndexOf('FormMoteurRecherche')); 
	var myGcGet=tfo_raccourciChaineFormulaire(myFormName, tfoInstName);
	var tmpMyUrl=window.location.href.substring(0,window.location.href.lastIndexOf('?'));
	window.location.href=tmpMyUrl+"?"+tfoInstName+"[gC]=|"+maClasseMoteur+"|"+maClasseListe+myGcGet+'#tfo_liste';
	//formObject.submit(); //voir la requete non compressée
}

function tfo_raccourciChaineFormulaire(myFormName, tfoInstName)
{
	var formObject=document.getElementById(myFormName);
	var nomBlocMoteurEnCours='';
	var myCompressedGet='';
	var indexInterneBloc=0;
	var nElementsPrecedentsBlocs=0
	//alert(tfoInstName);
	
	for (var i=0; i <formObject.elements.length; i++) {
		
		var typeEntree=formObject.elements[i].type;
;
		//alert(typeEntree);

		if(formObject.elements[i].name.indexOf(tfoInstName)==0 && typeEntree!='button')
		{
		
			var nomBlocMoteur=tfo_extraitNomCrit(formObject.elements[i].name,tfoInstName);
			var myCValue='';
			indexInterneBloc=i-nElementsPrecedentsBlocs;

			switch (typeEntree) {
				
				case 'checkbox':
					if(formObject.elements[i].checked==true){myCValue='-' + indexInterneBloc;}
					break;
					
					case 'radio':
					if(formObject.elements[i].checked==true){myCValue='-' + indexInterneBloc;}
					break;
				
				case 'select-one' :
					for (var j=0; j <formObject.elements[i].options.length; j++)
					{
						if(formObject.elements[i].options[j].selected==true){myCValue='-' + (j+1);}
					}
					break;
				
				case 'select-multiple' :
					for (var j=0; j <formObject.elements[i].options.length; j++)
					{
						if(formObject.elements[i].options[j].selected==true){myCValue='-' + (j+1);}
					}
					break;
					
				case 'hidden' :
					//myCompressedGet+=','+formObject.elements[i].value;
					break;
					
				case 'text' :
					myCValue='-TT' + formObject.elements[i].value;
				break;
				
			default:
				break;
				
			}
			
			if(nomBlocMoteur!=nomBlocMoteurEnCours)
			{
				nomBlocMoteurEnCours=nomBlocMoteur;
				nElementsPrecedentsBlocs=i;
				myCompressedGet+='|';
			}
			myCompressedGet+=myCValue;
			
		}
	}
	
	return myCompressedGet;
}

function tfo_extraitNomCrit(stringArray, nomInstTfo)
{
	stringArray=stringArray.substring(nomInstTfo.length+1,stringArray.length); 
	stringArray=stringArray.substring(0,stringArray.indexOf("[")-1); 
	return stringArray; 
}

function tfo_addContext(nomInstTfo , linkObject, myListIndex)
{
	var myValue=eval(nomInstTfo+'_monContexte');
	linkObject.href+='?'+nomInstTfo+'[gC]='+myValue+'&tfo[page]='+(myListIndex+1);
	//alert(myValue);
}


function tfo_resetOnLoad(tfoInstName)
{
	//utile pour navigation historique
	var formObject=document.getElementById(tfoInstName+'FormMoteurRecherche');
	formObject.reset();
}


// tableau des blocs moteurs
var tfo_blocs_moteur = [];
//permet d'avoir un bouton "Tous" pour cocher toutes les communes par exemples ou tous les types d'évènements
var checkedStates = new Array;
function selectAllInput(f){
	var l=document.forms.tfoFormMoteurRecherche;
	var j=l.elements;
	var e=j.length;
	var h=new Array();
	var k;
	if(checkedStates[f]=="undefined" || checkedStates[f]=="checked"){
		k="";
	}
	else{
		k="checked";
	}
	for(var g=0;g<e;g++){
		if(j[g].name==f){
			h.push(j[g]);
			j[g].checked=k;
		}
	}
	checkedStates[f]=k;
}

