// pour la dispo
var dispo_IdNouveauBlocDispo='nouveauBlocDisponibilites';

function tfomoteur_initialiser(){

	//alert('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){
		
		// pour gere le specialUI dispo
		// RAG 15/12/2010
		if(idBloc=='DisponibilitesLiPere'){
			resume = liBloc.getElementsByTagName('input')[1].title;
		}else{
			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);
		}
	}
	
	// pour gere le specialUI dispo
	// RAG 15/12/2010	
	if(elt.id=='DisponibilitesLiPere'){
		//alert(elt.style.display)
		if(elt.hasClassName('inactif')){
			//alert('hide');
			$(dispo_IdNouveauBlocDispo).style.cssText = 'width:206px !important; display:none !important';	
		}else{
			//alert('show');
			$(dispo_IdNouveauBlocDispo).style.cssText = 'width:206px !important; display:block !important';
		}
	}else{
		//alert('hide for sure');
		if(dispo_IdNouveauBlocDispo!=''){
			if($(dispo_IdNouveauBlocDispo)){
				$(dispo_IdNouveauBlocDispo).style.cssText = 'width:206px !important; display:none !important';	
			}
		}
	}
	
}


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;
	//formObject.submit(); //voir la requete non compressee
}

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 = [];


