// JavaScript Document
/*Notice:
Cela permet de verifier tous les champs dans un formulaire present sur la page
Si 2formulaire, cela ne marche que pour le premier (juste une boucle a rajouter pour faire tous les formulaires d'une page)

Si un champ doit être obligatoire entrer le nom de l'erreur dans la balise alt de l'input, file, textareaa
Pour un champ "file" mettre le nom du message d'erreur ensuite : et le nom de l'extension du fichier
ex file:
	<input name="fichier" type="file" alt="inserer un fichier: pdf" />
Pour verifier en direct l'extension du fichier a la simple selection, on peut faire appel directement a la fonction de verification: verif_extension(this.value, '.png')
ex file avec verification en direct:
	 <input name="fichier" type="file" onchange="verif_extension(this.value, '.pdf')" alt="inserer un fichier:.pdf" />

Enfin remplacer le bouton submit par : 
<input type="button" name="button" id="button" value="Envoyer" onclick="alerteFormulaire();"/>

*/
window.onload = function() {
	for(var i = 0, l = document.getElementsByTagName('input').length; i < l; i++) {
		if(document.getElementsByTagName('input').item(i).type == 'text') {
			document.getElementsByTagName('input').item(i).setAttribute('autocomplete', 'off');
		};
	};
};


function recup_extension(fichier) // fonction de récupération extension fichier
   {
         if (fichier!="")// si le champ fichier n'est pas vide
         {
            nom_fichier=fichier;// on récupere le chemin complet du fichier
            nbchar = nom_fichier.length;// on compte le nombre de caractere que compose ce chemin
            extension = nom_fichier.substring(nbchar-4,nbchar); // on récupere les 4 derniers caracteres
            extension=extension.toLowerCase(); //on uniforme les caracteres en minuscules au cas ou cela aurait été écris en majuscule...
            return extension; // on renvoi l'extension vers la fonction appelante
         }
   }
   
   

function verif_extension(fichier, extension2)// fonction vérification de l'extension aprés avoir choisi le fichier
   {
   ext = recup_extension(fichier);// on appelle la fonction de récupération de l'extension et on récupere l'extension
   
            if(ext==extension2){ bug=0}// si extension = a une des extension suivante alors tout est ok donc ... pas d'erreur
            //(ext==".jpg" || ext==".png")
			else // sinon on alert l'user de la mauvaise extension
            {
               alert("L'extension du fichier que vous voulez uploader est :'"+ext+"'\n cette extension n'est pas autorisée !\n Seules les extensions suivantes sont autorisées :\n'"+extension2+"' !");
			   bug=1;
			   
            }
	return bug;
   }



//fonction array_unique

function array_unique( array )
	{
    var dups=array;
	if( typeof Array().arrayUnique=='undefined' )
	Array.prototype.arrayUnique=function()
		{
		var noDuplicates=[];
		for( var i=0, k=0; i<this.length; i++ )
			{
			for( var j=0; j<noDuplicates.length && this[i]!=noDuplicates[j] ; j++ );
			if(j==noDuplicates.length)
				noDuplicates[k++]=this[i];
		}
		return noDuplicates;
	}

	if( typeof Array().trashDuplicates=='undefined' ) // as if...
		Array.prototype.trashDuplicates=function()
		{
		for( var i=0; i<this.length; i++ )
		for( var j=0; j<this.length; j++ )
		if( i!=j && this[i]==this[j] /** && typeof(this[i])==typeof(this[j]) **/ )
		for( var k=j; k<this.length; k++ )
			{
			this[k]=this[k+1];
			this.length--;
		} // no .splice() in I.E. 5.0 :(

		return this;
	}
	//alert("dups.arrayUnique()==[ "+dups.arrayUnique() +" ]\n\ndups.trashDuplicates()==["
	//+dups.trashDuplicates()+"] New length is: "+dups.length);
	return dups.arrayUnique();
}

message_alerte=""; 
function alerteFormulaire()
	{
	var tab_case=new Array() //ici on va enregistrer les noms de nos case a cocher
	//message_alerte=""; //variable ou l'on aura tous les nom des champs par rempli
	champ=document.forms[0].elements.length; //on compte le nombre de champ dans le formulaire (ici le 0, si plusieur formulaire changer le chiffre ou mettre le nom du formulaire																							
	for (i=0; i<champ; i++) //on parcours tous nos champs du formulaire
		{
			//alert(document.forms[0].elements[i].accept);
		if ((document.forms[0].elements[i].type=="checkbox")||(document.forms[0].elements[i].type=="radio"))//on verifie si on a des cases a cocher
			{
			name=document.forms[0].elements[i].name; //on recupere les nom
			tab_case.push(String(name)); //on les inseres dans un tableau "tab_case" et on traitera les données quand on sera sortie de la boucle for
		}
	
		if ((!document.forms[0].elements[i].value)||(document.forms[0].elements[i].value=="nocompt"))// on regarde si il y a une valeur
			{
			
			if (document.forms[0].elements[i].title) //on regarde si le alt est rempli cela veut dire que c'est un champ obligatoire
				{
				
				message_alerte+=document.forms[0].elements[i].title+ '\n'; //on prend la valeur du alt qu'on incremente dans notre variable
			}
			
		}
		
		/*On verifie l'extension des fichiers uploader */
		if((document.forms[0].elements[i].title)&&(document.forms[0].elements[i].type=="file")&&(document.forms[0].elements[i].value!="")){
			fichier=document.forms[0].elements[i].value;
			extension=document.forms[0].elements[i].title.split(":")
			extension=extension[1];
			pb=verif_extension(fichier, extension);
			if (pb==1)
				{
				message_alerte+=document.forms[0].elements[i].title+ '\n';
			}
			
		}
			
	}
	 

	tableau=array_unique(tab_case); //on purge un peu notre tableau pour recuperer des nom unique
	for (i=0; i<tableau.length; i++) //on va donc traiter les informations
		{
		if (document.getElementsByName(tableau[i])[0].title)
			{
			cocher=0;
			nb_entrer=document.getElementsByName(tableau[i]).length; //on recupere le nombre de case a cocher pour un type
			for(j=0; j<nb_entrer; j++)
				{
				if (document.getElementsByName(tableau[i])[j].checked == true)// on regarde s'il y en a au moins une de cocher
					{
					cocher=1; // on insere un pour dire que c'est coché
				}
			}
			if (cocher!=1)// si pas cocher on incremente notre message d'erreur
				{
				message_alerte+=document.getElementsByName(tableau[i])[0].title+ '\n'; //on prend la valeur du alt qu'on incremente dans notre variable
			}
		}
		
	}
	
		
	if (message_alerte!="") // si notre variable message_alerte est pleine alors on affiche le message
		{
		alert(message_alerte);
		message_alerte=""; 
		//alert("no");
		return false;
	}
	else
		{
			//alert("YES");
			return true;
		//document.forms[0].submit();
	}
	
}



function verifPassword(){
	if (document.getElementById("mdp").value==document.getElementById("mdp2").value)
		{
		verifEmail();
		
	}
	else
		{
			message_alerte="Les mots de passes ne correspondent pas \n"; 
	//	alert("Les mots de passes ne correspondent pas");
	}
}

function verifEmail()
	{
	adresse = document.getElementById("email").value;
	var place = adresse.indexOf("@",1);
	var point = adresse.indexOf(".",place+1);
	if (((place > -1)&&(adresse.length >2)&&(point > 1)))
		{
		//alerteFormulaire();
	}
	else
		{
			//alert(message_alerte);
			message_alerte+="Votre Email est invalide \n";
		//alert("Votre Email est invalide");
	}
}

function verifF()
	{
	valide=document.forms[0].onsubmit();
	if (true==valide)
		{
	  	document.forms[0].submit();
	 }
}

//made in newbie
