


// Lancement de KAV_loadTextShrinker() après chargement du code html de la page
if (addListenner) {
  addListenner(window, "load", KAV_loadTextShrinker, true);
}


// Sert à la mesure du temps après une frappe pour le corps de l'annonce
// Evite de lancer des requêtes ajax inutilement
var kavadenn_inputCp_timer;

// Label de l'annonce papier (plusieurs parties)
var labelAnnoncePresse = ['Votre annonce pour la presse (', ' signes max, actuellement : ', ') : '];


/**
 * Place les événements sur la page de saisie d'annonce,
 * effectue quelques changements si nécessaire
 */
function KAV_loadTextShrinker()
{

    var inputList = document.getElementsByTagName('input');
    for (var i = 0; i < inputList.length; i++) {
      if (/bouton-rafraichir/.test(inputList[i].className)) {
        inputList[i].style.display = 'none';
      }
    }


    // Affichage des types de bien quand un univers a été choisi
    noeud = document.getElementById('ANUN_id');
    if (noeud) noeud.onchange = function () {
      var selectValue = false;
      selectValue = this.options[this.selectedIndex].value;
      XHR_tell_getBITY(selectValue);
    }

    // Evénements déclenchant le calcul du tarif
    noeud = document.getElementById('print');
    if (noeud) noeud.onclick =  function () {

      var oPriceDetailsNode = document.getElementById('infos-print');
      var oFormatList       = document.getElementById('FOOP_id');
      var zoneSaisiePrint   = document.getElementById('longueur-texte-auto');


      var td_longueurTxt = document.getElementById('tarif-longueur-texte');
      var td_max         = document.getElementById('tarif-maximum');
      var td_tarifOption = document.getElementById('tarif-option');
      var td_tarifSuppl  = document.getElementById('tarif-supplement');
      var td_tarifMaxSup = document.getElementById('tarif-max-supplement');
      var td_tarifSigne  = document.getElementById('tarif-signe');
      var td_apercu      = document.getElementById('apercu-annonce');


      if (this.checked) {
        oFormatList.disabled = null;
        removeClass(oFormatList.parentNode, 'cache-contenu');
        removeClass(oFormatList, 'disabled');
        removeClass(zoneSaisiePrint, 'cache-contenu');

        if (td_longueurTxt.parentNode) removeClass(td_longueurTxt.parentNode, 'cache-contenu-force');
        if (td_max.parentNode)         removeClass(td_max.parentNode, 'cache-contenu-force');
        if (td_tarifSigne.parentNode)  removeClass(td_tarifSigne.parentNode, 'cache-contenu-force');
        //if (td_tarifOption.parentNode) removeClass(td_tarifOption.parentNode, 'cache-contenu-force');
        //if (td_tarifSuppl.parentNode)  removeClass(td_tarifSuppl.parentNode, 'cache-contenu-force');

        removeClass(td_tarifMaxSup, 'cache-contenu-force');
        removeClass(td_apercu, 'cache-contenu-force');


      } else {
        oFormatList.options[oFormatList.selectedIndex].selected = null;
        oFormatList.selectedIndex = 0;
        oFormatList.disabled = 'disabled';
        addClass(oFormatList.parentNode, 'cache-contenu'); // select-disabled
        //addClass(oFormatList, 'disabled');

        addClass(zoneSaisiePrint, 'cache-contenu');

        if (td_longueurTxt.parentNode) addClass(td_longueurTxt.parentNode, 'cache-contenu-force');
        if (td_max.parentNode)         addClass(td_max.parentNode, 'cache-contenu-force');
        if (td_tarifSigne.parentNode)  addClass(td_tarifSigne.parentNode, 'cache-contenu-force');
        //if (td_tarifOption.parentNode) addClass(td_tarifOption.parentNode, 'cache-contenu-force');
        //if (td_tarifSuppl.parentNode)  addClass(td_tarifSuppl.parentNode, 'cache-contenu-force');

        addClass(td_tarifMaxSup, 'cache-contenu-force');
        addClass(td_apercu, 'cache-contenu-force');
      }

      XHR_tell_getTarifs();
    }

    noeud = document.getElementById('FOOP_id');
    if (noeud) noeud.onchange =  XHR_tell_getTarifs;

    noeud = document.getElementById('PFD_id');
    if (noeud) noeud.onchange =  XHR_tell_getTarifs;

    noeud = document.getElementById('AN_detail_abrege');
    //if (noeud) noeud.onkeyup =  XHR_tell_getTarifs;
    if (noeud) noeud.onkeyup = function ()
      {
        //if (this.value.length > 3) {
          if (kavadenn_inputCp_timer) clearTimeout(kavadenn_inputCp_timer);
          kavadenn_inputCp_timer = setTimeout('XHR_tell_getTarifs();', 300)
        //}
      } // end of function for "inputCp.onChange"

    noeud = document.getElementById('AN_titre');
    //if (noeud) noeud.onkeyup =  XHR_tell_getTarifs;

    if (noeud) noeud.onkeyup = function ()
      {
          if (kavadenn_inputCp_timer) clearTimeout(kavadenn_inputCp_timer);
          kavadenn_inputCp_timer = setTimeout('XHR_tell_getTarifs();', 300)
      } // end of function for "inputCp.onChange"


    KAV_refreshEvents();


    // Recalcul de l'abrégé quand le corps du texte change
    var noeud = document.getElementById('AN_detail');
    if (noeud) noeud.onchange = XHR_tell_getPriceAndText;

    var noeud = document.getElementById('caract_tech_valides');
    if (noeud) noeud.onclick = function () {

      var ct = document.getElementById('AN_caracteristiques_techniques');
      if (this.checked) {
        ct.disabled = null;

      } else {
        ct.disabled = 'disabled';
      }

    };




    // Règle particulière : recalcul sur modification du texte long
    var inputCp = document.getElementById('AN_detail');
    if (inputCp) {
      inputCp.onkeyup = function ()
      {
          if (kavadenn_inputCp_timer) clearTimeout(kavadenn_inputCp_timer);
          kavadenn_inputCp_timer = setTimeout('XHR_tell_getPriceAndText();', 300)
      } // end of function for "inputCp.onChange"
    }


} // end of "KAV_loadTextShrinker()"




/**
 * XHR_tell_getTarifs
 */
 function XHR_tell_getTarifs()
 {
    var printCode = document.getElementById('print');
    if (printCode && printCode.checked) {
      printCode = printCode.value;
    } else {
      printCode = 0;
    }

    var option = document.getElementById('FOOP_id');
    var duree  = document.getElementById('PFD_id');
    var abrege = document.getElementById('AN_detail_abrege');
    var titre  = document.getElementById('AN_titre');

    if (!option && !duree && abrege && titre) {
   	  abrege_value            = abrege.value.replace("\r\n", ' ');
      var longueurTexte       = document.getElementById('tarif-longueur-texte');
      if (longueurTexte) longueurTexte.innerHTML = abrege_value.length + ' signes';
      var longueurMax         = document.getElementById('tarif-maximum');
      var saisie_texte        = document.getElementById('longueur-texte-auto');

      if (saisie_texte && longueurMax) {
        var labelContenu        = saisie_texte.getElementsByTagName('label')[0];
        labelContenu.innerHTML  = labelAnnoncePresse[0];
        labelContenu.innerHTML += longueurMax.innerHTML;
        labelContenu.innerHTML += labelAnnoncePresse[1];
        labelContenu.innerHTML += abrege_value.length;
        labelContenu.innerHTML += labelAnnoncePresse[2];

      } else if (saisie_texte && !longueurMax) {
        var oTarget = saisie_texte.getElementsByTagName('label')[0];
        var sLabel = oTarget.innerHTML;
        sLabel = sLabel.split(':')[0];
        abrege_value  = abrege.value;
        titre_value   = titre.value;
        longueurTexte = (abrege_value + ' ' + titre_value).length;
        oTarget.innerHTML = sLabel + ': ' + longueurTexte + ') :';
      }

      return false;
    }

    
    abrege_value = '';
    if (abrege) {
    	 abrege_value = abrege.value;
    }
    titre_value = '';
    if (titre) {
    	 titre_value = titre.value;
    }
    
    if (option) {
      var selectedFormat = option.options[option.selectedIndex].value;
      XHR_post(null, {'action':'XHR_tell_getTarifs', 'duree':duree.options[duree.selectedIndex].value, 'texte':abrege_value, 'titre' : titre.value, 'option':selectedFormat, 'print':printCode}, XHR_listen_getTarifs);
      
    } else {
      XHR_post(null, {'action':'XHR_tell_getTarifs', 'duree':duree.options[duree.selectedIndex].value, 'texte':abrege_value, 'titre' : titre_value, 'option':0, 'print':printCode}, XHR_listen_getTarifs);
    }

 } // end of "XHR_tell_getTarifs()"



/**
 * XHR_listen_getTarifs
 */
 function XHR_listen_getTarifs(data)
 {
    if (!data['infos-tarifs']) return false;

    var longueurMax, utilisationSupp, longueurTexte, avantSupplement,
        tarifSigne, totalBase, totalSupplement, total, labelSupp, labelUtilisation, valeurUtilisation;

    // Mise à jour de l'aperçu
    var abrege = document.getElementById('AN_detail_abrege');
    var titre  = document.getElementById('AN_titre');
    var apercu = document.getElementById('apercu-annonce').getElementsByTagName('p');
    
    if (titre) {
    	apercu[0].innerHTML = htmlSpecialChars(titre.value);
    }
    if (abrege) {
    	apercu[1].innerHTML = htmlSpecialChars(abrege.value);
    }

    longueurMax     = document.getElementById('tarif-maximum');
    longueurTexte   = document.getElementById('tarif-longueur-texte');
    utilisationSupp = document.getElementById('tarif-max-supplement');
    avantSupplement = document.getElementById('tarif-avant-supplement');
    tarifSigne      = document.getElementById('tarif-signe');
    totalBase       = document.getElementById('tarif-base');
    totalSupplement = document.getElementById('tarif-supplement');
    totalOption     = document.getElementById('tarif-option');
    total           = document.getElementById('tarif-total');


    //longueurMax.innerHTML   = data['infos-tarifs']['limite1'] + ' signes';
    if (longueurTexte && data['infos-tarifs']['longueur-texte']) {
      longueurTexte.innerHTML = data['infos-tarifs']['longueur-texte'] + ' signes';
    }

    var saisie_texte = document.getElementById('longueur-texte-auto');

    if (saisie_texte) {
      var labelContenu        = saisie_texte.getElementsByTagName('label')[0];
      if (labelContenu) {
	      var contenuHtml  = labelAnnoncePresse[0];
	      contenuHtml += data['infos-tarifs']['limite-texte'];
	      contenuHtml += labelAnnoncePresse[1];
	      contenuHtml += data['infos-tarifs']['longueur-texte'];
	      contenuHtml += labelAnnoncePresse[2];
	      labelContenu.innerHTML  = contenuHtml;
      }
    }

    if (!totalBase) {
      return false;
    }

    totalBase.innerHTML       = data['infos-tarifs']['PFC_tarif'] + ' &euro;';
    
    if (totalOption) {
    	totalOption.innerHTML     = data['infos-tarifs']['option-valeur'] + ' &euro;';
    }
    if (totalSupplement) {
    	totalSupplement.innerHTML = data['infos-tarifs']['supplement_tarif'] + ' &euro;';
    }
    if (total) {
    	total.innerHTML           = data['infos-tarifs']['tarif_total'] + ' &euro;';
    }

 } // end of "XHR_listen_getTarifs()"




/**
 * XHR_tell_getPriceAndText
 */
 function XHR_tell_getPriceAndText()
 {
     //var detail = document.getElementById('AN_detail');
     //var lettresNb = document.getElementById('nombre-lettres');
     //if (detail && lettresNb) lettresNb.innerHTML = detail.value.length;

     var formData = readForm(document.getElementById('saisie-annonce'));
     XHR_post(null, {'action':'XHR_tell_getPriceAndText', 'formData':formData}, XHR_listen_getPriceAndText);

 } // end of "XHR_tell_getPriceAndText()"



/**
 * XHR_listen_getPriceAndText
 */
 function XHR_listen_getPriceAndText(data)
 {
    if (data['infos-annonce']) {
      var shortText = document.getElementById('texte-abrege');
      if (shortText) shortText.innerHTML = data['infos-annonce']['abrege'];

      var lettresNb = document.getElementById('nombre-lettres');
      if (lettresNb) lettresNb.innerHTML = data['infos-annonce']['lettres'];
    }

 } // end of "XHR_listen_getPriceAndText()"






/**
 * XHR_tell_getBITY
 */
 function XHR_tell_getBITY(selectValue)
 {
    XHR_post(null, {'action':'XHR_tell_getBITY', 'univers':selectValue}, XHR_listen_getBITY);
 } // end of "XHR_tell_getBITY()"


/**
 * XHR_listen_getBITY
 */
 function XHR_listen_getBITY(data)
 {
    if (typeof data['bien_types'] != 'object') {
      return;
    }
    var formSelect, sId;
    formSelect = document.getElementById('BITY_id');

    // Si la liste déroulante des types de bien n'existe pas, on la créé
    // Sinon, on rafraîchi juste son contenu
    if (!formSelect) {
        sId = createSelect('BITY_id', 'Sous rubrique*', 'ANUN_id');
        KAV_refreshEvents();
        formSelect = document.getElementById('BITY_id');
    }

    // Rafraîchi le contenu de la liste déroulante des marques
    formSelect.length = 0;
    formSelect.options[formSelect.length] = new Option('...', 0);
    for (var i in data['bien_types']) {
      formSelect.options[formSelect.length] = new Option(data['bien_types'][i]['BITY_designation'], data['bien_types'][i]['BITY_id']);
    }
    formSelect.disabled = null;
    removeClass(formSelect, 'disabled');

 } // end of "XHR_listen_getBITY()"





/**
 * XHR_tell_getBIMA
 */
 function XHR_tell_getBIMA(selectValue)
 {
    XHR_post(null, {'action':'XHR_tell_getBIMA', 'bien_type':selectValue}, XHR_listen_getBIMA);
 } // end of "XHR_tell_getBIMA()"



/**
 * XHR_listen_getBIMA
 */
 function XHR_listen_getBIMA(data)
 {
    if (typeof data['bien_marques'] != 'object' && typeof data['bien_types'] != 'object') {
      return;
    }


    // Ecriture de la liste des marques
    if (typeof data['bien_marques'] == 'object') {
        var formSelect, sId;
        formSelect = document.getElementById('BIMA_id');

        // Si la liste déroulante des marques n'existe pas, on la créé
        // Sinon, on rafraîchi juste son contenu
        if (!formSelect) {
            sId = createSelect('BIMA_id', 'Constructeur ou marque', 'BITY_id', 'votre bien', 'autre_bien', 'bien');
            KAV_refreshEvents();
            formSelect = document.getElementById('BIMA_id');
        }


        // Rafraîchi la liste des marques
        formSelect.length = 0;
        formSelect.options[formSelect.length] = new Option('...', 0);
        for (var i in data['bien_marques']) {
          formSelect.options[formSelect.length] = new Option(data['bien_marques'][i]['BIMA_nom'], data['bien_marques'][i]['BIMA_id']);
        }
        formSelect.disabled = null;
        removeClass(formSelect, 'disabled');
    }


    // Ecriture des caractéristiques
    if (typeof data['bien_types'] == 'object') {
        var id_annonce = document.getElementById('annonces');
        if ((!id_annonce || id_annonce.value <= 0) && data['bien_types']) {
          var caracteristiques = document.getElementById('AN_caracteristiques_techniques');
          if (caracteristiques) caracteristiques.value = data['bien_types']['BITY_caracteristiques'];

        }
    }

 } // end of "XHR_listen_getBIMA()"





/**
 * KAV_refreshEvents
 */
 function KAV_refreshEvents()
 {
   var formSelect, func;
   var actions = {'ANUN_id':      function () { XHR_tell_getBITY(this.options[this.selectedIndex].value); }, // le choix de l'univers permet d'afficher les types de bien

                  'BITY_id':      function () {
                                                XHR_tell_getBIMA(this.options[this.selectedIndex].value);
                                                XHR_tell_getBI(0, 0, this.options[this.selectedIndex].value);
                                              }, // le choix du type de bien, affiche les marques

                  'BIMA_id':      function () {

                                    XHR_tell_getBIMO(this.options[this.selectedIndex].value);
                                    XHR_tell_getBI(0, this.options[this.selectedIndex].value);

                                    var gammeText = document.getElementById('autre_modele');

                                    if (gammeText) {
                                        if (this.options[this.selectedIndex].value > 0) {
                                          gammeText.disabled = null;
                                        } else {
                                          gammeText.disabled = 'disabled';
                                        }
                                    }

                              }, // la marque affiche les modèles



                  'BIMO_id':      function () { XHR_tell_getBI(this.options[this.selectedIndex].value, 0); },    // et le modèle affiche le bien
                  'autre_modele': function () { XHR_tell_setModele(this.value); },  // création à la volée d'un modèle
                  'autre_bien':   function () { XHR_tell_setBien(this.value); }      // création à la volée d'un bien
                  };


   for (var action in actions) {
      formSelect = document.getElementById(action);
      if (formSelect) {
         formSelect.onchange =  actions[action];
      }
   }
 } // end of "KAV_refreshEvents()"





/**
 * XHR_tell_getBIMO
 */
 function XHR_tell_getBIMO(selectValue)
 {
    XHR_post(null, {'action':'XHR_tell_getBIMO', 'bien_marque':selectValue}, XHR_listen_getBIMO);
 } // end of "XHR_tell_getBIMO()"



/**
 * XHR_listen_getBIMO
 */
 function XHR_listen_getBIMO(data)
 {
    var formSelect, divSelect, labelNode, selectNode, previousField, divInput, input, hidden;
    formSelect = document.getElementById('BIMO_id');

    // Si la liste déroulante des modèles n'existe pas, on la créé
    // Sinon, on rafraîchi juste son contenu
    if (!formSelect) {
        sId = createSelect('BIMO_id', 'Gamme ou Série', 'BIMA_id', 'autre', 'autre_modele', 'modele');
        KAV_refreshEvents();
        formSelect = document.getElementById(sId);

        // Sur choix d'un modèle, on affichera les biens correspondant
        //formSelect = document.getElementById(sId);
        //formSelect.onchange =  function () { XHR_tell_getBI(this.options[this.selectedIndex].value); };

        //document.getElementById('autre_modele').onchange =  function () { XHR_tell_setModele(this.value); };
    }


    // Rafraîchi la liste des modèles de bien
    formSelect.length = 0;
    formSelect.options[formSelect.length] = new Option('...', 0);
    if (typeof data['bien_modeles'] == 'object') {
      for (var i in data['bien_modeles']) {
        formSelect.options[formSelect.length] = new Option(data['bien_modeles'][i]['BIMO_designation'], data['bien_modeles'][i]['BIMO_id']);
      }
    }
    formSelect.disabled = null;
    removeClass(formSelect, 'disabled');

 } // end of "XHR_listen_getBIMO()"







/**
 * XHR_tell_setModele
 */
 function XHR_tell_setModele(value)
 {
    var univers = document.getElementById('ANUN_id');
    univers = (typeof univers == 'object') ? univers.options[univers.selectedIndex].value : 0;

    var bien_type = document.getElementById('BITY_id');
    bien_type = (typeof bien_type == 'object') ? bien_type.options[bien_type.selectedIndex].value : 0;

    // champ caché pour la modification d'un modele ajouté par le client
    var modele = document.getElementById('modele');

    var marque = document.getElementById('BIMA_id');
    marque = (typeof marque == 'object') ? marque.options[marque.selectedIndex].value : 0;

    XHR_post(null, {'action':'XHR_tell_setModele', 'modele_str':value, 'modele':modele.value, 'univers':univers, 'marque':marque, 'bien_type':bien_type}, XHR_listen_setModele);

 } // end of "XHR_tell_setModele()"




/**
 * XHR_listen_setModele
 */
 function XHR_listen_setModele(data)
 {
    if (typeof data['modele'] != 'object') {
      return;
    }
    formSelect = document.getElementById('BIMO_id');
    if (formSelect.options[formSelect.selectedIndex].value == data['modele']['BIMO_id']) {
      formSelect.options[formSelect.selectedIndex].text = data['modele']['BIMO_designation'];

    } else {
      formSelect.options[formSelect.length] = new Option(data['modele']['BIMO_designation'], data['modele']['BIMO_id']);
      formSelect.selectedIndex = formSelect.length - 1;
    }

    if (data['modele']['BIMO_id'] > 0) {
      document.getElementById('modele').value = data['modele']['BIMO_id'];
      XHR_tell_getBI(data['modele']['BIMO_id']);
    }

 } // end of "XHR_listen_setModele()"








/**
 * XHR_tell_getBI
 */
 function XHR_tell_getBI()
 {
    var modeles = document.getElementById('BIMO_id');
    modeles = (typeof modeles == 'object') ? modeles.options[modeles.selectedIndex].value : 0;

    var marques = document.getElementById('BIMA_id');
    marques = (typeof marques == 'object') ? marques.options[marques.selectedIndex].value : 0;

    var bientype = document.getElementById('BITY_id');
    bientype = (typeof bientype == 'object') ? bientype.options[bientype.selectedIndex].value : 0;

    XHR_post(null, {'action':'XHR_tell_getBI', 'modele':modeles, 'marque':marques, 'bientype':bientype}, XHR_listen_getBI);
 } // end of "XHR_tell_getBI()"





/**
 * XHR_listen_getBI
 */
 function XHR_listen_getBI(data)
 {
    var formSelect, sId; //, divSelect, labelNode, selectNode, previousField, divInput, hidden, input;
    formSelect = document.getElementById('BI_id');

    // Si la liste déroulante des biens n'existe pas, on la créé
    // Sinon, on rafraîchi juste son contenu
    if (!formSelect) {
        sId = createSelect('BI_id', 'Bien', 'autre_modele');
        //document.getElementById('autre_bien').onchange =  function () { XHR_tell_setBien(this.value); };
        KAV_refreshEvents();
        formSelect = document.getElementById('BI_id');
    }

    var sSelectedIndex = formSelect.selectedIndex;
    formSelect.length = 0;
    formSelect.options[formSelect.length] = new Option('...', 0);
    var pos;
    if (typeof data['biens'] == 'object') {
      for (i in data['biens']) {
        pos = formSelect.length;
        formSelect.options[pos] = new Option(data['biens'][i]['BI_donnees_complementaires'], data['biens'][i]['BI_id']);
        if (pos == sSelectedIndex) {
          formSelect.options[pos].selected = 'selected';
        }
      }
    }
    //formSelect.selectedIndex = sSelectedIndex;
    formSelect.disabled = null;
    removeClass(formSelect, 'disabled');

 } // end of "XHR_listen_getBI()"







/**
 * XHR_tell_setBien
 */
 function XHR_tell_setBien(value)
 {
    var modeles = document.getElementById('BIMO_id');
    modeles = (typeof modeles == 'object') ? modeles.options[modeles.selectedIndex].value : 0;

    var marques = document.getElementById('BIMA_id');
    marques = (typeof marques == 'object') ? marques.options[marques.selectedIndex].value : 0;

    var bien_type = document.getElementById('BITY_id');
    bien_type = (typeof bien_type == 'object') ? bien_type.options[bien_type.selectedIndex].value : 0;

    XHR_post(null, {'action':'XHR_tell_setBien', 'bien_str':value, 'modele':modeles, 'marque':marques, 'bien_type':bien_type}, XHR_listen_setBien);

 } // end of "XHR_tell_setBien()"



/**
 * XHR_listen_setBien
 */
 function XHR_listen_setBien(data)
 {
    if (typeof data['bien'] != 'object') {
      return;
    }
    formSelect = document.getElementById('BI_id');
    if (formSelect.options[formSelect.selectedIndex].value == data['bien']['BI_id']) {
      formSelect.options[formSelect.selectedIndex].text = data['bien']['BI_donnees_complementaires'];

    } else {
      formSelect.options[formSelect.length] = new Option(data['bien']['BI_donnees_complementaires'], data['bien']['BI_id']);
      formSelect.selectedIndex = formSelect.length - 1;
    }

    if (data['bien']['BI_id'] > 0) {
      var oBien = document.getElementById('bien');
      if (oBien) oBien.value = data['bien']['BI_id'];
    }

 } // end of "XHR_listen_setBien()"






/**
 * createSelect
 *
 * Créé les balises SELECT et INPUT
 * pour le remplissage de la liste et la sélection d'un bien, modèle, etc.
 *
 */
 function createSelect(sId, sLabel, sPrevious, sLabelInput, sInput, sHidden)
 {
      var oDivSelect, oLabelNode;

      oDivSelect           = document.createElement('div');
      oDivSelect.className = 'formrow-m';
      oDivSelect.appendChild(createNode('label', {'for':sId, 'innerHTML':sLabel}));
      oDivSelect.appendChild(createNode('select', {'id':sId, 'name':sId}));

      oPreviousField = document.getElementById(sPrevious).parentNode;
      oPreviousField.parentNode.insertBefore(oDivSelect, oPreviousField.nextSibling);

      // Champ de texte de saisie
      if (sInput) {
        divInput = document.createElement('div');
        divInput.className = 'formrow-m';

        divInput.appendChild(createNode('label', {'for':sInput, 'innerHTML':sLabelInput}));
        divInput.appendChild(createNode('input', {'type':'text', 'id':sInput, 'name':sInput}));

        // champ caché de mémorisation de l'identifiant de l'élément créé
        if (sHidden) {
          divInput.appendChild(createNode('input', {'type':'hidden', 'id':sHidden, 'name':sHidden}));
        }

        // insertion du champ de texte après la liste déroulante
        formSelect = document.getElementById(sId);
        formSelect.parentNode.parentNode.insertBefore(divInput, formSelect.parentNode.nextSibling);
      }


    return sId;

 } // end of "createSelect()"




