<!--


/* fonctionnenemt :

	Pour valider automatiquement un formulaire avec cette fonction, il faut:
	
	#1: appeler cette fonction dans le onSubmit d une balise form, exemple :
	onsubmit="return incJS_valideEntree(this,this.texteAutre1)
	+	avec this comme reference au formulaire
	+	avec this.texteAutre1 le champ a utiliser dans le cas de concatenation requise -- ce parametre est optionel
		il n est pas obligatoire d appeler la fonction avec ce 2eme parametre s il n y en a pas.
		
	#2: pour rendre un champ obligatoire, il suffit de mettre un attribut id a un champ
	la valeur de cet attribut doit avoir la phrase a afficher deamdant de remplir ce champ
	exemple : id="Merci de remplir ce champ nom"	
	
	#3: Attention dans le cas de radiobutton ou de checkbox, il suffit de ne mettre que un id par groupe d'options
	
	#4: Pour gérer les champs a concatener, il suffit de mettre "_concat" a la fin de chaque nom des champs a concatener.
	Ils seront automatiquement concatener dans le champ indiquer comme second parametre lors de l appel de la fonction
	
*/




function incJS_valideEntree(param_objForm,param_champAUtiliserPourConcatenation){

	var hiddenField = '';
	var objForm = param_objForm;

	if ( ( param_champAUtiliserPourConcatenation != null ) && (typeof param_champAUtiliserPourConcatenation == 'object') ) {
		param_champAUtiliserPourConcatenation.value = "";
	}
	
	var groupesDeCheckBoxDejaValide = new Array();
	
	for (var elementIndex = 0; elementIndex<objForm.length;elementIndex++) 
	{
		var tempObj = objForm.elements[elementIndex];
		var fieldValue;
		fieldValue = "";
		
		switch (objForm.elements[elementIndex].type)
		{
			case "select-one":
				fieldValue = tempObj.options[tempObj.selectedIndex].value;
				
				//si le champ a un id, alors on doit le valider
				if (tempObj.id != ''){
					if (incJS_avertirUsager(tempObj,fieldValue) == false){return false;}
				}
				
				//on concatene au besoin les champs comportant "_concat" dans le nom
				if ( tempObj.name.indexOf("_concat") > 0 ) {
					hiddenField = hiddenField + tempObj.name.replace(/_concat/gi,'') + ':' + fieldValue + '<br>';
				}
				break;
				
			case "text":
				fieldValue = tempObj.value;
				
				if (tempObj.name=="courriel"){
					if (!incJS_checkEmail(tempObj.value)) {
						if (incJS_avertirUsager(tempObj,"") == false){return false;}
					}
				}
				//si le champ a un id, alors on doit le valider
				if (tempObj.id != ''){
					if (incJS_avertirUsager(tempObj,fieldValue) == false){return false;}
				}
				
				//on concatene au besoin les champs comportant "_concat" dans le nom
				if ( tempObj.name.indexOf("_concat") > 0 ) {
					hiddenField = hiddenField + tempObj.name.replace(/_concat/gi,'') + ':' + fieldValue + '<br>';
				}
				break;
				
			case "file":
				fieldValue = tempObj.value;
				
				//si le champ a un id, alors on doit le valider
				if (tempObj.id != ''){
					if (incJS_avertirUsager(tempObj,fieldValue) == false){return false;}
				}
				
				//on concatene au besoin les champs comportant "_concat" dans le nom
				if ( tempObj.name.indexOf("_concat") > 0 ) {
					hiddenField = hiddenField + tempObj.name.replace(/_concat/gi,'') + ':' + fieldValue + '<br>';
				}
				break;
				
			case "textarea":
				fieldValue = tempObj.value;
				
				//si le champ a un id, alors on doit le valider
				if (tempObj.id != ''){
					if (incJS_avertirUsager(tempObj,fieldValue) == false){return false;}
				}
				
				//on concatene au besoin les champs comportant "_concat" dans le nom
				if ( tempObj.name.indexOf("_concat") > 0 ) {
					hiddenField = hiddenField + tempObj.name.replace(/_concat/gi,'') + ':' + fieldValue + '<br>';
				}
				break;
				
			case "radio": 
				
				var radioObjLength = eval("param_objForm."+tempObj.name+".length");
				var radioCollectionObj = eval("param_objForm."+tempObj.name);
				
				var groupeDejaTraite = false;
				var NomDuGroupeDeRadioButtons = radioCollectionObj[0].name;
				
				
				
				//on verifie si le groupe a deja ete traite
				for (var intloop = 0; intloop < groupesDeCheckBoxDejaValide.length; intloop++)
				{
				
					if (groupesDeCheckBoxDejaValide[intloop] == NomDuGroupeDeRadioButtons){
						groupeDejaTraite = true;
					}
				}
				
				//si le groupe n a jamais ete traite on le traite
				if ( groupeDejaTraite == false){				
					for (var i = 0; i < radioObjLength; i++){
						if (radioCollectionObj[i].checked) {
							fieldValue = radioCollectionObj[i].value;
							
							//on concatene au besoin les champs comportant "_concat" dans le nom
							if ( tempObj.name.indexOf("_concat") > 0 ) {
								hiddenField = hiddenField + tempObj.name.replace(/_concat/gi,'') + ':' + fieldValue + '<br>';
							}
							
						}
					}
					
					//si le champ a un id, alors on doit le valider
					if (tempObj.id != ''){
						if (incJS_avertirUsager(tempObj,fieldValue) == false){return false;}
					}
					
					groupesDeCheckBoxDejaValide.push(NomDuGroupeDeRadioButtons);
				}
				
				
				

				
				break;
				
			case "checkbox":
				
				var checkboxCollectionObj = eval("param_objForm."+tempObj.name);
				var checkboxObjLength = checkboxCollectionObj.length;
				if (typeof(checkboxObjLength) === 'undefined') break;

				var groupeDejaTraite = false;
				var NomDuGroupeDeCheckbox = checkboxCollectionObj[0].name;
				
				
				//on verifie si le groupe a deja ete traite
				for (var intloop = 0; intloop < groupesDeCheckBoxDejaValide.length; intloop++)
				{
					if (groupesDeCheckBoxDejaValide[intloop] == NomDuGroupeDeCheckbox){
						groupeDejaTraite = true;
					}
				}
				
				//si le groupe n a jamais ete traite on le traite
				if ( groupeDejaTraite == false){
					for (var igroupe = 0; igroupe < checkboxObjLength; igroupe++){
						if (checkboxCollectionObj[igroupe].checked) {
							fieldValue = fieldValue + checkboxCollectionObj[igroupe].value + ",";
						}
					}
					
					//si le champ a un id, alors on doit le valider
					if (tempObj.id != ''){
						if (incJS_avertirUsager(tempObj,fieldValue) == false){return false;}
					}
					
					//on concatene au besoin les champs comportant "_concat" dans le nom
					if ( tempObj.name.indexOf("_concat") > 0 ) {
						hiddenField = hiddenField + tempObj.name.replace(/_concat/gi,'') + ':' + fieldValue + '<br>';
					}
					
					groupesDeCheckBoxDejaValide.push(NomDuGroupeDeCheckbox);
				}
				
				break;
		}
		
		
	}		
	
	
	//s il existe un champ a utiliser pour la concatenation, il doit exister (!= null) et
	//etre fourni en deuxieme parametre de la fonction
	if (param_champAUtiliserPourConcatenation != null){
		param_champAUtiliserPourConcatenation.value = hiddenField; 
	}	
		
	return true;
}


function incJS_avertirUsager(param_obj,param_objValue){
	if (param_objValue == '') {
		alert(param_obj.id);
		param_obj.focus(); 
		return false;
	}
}

function incJS_checkEmail(email){
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
	if (filter.test(email)){
		return true;
	}else{
		return false;
	}
};

//Pour Ie Mac
if(typeof Array.prototype.push=='undefined'){

	// on simule alors la fonction push
	// car elle n existe pas sous ie mac
	Array.prototype.push=function(){
		var i=0;
		b=this.length,a=arguments;
		for(i;i<a.length;i++)this[b+i]=a[i];
		return this.length;
    }	

}

//-->
