/[openfoncier]/trunk/app/js/script.js
ViewVC logotype

Diff of /trunk/app/js/script.js

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 762 by vpihour, Tue Nov 20 10:56:27 2012 UTC revision 1471 by fmichon, Sun Mar 17 20:58:11 2013 UTC
# Line 1  Line 1 
1  // specific openfoncier ========================================================  // specific openfoncier ========================================================
2  // OnReady  
3    // Document is ready
4  $(function(){  $(function(){
5     // Document is ready  
6        /**
7         * Ajout du focus sur le champ login au chargement de la page.
8         */
9         $('#login_form #login').focus();
10    
11        /**
12         * Spécifique app/affichage_reglementaire_attestation.php pour donner le
13         * focus sur le champ de recherche au chargement de la page.
14         */
15         $('#affichage_reglementaire_attestation_form #dossier').focus();
16    
17       /**
18        * Spécifique app/avis_code_barre.php pour donner le focus sur le champ de
19        * recherche au chargement de la page.
20        */
21     $('#avis_code_barre_form #consultation').focus();     $('#avis_code_barre_form #consultation').focus();
22    
23        /**
24        * Spécifique app/maj_dates_suivi.php pour donner le focus sur le champ
25        * instruction au chargement de la page si la date n'est pas vide.
26        */
27        if($('#maj_dates_form #date').val()!="") {
28            $('#maj_dates_form #instruction').focus();
29        }
30   });   });
31    
32    
33  function bible(){  /**
34     * WIDGET liés au formulaire et sousformulaire
35     *
36     * Ces fonctions javascript sont appelées depuis les méthodes setOnChange,
37     * setOnClick, ...
38     */
39    // bible - type httpclick
40    function bible() {
41      if(fenetreouverte==true)      if(fenetreouverte==true)
42             pfenetre.close();             pfenetre.close();
43      var ev=document.f2.evenement.value;      var ev=document.f2.evenement.value;
# Line 14  function bible(){ Line 45  function bible(){
45      pfenetre=window.open("../app/bible.php?ev="+ev+"&idx="+idx,"bible","scrollbars=yes,width=600,height=600,top=120,left=120");      pfenetre=window.open("../app/bible.php?ev="+ev+"&idx="+idx,"bible","scrollbars=yes,width=600,height=600,top=120,left=120");
46      fenetreouverte=true;      fenetreouverte=true;
47  }  }
48    // bible2 - type httpclick
49  function bible2()  function bible2()
50  {  {
51      if(fenetreouverte==true)      if(fenetreouverte==true)
# Line 24  function bible2() Line 55  function bible2()
55      pfenetre=window.open("../app/bible2.php?ev="+ev+"&idx="+idx,"bible","scrollbars=yes,width=600,height=600,top=120,left=120");      pfenetre=window.open("../app/bible2.php?ev="+ev+"&idx="+idx,"bible","scrollbars=yes,width=600,height=600,top=120,left=120");
56      fenetreouverte=true;      fenetreouverte=true;
57  }  }
58    // bible_auto - type httpclick
59  function bible_auto(){  function bible_auto(){
60      if(fenetreouverte==true)      if(fenetreouverte==true)
61             pfenetre.close();             pfenetre.close();
# Line 33  function bible_auto(){ Line 64  function bible_auto(){
64      pfenetre=window.open("../app/bible_auto.php?idx="+idx+"&ev="+ev,"evenement","width=600,height=300,top=120,left=120");      pfenetre=window.open("../app/bible_auto.php?idx="+idx+"&ev="+ev,"evenement","width=600,height=300,top=120,left=120");
65      fenetreouverte=true;      fenetreouverte=true;
66  }  }
67    // VerifNumdec - type text
68    function VerifNumdec(champ) {
69        champ.value = champ.value.replace(",", "."); // remplacement de la virgule
70        //if (champ.value.lastIndexOf(".") == -1){ // champ decimal
71            if (isNaN(champ.value)) {
72                alert(msg_alert_error_verifnum);
73                champ.value = "";
74                return;
75            }
76        //}
77        
78    }
79    // Ce widget permet de charger les données d'un select en ajax
80    function changeDataSelect(tableName, linkedField, joker){
81        var id_dossierAutorisation = $("#dossier_autorisation").val();
82        var id = $("#"+linkedField).val();
83        link = "../app/listData.php?idx=" + id + "&tableName=" + tableName +
84                "&linkedField=" + linkedField ;
85        if(id_dossierAutorisation != "") {
86            link += "&nature=EXIST";
87        }
88        var val_tableName = $('#'+tableName).val();
89        $.ajax({
90            type: "GET",
91            url: link,
92            cache: false,
93            dataType: "json",
94            success: function(html){
95                
96                $('#'+tableName).empty();
97                var selected = "";
98                if(val_tableName == "") {
99                    selected=' selected="selected"';
100                }
101                if ( joker == true )
102                    $('#'+tableName).append(
103                        '<option value=""'+selected+'>*</option>'
104                    );
105                else {
106                    $('#'+tableName).append(
107                        '<option value=""'+selected+'>Choisir ' + tableName + '</option>'
108                    );
109                }
110                if ( html !== '' ){
111                    
112                    html = html.split(';');
113                    for ( i = 0 ; i < html.length - 1 ; i++ ){
114                        
115                        html_temp = html[i].split('_');
116                        selected = "";
117                        if(val_tableName == html_temp[0]) {
118                            selected=' selected="selected"';
119                        }
120                        $('#'+tableName).append(
121                            '<option value="'+html_temp[0]+'"'+selected+' >'+html_temp[1]+'</option>'
122                        );
123                        
124                    }
125                }
126            },
127            async: false
128        });
129    }
130    
131    // Ce widget permet de charger les données de la demande type en ajax
132    function changeDemandeTypeDataSelect(){
133        // Récupération de l'id du dossier_autorisation_type_detaille
134        var id_datd = $("#dossier_autorisation_type_detaille").val();
135    
136        // Récupération de la liste des paramètres de l'url
137        var params = extractUrlParams();
138        if ( typeof params['idx_dossier'] === "undefined" ){
139            params['idx_dossier'] = '';
140        }
141    
142        link = "../app/listDemandeType.php?idx=" + params['idx_dossier'] + "&datd="+ id_datd;
143    
144        var val_tableName = $('#demande_type').val();
145        $.ajax({
146            type: "GET",
147            url: link,
148            cache: false,
149            dataType: "json",
150            success: function(res){
151                $('#demande_type').empty();
152                var selected = "";
153    
154                for ( j=0 ; j < res[0].length ; j++ ){
155    
156                    $('#demande_type').append(
157                        '<option value="'+res[0][j]+'"'+selected+' >'+res[1][j]+'</option>'
158                    );
159                    
160                }
161                $('#demande_type').val(val_tableName);
162            },
163            async: false
164        });
165    }
166    
167    /**
168     * Fonction de récupération des paramètres GET de la page
169     * @return Array Tableau associatif contenant les paramètres GET
170     */
171    function extractUrlParams(){    
172        var t = location.search.substring(1).split('&');
173        var f = [];
174        for (var i=0; i<t.length; i++){
175            var x = t[ i ].split('=');
176            f[x[0]]=x[1];
177        }
178        return f;
179    }
180    
181    // vuploadMulti - XXX
182    function vuploadMulti(champ) {
183        //
184        if (fenetreouverte == true) {
185            pfenetre.close();
186        }
187        //
188        pfenetre = window.open("../spg/upload.php?origine="+champ+"&form="+$('input[name='+champ+']').closest('form').attr('name'),"upload","width=400,height=300,top=120,left=120");
189        //pfenetre = window.open("../spg/upload2.php?origine="+champ,"upload2","width=300,height=100,top=120,left=120");
190        //
191        fenetreouverte = true;
192    }
193    // tmpUpload - Upload  XXX
194    function tmpUpload(champ) {
195        //
196        if (fenetreouverte == true) {
197            pfenetre.close();
198        }
199        //
200        pfenetre = window.open("../app/tmpUpload.php?origine="+champ+"&form="+$('input[name='+champ+']').closest('form').attr('name'),"upload","width=400,height=300,top=120,left=120");
201        //pfenetre = window.open("../spg/upload2.php?origine="+champ,"upload2","width=300,height=100,top=120,left=120");
202        //
203        fenetreouverte = true;
204    }
205    
206    
207    
208    /**
209     * POPUP pour le téléchargement de fichier
210     *
211     * Ces fonctions javascript sont appelées depuis des onClick sur des
212     * formulaires spécifiques pour permettre de transmettre des paramètres aux
213     * éditions pdf ainsi appelées.
214     */
215    //
216  function dossierads_d(debut)  function dossierads_d(debut)
217  {  {
218  //if(fenetreouverte==true)  //if(fenetreouverte==true)
219  window.location="../pdf/pdfetat.php?obj=dossier_ads_d&nature="  window.location="../pdf/pdfetat.php?obj=registre_dossiers_decisions_par_type_par_date&nature="
220  +document.f1.nature.value+"&idx=demo&datedebut="  +document.f1.nature.value+"&idx=demo&datedebut="
221  +document.f1.datedebut.value+"&datefin="+document.f1.datefin.value;  +document.f1.datedebut.value+"&datefin="+document.f1.datefin.value;
222  }  }
223    
224    // Cette fonction permet de gérer la validation du formulaire du script :
225    // app/affichage_reglementaire_registre.php
226    function affichage_reglementaire_registre(button) {
227        // Popup de confirmation du traitement par l'utilisateur
228        if (trt_confirm() == false) {
229            return false;
230        }
231        // Suppression du bouton pour que l'utilisateur ne puisse pas cliquer une
232        // deuxième fois
233        $(button).remove();
234        // Affichage du spinner
235        $("#msg").html(msg_loading);
236        // Requête AJAX vers le fichier app/affichage_reglementaire_registre.php
237        // pour mettre à jour les dossiers
238        // XXX layout
239        $.ajax({
240            type: "GET",
241            url: "../app/affichage_reglementaire_registre.php?update",
242            cache: false,
243            success: function(html){
244                // Ajout d'un bloc de message vide
245                $('#msg').html(
246                    '<div class="message ui-widget ui-corner-all ui-state-highlight">'+
247                        '<p>'+
248                            '<span class="ui-icon ui-icon-info"></span>'+
249                            '<span class="text">'+
250                            '</span>'+
251                        '</p>'+
252                    '</div>'
253                );
254                // Si le retour de l'appel Ajax n'est pas vide, alors il y a eu une
255                // lors du traitement
256                if ( html.length > 2 ) {
257                    $("#msg .message").addClass("ui-state-error");
258                    $("#msg .text").html(html);
259                } else {
260                    // Sinon message de succès et appel de l'édition
261                    $("#msg .message").addClass("ui-state-valid");
262                    $("#msg .text").html("Traitement terminé. Le registre a été téléchargé.");
263                    window.open("../pdf/pdfetat.php?obj=registre_dossiers_affichage_reglementaire&idx=demo");
264                }
265            },
266            async: false
267        });
268        //
269        return false;
270    }
271    
272    //Fonction de redirection pour le widget de recherche de dossier
273    function widget_recherche_dossier(data,nbRes){
274        /*$('#msg').show();
275        $('#msg').html(msg_loading);*/
276      
277        // S'il n'y a qu'un seul résultat, afficher un résumé
278        if ( nbRes == 1 ){
279        
280            window.location = "../scr/form.php?obj=dossier_instruction&action=3&" +
281                "idx=" + data + "&premier=0&advs_id=&recherche=&tricol=&" +
282                "selectioncol=&valide=&retour=tab";  
283        }
284        // S'il y a une liste de dossier, redirection vers le tableau
285        else {
286            
287            window.location = "../scr/tab.php?obj=recherche_direct&selectioncol=0&recherche=" + data;
288        }
289    }
290    //
291  function dossierdepot()  function dossierdepot()
292  {  {
293  //if(fenetreouverte==true)  //if(fenetreouverte==true)
294      window.location="../pdf/pdfetat.php?obj=dossier_depot&nature="+      window.location="../pdf/pdfetat.php?obj=registre_dossiers_depots_par_type_par_date&nature="+
295      document.f1.nature.value+"&idx=demo&datedebut="+      document.f1.nature.value+"&idx=demo&datedebut="+
296      document.f1.datedebut.value+"&datefin="+document.f1.datefin.value;      document.f1.datedebut.value+"&datefin="+document.f1.datefin.value;
297  }  }
298    //
299  function dossierads()  function dossierads()
300  {  {
301  //if(fenetreouverte==true)  //if(fenetreouverte==true)
302      window.location="../pdf/pdfetat.php?obj=dossier_ads&nature="+      window.location="../pdf/pdfetat.php?obj=registre_dossiers_par_type_par_date&nature="+
303      document.f1.nature.value+"&idx=demo&datedebut="+      document.f1.nature.value+"&idx=demo&datedebut="+
304      document.f1.datedebut.value+"&datefin="+document.f1.datefin.value;      document.f1.datedebut.value+"&datefin="+document.f1.datefin.value;
305  }  }
306    
307    // téléchargement du fichier
308  function VerifNumdec(champ) {  function file(fichier) {
309      champ.value = champ.value.replace(",", "."); // remplacement de la virgule      //
310      //if (champ.value.lastIndexOf(".") == -1){ // champ decimal      if (fichier == "") {
311          if (isNaN(champ.value)) {          alert("zone vide");
312              alert(msg_alert_error_verifnum);      }
313              champ.value = "";      //
314              return;      pfenetre = window.open("../app/file.php?file="+fichier,"Visualisation","width=100,height=100,top=1,left=150,scrollbars=yes,resizable = yes");
315          }      //
316      //}      fenetreouverte = true;
       
317  }  }
318  /* -- Debut -- */  
319    /**
320     * Retour spécifique de l'écran de consultation multiple - surcharge de ajaxIt
321     * @todo XXX voir les différences avec ajaxIt et si il n'est pas possible
322     * d'effectuer  la modification dans le core
323     */
324  function messageIt(objsf, link, empty) {  function messageIt(objsf, link, empty) {
325      // recuperation du terme recherche      // recuperation du terme recherche
326      var recherche = document.getElementById("recherchedyn");      var recherche = document.getElementById("recherchedyn");
# Line 93  function messageIt(objsf, link, empty) { Line 343  function messageIt(objsf, link, empty) {
343      });      });
344  }  }
345    
346    /**
347     * TTélécharegement de fichier pdf en ajax
348     * spécifique de l'écran de consultation multiple
349     */
350  /* Plugin jQuery qui lance un espèce d'appel AJAX vers un script PHP de téléchargement de fichier*/  /* Plugin jQuery qui lance un espèce d'appel AJAX vers un script PHP de téléchargement de fichier*/
351  jQuery.download = function(url, data, method){  jQuery.download = function(url, data, method){
352      //url and data options required      //url and data options required
# Line 111  jQuery.download = function(url, data, me Line 365  jQuery.download = function(url, data, me
365      };      };
366  };  };
367    
368  /* -- FIN -- */  /**
369  function popupIt(objsf, link) {   * Cette fonction permet de charger dans un dialog jqueryui un formulaire tel
370     * qu'il aurait été chargé avec ajaxIt
371     *
372     * @param objsf string : objet de sousformulaire
373     * @param link string : lien vers un sousformulaire (../scr/sousform.php...)
374     * @param width integer: width en px
375     * @param height integer: height en px
376     * @param callback function (optionel) : nom de la méthode à appeler
377     *                                       à la fermeture du dialog
378     * @param callbackParams mixed (optionel) : paramètre à traiter dans la function
379     *                                          callback
380     *
381     **/
382    function popupIt(objsf, link, width, height, callback, callbackParams) {
383      // Insertion du conteneur du dialog      // Insertion du conteneur du dialog
384      var dialog = $('<div id=\"sousform-'+objsf+'\"></div>').insertAfter('.formControls');      var dialog = $('<div id=\"sousform-'+objsf+'\"></div>').insertAfter('#tabs-1 .formControls');
385      $('<input type=\"text\" name=\"recherchedyn\" id=\"recherchedyn\" value=\"\" class=\"champFormulaire\" style=\"display:none\" />').insertAfter('#sousform-'+objsf);      $('<input type=\"text\" name=\"recherchedyn\" id=\"recherchedyn\" value=\"\" class=\"champFormulaire\" style=\"display:none\" />').insertAfter('#sousform-'+objsf);
386            
387      // execution de la requete passee en parametre      // execution de la requete passee en parametre
# Line 134  function popupIt(objsf, link) { Line 401  function popupIt(objsf, link) {
401              $(dialog).dialog({              $(dialog).dialog({
402              //OnClose suppression du contenu              //OnClose suppression du contenu
403              close: function(ev, ui) {              close: function(ev, ui) {
404                  // Si le formulaire est submit et valide                  // Si le formulaire est submit et valide on execute la méthode
405                  var valid=$('#sousform-'+objsf+' div.ui-state-valid');                  // passée en paramètre
406                  if(valid.length > 0) {                  if (typeof(callback) === "function") {
407                      document.location.href="../scr/tab.php?obj="+$.getQuery('obj')+"&premier="+$.getQuery('premier')                      callback(callbackParams);
                     +"&advs_id="+$.getQuery('advs_id')+"&recherche="+$.getQuery('recherche')+"&tricol="+$.getQuery('tricol')  
                     +"&selectioncol="+$.getQuery('selectioncol');  
408                  }                  }
409                  $(this).remove();                  $(this).remove();
410              },              },
411              resizable: false,              resizable: false,
412              modal: true,              modal: true,
413              width: 700,              width: width,
414              height: 520,              height: height,
415                position: 'center',
416            });            });
417          },          },
418          async : false          async : false
419      });      });
420      //Modification des boutons retours du sous formulaire pour fermer le dialog      //Fermeture du dialog lors d'un clic sur le bouton retour
     $('#sousform-'+objsf).on("mousedown",'a.retour',function() {  
         $('#sousform-'+objsf+' a.retour').attr('onclick','');  
     });  
421      $('#sousform-'+objsf).on("click",'a.retour',function() {      $('#sousform-'+objsf).on("click",'a.retour',function() {
422          $(dialog).dialog('close').remove();          $(dialog).dialog('close').remove();
423            return false;
424      });      });
     return false;  
425  }  }
426    
427    /***
428     * Fonction getter des paramètres de l'url courante
429     */
430  // Parse URL Queries Method  // Parse URL Queries Method
431  (function($){  (function($){
432          $.getQuery = function( query ) {      $.getQuery = function( query ) {
433                  query = query.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");          query = query.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
434                  var expr = "[\\?&]"+query+"=([^&#]*)";          var expr = "[\\?&]"+query+"=([^&#]*)";
435                  var regex = new RegExp( expr );          var regex = new RegExp( expr );
436                  var results = regex.exec( window.location.href );          var results = regex.exec( window.location.href );
437                  if( results !== null ) {          if( results !== null ) {
438                          return results[1];              return results[1];
439                          return decodeURIComponent(results[1].replace(/\+/g, " "));              return decodeURIComponent(results[1].replace(/\+/g, " "));
440                  } else {          } else {
441                          return false;              return false;
442                  }          }
443          };      };
444  })(jQuery);  })(jQuery);
445    
446  function changeDataSelect(tn, ds, joker){  
447            /*
448      var id = $("#"+ds+" option:selected").val();   * Javascript concernant la demande d'avis
449      link = "../app/listData.php?idx=" + id + "&tn=" + tn + "&ds=" + ds;   *
450     *
451     */
452    
453    /**
454     * Fonction de callback appellée lors de la fermeture du dialog (popupit)
455     * du retour d'avis d'un service
456     **/
457    function returnToTab(objsf) {
458        var valid=$('#sousform-'+objsf+' div.ui-state-valid');
459        if(valid.length > 0) {
460            document.location.href="../scr/tab.php?obj="+$.getQuery('obj')+"&premier="+$.getQuery('premier')
461            +"&advs_id="+$.getQuery('advs_id')+"&recherche="+$.getQuery('recherche')+"&tricol="+$.getQuery('tricol')
462            +"&selectioncol="+$.getQuery('selectioncol');
463        }
464    };
465    
466    
467    /*
468     * Javascript concernant la demande
469     *
470     *
471     */
472    
473     /**
474      * Fonction permettant de mettre à jour les infos du demandeur
475      **/
476    function getDemandeurId(type) {
477        var id_demandeur=$('#id_retour').val();
478        if($.isNumeric(id_demandeur)) {
479            afficherDemandeur(id_demandeur,type);
480            om_initialize_content();
481        }
482    }
483    
484    /**
485     * Fonction permettant d'afficher la synthèse d'un demandeur
486     */
487    function afficherDemandeur(id,type) {
488      $.ajax({      $.ajax({
489          type: "GET",          type: "GET",
490          url: link,          url: '../app/afficher_synthese_demandeur.view.php?iddemandeur='+id+'&type='+type,
491          cache: false,          cache: false,
         dataType: "json",  
492          success: function(html){          success: function(html){
493                            $(html).insertBefore('#add_'+type).fadeIn(500);
494              $('#'+tn).empty();  
               
             if ( joker == true )  
                 $('#'+tn).append(  
                     '<option value="" selected="selected">*</option>'  
                 );  
             else  
                 $('#'+tn).append(  
                     '<option value="" selected="selected">Choisir ' + tn + '</option>'  
                 );  
               
             if ( html !== '' ){  
                   
                 html = html.split(';');  
                 for ( i = 0 ; i < html.length - 1 ; i++ ){  
                       
                     html_temp = html[i].split('_');  
                     $('#'+tn).append(  
                         '<option value="'+html_temp[0]+'" >'+html_temp[1]+'</option>'  
                     );  
                 }  
             }  
495          },          },
496          async: false          async:false
497      });      });
498        affichageBoutonsDemandeurs();
499  }  }
500  function vuploadMulti(champ) {  
501      //  /**
502      if (fenetreouverte == true) {   * Fonction permettant de modifier un demandeur
503          pfenetre.close();   */
504    function editDemandeur(obj,id,type,id_css) {
505        var url = '../scr/sousform.php?obj='+obj+'&retourformulaire=demande';
506        if(getDemandeInfo('type') == 'DM') {
507            url += '&action=0&idx_demandeur='+id;
508        } else {
509            url += '&action=1&idx='+id;
510      }      }
511      //      popupIt(obj, url, 860, 'auto',
512      pfenetre = window.open("../spg/upload.php?origine="+champ+"&form="+$('input[name='+champ+']').closest('form').attr('name'),"upload","width=400,height=300,top=120,left=120");              replaceDemandeur, {'type':type,'id': id, 'id_css':id_css});
513      //pfenetre = window.open("../spg/upload2.php?origine="+champ,"upload2","width=300,height=100,top=120,left=120");      affichageBoutonsDemandeurs();
     //  
     fenetreouverte = true;  
514  }  }
515  function tmpUpload(champ) {  
516      //  /**
517      if (fenetreouverte == true) {   * Function permettant de remplacer un contenu déjà existant
518          pfenetre.close();   **/
519    function replaceDemandeur(obj) {
520        var new_demandeur=$('#id_retour').val();
521        if($.isNumeric(new_demandeur)) {
522            $.ajax({
523                type: "GET",
524                url: '../app/afficher_synthese_demandeur.view.php?iddemandeur='+new_demandeur+'&type='+obj.type,
525                cache: false,
526                success: function(html){
527                    $(obj.id_css).replaceWith(html);
528                }
529            });
530      }      }
531      //  }
532      pfenetre = window.open("../app/tmpUpload.php?origine="+champ+"&form="+$('input[name='+champ+']').closest('form').attr('name'),"upload","width=400,height=300,top=120,left=120");  /**
533      //pfenetre = window.open("../spg/upload2.php?origine="+champ,"upload2","width=300,height=100,top=120,left=120");   * Function permettant de remplacer un contenu déjà existant
534      //   **/
535      fenetreouverte = true;  function removeDemandeur(id) {
536        var div_class=$('#'+id).attr("class");
537        $('#'+id).remove();
538        if(div_class == "delegataire") {
539            $('#add_delegataire').fadeIn(500);
540        }
541        affichageBoutonsDemandeurs();
542  }  }
543    
544  /*  /**
545      Ajoute le formulaire d'jout de référence cadastrale personnalisé   * Fonction permettant d'afficher et cacher les boutons d'ajout de demandeurs
546   * */   */
547    function affichageBoutonsDemandeurs(){
548    
549        // Si formulaire après validation on cache les boutons d'ajout de demandeurs
550        url = document.location + "" ;
551    
552        if ((url.indexOf("form.php?obj=demande&") != -1
553            || url.indexOf("form.php?obj=demande_nouveau_dossier&") != -1
554            || url.indexOf("form.php?obj=demande_dossier_existant&") != -1)
555            && $("form[name=f1] .form-is-valid").size() > 0 ) {
556    
557            $('#add_petitionnaire_principal').hide();
558            $('#add_delegataire').hide();
559            if($('input[name=delegataire][type=hidden]').size() == 0) {
560                $('#delegataire').hide();
561            }
562            $('#add_petitionnaire').hide();
563    
564        } else {
565    
566            // Affichage du bouton d'ajout du petitionnaire principal
567            if($('input[name=petitionnaire_principal][type=hidden]').size() == 1) {
568                $('#add_petitionnaire_principal').hide();
569            } else {
570                $('#add_petitionnaire_principal').fadeIn(500);
571            }
572    
573            // Affichage du bouton d'ajout du delegataire
574            if($('input[name=petitionnaire_principal][type=hidden]').size() == 1
575               || $('input[name=delegataire][type=hidden]').size() == 1) {
576                $('#delegataire').fadeIn(500);
577                if($('input[name=delegataire][type=hidden]').size() == 0) {
578                    $('#add_delegataire').fadeIn(500);
579                } else {
580                    $('#add_delegataire').hide();
581                }
582            } else {
583                $('#delegataire').hide();
584            }
585    
586            // Affichage du bouton d'ajout de petitionnaires
587            if($('input[name=petitionnaire_principal][type=hidden]').size() == 0) {
588                $('#add_petitionnaire').hide();
589            } else {
590                $('#add_petitionnaire').fadeIn(500);
591            }
592        }
593    }
594    
595    /**
596     * Appel au chargement de la page
597     **/
598  $(function() {  $(function() {
599            changeDemandeurType('qualite');
600        if ( $('#type_demandeur') == 'petitionnaire' ){
601            
602            addSearchIcon();
603            addDivDialog('.bloc_demandeur');
604        }
605        affichageBoutonsDemandeurs();
606        // Bind de la fonction permettant l'ajout du pétitionnaire principal
607        $("#formulaire").on("click","#add_petitionnaire_principal",  function() {
608            popupIt('petitionnaire',
609                    '../scr/sousform.php?obj=petitionnaire&action=0'+
610                    '&retourformulaire=demande&principal=true', 860, 'auto',
611                    getDemandeurId, 'petitionnaire_principal');
612        });
613        // Bind de la fonction permettant l'ajout du délégataire
614        $("#formulaire").on("click","#add_delegataire", function(event) {
615            popupIt('delegataire',
616                    '../scr/sousform.php?obj=delegataire&action=0'+
617                    '&retourformulaire=demande', 860, 'auto',
618                    getDemandeurId, 'delegataire');
619        });
620        // Bind de la fonction permettant l'ajout des pétitionnaires
621        $("#formulaire").on("click","#add_petitionnaire", function(event) {
622            popupIt('petitionnaire',
623                    '../scr/sousform.php?obj=petitionnaire&action=0'+
624                    '&retourformulaire=demande', 860, 'auto',
625                    getDemandeurId, 'petitionnaire');
626        });
627    
628      url = document.location + "" ;      url = document.location + "" ;
629      if ( $('#date_demande').length > 0      if ((
630          && !$('#dossier_autorisation_type_detaille').is(':disabled')          url.indexOf("form.php?obj=demande&") != -1 ||
631          && url.indexOf("form.php?obj=demande&action=0") != -1 ){          url.indexOf("form.php?obj=dossier&") != -1 ||
632            url.indexOf("form.php?obj=dossier_instruction&") != -1
633            )
634            && url.indexOf("&action=3") == -1) {
635    
636            formatFieldReferenceCadastrale();
637        }
638        
639        if (url.indexOf("form.php?obj=demande&") != -1
640            && (url.indexOf("&action=3") == -1
641            && url.indexOf("&action=2") == -1
642            && $(".form-is-valid").size() == 0)) {
643                    
644          $.ajax({          addButtonCadastraleAdesse();
645              type: "GET",          changeDemandeType();
646              url: "sousform.php?obj=demandeur&action=0&tri=&objsf=demandeur&premiersf=0",      }
647              cache: false,      
648              success: function(html){      // Ajout de demande
649                        if ((url.indexOf("form.php?obj=demande_nouveau_dossier&") != -1
650                  $('.lots').append(createFieldset('test', 'test'));          || url.indexOf("form.php?obj=demande_dossier_existant&") != -1)
651                  $('#test').html(html);          && url.indexOf("&action=0") != -1 ){
                 $('#test .formControls').remove();  
652    
653                  $('#test').html($('#test .formEntete').html());          /*Cache les champs avant que dossier_autorisation_type_detaille soit choisi*/
654                            hideFields();
655                  $('#test #particulier_prenom').parent().append(      }
656                      '<span class="om-icon om-icon-16 om-icon-fix search-part-16" title="Chercher un petitionnaire"></span>'      
657                  );      // Ajout de demande sur dossier existant
658                  $('#test #personne_morale_raison_sociale').parent().append(      if (url.indexOf("form.php?obj=demande_dossier_existant&") != -1
659                      '<span class="om-icon om-icon-16 om-icon-fix search-mor-16" title="Chercher un petitionnaire"></span>'          && url.indexOf("&action=0") != -1 ){
660                  );  
661                  $('#test input[id=personne_morale_prenom]').after(          /*Cache les champs avant que dossier_autorisation_type_detaille soit choisi*/
662                      '<span class="om-icon om-icon-16 om-icon-fix search-mor-16" title="Chercher un petitionnaire"></span>'          hideFields();
663                  );          changeDemandeType();
664                        }
665                  obj = $('#type_demandeur').parent();      
666                  obj.empty();      // Modification de demande
667                  obj.html(      if (
668                      '<select id="type_demandeur" class="champFormulaire selectTypeDemandeur" name="type_demandeur" size="1">' +          (
669                          '<option selected="selected" value="particulier">particulier</option>' +              url.indexOf("form.php?obj=demande&") != -1
670                          '<option value="personne_morale">personne morale</option>' +                                  || url.indexOf("form.php?obj=demande_nouveau_dossier&") != -1
671                      '</select>'              || url.indexOf("form.php?obj=demande_dossier_existant&") != -1
672                  );          )
673                            && url.indexOf("&action") == -1
674                  setSelectCivilite();      ){
675              },  
676              async: false          formatFieldReferenceCadastrale();
677          });      }
678        
679        //Gestion de la commission
680        $( "#tabs" ).tabs();
681          
682        // Affichage du tableau des dossier_commission au clique
683        $("#dossier_planifie").click(function() {
684                    
685          $('.lots').append(createFieldset('P&eacute;titionnaire(s)', 'petitionnaire__0'));          var params = extractUrlParams();
686          $('#petitionnaire__0').after(          idx = params['idx'];
687              '<div class="field field-type-text morePetitionnaire" style="display: table-row;">' +  
688                  '<div class="form-libelle">' +          ajaxIt(
689                      '<label class="libelle-more_petitionnaire" for="terrain_superficie"> + Ajouter un autre p&eacute;titionnaire </label>' +              'dossier_commission',
690                  '</div>' +              '../scr/soustab.php?obj=dossier_commission&idxformulaire='+
691                  '<div class="form-content">' +              idx +
692                  '</div>' +              '&retourformulaire=commission');
693              '</div>');      });
694                
695          $('.morePetitionnaire').click( function() {      // Affichage du tableau des dossier_commission posssible au clique
696              $('#fieldsetpetitionnaire__0 .morePetitionnaire').before(      $('#commission_dossiers_plannifier_retirer').click(
697                  '<div id="petitionnaire__' + $('#fieldsetpetitionnaire__0 .fieldsetContent').size() +'" class="fieldsetContent">'+          function(){
                     $('#fieldsetpetitionnaire__0 .formsDemandeur').val() +  
                 '</div>'  
             );  
               
             nb = $('#fieldsetpetitionnaire__0 .fieldsetContent').size() - 1;  
               
             changeIdNameField('petitionnaire__' + nb, '_' + nb );  
               
             addDatePicker( 'petitionnaire__' + nb + ' #particulier_date_naissance_' + nb);  
698                            
699              addActionSearch('petitionnaire__' + nb, '_' + nb);              var params = extractUrlParams();
700                idx = params['idx'];
701                            
702              setTypeDemandeur('petitionnaire__' + nb, '_' + nb );              $('#tabs-2').empty();
703                ajouterTableauDossierCommissionPossible(idx);
704            }
705        );
706        
707        //Suppression du message et des données dans le champ dossier
708        $('#commission_dossiers_plannifier_numero').click(
709            function(){
710                            
711              $('html, body').animate({              $('#tabs-3 .message').remove();
712                  scrollTop: $('#petitionnaire__' + nb + ' #type_demandeur').offset().top              $('#tabs-3 #dossier').val("");
713              }, 1000);          }
714          });          );
715    });
716    
717    /*
718     * Action sur les champs pour les références cadastrales
719     */
720    function formatFieldReferenceCadastrale(){
721    
722        addNewFieldReferencesCadastrales();
723        $('#terrain_references_cadastrales').parent().parent().hide();
724        
725        url = document.location + "";
726    
727        reference_cadastrale = $('#terrain_references_cadastrales').val();
728        /*Formatage de la reference cadastrale*/
729        if ( reference_cadastrale != '' ){
730                    
731          $('.lots').append(createFieldset('D&eacute;l&eacute;gataire', 'delegataire'));          /* Récupère la référence cadastrale non formatée */
732          setDelegataire();          references_cadastrales = reference_cadastrale.split(';');
733          setPetitionnaire();          donnees = new Array();
         setTypeDemandeur('petitionnaire__0', '_0');  
734                    
735          $('#petitionnaire__0').before(          i = 0 ;
736              '<div id="dialog" title="Résultats de votre recherche"></div>'          /* Boucle sur les références, elles étaient séparées par un ; */
737          );          for ( l = 0 ; l < references_cadastrales.length - 1 ; l ++ ){
738                            
739          hideFields();              /*Récupère le code impots du qartier [CHIFFRES]*/
740      }              k = 0;
741                  donnees[i] = '';
742     if ( $('#date_demande').length > 0              for ( j = k ; j < references_cadastrales[l].length ; j++ ){
743          && !$('#dossier_autorisation_type_detaille').is(':disabled')                  
744          && url.indexOf("form.php?obj=demande&action=1") != -1 ){                  if ( references_cadastrales[l].charAt(j) >= 0 &&
745                        references_cadastrales[l].charAt(j) <= 9 ){
746                            
747                        donnees[i] += references_cadastrales[l].charAt(j);
748                        k++;
749                        
750                    } else {
751                        
752                        i++;
753                        break;
754                    }
755                }
756                            
757          addNewFieldReferencesCadastrales();              /* Récupère la section [LETTRES] */    
758          $('#terrain_references_cadastrales').parent().parent().hide();              donnees[i] = '';
759                        for ( j = k ; j < references_cadastrales[l].length ; j++ )
760          reference_cadastrale = $('#terrain_references_cadastrales').val();                  if ( isAlpha(references_cadastrales[l].charAt(j)) ){
761          /*Formatage de la reference cadastrale*/                      
762          if ( reference_cadastrale != '' ){                      donnees[i] += references_cadastrales[l].charAt(j);
763                        k++;
764                        
765                    } else {
766                        
767                        i++;
768                        break;
769                    }
770                            
771              references_cadastrales = reference_cadastrale.split(';');              /* Récupère la parcelle [CHIFFRES] */
772              donnees = new Array();              donnees[i] = '';
773                for ( j = k ; j < references_cadastrales[l].length ; j++ )
774                    if ( references_cadastrales[l].charAt(j) >= 0 &&
775                        references_cadastrales[l].charAt(j) <= 9 ){
776                            
777                        donnees[i] += references_cadastrales[l].charAt(j);
778                        k++;
779                        
780                    } else {
781                        
782                        break;
783                    }
784                            
785              i = 0 ;              /* Récupère les séparateurs [ A / ] et les sections */
786              for ( l = 0 ; l < references_cadastrales.length - 1 ; l ++ ){              m = 0 ; // Nombre de suffixe
787                                if ( k < references_cadastrales[l].length ){
                 k = 0;  
                 donnees[i] = '';  
                 for ( j = k ; j < references_cadastrales[l].length ; j++ )  
                     if ( references_cadastrales[l].charAt(j) >= 0 && references_cadastrales[l].charAt(j) <= 9 ){  
                         donnees[i] += references_cadastrales[l].charAt(j);  
                         k++;  
                     } else {  
                         i++;  
                         break;  
                     }  
788                                    
                         
                 donnees[i] = '';  
789                  for ( j = k ; j < references_cadastrales[l].length ; j++ )                  for ( j = k ; j < references_cadastrales[l].length ; j++ )
790                      if ( isAlpha(references_cadastrales[l].charAt(j)) ){                      if ( isAlpha(references_cadastrales[l].charAt(j)) ){
791                          donnees[i] += references_cadastrales[l].charAt(j);                          
792                          k++;                          m++;
793                      } else {                          donnees[++i] = references_cadastrales[l].charAt(j);
794                          i++;                          donnees[++i] = '';
                         break;  
795                      }                      }
796                                        else {
797                  donnees[i] = '';                          
                 for ( j = k ; j < references_cadastrales[l].length ; j++ )  
                     if ( references_cadastrales[l].charAt(j) >= 0 && references_cadastrales[l].charAt(j) <= 9 ){  
798                          donnees[i] += references_cadastrales[l].charAt(j);                          donnees[i] += references_cadastrales[l].charAt(j);
                         k++;  
                     } else {  
                         break;  
799                      }                      }
800                                }
801                  m = 0 ;              
802                  if ( k < references_cadastrales[l].length ){              /*Créé autant de champs de que de référence */
803                                    donnees[++i] = ';';
804                      for ( j = k ; j < references_cadastrales[l].length ; j++ )              i++;
                         if ( isAlpha(references_cadastrales[l].charAt(j)) ){  
                             m++;  
                             donnees[++i] = references_cadastrales[l].charAt(j);  
                             donnees[++i] = '';  
                         }  
                         else {  
                             donnees[i] += references_cadastrales[l].charAt(j);  
                         }  
                 }  
   
                 donnees[++i] = ';';  
                 i++;  
805    
806                  if ( l > 0 )              if ( l > 0 ) {
                     $('.reference_cadastrale_custom_fields').append( "<br/>" + fieldReferenceCadastraleBase());  
                 actionFormReferenceCadastrale();  
807                                    
808                  if ( m > 0 ){                  $('.reference_cadastrale_custom_fields').append(
809                                                    "<br/>" + fieldReferenceCadastraleBase()
810                      for ( j = 0 ; j < m ; j++ )                  );
                         $('#moreFieldReferenceCadastrale' + ( $('.moreFieldReferenceCadastrale').length - 1 ) ).before(newInputReferenceCadastrale());  
                 }  
811              }              }
   
             actionLineFormReferenceCadastrale();  
812                            
813              $('.reference_cadastrale_custom_field').each(              actionFormReferenceCadastrale();
814                  function(index) {              
815                       $(this).val(donnees[index])              if ( m > 0 ){
816                            
817                    for ( j = 0 ; j < m ; j++ ){
818                        
819                        $('#moreFieldReferenceCadastrale' +
820                            ( $('.moreFieldReferenceCadastrale').length - 1 ) ).
821                        before(
822                            newInputReferenceCadastrale()
823                        );
824                  }                  }
825              );              }
826          }          }
827     }           /* Action sur les boutons [+ ajouter d'autres champs] et [+ ajouter
828  });            * d'autres lignes] */
829            actionLineFormReferenceCadastrale();
830  /*          
831      Création du formuliare pour le petitionnaire          /* Ajoute les données dans les champs nouvellement créés */
832   * */          $('.reference_cadastrale_custom_field').each(
833  function setPetitionnaire(){              function(index) {
834      $('#petitionnaire__0').prepend("<br/>" + $('#test').html() + "<br/>");                  
835      $('#test').parent().remove();                  $(this).val(donnees[index])
836                    }
837      addActionSearch('petitionnaire__0', '_0');          );
838            }
839        else{
840            actionFormReferenceCadastrale();
841            actionLineFormReferenceCadastrale();
842        }
843  }  }
844    
845  /*  /*
846      Action au changement du select du type de demandeur   * Ajoute les icônes pour la recherche de pétitionnaire fréquent.
847   * */   */
848  function setTypeDemandeur(id, complement){  function addSearchIcon(){
849      $('#'+id + ' select[id="type_demandeur"]').on('change',  
850          function() {      $("#form-content:not(.form-is-valid) .search_particulier_fields,"+
851          "#form-content:not(.form-is-valid) .search_personne_morale_fields").each(function() {
852              if ( $(this).find('option:selected').first().text() == 'particulier' )      /*Ajout de l'icône après le champs dénomination et nom de la personne morale*/
853                  fieldTypeDemandeur('#' + id, true, complement);  
854              else              $(this).
855                  fieldTypeDemandeur('#' + id, false, complement);              append(
856                    '<span '+
857                        'class="om-icon om-icon-16 om-icon-fix search-petitionnaire-16" '+
858                        'title="Chercher un petitionnaire"> '+
859                    '</span>'
860                );
861          }          }
862      );      );
 }  
   
 /*  
     Création du formulaire pour le délégataire  
  * */  
 function setDelegataire(){  
     $('#delegataire').html($('#test').html());  
       
     $('#delegataire #type_demandeur').parent().parent().remove();  
     $('#delegataire #personne_morale_denomination').parent().parent().remove();  
     $('#delegataire #personne_morale_raison_sociale').parent().parent().remove();  
     $('#delegataire #personne_morale_siret').parent().parent().remove();  
     $('#delegataire #personne_morale_categorie_juridique').parent().parent().remove();  
     $('#delegataire #personne_morale_civilite').parent().parent().remove();  
     $('#delegataire #personne_morale_nom').parent().parent().remove();  
     $('#delegataire #personne_morale_prenom').parent().parent().remove();  
     $('#delegataire #frequent').parent().parent().remove();  
     $('#delegataire .search-part-16').remove();  
       
     changeIdNameField('delegataire', '');  
     addDatePicker('delegataire #particulier_date_naissance');  
 }  
   
 /*  
     Change les id et les name des champs  
  * */  
 function changeIdNameField(id, complement){  
863            
864      $('#' + id + ' input').each(      /*Ajout des actions sur les boutons*/
865          function(){      addActionSearchIcon('#sousform-petitionnaire #form-content');
866              $(this).attr('name', id + '__' + $(this).attr('name') );      addActionRemove();
             $(this).attr('id', $(this).attr('id') + complement );  
         }  
     );  
867    
     $('#' + id + ' select').each(  
         function(){  
             $(this).attr('name', id + '__' + $(this).attr('name') );  
             $(this).attr('id', $(this).attr('id') + complement );  
         }  
     );  
       
       
868  }  }
869    
870  /*  /**
871      Ajoute les le datespicker sur les champs de date   * Fonction permettant de revenir sur le formulaire d'ajout de demandeur
872   * */   **/
873  function addDatePicker(id){  function addActionRemove(){
874            $('.erase-petitionnaire').click(
875      $("#" + id ).datepicker({          function(){
876          dateFormat: dateFormat,              ajaxIt('petitionnaire','../scr/sousform.php?obj=petitionnaire&action=0');
         changeMonth: true,  
         changeYear: true,  
         yearRange: minYear+':'+maxYear,  
         showOn: 'button',  
         buttonImage: '../img/calendar.png',  
         buttonImageOnly: true,  
         constrainInput: true  
877      });      });
878  }  }
879    
880  /*  /*
881      Ajout de l'action de recherche des pétitionnaire fréquent dans un overlay   * Ajoute les actions sur les icônes de recherche
882   * */   */
883  function addActionSearch(id, complement){  function addActionSearchIcon(id){
884            
885      $('#' + id + ' .search-part-16').click(      /*Si on recherche un pétitionnaire de type particulier*/
886        $('.search-petitionnaire-16').click(
887          function(){          function(){
888                            
889              var donnees = "?type=particulier&par_nom=";              /*Le champ nom du particulier doit contenir au moins trois lettres*/
890              $('#' + id + ' .search_particulier_fields input').each(              if ( $('#particulier_nom').val().length < 3 &&
891                  function(i){                  $('#particulier_prenom').val().length < 3 &&
892                    $('#personne_morale_denomination').val().length < 3 ){
893                      donnees += $(this).val() + (( i == 0 ) ?  '&par_prenom='  : '') ;                  
894                  }                  alert('Saisissez au moins trois lettres pour la recherche');
895              );                  return;
896                }
897                
898                /*Données des champs nom et prénom du particulier*/
899                var donnees = "?par_nom=" + $('.search_particulier_fields #particulier_nom').val() +
900                    "&par_prenom=" + $('.search_particulier_fields #particulier_prenom').val() +
901                    "&mor_denomination="+$('#personne_morale_denomination').val();
902    
903                /* Requête qui va récupérer les données duaddSearchIcon(es) pétitionnaire(s)
904                 * correspondant(s) à la recherche */
905              $.ajax({              $.ajax({
906                  type: "GET",                  type: "GET",
907                  url: "../app/findPetitionnaire.php" + donnees ,                  url: "../app/findPetitionnaire.php" + donnees ,
908                  cache: false,                  cache: false,
909                  success: function(html){                  success: function(obj){
910                                            var freq = $.parseJSON(obj);
911                      res = 'Auncune correspondance trouvée.';                      var res='';
912                                            /*Si la recherche a donné des résultats*/
913                      if ( html.length > 2 ){                      if ( freq.length > 0 ){
914                                                    /*Limitation des résultats à 50 */
915                          res = '<select>' ;                          if ( freq.length > 50 ){
                         donnees = html.split(';');  
   
                         for ( i = 0 ; i < donnees.length - 1 ; i++ ){  
   
                             val = donnees[i].replace('"', '');  
                             line = donnees[i].split('_');  
916                                                            
917                              res += '<option value="' + val + '">' + line[1] + ' ' + line[2] + ' - ' + line[3] + '</option>';                              nbRes = 50;
918                                res += 'Votre recherche a donn&eacute; ' + freq.length
919                                    + ' r&eacute;sultats. Seul les cinquantes premiers ' +
920                                    'seront affich&eacute;s.<br/>';
921                            } else {
922                                nbRes = freq.length;
923                          }                          }
924                                                    
925                          res += '</select>' ;                          res += '<select>' ;
                     }  
                       
                     $('#dialog').html(res);  
                         
                     $( "#dialog" ).dialog({  
                         modal: true,  
                         buttons : {  
                             Valider: function(){  
                                   
                                 if ( res != 'Auncune correspondance trouvée.' ){  
                                     donnees = $('#dialog select option:selected').val();  
                                     donnees = donnees.split('_');  
                                       
                                     if ( $.isNumeric(donnees[4]) )  
                                         $('#' + id + ' select[id="particulier_civilite' + complement + '"] option[value="' + $.trim(donnees[4]) + '"]').attr('selected','selected');  
                                     $('#' + id + ' input[id="particulier_nom' + complement + '"]').val($.trim(donnees[1]));  
                                     $('#' + id + ' input[id="particulier_prenom' + complement + '"]').val($.trim(donnees[2]));  
                                     date = $.trim(donnees[3]).split('-');  
                                     date = date[2] + "/" + date[1] + "/" + date[0] ;  
                                     $('#' + id + ' input[id="particulier_date_naissance' + complement + '"]').val(date);  
                                     $('#' + id + ' input[id="particulier_commune_naissance' + complement + '"]').val($.trim(donnees[10]));  
                                     $('#' + id + ' input[id="particulier_departement_naissance' + complement + '"]').val($.trim(donnees[11]));  
                                       
                                     changeValInputDemandeur(id, donnees, complement);  
                                 }  
                                   
                                 $(this).dialog( "close" );  
                             }  
                         }  
                     });  
                 },  
                 async: false  
             });  
         }  
     );  
       
     $('#' + id + ' .search-mor-16').click(  
         function(){  
               
             var donnees = "?type=personne_morale"+  
                 "&mor_denomination="+$('#'+id+' input[id="personne_morale_denomination' + complement + '"]').val() +  
                 "&mor_nom="+$('#'+id+' input[id="personne_morale_nom' + complement + '"]').val();  
                   
             $.ajax({  
                 type: "GET",  
                 url: "../app/findPetitionnaire.php" + donnees ,  
                 cache: false,  
                 success: function(html){  
                       
                     res = 'Auncune correspondance trouvée.';  
                       
                     if ( html > 2 ){  
926                                                    
927                          res = '<select>' ;                          /* Met les résultats de la recherche dans un select */
928                          donnees = html.split(';');                         for ( i = 0 ; i < nbRes ; i++ ){
929                                res += '<option value="' + freq[i].value + '">' +
930                          for ( i = 0 ; i < donnees.length - 1 ; i++ ){                                          freq[i].content +
931                                       '</option>';
                             val = donnees[i].replace('"', '');  
                             line = donnees[i].split('_');  
                               
                             res += '<option value="' + val + '">' + line[5] + ' ' + line[6] + '</option>';  
932                          }                          }
933                                                    
934                          res += '</select>' ;                          res += '</select>';
935                        } else {
936                            res += 'Aucune correspondance trouvée.';
937                      }                      }
938                                            
939                        addDivDialog('#sousform-petitionnaire');
940                        /* Affichage de l'overlay */
941                      $('#dialog').html(res);                      $('#dialog').html(res);
942                                                
943                      $( "#dialog" ).dialog({                      $( "#dialog" ).dialog({
944                          modal: true,                          modal: true,
945                          buttons : {                          buttons : {
946                              Valider: function(){                              Valider: function(){
947                                                                    if ( res != 'Auncune correspondance trouvée.'){
948                                  if ( res != 'Auncune correspondance trouvée.' ){  
949                                      donnees = $('#dialog select option:selected').val();                                  }
950                                      donnees = donnees.split('_');                                  var id = $('#dialog select option:selected').val();
951                                                                        if($.isNumeric(id)) {
952                                      if ( $.isNumeric(donnees[8]) )                                      ajaxIt('petitionnaire',
953                                          $('#' + id + ' select[id="personne_morale_civilite' + complement + '"] option[value="' + $.trim(donnees[8]) + '"]').attr('selected','selected');                                      '../scr/sousform.php?obj=petitionnaire&action=1&retourformulaire=demande&idx='+id);
                                     $('#' + id + ' input[id="personne_morale_denomination' + complement + '"]').val($.trim(donnees[5]));  
                                     $('#' + id + ' input[id="personne_morale_raison_sociale' + complement + '"]').val($.trim(donnees[12]));  
                                     $('#' + id + ' input[id="personne_morale_siret' + complement + '"]').val($.trim(donnees[6]));  
                                     $('#' + id + ' input[id="personne_morale_categorie_juridique' + complement + '"]').val($.trim(donnees[13]));  
                                     $('#' + id + ' input[id="personne_morale_nom' + complement + '"]').val($.trim(donnees[7]));  
                                     $('#' + id + ' input[id="personne_morale_prenom' + complement + '"]').val($.trim(donnees[9]));  
                                       
                                     changeValInputDemandeur(id, donnees, complement);  
954                                  }                                  }
955                                  $(this).dialog( "close" );                                  // Fermeture de l'overlay
956                                    $(this).dialog( "close" ).empty();
957                              }                              }
958                          }                          }
959                      });                      });
960                  },                  },
                 async: false  
961              });              });
962          }          }
963      );      );
964  }  }
965    
966  /*  /*
967      Change les valeurs des champs en commun des particuliers et des personnes morales   * Ajoute un div pour l'overlay dialog de jQuery
968   * */   */
969  function changeValInputDemandeur(id, donnees, complement){  function addDivDialog(id){
970            
971      $('#' + id + ' input[id="demandeur' + complement + '"]').val($.trim(donnees[0]));      $(id).prepend('<div id="dialog"></div>');
     /*Teste si la valeur retournée est TRUE*/  
     if ( donnees[28] === 't' ){  
         $('#' + id + ' input[id="notification' + complement + '"]').attr('checked', 'checked');  
         $('#' + id + ' input[id="notification' + complement + '"]').val('Oui');  
     }  
     $('#' + id + ' input[id="frequent' + complement + '"]').attr('checked','checked');  
     $('#' + id + ' input[id="frequent' + complement + '"]').val('Oui');  
     $('#' + id + ' input[id="numero' + complement + '"]').val($.trim(donnees[14]));  
     $('#' + id + ' input[id="voie' + complement + '"]').val($.trim(donnees[15]));  
     $('#' + id + ' input[id="complement' + complement + '"]').val($.trim(donnees[16]));  
     $('#' + id + ' input[id="lieu_dit' + complement + '"]').val($.trim(donnees[17]));  
     $('#' + id + ' input[id="localite' + complement + '"]').val($.trim(donnees[18]));  
     $('#' + id + ' input[id="code_postal' + complement + '"]').val($.trim(donnees[19]));  
     $('#' + id + ' input[id="bp' + complement + '"]').val($.trim(donnees[20]));  
     $('#' + id + ' input[id="cedex' + complement + '"]').val($.trim(donnees[21]));  
     $('#' + id + ' input[id="pays' + complement + '"]').val($.trim(donnees[22]));  
     $('#' + id + ' input[id="division_territoriale' + complement + '"]').val($.trim(donnees[23]));  
     $('#' + id + ' input[id="telephone_fixe' + complement + '"]').val($.trim(donnees[24]));  
     $('#' + id + ' input[id="telephone_mobile' + complement + '"]').val($.trim(donnees[25]));  
     $('#' + id + ' input[id="indicatif' + complement + '"]').val($.trim(donnees[26]));  
     $('#' + id + ' input[id="courriel' + complement + '"]').val($.trim(donnees[27]));  
972  }  }
973    
974  /*  /*
975      Création des select pour la civilité      Action au changement du select de la qualite du demandeur
976   * */   * */
977  function setSelectCivilite(){  function changeDemandeurType(id){
       
     $.ajax({  
         type: "GET",  
         url: "../app/civilite.php",  
         dataType: "json",  
         cache: false,  
         success: function(html){  
             if ( html != '' ){  
                   
                 $('#particulier_civilite').parent().html('<select id="particulier_civilite" class="champFormulaire" size="1" name="particulier_civilite">' +  
                         '<option value="" selected="selected">choisir particulier_civilite</option>');  
                 $('#personne_morale_civilite').parent().html('<select id="personne_morale_civilite" class="champFormulaire" size="1" name="personne_morale_civilite">' +  
                         '<option value="" selected="selected">choisir personne_morale_civilite</option>');  
                   
                 civilites = html.split(';');  
                 for ( i = 0 ; i < civilites.length - 1 ; i++ ){  
                       
                     civilite = civilites[i].split('_');  
                     $('#particulier_civilite').append('<option value="' + civilite[0] + '">' + civilite[1] + '</option>');  
                     $('#personne_morale_civilite').append('<option value="' + civilite[0] + '">' + civilite[1] + '</option>');  
                 }  
                   
                 $('#particulier_civilite').append('</select>');  
                 $('#personne_morale_civilite').append('</select>');  
             }  
         },  
         async: false  
     });  
 }  
978    
979  /*      /*Réinitialise les champs et cache les champs inutiles selon la qualité du demandeur*/
980      Retourne le code HTML d'un fieldset      /*Si la qualite du demandeur est particulier */
981   * */      if ( $('#' + id ).val() == 'particulier' ){
982  function createFieldset(name, className){          
983      return '<fieldset class="cadre ui-corner-all ui-widget-content" id="fieldset' + className + '">' +          $('.personne_morale_fields input').each(
984                  '<legend class="ui-corner-all ui-widget-content ui-state-active">' + name + ' </legend>' +              function(){
985                  '<input class="formsDemandeur" type="hidden" val=""/>'+                  $(this).val('');
986                  '<div class="fieldsetContent " id="' + className + '">' +              }
987                  '</div>' +          );
988                  '<div class="visualClear"></div>' +          $('.personne_morale_fields select option[value=""]').each(
989                  '</div>' +              function(){
990             '</fieldset>';                  $(this).attr('selected', 'selected');
991                }
992            );
993            
994            $('.personne_morale_fields').hide();
995            $('.particulier_fields').show();
996        }
997        /*Si c'est une personne morale*/
998        else {
999            
1000           $('.particulier_fields input').each(
1001                function(){
1002                    $(this).val('');
1003                }
1004            );
1005            $('.particulier_fields select option[value=""]').each(
1006                function(){
1007                    $(this).attr('selected', 'selected');
1008                }
1009            );
1010            
1011            $('.particulier_fields').hide();
1012            $('.personne_morale_fields').show();
1013        }
1014  }  }
1015    
1016  /*  /*
1017      Test str est une lettre de l'alphabet      Fonction de test des champs
1018   * */   * */
1019  function isAlpha(str) {  function isAlpha(str) {
1020      return /^[a-zA-Z\/]+$/.test(str);      return /^[a-zA-Z\/]+$/.test(str);
1021  }  }
1022    
1023    function isMail(str){
1024        return /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/.test(str);
1025    }
1026    
1027    function isPhoneNumber(str){
1028        return /[0-9-()+]{3,20}/.test(str);
1029    }
1030    
1031    function testSeparator(obj){
1032    
1033        if ( obj.value != 'A' &&
1034             obj.value != '/' ) {
1035                
1036            alert('Saisissez uniquement un A ou un / comme séparateur');
1037            obj.value = '';
1038        }
1039    }
1040    /* Fin fonction test */
1041    
1042  /*  /*
1043      Ajoute les ations spécifiques pour le formulaire personnalisé d'ajout de référence cadastrale   *  Ajoute les ations spécifiques pour le formulaire personnalisé d'ajout de
1044   * */   *  référence cadastrale
1045    */
1046  function actionFormReferenceCadastrale(){  function actionFormReferenceCadastrale(){
1047        
1048      $('form').submit(      $('form').submit(
1049          function(){          function(){
1050                            
1051              var reference_cadastrale = '';              getDataFieldReferenceCadastrale();
1052              var reference_cadastrale_temp = '';          }
1053        );
1054        if( $("form[name=f1] .form-is-valid").size() == 0) {
1055    
1056            $('#moreFieldReferenceCadastrale' +
1057                ($('.moreFieldReferenceCadastrale').length - 1 )).
1058            on("click", function() {
1059                            
1060              $('.reference_cadastrale_custom_field').each(              $(this).before(newInputReferenceCadastrale());
1061                  function(){          });
1062                            }
1063                      if ( $(this).val() == ';' ){      
1064    }
1065    
1066    /*
1067     * Récupère les données saisies dans les champs de références cadastrales
1068     */
1069    function getDataFieldReferenceCadastrale(){
1070        
1071        var reference_cadastrale = '';
1072        var reference_cadastrale_temp = '';
1073        
1074        /*Pour chacun des champs du formulaire de saisie de référence cadastrale*/
1075        $('.reference_cadastrale_custom_field').each(
1076            function(){
1077                
1078                /*Si on est à la fin d'une ligne de champs*/
1079                if ( $(this).val() == ';' ){
1080                    
1081                    reference_cadastrale_bis = reference_cadastrale_temp ;
1082                    
1083                    /* Vérifie que les données sont correctement formatées avant de
1084                     * les ajouter au résultat*/
1085                    while( reference_cadastrale_bis != ''){
1086                        if ( /^([0-9]{1,4}[a-zA-Z]{1,3}[0-9]{1,5}([A\/]{1}[0-9]{1,4})*)*$/.test(reference_cadastrale_bis) ){
1087                                                    
1088                          reference_cadastrale_bis = reference_cadastrale_temp + ( ( reference_cadastrale_temp != '' && reference_cadastrale_temp.length > 0 ) ? ';' : '' );                          reference_cadastrale += reference_cadastrale_bis + ";";
1089                          if ( /^[0-9]{1-3}[a-zA-Z]{1-3}[0-9]{1-5}*$/.test(reference_cadastrale_bis) ){                          break;
                               
                             alert('dans');  
                             reference_cadastrale += reference_cadastrale_bis;  
                         }  
                         reference_cadastrale_temp = '';  
1090                      }                      }
1091                      else                      else{
1092                          reference_cadastrale_temp += $(this).val();                          
1093                                                reference_cadastrale_bis = reference_cadastrale_bis.slice( 0, -1);
1094                        }    
1095                  }                  }
1096              );                  
1097                    reference_cadastrale_temp = '';
1098                }
1099                            
1100              $('#terrain_references_cadastrales').val(reference_cadastrale);              else {
1101                    
1102                    /*Sinon, on récupère la valeur du champ*/
1103                    reference_cadastrale_temp += $(this).val();
1104                }
1105          }          }
1106      );      );
1107    
1108      $('#moreFieldReferenceCadastrale' + ($('.moreFieldReferenceCadastrale').length - 1 )).on("click", function() {      /*Met la valeur du résultat dans le champs généré par le framework*/
1109          $(this).before(newInputReferenceCadastrale());      $('#terrain_references_cadastrales').val(reference_cadastrale);
     });  
       
1110  }  }
1111    
1112  /*  /*
1113      Action pour l'ajout de nouvelle ligne      Action pour l'ajout de nouvelle ligne dans le formulaire d'ajout
1114        de référence cadastrale
1115   * */   * */
1116  function actionLineFormReferenceCadastrale(){  function actionLineFormReferenceCadastrale(){
1117      $('#morelineReferenceCadastrale').click(      if( $("form[name=f1] .form-is-valid").size() == 0) {
1118          function(){  
1119                        $('#morelineReferenceCadastrale').click(
1120              $('.reference_cadastrale_custom_fields').append( "<br/>" + fieldReferenceCadastraleBase());              function(){
1121              $('#moreFieldReferenceCadastrale'+ ($('.moreFieldReferenceCadastrale').length - 1 )).on("click", function() {                  
1122                  $(this).before(newInputReferenceCadastrale());                  /*Ajout des trois champs de base*/
1123              });                  $('.reference_cadastrale_custom_fields').
1124                                append( "<br/>" + fieldReferenceCadastraleBase());
1125                
1126          }                  /*Ajout du bind pour l'ajout de nouveaux champs*/
1127      );                  $('#moreFieldReferenceCadastrale'+
1128                        ($('.moreFieldReferenceCadastrale').length - 1 )).
1129                    on("click", function() {
1130                        $(this).before(newInputReferenceCadastrale());
1131                    });
1132                }
1133            );
1134        }
1135  }  }
1136    
1137  /*  /*
1138      Met à jour le select demande_type dès qu'un dossier_autorisation_type_detaille est choisi      Met à jour le select demande_type dès qu'un
1139        dossier_autorisation_type_detaille est choisi
1140   * */   * */
1141  function changeDemandeType(){  function changeDemandeType(){
1142    
1143        var idDossierAutorisationTypeDetaille =
1144            $("#dossier_autorisation_type_detaille").val();
1145            
1146        /* Récupère les données saisies dans les champs pour la référence cadastrale */
1147        getDataFieldReferenceCadastrale();
1148            
1149      var idDossierAutorisationTypeDetaille = $("#dossier_autorisation_type_detaille option:selected").val();      /*Si l'identifiant fourni est correct*/
       
1150      if ( $.isNumeric(idDossierAutorisationTypeDetaille) ){      if ( $.isNumeric(idDossierAutorisationTypeDetaille) ){
1151                    
1152          changeDataSelect('demande_type','dossier_autorisation_type_detaille');          /*Met à jour le select de demande_type avec les données correspondant*/
1153          if ( $('#demande_type option').size() < 2 )          changeDemandeTypeDataSelect();
1154            if ( $('#demande_type option').size() < 2 ) {
1155              showFormsDemande();              showFormsDemande();
1156                    }
        $('#demande_type').parent().parent().show();  
         
        addNewFieldReferencesCadastrales();  
1157                
1158         actionFormReferenceCadastrale();         /*Affiche le select*/
1159         actionLineFormReferenceCadastrale()                 $('#demande_type').parent().parent().show();
1160           if($('#demande_type').val() == '' ) {
1161                $('.demande_hidden_bloc').each(
1162                    function(){
1163                        $(this).hide();
1164                    }
1165                );
1166                $('input[type=submit]').hide();
1167           }
1168      }      }
1169      else {      else {
1170            
1171            /*Sinon, cache tous les champs du formulaire*/
1172          hideFields();          hideFields();
1173      }      }
1174  }  }
# Line 807  function changeDemandeType(){ Line 1177  function changeDemandeType(){
1177      Ajoute le code HTML des champs pour les références cadastrales      Ajoute le code HTML des champs pour les références cadastrales
1178   * */   * */
1179  function addNewFieldReferencesCadastrales(){  function addNewFieldReferencesCadastrales(){
1180      $('.references_cadastrales_new_field').remove();  
1181      $('.moreFieldReferenceCadastrale').remove();      var html = '<div class="field field-type-text references_cadastrales_new_field" >'+
     $('#morelineReferenceCadastrale').remove();  
     $('.localisation .fieldsetContent').prepend(  
        '<div class="field field-type-text references_cadastrales_new_field" >'+  
1182              '<div class="form-libelle">' +              '<div class="form-libelle">' +
1183                  '<label '+                  '<label '+
1184                      'class="libelle-terrain_references_cadastrales" '+                      'class="libelle-terrain_references_cadastrales" '+
# Line 822  function addNewFieldReferencesCadastrale Line 1189  function addNewFieldReferencesCadastrale
1189              '<div class="form-content reference_cadastrale_custom_fields">' +              '<div class="form-content reference_cadastrale_custom_fields">' +
1190                   fieldReferenceCadastraleBase() +                   fieldReferenceCadastraleBase() +
1191              '</div>' +              '</div>' +
1192         '</div>' +          '</div>';
1193         '<div class="field field-type-text" id="morelineReferenceCadastrale">' +      
1194              '<div class="form-libelle"></div>' +      url = document.location + "";
1195              '<div class="form-content">' +      if((getDemandeInfo('nature') == 'NOUV' || getDemandeInfo('nature') == 'NONE' ) && $(".form-is-valid").size() == 0 && url.indexOf('action=3') == -1 ) {
1196                  ' + ajouter d\'autres lignes' +          html += '<div class="field field-type-text" id="morelineReferenceCadastrale">' +
             '</div>' +  
        '</div>'        
    );  
    $('#terrain_superficie').parent().parent().after('<div class="field field-type-text" >' +  
1197              '<div class="form-libelle"></div>' +              '<div class="form-libelle"></div>' +
1198              '<div class="form-content">' +              '<div class="form-content">' +
1199                  '<input id="cad-adr-them" class="ui-button ui-widget ui-state-default ui-corner-all" type="button" value="Cadastrale < = > Adresse"/>' +                  '<span class="om-form-button add-16" title="Ajouter">ajouter d\'autres lignes</span>' +
1200              '</div>' +              '</div>' +
1201         '</div>' );         '</div>';
1202        }
1203          
1204        $('.references_cadastrales_new_field').remove();
1205        $('.moreFieldReferenceCadastrale').remove();
1206        $('#morelineReferenceCadastrale').remove();
1207        $('#terrain_references_cadastrales').parent().parent().before(
1208            html
1209        );
1210    }
1211    
1212    function addButtonCadastraleAdesse(){
1213        
1214        $('#terrain_superficie').parent().parent().after('<div class="field field-type-text" >' +
1215            '<div class="form-libelle"></div>' +
1216            '<div class="form-content buttonCadAdr">' +
1217                '<input id="cad-adr-them" class="ui-button ui-widget ui-state-default ui-corner-all" type="button" value="Cadastrale < = > Adresse"/>' +
1218            '</div>' +
1219       '</div>' );
1220  }  }
1221    
1222  /*  /*
1223      Séparateur caché ;      Séparateur caché ; pour marqué la fin d'une ligne de référence cadastrale
1224   * */   * */
1225  function hiddenSeparatorField(){  function hiddenSeparatorField(){
1226    
1227      return '<input ' +      return '<input ' +
1228                  'class="reference_cadastrale_custom_field " ' +                  'class="reference_cadastrale_custom_field" ' +
1229                  'type="hidden" ' +                  'type="hidden" ' +
1230                  'maxlength="2" ' +                  'maxlength="2" ' +
1231                  'size="2" ' +                  'size="2" ' +
1232                  'value=";" />';                  'value=";" />';
1233  }  }
1234    
1235    /**
1236     * Retourne l'info passée en paramètre (nature de la demande ou type de la demande)
1237     **/
1238    function getDemandeInfo(info) {
1239        var id_demande_type = $('#demande_type').val();
1240        var res = "";
1241        if ( typeof id_demande_type !== "undefined" ){
1242            $.ajax({
1243                type: "GET",
1244                url: "../app/getDemandeInfo.php?iddemandetype=" + id_demande_type
1245                        + "&info=" + info,
1246                cache: false,
1247                async: false,
1248                success: function(val){
1249                    res = val;
1250                }
1251            });
1252        }
1253        else {
1254            
1255            res = "NONE"
1256        }
1257        return res;
1258    }
1259  /*  /*
1260      Ajout d'une nouvelle ligne de champ      Ajout d'une nouvelle ligne de champ de référence cadastrale
1261        Retourne le code HTML
1262   * */   * */
1263  function fieldReferenceCadastraleBase(){  function fieldReferenceCadastraleBase(){
1264      return '<input ' +      
1265        url = document.location + "";
1266        
1267        var type = getDemandeInfo('nature');
1268        var reference_cadastrale = '<input ' +
1269                  'class="champFormulaire reference_cadastrale_custom_field" ' +                  'class="champFormulaire reference_cadastrale_custom_field" ' +
1270                  'type="text" ' +                  'type="text" ' +
1271                  'onchange="VerifNum(this)" ' +                  'onchange="VerifNum(this)" ' +
1272                  'maxlength="4" ' +                  'maxlength="4" ' +
1273                  'size="4" ' +                  'size="4" '+
1274                  'value="" />' +                  'placeholder="Quart." ';
1275              '<input ' +                  
1276        // désactivation des champs de référence cadastrale
1277        if( (type != 'NOUV' &&  type != 'NONE') || $(".form-is-valid").size() > 0 || url.indexOf('action=3') != -1 ) {
1278            reference_cadastrale += 'disabled="disabled" ';
1279        }
1280        
1281        reference_cadastrale += 'value="" />';
1282    
1283        reference_cadastrale += '<input ' +
1284                  'class="champFormulaire reference_cadastrale_custom_field" ' +                  'class="champFormulaire reference_cadastrale_custom_field" ' +
1285                  'type="text" ' +                  'type="text" ' +
1286                  'maxlength="3" ' +                  'maxlength="3" ' +
1287                  'size="3" ' +                  'size="3" '+
1288                  'value="" '+                  'placeholder="Sect." ';
1289                  'onchange="if ( !isAlpha(this.value) ){ alert(\'Vous ne devez saisir que des lettres dans ce champs.\'); this.value = \'\'; }"/>' +      
1290              '<input ' +      // désactivation des champs de référence cadastrale
1291        if((type != 'NOUV'&&  type != 'NONE') || $(".form-is-valid").size() > 0 || url.indexOf('action=3') != -1 ) {
1292            reference_cadastrale += 'disabled="disabled" ';
1293        }
1294        
1295        reference_cadastrale += 'value="" '+
1296                    'onchange="if ( !isAlpha(this.value) ){ alert(\'Vous ne devez saisir que des lettres dans ce champs.\'); this.value = \'\'; }"/>';
1297        reference_cadastrale += '<input ' +
1298                  'class="champFormulaire reference_cadastrale_custom_field" ' +                  'class="champFormulaire reference_cadastrale_custom_field" ' +
1299                  'type="text" ' +                  'type="text" ' +
1300                  'onchange="VerifNum(this)" ' +                  'onchange="VerifNum(this)" ' +
1301                  'maxlength="5" ' +                  'maxlength="5" ' +
1302                  'size="5" ' +                  'size="5" '+
1303                  'value="" />' +                  'placeholder="Parc." ';
1304              '<span id="moreFieldReferenceCadastrale' + $('.moreFieldReferenceCadastrale').length + '" class="moreFieldReferenceCadastrale">' +      
1305                  hiddenSeparatorField() +      // désactivation des champs de référence cadastrale
1306                  ' + ajouter d\'autres champs' +      if((type != 'NOUV'&&  type != 'NONE') || $(".form-is-valid").size() > 0 || url.indexOf('action=3') != -1 ) {
1307              '</span>';          reference_cadastrale += 'disabled="disabled" ';
1308        }
1309        
1310        reference_cadastrale += 'value="" />';
1311    
1312        reference_cadastrale += '<span id="moreFieldReferenceCadastrale' +
1313            $('.moreFieldReferenceCadastrale').length +
1314            '" class="moreFieldReferenceCadastrale">' + hiddenSeparatorField();
1315    
1316        // Si form validé pas de bouton
1317        url = document.location + "";
1318        if( (type == 'NOUV' ||  type == 'NONE') && $("form[name=f1] .form-is-valid").size() == 0 && url.indexOf('action=3') == -1 ) {
1319    
1320            reference_cadastrale +=
1321                '<span class="om-form-button add-16" title="Ajouter">ajouter d\'autres champs</span>';
1322        }
1323    
1324        reference_cadastrale += '</span>';
1325        
1326        return reference_cadastrale;
1327  }  }
1328    
1329  /*  /**
1330      Cache les champs inutules   * Cache les champs inutules [formulaire de demande]
1331   * */       **/
1332  function hideFields(){  function hideFields(){
1333      $('.bloc').each(      $('.demande_hidden_bloc').each(
1334          function(){          function(){
1335              if ( !$(this).hasClass('dossier_type') && !$(this).hasClass('dossier_type_demande_date') )              $(this).hide();
                 $(this).hide();  
1336          }          }
1337      );      );
1338            
# Line 898  function hideFields(){ Line 1342  function hideFields(){
1342  }  }
1343    
1344  /*  /*
1345      Affiche les champs dont on a besoin      Affiche les champs dont on a besoin dans le formulaire de demande
1346   * */   * */
1347  function showFormsDemande(){  function showFormsDemande(){
     $('.bloc').each(  
         function(){  
             if ( !$(this).hasClass('dossier_type') && !$(this).hasClass('dossier_type_demande_date') )  
                 $(this).show();  
         }  
     );  
       
     $('.field-type-text').show();  
     $('input[type=submit]').show();  
     $('.terrain_references_cadastrales_custom').hide();  
       
     $('#terrain_references_cadastrales').parent().parent().hide();  
       
     /*Cache les champs inutiles*/  
     fieldTypeDemandeur('#petitionnaire__0', true, '_0');  
1348            
     $('#fieldsetpetitionnaire__0 .formsDemandeur').val($('#petitionnaire__0').html());  
1349            
1350      changeIdNameField('petitionnaire__0', '_0');      if($('#demande_type').val() != "") {
       
     addDatePicker('petitionnaire__0 #particulier_date_naissance_0');  
 }  
1351    
1352  /*          $('.demande_hidden_bloc').each(
1353      Cache/montre des champs selon le type de demandeur              function(){
1354   * */                  $(this).show();
1355  function fieldTypeDemandeur(name, particulier, complement){              }
1356            );
1357            formatFieldReferenceCadastrale(1);
1358            $('.field-type-text').show();
1359            $('input[type=submit]').show();
1360            $('.terrain_references_cadastrales_custom').hide();
1361            
1362            $('#terrain_references_cadastrales').parent().parent().hide();
1363    
1364            // Si le type de la demande est un transfert on efface la liste des demandeurs
1365            if(getDemandeInfo('type') == 'DT') {
1366                if($('input[name=petitionnaire_principal]').size() != -1) {
1367                    removeDemandeur("petitionnaire_principal_" + $('input[name=petitionnaire_principal]').val());
1368                }
1369                if($('input[name=delegataire]').size() != -1) {
1370                    removeDemandeur("delegataire_" + $('input[name=delegataire]').val());
1371                }
1372    
1373      if ( particulier == true ){              $('#listePetitionnaires input.demandeur_id').each(function(){
1374                    if($(this).size() != -1) {
1375    
1376          $(name + ' select[id="particulier_civilite' + complement + '"] option[value=""]').attr('selected', 'selected');                      removeDemandeur("petitionnaire_" + $(this).val());
1377          $(name + ' input[id="particulier_nom' + complement + '"]').val('');                  }
1378          $(name + ' input[id="particulier_prenom' + complement + '"]').val('');              });
1379          $(name + ' input[id="particulier_date_naissance' + complement + '"]').val('');          } else if ( getDemandeInfo('type') == 'DM' ) {
1380          $(name + ' input[id="particulier_commune_naissance' + complement + '"]').val('');              $.ajax({
1381          $(name + ' input[id="particulier_departement_naissance' + complement + '"]').val('');                  type: "GET",
1382                    url: "../app/getDemandeurList.php?dossier_autorisation=" + $('#dossier_autorisation').val(),
1383                    cache: false,
1384                    async: false,
1385                    success: function(html){
1386                        $('#liste_demandeur').replaceWith(html);
1387                    }
1388                });
1389            }
1390            affichageBoutonsDemandeurs();
1391        } else {
1392                    
1393          $( name + ' .particulier_fields').show();          /*Récupère les references cadastrales*/
1394          $( name + ' .personne_morale_fields').hide();          getDataFieldReferenceCadastrale();
     }  
     else{  
1395                    
1396          $(name + ' select[id="personne_morale_civilite' + complement + '"] option[value=""]').attr('selected', 'selected');          $('.demande_hidden_bloc').each(
1397          $(name + ' input[id="personne_morale_denomination' + complement + '"]').val('');              function(){
1398          $(name + ' input[id="personne_morale_raison_sociale' + complement + '"]').val('');                  $(this).hide();
1399          $(name + ' input[id="personne_morale_siret' + complement + '"]').val('');              }
1400          $(name + ' input[id="personne_morale_categorie_juridique' + complement + '"]').val('');          );
1401          $(name + ' input[id="personne_morale_nom' + complement + '"]').val('');          $('input[type=submit]').hide();
1402          $(name + ' input[id="personne_morale_prenom' + complement + '"]').val('');  
         $( name + ' .particulier_fields').hide();  
         $( name + ' .personne_morale_fields').show();  
1403      }      }
1404  }  }
1405    
# Line 959  function fieldTypeDemandeur(name, partic Line 1407  function fieldTypeDemandeur(name, partic
1407      Action au clique sur le bouton " + ajouter d'autres champs"      Action au clique sur le bouton " + ajouter d'autres champs"
1408   * */   * */
1409  function newInputReferenceCadastrale(){  function newInputReferenceCadastrale(){
1410        
1411        // Champs désactivé si le formulaire a été validé et est valide
1412        var type = getDemandeInfo('nature');
1413        var reference_cadastrale_disabled = '';
1414        if((type != 'NOUV'&&  type != 'NONE') || $(".form-is-valid").size() > 0 || url.indexOf('action=3') != -1 ) {
1415            reference_cadastrale_disabled = 'disabled="disabled" ';
1416        }
1417        
1418      return '<input ' +      return '<input ' +
1419              'class="champFormulaire reference_cadastrale_custom_field" ' +              'class="champFormulaire reference_cadastrale_custom_field" ' +
1420              'type="text" ' +              'type="text" ' +
1421              'maxlength="1" ' +              'maxlength="1" ' +
1422              'size="1" ' +              'size="3" ' +
1423              'value="" ' +              'value="" ' +
1424                'placeholder="Sep." ' +
1425                reference_cadastrale_disabled +
1426              'onchange="testSeparator(this);"/>' +              'onchange="testSeparator(this);"/>' +
1427          '<input ' +          '<input ' +
1428              'class="champFormulaire reference_cadastrale_custom_field" ' +              'class="champFormulaire reference_cadastrale_custom_field" ' +
# Line 972  function newInputReferenceCadastrale(){ Line 1430  function newInputReferenceCadastrale(){
1430              'onchange="VerifNum(this)" ' +              'onchange="VerifNum(this)" ' +
1431              'maxlength="4" ' +              'maxlength="4" ' +
1432              'size="4" ' +              'size="4" ' +
1433                'placeholder="Parc." ' +
1434                reference_cadastrale_disabled +
1435              'value="" />';              'value="" />';
1436  }  }
1437    
 function testSeparator(obj){  
1438    
     if ( obj.value != 'A' &&  
          obj.value != '/' ) {  
               
         alert('Saisissez uniquement un A ou un / comme séparateur');  
         obj.value = '';  
     }  
 }  
1439    
1440  // Desactivation des fonctions widget du tableau de bord inutiles sur le nouveau  /**
1441  // tableau de bord   * Desactivation des fonctions widget du tableau de bord inutiles sur le nouveau
1442     * tableau de bord
1443     */
1444  function widget_bind_move_actions() {}  function widget_bind_move_actions() {}
1445  function widget_bind_add_action() {}  function widget_bind_add_action() {}
1446  function widget_bind_edit_actions(widget_selector) {}  function widget_bind_edit_actions(widget_selector) {}
1447    
1448  function file(fichier) {  // Cette fonction permet d'associer a un arbre html les fonctions jquery
1449      //  // necessaires. Elle permet notamment lors du chargement d'une page en ajax
1450      if (fichier == "") {  // d'associer le comportement du bouton, la gestion du calendrier et la gestion
1451          alert("zone vide");  // du fieldset.
1452    function om_initialize_content() {
1453        // Gestion du skin des boutons, liens
1454        link_bind_button();
1455        // Gestion du calendrier avec le widget datepicker de jqueryui
1456        inputdate_bind_datepicker();
1457        // Gestion des fieldset avec le plugin collaspsible de jquery
1458        fieldset_bind_collapsible();
1459        // Gestion du picker color avec le plugin minicolors
1460        bind_form_field_rvb();
1461        // Gestion du widget aide à la saisie localisation avec le plugin draggable
1462        // de jqueryui
1463        localisation_bind_draggable();
1464        // Gestion de la redimension automatique des textarea
1465        textarea_autoresize();
1466        
1467    
1468        changeDemandeurType('qualite');
1469        addSearchIcon();
1470        addDivDialog('.bloc_demandeur');
1471        
1472    }
1473    
1474    // Retourne la valeur d'une variable GET de l'URL
1475    function getQuerystring(key, default_)
1476    {
1477      if (default_==null) default_="";
1478      key = key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
1479      var regex = new RegExp("[\\?&]"+key+"=([^&#]*)");
1480      var qs = regex.exec(window.location.href);
1481      if(qs == null)
1482        return default_;
1483      else
1484        return qs[1];
1485    }
1486    
1487    // Récupère l'id de l'enregistrement lié au lot passé en parametre puis appel popupit
1488    function overlayCerfa(idLot) {
1489        $.get("../app/displayLotCerfa.php?lot="+idLot, function(data) {
1490            if(data != '') {
1491                    popupIt('donnees_techniques',
1492                            '../scr/sousform.php?obj=donnees_techniques&idx='+data+
1493                                '&retourformulaire=lot&maj=1&idxformulaire='+idLot,
1494                                950, 700);
1495                    
1496                } else {
1497                    // Si pas d'id retourner on créer un nouvel enregistrement de donnéees techniques
1498                    popupIt('donnees_techniques',
1499                            '../scr/sousform.php?obj=donnees_techniques&retourformulaire=lot&maj=0&idxformulaire='+idLot,
1500                                950, 700);
1501                }
1502    
1503            });
1504    }
1505    
1506    /*
1507     * Marque comme lu une consultation
1508     */
1509    function portletUpdateData(id, objet, objetc, file, field, message){
1510        
1511        /*Vérifie que l'identifiant passé en paramètre est bien un chiffre
1512         * et que le type d'objet est défini
1513         * */
1514        if ( $.isNumeric(id) && objet != '' ){
1515            
1516            donnees = "?ido=" + id + '&obj=' + objet + '&objk=' + objetc + '&idxDossier=' + getQuerystring('idx');
1517            $.ajax({
1518                type: "GET",
1519                url: "../app/"+file+".php" + donnees ,
1520                cache: false,
1521                success: function(html){
1522                    
1523                    $('#sousform-' + objet + ' .message').remove();
1524                    /*Change la valeur affiché et affiche un message valide*/
1525                    if ( $.parseJSON(html) == "Mise a jour effectue avec succes" ||
1526                    $.parseJSON(html).indexOf("Transfert effectue avec succes") != -1 ){
1527                        
1528                        // On modife le champ field
1529                        if ( field != '' && message != '' ){
1530                            $('#'+field).html(message);
1531                            html = $.parseJSON(html);
1532                        }
1533                        else {
1534                            html = $.parseJSON(html).split(';');
1535                            
1536                            $('#'+field).html(html[0]);
1537                            
1538                            html = html[1];
1539                        }
1540                        
1541                        // On supprime l'action
1542                        $('span.'+field+'-16').parent().parent().remove();
1543                        // On affiche le message
1544                        $('#sousform-' + objet + ' .subtitle').after(
1545                            '<div ' +
1546                                'class="message ui-widget ui-corner-all ui-state-highlight ui-state-valid">' +
1547                                '<p>' +
1548                                    '<span class="ui-icon ui-icon-info"></span>' +
1549                                    '<span class="text">' +
1550                                        html +
1551                                    '</span>' +
1552                                '</p>' +
1553                            '</div>'                    
1554                        );
1555                    }
1556                    /*Affichage d'une erreur*/
1557                    else{
1558                        $('#sousform-' + objet + ' .subtitle').after(
1559                            '<div ' +
1560                                'class="message ui-widget ui-corner-all ui-state-highlight ui-state-error">' +
1561                                '<p>' +
1562                                    '<span class="ui-icon ui-icon-info"></span>' +
1563                                    '<span class="text">' +
1564                                        $.parseJSON(html) +
1565                                    '</span>' +
1566                                '</p>' +
1567                            '</div>'                    
1568                        );
1569                    }
1570                }
1571            });
1572      }      }
1573      //  }
1574      pfenetre = window.open("../app/file.php?file="+fichier,"Visualisation","width=100,height=100,top=1,left=150,scrollbars=yes,resizable = yes");  
1575    // Affiche le sous formulaire onglet
1576    function redirectPortletAction(id, onglet, nom_tabs){
1577    
1578        var nom_tabs =  ( typeof nom_tabs === "undefined" ) ? ".ui-tabs" : nom_tabs;
1579        var $tabs = $(nom_tabs).tabs();
1580    
1581        lien_onglet = $('#' + onglet).attr('href');
1582        lien_onglet = lien_onglet.substring( lien_onglet.length - 1, lien_onglet.length);
1583    
1584        $tabs.tabs('select', lien_onglet);
1585    }
1586    
1587    //Rajoute un dossier pour la commission id
1588    function addDossierCommission(id, container){
1589        
1590        link = "../app/ajouter_dossier_commission.php?idx=" + id + "&idxDossier=" + $(container+" #dossier").val();
1591    
1592        $.ajax({
1593            type: "GET",
1594            url: link,
1595            cache: false,
1596            dataType: "json",
1597            success: function(i, obj){
1598                
1599                $(container + " .message").remove();
1600                $(container).prepend(
1601                    '<div class="message ui-widget ui-corner-all ui-state-highlight">'+
1602                        '<p>'+
1603                            '<span class="ui-icon ui-icon-info"></span>'+
1604                            '<span class="text">'+
1605                            '</span>'+
1606                        '</p>'+
1607                    '</div>'
1608                );
1609                    
1610                // Nouveau dossier ajouté
1611                if ( i.return == "1" ){
1612                    
1613                    $(container + ' .message').addClass("ui-state-ok");
1614                    $(container + ' .message .text').html("Dossier ajouté avec succès.");
1615                }
1616                //Dossier existe mais non ajouté
1617                else if( i.return == "0" ){
1618                    
1619                    $(container + ' .message').addClass("ui-state-error");
1620                    $(container + ' .message .text').html("Une erreur s'est produite lors de l'ajout de ce dossier. " +
1621                        "Veuillez contacter votre administrateur");
1622                }
1623                //Le dossier n'existe pas
1624                else if( i.return == "-1" ){
1625                    
1626                    $(container + ' .message').addClass("ui-state-error");
1627                    $(container + ' .message .text').html("Ce dossier n'existe pas.");
1628                }
1629                //Le dossier est déjà à l'ordre du jour
1630                else if( i.return == "2" ){
1631                    
1632                    $(container + ' .message').addClass("ui-state-error");
1633                    $(container + ' .message .text').html("Ce dossier est deja a l'ordre du jour.");
1634                }
1635                
1636            },
1637            async: false
1638        });
1639    }
1640    
1641    //Affichage du tableau des dossier_commission possibles
1642    function ajouterTableauDossierCommissionPossible(id){
1643        
1644        link = "../app/tableau_dossier_commission_possible.php?idx=" + id ;
1645    
1646        $.ajax({
1647            type: "GET",
1648            url: link,
1649            cache: false,
1650            success: function(html){
1651                
1652                $('#tabs-2').html(html);
1653            },
1654            async: false
1655        });
1656    }
1657    
1658    //Met à jour la liste des dossiers de la commission
1659    function updateCommission(id, container){
1660        
1661        var link = "../app/update_dossier_commission.php?idx=" + id ;
1662        var valid = "";
1663        var error = "";
1664        var error_avis = "";
1665        
1666         //Affiche du message de retour
1667        $(container + " .message").remove();
1668        $(container).prepend(
1669            '<div class="message ui-widget ui-corner-all ui-state-highlight dossier-ok">'+
1670                '<p>'+
1671                    '<span class="ui-icon ui-icon-info"></span>'+
1672                    '<span class="text">'+
1673                    msg_loading +
1674                    '</span>'+
1675                '</p>'+
1676            '</div>'
1677        );
1678    
1679        $(container + " input[type='checkbox']").each(
1680            function(index) {
1681                
1682                var idxDossier = $(this).val();
1683                
1684                link = "../app/update_dossier_commission.php?idx=" + id +
1685                    "&idxDossier=" + idxDossier;
1686                
1687                //Ajoute ces dossiers de l'ordre du jour
1688                if ( $(this).is(":checked")){
1689                    
1690                    link += "&action=add";
1691                }
1692                //Supprime ces dossiers de l'ordre du jour
1693                else{
1694                    
1695                    link += "&action=remove";
1696                }
1697    
1698                //Mise à jour des données
1699                $.ajax({
1700                    type: "GET",
1701                    url: link,
1702                    cache: false,
1703                    dataType: "json",
1704                    success: function(i, obj){
1705                        
1706                        // Erreur
1707                        if( i.error == "0" ){
1708                            
1709                            error += idxDossier + ", ";
1710                        }
1711                        else if ( i.error == "-1" ) {
1712    
1713                            error_avis += idxDossier + ", ";
1714                        }
1715                        else{
1716                            valid += idxDossier + ", ";
1717                        }
1718                    },
1719                    async: false
1720                });
1721            }
1722        );
1723    
1724        //Ajout du div des erreurs
1725        if ( error != "" || error_avis != "" ){
1726            
1727            $(container + " .dossier-ok").after(
1728            '<div class="message ui-widget ui-corner-all ui-state-highlight dossier-err">'+
1729                '<p>'+
1730                    '<span class="ui-icon ui-icon-info"></span>'+
1731                    '<span class="text">'+
1732                    '</span>'+
1733                '</p>'+
1734            '</div>');
1735        }
1736    
1737        //le traitement a été effectué avec succés
1738        if ( valid != "" ){
1739            
1740            $(container + ' .dossier-ok').addClass("ui-state-ok");
1741            $(container + ' .dossier-ok .text').html("Mise à jour réalisée avec succès pour le(s) dossier(s) : "+
1742                valid.slice(0,valid.length-2) +
1743                ".");
1744        }
1745        else {
1746            
1747            $(container + " .dossier-ok").remove();
1748        }
1749        //Une erreur s'est produite
1750        if ( error != "" ) {
1751            
1752            $(container + ' .dossier-err').addClass("ui-state-error");
1753            $(container + ' .dossier-err .text').append(
1754                "Dossier : " + error.slice(0,error.length-2) + " déjà plannifié pour une autre commission.");
1755        }
1756        else if ( error_avis != "" ){
1757            
1758            $(container + ' .dossier-err').addClass("ui-state-error");
1759            $(container + ' .dossier-err .text').append(
1760                "Un  avis a déjà été rendu pour le(s) dossier(s): " +
1761                error_avis.slice(0,error_avis.length-2) +
1762                ".");
1763        }
1764    }
1765    
1766    
1767    //Récupère les données du type de commission et les mets dans les champs
1768    function chargeDonneesCommissionType(id_commission_type){
1769    
1770        //Requête ajax de récupération des données
1771        $.ajax({
1772            type: "GET",
1773            url: "../app/getCommissionTypeInfo.php?idx=" + id_commission_type,
1774            dataType: "json",
1775            async: false,
1776            success: function(data){
1777    
1778                // Ajout des données dans les champs
1779                $('#libelle').val(data.libelle);
1780                $('#lieu_adresse_ligne1').val(data.lieu_adresse_ligne1);
1781                $('#lieu_adresse_ligne2').val(data.lieu_adresse_ligne2);
1782                $('#lieu_salle').val(data.lieu_salle);
1783                $('#listes_de_diffusion').val(data.listes_de_diffusion);
1784                $('#participants').val(data.participants);
1785            }
1786        });
1787    }
1788    
1789    // Action de diffusion de mails des commissions
1790    function commission_diffusion(idx, obj){
1791        
1792        $('#tabs-1 .message').remove();
1793        
1794        // Si les données sont fournies
1795        if ( $.isNumeric(idx) && obj != "" ){
1796            
1797            //Requête ajax d'envoi des données
1798            $.ajax({
1799                type: "GET",
1800                url: "../app/commission_diffusion.php?idx=" + idx + "&obj=" + obj,
1801                dataType: "json",
1802                async: false,
1803                success: function(data){
1804    
1805                    $('#tabs-1').prepend(
1806                        '<div ' +
1807                            'class="message ui-widget ui-corner-all ui-state-highlight">' +
1808                            '<p>' +
1809                                '<span class="ui-icon ui-icon-info"></span>' +
1810                                '<span class="text">' +
1811                                '</span>' +
1812                            '</p>' +
1813                        '</div>'                    
1814                    );
1815                    
1816                    var type = ( obj == "compte_rendu" ) ? "du compte-rendu" : "de l'ordre du jour";
1817                    //L'envoi des mails a été effectué avec succés
1818                    if ( data.return == 1 ){
1819                        
1820                        $('#tabs-1 .message').addClass("ui-state-valid");
1821                        $('#tabs-1 .message .text').html(
1822                            "La diffusion " + type + " s'est effectuée avec succès."
1823                        );
1824                    }
1825                    //Un erreur s'est produite
1826                    else if ( data.return == -1 ){
1827                        
1828                        $('#tabs-1 .message').addClass("ui-state-error");
1829                        $('#tabs-1 .message .text').html(
1830                            "Une erreur s'est produite lors de la diffusion " +
1831                            type +
1832                            ". Veuillez contacter votre administrateur."
1833                        );
1834                    }
1835                }
1836            });
1837        }
1838    }
1839    
1840    /**
1841     * Popup de confirmation pour les traitements
1842     */
1843    //
1844    function trt_confirm() {
1845      //      //
     fenetreouverte = true;  
 }  
1846        if (confirm("Etes-vous sur de vouloir confirmer cette action ?")) {
1847            //
1848            return true;
1849        } else {
1850            //
1851            return false;
1852        }
1853    }

Legend:
Removed from v.762  
changed lines
  Added in v.1471

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26