function menusformulaire(val,id){
	
	nomForm =document.getElementById(id).form.name;
	nomForm = eval('document.'+nomForm);
	
	tmp = val.split("_");

	idquest=tmp[0];
	idpere=tmp[1]; 
	idval=tmp[2]; 
	idfils=tmp[3]; 
	pere = idquest+"_"+idval;
	
	//Utilisé pr récup l'id_quest si la val==0
	tmp2=id.split("_");
	midquest=tmp2[0];
	midpere=tmp2[1]; 
	midrep=tmp2[2];	
	mtyprep=tmp2[3];	


    for (var j = 0 ; j<nomForm.elements.length ; j++)
    {

	   //elem format:  idquest_idpere_idrep
		elem = nomForm.elements[j];
		elemid = elem.id
		tmp = elemid.split("_");
		
			//Pour la question en cours, on affiche ou cache les reponses
			if(tmp[0]==idquest){
				var elemfils=tmp[0]+"_"+tmp[1];
				if(elemfils == pere || elemid==id || elemfils==idquest+"_0"){
					elem.style.display='';
				}else{
					 elem.style.display='none';
					try{
						for(i=0;i<elem.options.length;i++){elem.options[i].selected=false;}
					}catch(e){elem.value="";}
				}			
			
			//Si la valeur du menu est vide on cache les menus fils
			}else if(val==0){
				if(midquest==tmp[0]){
					if(tmp[1]!=0) elem.style.display='none';
					try{
						for(i=0;i<elem.options.length;i++){elem.options[i].selected=false;elem.selectedIndex=0}
					}catch(e){elem.value="";}
				}
			}
	}
	
}

function verif_email(mail){
	var re=RegExp("^([a-zA-Z0-9_-])+([.]?[a-zA-Z0-9_-]{1,})*@([a-zA-Z0-9-_]{2,}[.])+[a-zA-Z]{2,3}$");
	if(!re.test(mail)){
		alert("Entrez une adresse e-mail valide");
		return false;
	}else{
		return true;
	}
}

function valide_form(from_oblig,myForm,obligPJ1,obligPJ2){
//from_oblig 	=0 -> Si le consultant modifie le formulaire, on ne loblige pas a saisir les champs oblig
//				=1 -> Sinon on oblige le candidat
	var cpt_alert=0;
	var ok=true;
	
	nomForm = eval('document.'+myForm);

	//On verifie que l'email soit bien formé
	if(!verif_email(document.getElementById(nomForm.email.value).value)) ok=false;
	
	for (var j = 0 ; j<nomForm.elements.length ; j++){
		elem = nomForm.elements[j];
		elemid = elem.id;
	
		tmp = elemid.split("_");
		idquest=tmp[0];
		idpere=tmp[1]; 
		idrep=tmp[2];	
		oblig=tmp[3];	
		mtyprep=tmp[4];
		
		//LES PJ
		if(elem.type!='hidden'){
			if(elem.style.display=='' && elem.value!=''){
				try{document.getElementById('td'+idquest).style.backgroundColor='';}catch(e){}
			}else if(elem.style.display=='' && elem.value==''){
				
				//Si le consultant modifie le formulaire, on ne loblige pas a saisir les champs oblig
				if(from_oblig==1){
					// Si la question est obligatoire ou si on a saisi ou selectionné la réponse1
					//et qu'il y a une reponse 2, il faut saisir la reponse 2
					if((oblig==1 || idpere!=0) && (elem.id!='pj1' && elem.id!='pj2' && elem.id!='cab' && elem.id!='poste')){
						ok=false
						try{
							document.getElementById('td'+idquest).style.backgroundColor='#C2BF32';				
						}catch(e){}
						if(cpt_alert==0){
							firstelemvide = elemid;
							cpt_alert++;
						}
					}	
				}
			}
		}
	}
	//LES PJ
	try{
		if(nomForm.pj1.value=='' && obligPJ1==1){
			ok=false;
			document.getElementById('tdpj1').style.backgroundColor='#C2BF32';
			if(cpt_alert==0){
				firstelemvide = nomFormj.pj1.id;
				cpt_alert++;
			}
		}
		if(nomForm.pj2.value=='' && obligPJ2==1){
			ok=false;
			document.getElementById('tdpj2').style.backgroundColor='#C2BF32';
			if(cpt_alert==0){
				firstelemvide = nomForm.pj2.id;
				cpt_alert++;
			}
		}
	}catch(e){}
	
	
	// VALIDATION
	if(ok){
		nomForm.action=nomForm.redir.value;
		try{	
			/*on renomme tous les éléments display:none avec 'nodisplay' devant le nom pour que le prog
			  qui recupere les elements ne traite pas ces éléments*/
			renommeElem(myForm);
			try{nomForm.valider.disabled=true;}catch(e){}
			nomForm.submit();
		}catch(e){alert("Vous devez valider le formulaire pour que vos informations soient prises en compte.")}
	}else{		
		alert('Veuillez saisir tous les champs obligatoires.');
		document.getElementById(firstelemvide).focus();	
	}
	
	
}

function renommeElem(myForm){
	
	nomForm = eval('document.'+myForm);
	/*on renomme tous les éléments display:none avec 'nodisplay' devant le nom pour que le prog
	qui recupere les elements ne traite pas ces éléments*/
	for (var j = 0 ; j<nomForm.elements.length ; j++){
		elem = nomForm.elements[j];
		
		if(elem.style.display=='none'){elem.name='nodisplay'+elem.name;elem.id='nodisplay'+elem.id;}
	}
}


function affecteValeursMenu(champs,val){
		dest=document.getElementById(champs);
		k = dest.options.length;
		for(i=0;i<k;i++){
			if(dest.options[i].value == val) {
				dest.options[i].style.backgroundColor='#C2BF32';
				dest.options[i].selected=true;
			}
		}
}

// Pour la recherche on a besoin de selec plrs valeurs d1 menu.
// si on selectionne + de 1 elemen, on cache les fils
function compteValSelect(dest){
	k = dest.options.length;
	cpt=0;
	//Compte le nombre d'elem selectionné dans le menu
	for(i=0;i<k;i++){
		if(dest.options[i].selected==true) cpt++;	
	}
	
	nomForm =document.getElementById(dest.id).form.name;
	nomForm = eval('document.'+nomForm);
	
	val=dest.value;
	id=dest.id;
	tmp = val.split("_");
	pere = tmp[0]+"_"+tmp[2];
	
	tmp2=id.split("_");
	midquest=tmp2[0];

	// Cache les menus fils si le nombre d'elem séléctionné(cpt) > 1
	for (var j = 0 ; j<nomForm.elements.length ; j++){

	   //elem format:  idquest_idpere_idrep
		elem = nomForm.elements[j];
		elemid = elem.id
		tmp = elemid.split("_");
		var elemfils=tmp[0]+"_"+tmp[1];

		if(midquest==tmp[0] && cpt>1 && elem.id!=id){
			if(tmp[1]!=0){
				elem.style.display='none';
				try{
					for(i=0;i<elem.options.length;i++){elem.options[i].selected=false;elem.selectedIndex=0}
				}catch(e){elem.value="";}
			}
		}
	}
	return cpt;
}


// Pour le formulaire sur le site du client on recup un param 'poste' et on affecte la valeur 
// au champ hidden poste du formulaire
function recupParamUrl(paramARecup,myForm){
	var lesParams = window.location.search.substr(1,window.location.search.length);

	tmp = lesParams.split("&");
	for (var j=0;j<tmp.length;j++){
		param=tmp[j];
		tmp2=param.split("=");
		leParam=tmp2[0];
		laVal=tmp2[1];
		//Ici leParam='poste' ou 'ref'
		if(leParam==paramARecup){
			champ=eval('document.'+myForm+'.'+paramARecup);
			champ.value = laVal;
		}
	}
	return;
}
