/*	
	Fonction permettant de réorganiser des nombres dès le changement de l'un d'entre eux.
	Les objets nécessaires sont :
	- un formulaire ayant pour nom "formulaire"
	- un champ de type "hidden ayant :
		- pour nom "nb_elem"
		- pour valeur le nombre d'éléments à traiter
	- un ou plusieurs champ de type "select" ayant chacun :
		- un id composé du mot "select" suivi du nombre qui l'identifie
		- un événement "onchange" qui appelle la fonction avec l'id actuel
*/
function changeOrdre(id_change)
{
    // Initialisation des variables
	nb_elements = document.formulaire.nb_elem.value * 1;
	valeur_donnee = document.getElementById(id_change).value;
	var tab = new Array();
	//---------------------------------------------------------------------------------------------------------------------------------------
	
	// Récupération de la valeur manquante
	valeur_manquante = 0;
	i = 0;
	trouve = false;
	while(i < nb_elements)
	{
		i = i + 1;
		j = 0;
		while(j < nb_elements)
		{
			j = j + 1;
			newid = "select" + j;
			if(document.getElementById(newid).value * 1 == i)
			{
				trouve = true;
				j = nb_elements * 1;
			} else {
				trouve = false;
			}
		}
		if(trouve == false)
		{
			valeur_manquante = i;
			i =  nb_elements * 1;
		}
	}
	//---------------------------------------------------------------------------------------------------------------------------------------
	
	// Boucle servant à réorganiser l'ordre des éléments restants
	cpt = 0;
    while (cpt < nb_elements * 1)
	{
        // Incrémentation du compteur et récupération de la valeur actuellement traitée
		cpt = cpt + 1;
		newid = "select" + cpt;
		valeur_en_cours = document.getElementById(newid).value * 1;
		//-----------------------------------------------------------------------------------------------------------------------------------
		
		// Si la valeur donnée est > à la valeur manquante, on effectue une seconde vérification
		if(newid != id_change && valeur_donnee * 1 < valeur_manquante * 1)
		{
			// Si la valeur en cours de traitement est > ou = à la valeur donnée et qu'elle est < à la valeur manquante, on incrémente
			// cette valeur à + 1
			if(valeur_en_cours * 1 >= valeur_donnee * 1 && valeur_en_cours * 1 < valeur_manquante * 1)
			{
				document.getElementById(newid).value = (valeur_en_cours * 1) + 1;
			}
			//-------------------------------------------------------------------------------------------------------------------------------
		}
		//-----------------------------------------------------------------------------------------------------------------------------------
		
		// Si la valeur donnée est < à la valeur manquante, on effectue une seconde vérification
		if(newid != id_change && valeur_donnee * 1 > valeur_manquante * 1)
		{
			// Si la valeur en cours de traitement est < ou = à la valeur donnée et qu'elle est > à la valeur manquante, on décrémente
			// cette valeur à - 1
			if(valeur_en_cours * 1 <= valeur_donnee * 1 && valeur_en_cours * 1 > valeur_manquante * 1)
			{
				document.getElementById(newid).value = (valeur_en_cours * 1) - 1;
			}
			//-------------------------------------------------------------------------------------------------------------------------------
		}
		//-----------------------------------------------------------------------------------------------------------------------------------
    }
	//---------------------------------------------------------------------------------------------------------------------------------------
	return true;
}
