/**
 * Classe JavaScript (singleton) gérant tout l'écran de saisie des informations
 */
var DAPV = function ()
{
   var public;
    var cache = {};

    var criteres;
    var rubrique;

    var ajaxListerRubriqueFamilles;
    var ajaxListerRubriqueRubriques;
    var ajaxListerRubriqueSousRubriques;
    var ajaxListerCriteres;
    var ajaxListerCommunes;
    var ajaxCascade;

   var verificationTelephone = function () {
      if ($('telephone') && ($F('telephone').strip() === '' || !Validation.get('validate-our-telephone').test($F('telephone')))) {
         return false;
      }
      return true;
   }

   var verificationEmail = function () {
      if ($('eMail') && ($F('eMail').strip() === '' || !Validation.get('validate-email').test($F('eMail')))) {
         return false;
      }
      return true;
   }

   var verificationTexteInternet = function () {
      if ($('texteInternet') && ($F('texteInternet').strip() === '' || !Validation.get('validate-our-no-url').test($F('texteInternet')))) {
         return false;
      }
      return true;
   }

   var verificationPrix = function () {
      if ($('P5M')) {
         if ($F('P5M').strip() === '') {
            if ($('erreur_critere_P5M')) $('erreur_critere_P5M').show();
         } else if (!Validation.get('validate-our-integer-positive').test($F('P5M'))) {
            if ($('erreur_critere_P5M_format')) $('erreur_critere_P5M_format').show();
         } else if (public.config.prixMax != 0 && $F('P5M') > public.config.prixMax) {
            if ($('erreur_critere_P5M_max')) $('erreur_critere_P5M_max').show();
         }
      }
   }

   var initCriteres = function (data) {
      criteres = data;
      if (data && data != '') {
         data.each(function (element) {
            if (element.code != 'P5M') {
               var erreur = $('erreur_critere_%code%').cloneNode(true);
               erreur.id = 'erreur_critere_' + element.code;
               erreur.firstChild.data = erreur.firstChild.data.replace(/%libelle%/, element.libelle);
               $('erreur_critere_%code%').parentNode.appendChild(erreur);
            }
         });
      } else {
         $$('.messageErreurSaisie').each(function (element) {
            if (element.id.substring(0, 15) == 'erreur_critere_' && element.id != 'erreur_critere_%code%' && element.id.substring(0, 18) != 'erreur_critere_P5M') {
               element.parentNode.removeChild(element);
            }
         });
      }
   }

   var gestionRetourRubriqueFamilles = function (xhr) {
      var data = xhr.responseText.evalJSON();
      if (data) {
         Utils.rebuildListeDepuisData('famille', data);
         if (data != '') {
            $('allArround_famille').show();
         } else {
            public.choixCriteres($('cahier'));
         }
      }
      if ($('indicateur_chargement_cahier')) {$('indicateur_chargement_cahier').hide();}
   };

   var gestionRetourRubriqueRubriques = function (xhr) {
      var data = xhr.responseText.evalJSON();
      if (data) {
         Utils.rebuildListeDepuisData('rubrique', data);
         if (data != '') {
            $('allArround_rubrique').show();
         } else {
            public.choixCriteres($('famille'));
         }
      }
      if ($('indicateur_chargement_famille')) {$('indicateur_chargement_famille').hide();}
   };

   var gestionRetourRubriqueSousRubriques = function (xhr) {
      var data = xhr.responseText.evalJSON();
      if (data) {
         Utils.rebuildListeDepuisData('sousrubrique', data);
         if (data != '') {
            $('allArround_sousrubrique').show();
         } else {
            public.choixCriteres($('rubrique'));
         }
      }
      if ($('indicateur_chargement_rubrique')) {$('indicateur_chargement_rubrique').hide();}
   };

   var gestionRetourCriteres = function (xhr) {
      var data = xhr.responseText.evalJSON();
      
      if (data) {
         //initCriteres(data);
         var criteresHtml = '';
         data.each(function (element) {
         	if (element.code != 'P5M') {
            	criteresHtml += createCritereHTML(element.code, element.libelle, element.type, element.valeurs);
            }
         });

         if ($('liste_criteres')) {
         	$('liste_criteres').innerHTML = criteresHtml;
         	if (data.length>0) $('liste_criteres').style.display = 'block';
         }
      }

      if ($('indicateur_chargement_criteres')) {$('indicateur_chargement_criteres').hide();}
   };

   var verificationCriteres = function () {
      criteres.each(function (element) {
         var empty = false;
         if (element.code != 'P5M') {
            switch (element.type) {
               case 'input':
               case 'select':
                     if ($F(element.code).blank()) {
                        empty = true;
                     }
                     break;
               case 'radio':
                     if (!$$('#critere_' + element.code + ' input[type="radio"]').pluck('checked').any()) {
                        // Aucun des boutons radio n'a ete coche
                        empty = true;
                     }
                     break;
               case 'checkbox':
                  if (!$$('#critere_' + element.code + ' input[type="checkbox"]').pluck('checked').any()) {
                        // Aucune des checkbox n'a ete coche
                        empty = true;
                     }
                     break;
            }
         }
         if (empty && $('erreur_critere_' + element.code)) {
            $('erreur_critere_' + element.code).show();
         }
      });
      verificationPrix();
      return;
   }

   var verificationLocalisation = function () {
      if ($('ddlPays')) {
         if ($F('ddlPays').strip() === '') {
            if ($('erreur_codePays')) { $('erreur_codePays').show(); }
         } else {
            if ($F('ddlPays').strip() === 'FR') {
               if ($('codePostal') && $F('codePostal').strip() === '' && $('erreur_codePostal')) {
                  $('erreur_codePostal').show()
               }
            }
            if ($('ddlVille') && $F('ddlVille').strip() === '' && $('erreur_ville')) {
               $('erreur_ville').show()
            }
         }
      }
      return;
   }

   var verificationContact = function () {
      if ($('telephone')) {
         if (!verificationTelephone() && $('erreur_telephone')) {
            $('erreur_telephone').show();
         }
      }
      if ($('eMail')) {
         if (!verificationEmail() && $('erreur_eMail')) {
            $('erreur_eMail').show();
         }
      }
      return;
   }

   var verificationTextes = function () {
      if ($('texte')) {
         if ($F('texte').strip() === '' && $('erreur_texte')) {
            $('erreur_texte').show();
         }
      }
      if ($('texteInternet')) {
         if (!verificationTexteInternet() && $('erreur_texteInternet')) {
            $('erreur_texteInternet').show();
         }
      }
      return;
   }

   var cacherCriteres = function () {
      $$('.messageErreurSaisie').invoke('hide');
      if ($('criteres')) {$('criteres').hide();}
      if ($('contact')) {$('contact').hide();}
      if ($('annonce')) {$('annonce').hide();}
      if ($('soumission')) {$('soumission').hide();}
   };

   var afficherCriteres = function (empty) {
      if (empty) {
         if ($('liste_criteres')) {$('liste_criteres').innerHTML = '';}
      }
      $$('.messageErreurSaisie').invoke('hide');
      if ($('criteres')) {$('criteres').show();}
      if ($('contact')) {$('contact').show();}
      if ($('annonce')) {$('annonce').show();}
      if ($('soumission')) {$('soumission').show();}
   };

   var gestionSaisieCodePays = function () {
      if ($('codePays').value == 'FR') {
		 /*$('localisation_etranger').hide();*/
         $('localisation_france').show();
         $('villeDdl').show();
         $('villeTxt').hide();
      } else {
         $('localisation_france').hide();
         $('villeDdl').hide();
         $('villeTxt').show();
         /*$('localisation_etranger').show();*/
      }
   };

   var gestionSaisieCodePaysLivraison = function () {
      if ($('codePaysLivraison').value == 'FR') {
         $('localisation_livraison_france').show();
         $('villeDdlLivraison').show();
         $('villeTxtLivraison').hide();
      } else {
         $('localisation_livraison_france').hide();
         $('villeDdlLivraison').hide();
         $('villeTxtLivraison').show();
      }
   };

   var verificationCodePostal = function (afficherErreur) {
      afficherErreur = (afficherErreur === undefined  ? true : !!afficherErreur);
      if ($('codePostal') && !/^(\d{5})$/.test($F('codePostal'))) {
         if (afficherErreur && $('erreur_codePostal_invalide')) {
            $('erreur_codePostal_invalide').show();
         }
         return false;
      }
      return true;
   };

   var ancienCodePostal = null;

   var gestionSaisieCodePostal = function () {
      var codePostal = $F('codePostal');
      if (codePostal.length == 5
            && verificationCodePostal(true)) {
         if (codePostal != ancienCodePostal) {
            ancienCodePostal = codePostal;
            if ($('indicateur_chargement_codePostal')) {$('indicateur_chargement_codePostal').show();}

            if (ajaxListerCommunes) {ajaxListerCommunes.transport.abort();}
            ajaxListerCommunes = new Ajax.Request(
               this.urlListeCommunes,
               {
                  method: 'post',
                  asynchronous: !(/async=0/.test(window.location.search)),
                  parameters: {'codePostal': codePostal},
                  onSuccess: gestionRetourListerCommunes.bind(this)
               }
            );
         }
      } else {
         gestionRetourListerCommunes({responseText: '([])'});
      }
   };

   var gestionSaisieCodePostalLivraison = function () {
      var codePostal = $F('codePostalLivraison');

      if (codePostal.length == 5
            && verificationCodePostal(true)) {
         if (codePostal != ancienCodePostal) {
            ancienCodePostal = codePostal;
            if ($('indicateur_chargement_codePostalLivraison')) {$('indicateur_chargement_codePostalLivraison').show();}

            if (ajaxListerCommunes) {ajaxListerCommunes.transport.abort();}
            ajaxListerCommunes = new Ajax.Request(
               this.urlListeCommunes,
               {
                  method: 'post',
                  asynchronous: !(/async=0/.test(window.location.search)),
                  parameters: {'codePostalLivraison': codePostal},
                  onSuccess: gestionRetourListerCommunesLivraison.bind(this)
               }
            );
         }
      } else {
         gestionRetourListerCommunesLivraison({responseText: '([])'});
      }
   };

   // Evolution QAS
   var gestionSaisieCodePostalQAS = function () {
	      var codePostal = $F('codePostal');
	      if (codePostal.length == 5) {
            if ($('indicateur_chargement_codePostal')) {$('indicateur_chargement_codePostal').show();}

            if (ajaxListerCommunes) {ajaxListerCommunes.transport.abort();}
            ajaxListerCommunes = new Ajax.Request(
               this.urlListeCommunes,
               {
                  method: 'post',
                  asynchronous: 0,
                  parameters: {'codePostal': codePostal},
                  onSuccess: gestionRetourListerCommunes.bind(this)
               }
            );
	      }
	   };

	   var gestionSaisieCodePostalLivraisonQAS = function () {
	      var codePostal = $F('codePostalLivraison');

	      if (codePostal.length == 5) {
            if ($('indicateur_chargement_codePostalLivraison')) {$('indicateur_chargement_codePostalLivraison').show();}

            if (ajaxListerCommunes) {ajaxListerCommunes.transport.abort();}
            ajaxListerCommunes = new Ajax.Request(
               this.urlListeCommunes,
               {
                  method: 'post',
                  asynchronous: 0,
                  parameters: {'codePostalLivraison': codePostal},
                  onSuccess: gestionRetourListerCommunesLivraison.bind(this)
               }
            );
	      }
	   };
   // FIN Evolution QAS
   
   var gestionRetourListerCommunes = function (xhr) {
      var data = xhr.responseText.evalJSON();
      if (data) {
         Utils.rebuildListeDepuisData('ddlVille', data);
         if (data != '') {$('ddlVille').selectedIndex = 0;}
      }
      if ($('indicateur_chargement_codePostal')) {$('indicateur_chargement_codePostal').hide();}
   };

   var gestionRetourListerCommunesLivraison = function (xhr) {
      var data = xhr.responseText.evalJSON();
      if (data) {
         Utils.rebuildListeDepuisData('ddlVilleLivraison', data);
         if (data != '') {$('ddlVilleLivraison').selectedIndex = 0;}
      }
      if ($('indicateur_chargement_codePostalLivraison')) {$('indicateur_chargement_codePostalLivraison').hide();}
   };

    var Utils = function ()
        {
            return {
                viderListe: function (idListe)
                    {
                        $(idListe).immediateDescendants().each(function (elt)
                          {
                             if (idListe == 'version')
                             {
                                if (elt.value != 'posur' && !elt.value.empty()) {$(elt).remove();}
                             }
                             else
                             {
                                if (!elt.value.empty()) {$(elt).remove();}
                             }
                          });
                    }, // viderListe
                rebuildListeDepuisData: function (idListe, elements)
                    {
                       this.viderListe(idListe);
                       elements.each(function (elt)
                          {
                             var longueur = $(idListe).options.length;
                             $(idListe).options.length++;
                             $(idListe).options[longueur].value = elt.code;
                             $(idListe).options[longueur].text = elt.libelle;
                          });
                    }, // rebuildListeDepuisData
                applyStylesToList: function (idListe, propriete, data, idCaller)
                    {
                       var indexSelectionAutomatique = null;
                       var compteurPossibles = 0;
                       if (data[propriete] !== undefined && $(idListe))
                       {
                          $A($(idListe).options).reject(function (elt) {return elt.value.empty();}).each(function (elt)
                             {
                                if (data[propriete].indexOf(elt.value) == -1)
                                {
                                   $(elt).addClassName('nonDisponible');
                                   if ($(elt).hasClassName('disponible'))
                                   {
                                      $(elt).removeClassName('disponible');
                                   }
                                }
                                else
                                {
                                   $(elt).addClassName('disponible');
                                   if ($(elt).hasClassName('nonDisponible'))
                                   {
                                      $(elt).removeClassName('nonDisponible');
                                   }
                                   compteurPossibles++;
                                   indexSelectionAutomatique = elt.index;
                                }
                             });
                          if (compteurPossibles == 1 && indexSelectionAutomatique !== null && (idCaller===undefined || idListe!==idCaller))
                          {
                             $(idListe).selectedIndex = indexSelectionAutomatique;
                          }
                       }
                    }, // applyStylesToList
                extractStr: function (data, marqueur)
                    {
                        var debut = data.indexOf('<!-- /*%%@@' + marqueur + '@@%%*/ -->') + ('<!-- /*%%@@' + marqueur + '@@%%*/ -->').length;
                        var fin = data.indexOf('<!-- /*{{[[' + marqueur + ']]}}*/ -->');
                        return data.substr(debut, fin-debut).strip();
                    }, // extractStr
                formatteEntier: function (data, separateur, nombreChiffres)
                    {
                        separateur = separateur || '.';
                        nombreChiffres = nombreChiffres || 3;
                        return (+data.strip()).toString().toArray().reverse().eachSlice(nombreChiffres, function (elt) {return elt.join('');}).join(separateur).toArray().reverse().join('');
                    } // formatteEntier
            };
        }();

   var gestionSaisieTexte = function () {
      if (!$('texte')) {
         return;
      }
      // Remplacement des caracteres HTML et suppression des tags
      while ($F('texte') != $F('texte').unescapeHTML()) {
         $('texte').value = $F('texte').unescapeHTML();
      }

      // Verification de la longueur max
      var nbrCaracteresSaisis = $F('texte').length;
      if (nbrCaracteresSaisis > this.config.nbrCaracteresMaxTexte) {
         $('texte').value = $F('texte').truncate(this.config.nbrCaracteresMaxTexte, '');
         nbrCaracteresSaisis = $F('texte').length;
      }

      // Initialisation du nombre de caracteres restants
      var nbrCaracteresRestant = Math.max(this.config.nbrCaracteresMaxTexte - nbrCaracteresSaisis, 0);
      $('nbrCaracteresRestantTexte').value = nbrCaracteresRestant;
   };

   var texteInternetPrecedent = '';
   var gestionSaisieTexteInternet = function () {
      if (!$('texteInternet')) {
         return;
      }
      // Remplacement des caracteres HTML et suppression des tags
      while ($F('texteInternet') != $F('texteInternet').unescapeHTML()) {
         $('texteInternet').value = $F('texteInternet').unescapeHTML();
      }

      // Verification de la longueur max
      var nbrCaracteresSaisis = $F('texteInternet').length;
      if (nbrCaracteresSaisis > this.config.nbrCaracteresMaxTexteInternet) {
         $('texteInternet').value = ($F('texteInternet').truncate(this.config.nbrCaracteresMaxTexteInternet, ''));
         nbrCaracteresSaisis = $F('texteInternet').length;
         $('warning_tailleTexteInternet').show();
      } else if (this.texteInternetPrecedent != $F('texteInternet')) {
         $('warning_tailleTexteInternet').hide();
      }
      texteInternetPrecedent = $F('texteInternet');
      var nbrCaracteresRestant = Math.max(this.config.nbrCaracteresMaxTexteInternet - nbrCaracteresSaisis, 0);
      $('nbrCaracteresRestantTexteInternet').value = nbrCaracteresRestant;
   };

   var gestionRetourEProduitDansCommande = function (xhr) {
      var data = xhr.responseText.evalJSON();

      if (data[0].nbLignesCommandes>0) {
      	$('eProduitsDansLigneCommande').value = '1';
      }
      else {
	  	$('eProduitsDansLigneCommande').value = '0';
	  }

	  myc_stock_archiver(data[0].listeCodesEProduits,data[0].selection);
   };






   return public = {

        config: {
                majTexteAutomatiqueActive: true,
                nbrCaracteresMaxTexte: 200,
                nbrCaracteresMaxTexteInternet: 700,
                prixMax: 0,
                baseURL: '',
                deposeDepuisFT: false
            },
        texteModifieManuellement: false,



        lastCaller: undefined,

        urlListerCategories: undefined,
        urlListerCriteres: undefined,
        urlListeCommunes: undefined,
        urlListerDynamiquement: undefined,
        urlListerDonneesVOVU: undefined,
        urlValiderImmatriculation: undefined,


        getCriteres: function () {return criteres;},

      forceCriteres: function (json) {
         criteres = json;
      },

      action: function (caller) {
         this.lastCaller = caller;
         var id = caller ? $(caller).id : 'void';

         if (id === 'codePays') {
            gestionSaisieCodePays.bind(this)();
         } else if (id === 'codePostal') {
            gestionSaisieCodePostal.bind(this)();
         } else if (id === 'codePaysLivraison') {
            gestionSaisieCodePaysLivraison.bind(this)();
         } else if (id === 'codePostalLivraison') {
         	gestionSaisieCodePostalLivraison.bind(this)();
         } else if (id == 'texte') {
            gestionSaisieTexte.bind(this)();
         } else if (id == 'texteInternet') {
            gestionSaisieTexteInternet.bind(this)();
         }
      },

      // Evolution QAS
      actionQAS: function (livraison) {
          if (livraison) {
        	  gestionSaisieCodePostalLivraisonQAS.bind(this)();
          } else {
        	  gestionSaisieCodePostalQAS.bind(this)();
          }
       },      
      // FIN Evolution QAS
      
      choixRubriqueCahier: function (caller) {
         this.lastCaller = caller;
         if (ajaxListerRubriqueFamilles) {ajaxListerRubriqueFamilles.transport.abort();}
         if (ajaxListerRubriqueRubriques) {ajaxListerRubriqueRubriques.transport.abort();}
         if (ajaxListerRubriqueSousRubriques) {ajaxListerRubriqueSousRubriques.transport.abort();}
         if (ajaxListerCriteres) {ajaxListerCriteres.transport.abort();}
         if (ajaxCascade) {ajaxCascade.transport.abort();}

         if ($('allArround_famille')) {$('famille').selectedIndex=0;$('allArround_famille').hide();}
         if ($('allArround_rubrique')) {$('rubrique').selectedIndex=0;$('allArround_rubrique').hide();}
         if ($('allArround_sousrubrique')) {$('sousrubrique').selectedIndex=0;$('allArround_sousrubrique').hide();}
         cacherCriteres();

         var cahier = $F(caller);
         if (cahier.blank()) {
            return;
         }

         if ($('indicateur_chargement_cahier')) {$('indicateur_chargement_cahier').show();}
         ajaxListerRubriqueFamilles = new Ajax.Request(
               this.urlListerRubriqueFamilles,
               {
                  method: 'post',
                  asynchronous: !(/async=0/.test(window.location.search)),
                  parameters: {code: $F(caller)},
                  onSuccess: gestionRetourRubriqueFamilles.bind(this)
               }
         );
      },

      choixRubriqueFamille: function (caller) {
         this.lastCaller = caller;
         if (ajaxListerRubriqueFamilles) {ajaxListerRubriqueFamilles.transport.abort();}
         if (ajaxListerRubriqueRubriques) {ajaxListerRubriqueRubriques.transport.abort();}
         if (ajaxListerRubriqueSousRubriques) {ajaxListerRubriqueSousRubriques.transport.abort();}
         if (ajaxListerCriteres) {ajaxListerCriteres.transport.abort();}
         if (ajaxCascade) {ajaxCascade.transport.abort();}

         if ($('allArround_rubrique')) {$('rubrique').selectedIndex=0;$('allArround_rubrique').hide();}
         if ($('allArround_sousrubrique')) {$('sousrubrique').selectedIndex=0;$('allArround_sousrubrique').hide();}
         cacherCriteres();

         var famille = $F(caller);
         if (famille.blank()) {
            return;
         }

         if ($('indicateur_chargement_famille')) {$('indicateur_chargement_famille').show();}
         ajaxListerRubriqueRubriques = new Ajax.Request(
               this.urlListerRubriqueRubriques,
               {
                  method: 'post',
                  asynchronous: !(/async=0/.test(window.location.search)),
                  parameters: {code: $F(caller)},
                  onSuccess: gestionRetourRubriqueRubriques.bind(this)
               }
         );
      },

      choixRubriqueRubrique: function (caller) {
         this.lastCaller = caller;
         if (ajaxListerRubriqueFamilles) {ajaxListerRubriqueFamilles.transport.abort();}
         if (ajaxListerRubriqueRubriques) {ajaxListerRubriqueRubriques.transport.abort();}
         if (ajaxListerRubriqueSousRubriques) {ajaxListerRubriqueSousRubriques.transport.abort();}
         if (ajaxListerCriteres) {ajaxListerCriteres.transport.abort();}
         if (ajaxCascade) {ajaxCascade.transport.abort();}

         if ($('allArround_sousrubrique')) {$('sousrubrique').selectedIndex=0;$('allArround_sousrubrique').hide();}
         cacherCriteres();

         var rubrique = $F(caller);
         if (rubrique.blank()) {
            return;
         }

         if ($('indicateur_chargement_rubrique')) {$('indicateur_chargement_rubrique').show();}
         ajaxListerRubriqueSousRubriques = new Ajax.Request(
               this.urlListerRubriqueSousRubriques,
               {
                  method: 'post',
                  asynchronous: !(/async=0/.test(window.location.search)),
                  parameters: {code: $F(caller)},
                  onSuccess: gestionRetourRubriqueSousRubriques.bind(this)
               }
         );
      },

      choixCriteres: function (caller) {
         this.lastCaller = caller;
         if (ajaxListerRubriqueFamilles) {ajaxListerRubriqueFamilles.transport.abort();}
         if (ajaxListerRubriqueRubriques) {ajaxListerRubriqueRubriques.transport.abort();}
         if (ajaxListerRubriqueSousRubriques) {ajaxListerRubriqueSousRubriques.transport.abort();}
         if (ajaxListerCriteres) {ajaxListerCriteres.transport.abort();}
         if (ajaxCascade) {ajaxCascade.transport.abort();}

         cacherCriteres();

         var code = $F(caller);
         if (code.blank()) {
            return;
         }

         afficherCriteres(true);

         if ($('indicateur_chargement_criteres')) {$('indicateur_chargement_criteres').show();}
         ajaxListerRubriqueSousRubriques = new Ajax.Request(
               this.urlListerCriteres,
               {
                  method: 'post',
                  asynchronous: !(/async=0/.test(window.location.search)),
                  parameters: {code: $F(caller)},
                  onSuccess: gestionRetourCriteres.bind(this)
               }
         );
      },

	  eProduitDansCommande: function (code, selection) {
         if (code=='') {
            return;
         }
		 
		 if (selection=='1') {
			 $('bouton_suppression_selectionTop').hide();
			 $('bouton_suppression_selectionBottom').hide();
	  	  	 $('indicateur_suppression_selectionTop').show();
	  	  	 $('indicateur_suppression_selectionBottom').show();
		 }
		 else {
			 $('bouton_suppression_' + code).hide();
	  	  	 $('indicateur_suppression_' + code).show();
		 }
         ajaxEProduitDansCommande = new Ajax.Request(
               this.urlEProduitDansCommande,
               {
                  method: 'post',
                  asynchronous: !(/async=0/.test(window.location.search)),
                  parameters: {'code': code, 'selection': selection},
                  onSuccess: gestionRetourEProduitDansCommande.bind(this)
               }
         );
      },

      verification: function () {
         $$('.messageErreurSaisie').invoke('hide');

         // Verification des criteres
         verificationCriteres();

         // Verification de la localisation
         verificationLocalisation();

         // Verification des contact
         verificationContact();

         // Verification des textes
         verificationTextes();

         // Retour de la verification
         if ($$('.messageErreurSaisie').findAll(function (e) {return e.visible();}).size() === 0) {
            return true;
         } else {
            document.location.hash = '#err';
            return false;
         }
      }
      
   }; // Fin return public

}();


function createCritereHTML(code, libelle, type, valeurs){
   elementHTML = '<div id="critere_' + code + '" class="myc_sel_alert_line2">';
   elementHTML += '<div class="flol myc_sel_alert_lib2">' + libelle + ' : </div>';
   elementHTML += '<div class="flol">';
   switch (type) {
      case 'input':
            elementHTML += '<input type="text" id="' + code + '" name="' + code + '" value="" />';
            break;
      case 'select' :
            elementHTML += '<select id="' + code + '" name="' + code + '" value="" class="myc_sel_alert2">';
            valeurs.each(function(elt) {
               elementHTML += '<option value="' + elt.code + '">' + elt.libelle + '</option>';
            });
            elementHTML += '</select>';
            break;
      case 'checkbox' :
            var compteur = 0;
            valeurs.each(function(elt) {
               if (elt != '' && elt.code != '') {
                  compteur++;
                  elementHTML += '<label><input type="checkbox" id="' + code + compteur + '" name="' + code + '" value="' + elt.code + '">' + elt.libelle + '</label><br />';
               }
            });
            break;
      case 'radio':
            var compteur = 0;
            valeurs.each(function(elt) {
               if (elt != '' && elt.code != '') {
                  compteur++;
                  elementHTML += '<label><input type="radio" id="' + code + compteur + '" name="' + code + '" value="' + elt.code + '">' + elt.libelle + '</label><br />';
               }
            });
            break;
   }
   elementHTML += '</div>';
   elementHTML += '<div class="fin"></div>';
   elementHTML += '</div>';
   return elementHTML;
}




