// JavaScript Document
var Liste =
function(ps_id)
{
this.iselect_liste = getelement(ps_id);
}
Liste.prototype.element_selectionne = function ()
{
if( this.element_selectionne_existe() )
return this.iselect_liste.options[this.iselect_liste.selectedIndex];
else
return null;
}
Liste.prototype.element_selectionne_existe = function ()
{
return (this.iselect_liste.selectedIndex >= 0);
}
Liste.prototype.valeur_selectionnee = function ()
{
return this.element_selectionne().value;
}
Liste.prototype.supprimer_element_selectionne = function ()
{
this.iselect_liste.options[this.iselect_liste.selectedIndex] = null;
}
Liste.prototype.ajouter_element = function (ps_valeur,ps_libelle)
{
this.iselect_liste.options[this.iselect_liste.length] = new Option(ps_libelle,ps_valeur);
}
Liste.prototype.supprimer_element = function( pi_position )
{
this.iselect_liste.remove( pi_position );
}
Liste.prototype.vider = function()
{
while( this.iselect_liste.length > 0 )
this.supprimer_element( 0 );
}
/**
* Ajoute plusieurs éléments à la liste avec le tableau associatif fourni en argument
* le tableau est considéré associatif est ses clefs sont utilisées pour l'attribut value.
* Les libellés sont renseignés avec les valeurs du tableau
* ex :
*
* @param array psa_clefs_valeurs tableau de clefs/valeurs (associatif)
*/
Liste.prototype.ajouter_elements = function( psa_clefs_valeurs )
{
for( ls_clef in psa_clefs_valeurs )
{
this.ajouter_element( ls_clef, psa_clefs_valeurs[ls_clef] );
}
}
/**
* Ajoute plusieurs éléments à la liste avec le tableau non associatif fourni en argument
* les attributs value et les libellés sont affectés avec les valeurs du tableau
* ex :
*
* @param array psa_valeurs tableau de valeurs
*/
Liste.prototype.ajouter_elements_sans_cles = function( psa_valeurs )
{
for( li=0 ; li < psa_valeurs.length ; li++ )
{
this.ajouter_element( psa_valeurs[li], psa_valeurs[li] );
}
}
/**
* Vide puis ajoute des éléments à la liste avec le tableau associatif fourni en argument
* @see ajouter_elements pour les détail sur l'ajout
* @param array psa_clefs_valeurs tableau de valeurs ou de clefs/valeurs (associatif)
*/
Liste.prototype.remplir = function( psa_clefs_valeurs )
{
this.vider();
this.ajouter_elements( psa_clefs_valeurs );
}