// *************************************
// *                                   *
// *   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 :     18/02/2003  *
// *  Modification : 02/07/2003  *
// *                             *
// *********************************************************
// *    -=-= DESCRPTION =-=-                               *
// *********************************************************
// *    Change une liste en fonction d'un tableau          *
// *********************************************************
// *    -=-= ARGUMENTS =-=-                                *
// *********************************************************
// *  1° : Objet formulaire                                *
// *  2° : Nom du combo destinatairedonnées                *
// *  3° : Index de la liste à séléctionner                *
// *  4° : Nom du tableau des données si <> de 2°          *
// *********************************************************
// *     -=-= RETOUR =-=-                                  *
// *********************************************************
// *  Aucun                                                *
// *********************************************************
function Combo_ChangeList()
{
	var form=arguments[0];
	var nomgroup = arguments[3] ? arguments[3]:arguments[1];
	var liste=form.elements[arguments[1]];
	var index=arguments[2];

	var idx=liste.options.selectedIndex;	//Garde l'index séléctionné
	for (i=liste.options.length-1;i>0;i--)	//Efface la liste
		liste.options[i]=null;

	for (i=0;i<eval('group'+nomgroup+'[index].length');i++)		//Rempli la liste
	{	liste.options[i]=new Option(eval('group'+nomgroup+'[index][i].text'),eval('group'+nomgroup+'[index][i].value'));
	}

	if (idx > -1)
	{	if(liste.options[idx] != null)
			liste.options[idx].selected=true;	//Séléctionne l'index s'il existe
}}
