// *************************************
// *                                   *
// *   Module : Fonctions pour Combo   *
// *                                   *
// *************************************
// *                                   *
// *    Auteur(s) : Yannick Poinsu     *
// *    Création :     18/02/2003      *
// *    Modification : 18/02/2003      *
// *                                   *
// *************************************


// ************************************
// *                                  *
// *  Methode "Combo_DeplacerElement" *
// *                                  *
// *  Auteur : Yannick Poinsu         *
// *  Creation :     18/02/2003       *
// *  Modification : 18/02/2003       *
// *                                  *
// *********************************************************
// *    -=-= DESCRPTION =-=-                               *
// *********************************************************
// *    Monte ou descend l'élément sélectionné pour tri    *
// *********************************************************
// *    -=-= ARGUMENTS =-=-                                *
// *********************************************************
// *  liste : nom de l'objet combo                         *
// *  hist  : historique  1=monte  -1=descend              *
// *********************************************************
// *     -=-= RETOUR =-=-                                  *
// *********************************************************
// *  Aucun                                                *
// *********************************************************
function Combo_DeplacerElement(liste, hist)
{
	i=liste.selectedIndex;
	obj1 = new Option(liste.options[i].text,liste.options[i].value,false);

	if(hist==1 && i!=0)
	{	obj2 = new Option(liste.options[i-1].text,liste.options[i-1].value,false);

		liste.options[i] = obj2;
		liste.options[i-1] = obj1;
		liste.selectedIndex=i-1;
	}
	if(hist==-1 && i!=liste.length-1)
	{	obj2 = new Option(liste.options[i+1].text,liste.options[i+1].value,false);

		liste.options[i] = obj2;
		liste.options[i+1] = obj1;
		liste.selectedIndex=i+1;
}}


// ******************************
// *                            *
// *  Methode "Combo_Supprimer" *
// *                            *
// *  Auteur : Yannick Poinsu   *
// *  Creation :     18/02/2003 *
// *  Modification : 18/02/2003 *
// *                            *
// *********************************************************
// *    -=-= DESCRPTION =-=-                               *
// *********************************************************
// *    Supprime un ou plusieurs élément sélectionné       *
// *********************************************************
// *    -=-= ARGUMENTS =-=-                                *
// *********************************************************
// *  liste : nom de l'objet combo                         *
// *********************************************************
// *     -=-= RETOUR =-=-                                  *
// *********************************************************
// *  Aucun                                                *
// *********************************************************
function Combo_Supprimer(liste)
{
	while(liste.selectedIndex != -1)
		liste.options[liste.options.selectedIndex]=null;
}


// ***********************************
// *                                 *
// *  Methode "Combo_AjoutSelection" *
// *                                 *
// *  Auteur : Yannick Poinsu        *
// *  Creation :     18/02/2003      *
// *  Modification : 19/02/2003      *
// *                                 *
// *********************************************************
// *    -=-= DESCRPTION =-=-                               *
// *********************************************************
// *    Lance le popup pour ajouter des sélections         *
// *********************************************************
// *    -=-= ARGUMENTS =-=-                                *
// *********************************************************
// *  liste : nom de l'objet combo                         *
// *********************************************************
// *     -=-= RETOUR =-=-                                  *
// *********************************************************
// *  Aucun                                                *
// *********************************************************
function Combo_AjoutSelection(page, liste)
{	
	listedest=liste;
	window.open(page+".php","liste","width=370,height=240,scrollbars=no,left=200,top=150");
}


// *****************************************
// *                                       *
// *  Methode "Combo_RetourAjoutSelection" *
// *                                       *
// *  Auteur : Yannick Poinsu              *
// *  Creation :     18/02/2003            *
// *  Modification : 18/02/2003            *
// *                                       *
// *********************************************************
// *    -=-= DESCRPTION =-=-                               *
// *********************************************************
// *    Inscrit les éléments du popup sélectionné dans le  *
// *    combo de la page principale                        *
// *********************************************************
// *    -=-= ARGUMENTS =-=-                                *
// *********************************************************
// *  texte : Texte de l'option                            *
// *  value : Valeur de l'option                           *
// *********************************************************
// *     -=-= RETOUR =-=-                                  *
// *********************************************************
// *  Aucun                                                *
// *********************************************************
function Combo_RetourAjoutSelection(texte,value)
{
	listedest.options[listedest.options.length] = new Option(texte,value,false);
}


// ******************************
// *                            *
// *  Methode "Combo_ParseList" *
// *                            *
// *  Auteur : Yannick Poinsu   *
// *  Creation :     18/02/2003 *
// *  Modification : 18/02/2003 *
// *                            *
// *********************************************************
// *    -=-= DESCRPTION =-=-                               *
// *********************************************************
// *    Parse le combo de la page principale et retourne   *
// *    vrai si la valeur à été trouvée                    *
// *********************************************************
// *    -=-= ARGUMENTS =-=-                                *
// *********************************************************
// *  obj : Objet à comparer avec la liste principale      *
// *********************************************************
// *     -=-= RETOUR =-=-                                  *
// *********************************************************
// *  true  : élément trouvé                               *
// *  false : élément non trouvé                           *
// *********************************************************
function Combo_ParseList(obj)
{
	for(i=0; i < listedest.options.length; i++)
		if((listedest.options[i].value == obj.value) && (listedest.options[i].text == obj.text)) return true;

	return false;
}


// ******************************
// *                            *
// *  Methode "Combo_SelectAll" *
// *                            *
// *  Auteur : Yannick Poinsu   *
// *  Creation :     18/02/2003 *
// *  Modification : 18/02/2003 *
// *                            *
// *********************************************************
// *    -=-= DESCRPTION =-=-                               *
// *********************************************************
// *    Séléctionne tous les éléments d'un combo           *
// *********************************************************
// *    -=-= ARGUMENTS =-=-                                *
// *********************************************************
// *  liste : Liste à séléctionner                         *
// *********************************************************
// *     -=-= RETOUR =-=-                                  *
// *********************************************************
// *  Aucun                                                *
// *********************************************************
function Combo_SelectAll(liste)
{
	for(i=0; i < liste.length; i++)
		liste[i].selected = true;
}


// *******************************
// *                             *
// *  Methode "Combo_ChangeList" *
// *                             *
// *  Auteur : Yannick Poinsu    *
// *  Creation :     08/04/2003  *
// *  Modification : 09/04/2003  *
// *                             *
// *********************************************************
// *    -=-= DESCRPTION =-=-                               *
// *********************************************************
// *    Change une liste en fonction d'un tableau          *
// *********************************************************
// *    -=-= ARGUMENTS =-=-                                *
// *********************************************************
// *  group[] : tableau des données                        *
// *  liste : Liste à séléctionner                         *
// *  index : Index de la liste à séléctionner             *
// *********************************************************
// *     -=-= RETOUR =-=-                                  *
// *********************************************************
// *  Aucun                                                *
// *********************************************************
function Combo_ChangeList(liste,index)
{
	var idx=liste.options.selectedIndex;	//Garde l'index séléctionné
	liste.options.length=0;
	liste.options[0]=new Option("","")

	for (i=0;i<group[index].length;i++)		//Rempli la liste
	{	liste.options[i]=new Option(group[index][i].text,group[index][i].value)
	}

	if (idx > -1)
	{	if(liste.options[idx] != null)
			liste.options[idx].selected=true	//Séléctionne l'index s'il existe
}}


// ************************************
// *                                  *
// *  Methode "Combo_ChangeList_3dim" *
// *                                  *
// *  Auteur : Yannick Poinsu         *
// *  Creation :     24/04/2003       *
// *  Modification : 24/04/2003       *
// *                                  *
// *********************************************************
// *    -=-= DESCRPTION =-=-                               *
// *********************************************************
// *    Change une liste en fonction d'un tableau en       *
// *    3 dimention                                        *
// *********************************************************
// *    -=-= ARGUMENTS =-=-                                *
// *********************************************************
// *  group[] : tableau des données                        *
// *  liste1  : Liste 1 à séléctionner                     *
// *  liste2  : Liste 2 à séléctionner                     *
// *  index1  : Index de la liste 1 à séléctionner         *
// *  index2  : Index de la liste 2 à séléctionner         *
// *********************************************************
// *     -=-= RETOUR =-=-                                  *
// *********************************************************
// *  Aucun                                                *
// *********************************************************
function Combo_ChangeList_3dim(liste1,liste2,index1,index2)
{
	if(liste1 != null)
	var idx1=liste1.options.selectedIndex;	//Garde l'index séléctionné
	var idx2=liste2.options.selectedIndex;	//Garde l'index séléctionné

	if(liste1 != null)
	{	liste1.options.length=0;
		liste1.options[0]=new Option("","")
	}
	liste2.options.length=0;
	liste2.options[0]=new Option("","")

	if(liste1 != null)
	{	//Rempli la liste 1 avec l'index 0
		for (i=0;i<group[index1].length;i++)
		{	liste1.options[i]=new Option(group[index1][i][0].text,group[index1][i][0].value)
	}}
	
	//Rempli la liste 2 avec tous les index sauf 0
	for (i=0;i<group[index1][index2].length-1;i++)
	{	liste2.options[i]=new Option(group[index1][index2][i+1].text,group[index1][index2][i+1].value)
	}

	if (idx1 > -1)
	{	if(liste1.options[idx1] != null)
			liste1.options[idx1].selected=true	//Séléctionne l'index s'il existe
	}
	if (idx2 > -1)
	{	if(liste2.options[idx2] != null)
			liste2.options[idx2].selected=true	//Séléctionne l'index s'il existe
}}

