/[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 636 by nhaye, Thu Nov 8 17:45:21 2012 UTC revision 2367 by softime, Thu Oct 3 10:18:04 2013 UTC
# Line 1  Line 1 
1  // specific openfoncier ========================================================  /**
2  // OnReady   * Script JS spécifique à l'applicatif, ce script est destiné à être
3     * appelé en dernier dans la pile des fichiers JS.
4     *
5     * @package openfoncier
6     * @version SVN : $Id$
7     */
8    
9    // Document is ready
10  $(function(){  $(function(){
11     // Document is ready  
12     $('#avis_code_barre_form #consultation').focus();      /**
13         * Ajout du focus sur le champ login au chargement de la page.
14         */
15         $('#login_form #login').focus();
16    
17        /**
18         * Spécifique app/affichage_reglementaire_attestation.php pour donner le
19         * focus sur le champ de recherche au chargement de la page.
20         */
21         $('#affichage_reglementaire_attestation_form #dossier').focus();
22    
23        /**
24         * Spécifique app/widget_recherche_dossier.php pour donner le
25         * focus sur le champ de recherche au chargement de la page.
26         */
27         $('#widget_recherche_dossier_form #dossier').focus();
28    
29       /**
30        * Spécifique app/suivi_retours_de_consultation.php pour donner le focus sur le champ de
31        * recherche au chargement de la page.
32        */
33       $('#suivi_retours_de_consultation_form #code_barres').focus();
34    
35        /**
36        * Spécifique app/suivi_mise_a_jour_des_dates.php pour donner le focus sur le champ
37        * instruction au chargement de la page si la date n'est pas vide.
38        */
39        if($('#suivi_mise_a_jour_des_dates_form #date').val()!="") {
40            $('#suivi_mise_a_jour_des_dates_form #code_barres').focus();
41        }
42        
43        /**
44        * Spécifique app/suivi_envoi_lettre_rar.php pour donner le focus sur le champ
45        * liste des codes barres d'instructions scannés au chargement de la page.
46        */
47        $('#suivi_envoi_lettre_rar_form #liste_code_barres_instruction').focus();
48        
49        /**
50         * Affichage d'un dialog pour les règles de calcul associés à l'action
51         */
52        $('.regle_action').dialog({
53            autoOpen: false,
54            show: "fade",
55            hide: "fade",
56            dialogClass: "alert",
57            minHeight: 30,
58            minWidth: 400
59        });
60        
61        $('.wf_evenement_action').mouseover(
62            function(){
63                var id = $(this).attr("id");
64                $( "#regle_action"+ id ).dialog({ position: { my: "left top", at: "left bottom", of: $(this) } });
65                $( "#regle_action"+ id ).dialog("open");
66                $(".ui-dialog-titlebar").hide();
67            }
68        );
69        
70        $('.wf_evenement_action').mouseleave(
71            function(){
72                var id = $(this).attr("id");
73                $( "#regle_action"+ id ).dialog( "close" );
74            }
75        );
76   });   });
77    
78    
79  function bible(){  /**
80      if(fenetreouverte==true)   * WIDGET liés au formulaire et sousformulaire
81             pfenetre.close();   *
82      var ev=document.f2.evenement.value;   * Ces fonctions javascript sont appelées depuis les méthodes setOnChange,
83      var idx=document.f2.dossier.value;   * setOnClick, ...
84      pfenetre=window.open("../app/bible.php?ev="+ev+"&idx="+idx,"bible","scrollbars=yes,width=600,height=600,top=120,left=120");   */
85      fenetreouverte=true;  //
86    // Cette fonction permet de retourner les informations sur le fichier téléchargé
87    // du formulaire d'upload vers le formulaire d'origine
88    function bible_return(form, champ) {
89        // Initialisation de la variable contenant les valeurs sélectionnées
90        var listeElement = '';
91        // Récupération du contenu de chacun des éléments cochés
92        $("span.content").each(function( index ) {
93            if (document.getElementById('checkbox'+index).checked == true) {
94                listeElement += $(this).text() + '\r\n\r';
95            }
96        });
97        // Récupération du textarea à remplir
98        obj = $("form[name|="+form+"] #"+champ);
99        // Remplissage du textarea et déclenchement du trigger autosize
100        $(obj).val(obj.val()+listeElement+"\r").trigger('autosize');
101        // Fermeture de la boite de dialog
102        $('#upload-container').dialog('close').remove();
103  }  }
104    //
105  function bible2()  function bible() {
106  {      //
107      if(fenetreouverte==true)      var ev = document.f2.evenement.value;
108             pfenetre.close();      //
109        if (ev == "") {
110            window.alert("Vous devez d'abord sélectionner un événement.");
111            return false;
112        }
113        //
114        var idx = document.f2.dossier.value;
115        //
116        var link = "../app/bible.php?complement=1&ev="+ev+"&idx="+idx;
117        load_form_in_modal(link);
118        //
119        return false;
120    }
121    //
122    function bible2() {
123      var ev=document.f2.evenement.value;      var ev=document.f2.evenement.value;
124        if (ev == "") {
125            window.alert("Vous devez d'abord sélectionner un événement.");
126            return false;
127        }
128      var idx=document.f2.dossier.value;      var idx=document.f2.dossier.value;
129      pfenetre=window.open("../app/bible2.php?ev="+ev+"&idx="+idx,"bible","scrollbars=yes,width=600,height=600,top=120,left=120");      var link = "../app/bible.php?complement=2&ev="+ev+"&idx="+idx;
130      fenetreouverte=true;      load_form_in_modal(link);
131        return false;
132  }  }
133    // bible_auto - type httpclick
134  function bible_auto(){  function bible_auto(){
135      if(fenetreouverte==true)      if(fenetreouverte==true)
136             pfenetre.close();             pfenetre.close();
137      var ev=document.f2.evenement.value;      var ev=document.f2.evenement.value;
138        if (ev == "") {
139            window.alert("Vous devez d'abord sélectionner un événement.");
140            return false;
141        }
142      var idx=document.f2.dossier.value;      var idx=document.f2.dossier.value;
143        
144      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");
145      fenetreouverte=true;      fenetreouverte=true;
146        return false;
147  }  }
148    // VerifNumdec - type text
149    function VerifNumdec(champ) {
150        champ.value = champ.value.replace(",", "."); // remplacement de la virgule
151        //if (champ.value.lastIndexOf(".") == -1){ // champ decimal
152            if (isNaN(champ.value)) {
153                alert(msg_alert_error_verifnum);
154                champ.value = "";
155                return;
156            }
157        //}
158        
159    }
160    
161    /**
162     * Cette fonction permet de compléter le champ par des zéro par la gauche
163     * @param  string  champ  Champ concerné
164     * @param  integer length Taille du champ retourné
165     */
166    function str_pad_js(champ, length) {
167    
168        // Initialisation de la variable str
169        var str = '' + champ.value;
170    
171        // Si le champ n'est pas vide
172        if (str != '') {
173            // Tant que la taille n'est pas atteint,
174            // on ajoute des 0
175            while (str.length < length) {
176                str = '0' + str;
177            }
178            // Modifie le champ
179            champ.value = str;
180        }
181    }
182    
183    // Ce widget permet de charger les données d'un select en ajax
184    function changeDataSelect(tableName, linkedField, joker){
185        var id_dossierAutorisation = $("#dossier_autorisation").val();
186        var id = $("#"+linkedField).val();
187        link = "../app/listData.php?idx=" + id + "&tableName=" + tableName +
188                "&linkedField=" + linkedField ;
189        if(id_dossierAutorisation != "") {
190            link += "&nature=EXIST";
191        }
192        var val_tableName = $('#'+tableName).val();
193        $.ajax({
194            type: "GET",
195            url: link,
196            cache: false,
197            dataType: "json",
198            success: function(html){
199                
200                $('#'+tableName).empty();
201                var selected = "";
202                if(val_tableName == "") {
203                    selected=' selected="selected"';
204                }
205                if ( joker == true )
206                    $('#'+tableName).append(
207                        '<option value=""'+selected+'>*</option>'
208                    );
209                else {
210                    $('#'+tableName).append(
211                        '<option value=""'+selected+'>Choisir ' + tableName + '</option>'
212                    );
213                }
214                if ( html !== '' ){
215                    
216                    html = html.split(';');
217                    for ( i = 0 ; i < html.length - 1 ; i++ ){
218                        
219                        html_temp = html[i].split('_');
220                        selected = "";
221                        if(val_tableName == html_temp[0]) {
222                            selected=' selected="selected"';
223                        }
224                        $('#'+tableName).append(
225                            '<option value="'+html_temp[0]+'"'+selected+' >'+html_temp[1]+'</option>'
226                        );
227                        
228                    }
229                }
230            },
231            async: false
232        });
233    }
234    
235    // Ce widget permet de charger les données de la demande type en ajax
236    function changeDemandeTypeDataSelect(){
237        // Récupération de l'id du dossier_autorisation_type_detaille
238        var id_datd = $("#dossier_autorisation_type_detaille").val();
239    
240        // Récupération de la liste des paramètres de l'url
241        var params = extractUrlParams();
242        if ( typeof params['idx_dossier'] === "undefined" ){
243            params['idx_dossier'] = '';
244        }
245    
246        link = "../app/listDemandeType.php?idx=" + params['idx_dossier'] + "&datd="+ id_datd;
247    
248        var val_tableName = $('#demande_type').val();
249        $.ajax({
250            type: "GET",
251            url: link,
252            cache: false,
253            dataType: "json",
254            success: function(res){
255                $('#demande_type').empty();
256                var selected = "";
257    
258                for ( j=0 ; j < res[0].length ; j++ ){
259    
260                    $('#demande_type').append(
261                        '<option value="'+res[0][j]+'"'+selected+' >'+res[1][j]+'</option>'
262                    );
263                    
264                }
265                $('#demande_type').val(val_tableName);
266            },
267            async: false
268        });
269    }
270    
271    /**
272     * Fonction de récupération des paramètres GET de la page
273     * @return Array Tableau associatif contenant les paramètres GET
274     */
275    function extractUrlParams(){    
276        var t = location.search.substring(1).split('&');
277        var f = [];
278        for (var i=0; i<t.length; i++){
279            var x = t[ i ].split('=');
280            f[x[0]]=x[1];
281        }
282        return f;
283    }
284    
285    // vuploadMulti - XXX
286    function vuploadMulti(champ) {
287        //
288        if (fenetreouverte == true) {
289            pfenetre.close();
290        }
291        //
292        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");
293        //pfenetre = window.open("../spg/upload2.php?origine="+champ,"upload2","width=300,height=100,top=120,left=120");
294        //
295        fenetreouverte = true;
296    }
297    
298    /**
299     * POPUP pour le téléchargement de fichier
300     *
301     * Ces fonctions javascript sont appelées depuis des onClick sur des
302     * formulaires spécifiques pour permettre de transmettre des paramètres aux
303     * éditions pdf ainsi appelées.
304     */
305    //
306  function dossierads_d(debut)  function dossierads_d(debut)
307  {  {
308  //if(fenetreouverte==true)  //if(fenetreouverte==true)
309  window.location="../pdf/pdfetat.php?obj=dossier_ads_d&nature="  window.location="../pdf/pdfetat.php?obj=registre_dossiers_decisions_par_type_par_date&nature="
310  +document.f1.nature.value+"&idx=demo&datedebut="  +document.f1.nature.value+"&idx=demo&datedebut="
311  +document.f1.datedebut.value+"&datefin="+document.f1.datefin.value;  +document.f1.datedebut.value+"&datefin="+document.f1.datefin.value;
312  }  }
313    
314    // Cette fonction permet de gérer la validation du formulaire du script :
315    // app/affichage_reglementaire_registre.php
316    function affichage_reglementaire_registre(button) {
317        // Popup de confirmation du traitement par l'utilisateur
318        if (trt_confirm() == false) {
319            return false;
320        }
321        // Suppression du bouton pour que l'utilisateur ne puisse pas cliquer une
322        // deuxième fois
323        $(button).remove();
324        // Affichage du spinner
325        $("#msg").html(msg_loading);
326        // Requête AJAX vers le fichier app/affichage_reglementaire_registre.php
327        // pour mettre à jour les dossiers
328        // XXX layout
329        $.ajax({
330            type: "GET",
331            url: "../app/affichage_reglementaire_registre.php?update",
332            cache: false,
333            success: function(html){
334                // Ajout d'un bloc de message vide
335                $('#msg').html(
336                    '<div class="message ui-widget ui-corner-all ui-state-highlight">'+
337                        '<p>'+
338                            '<span class="ui-icon ui-icon-info"></span>'+
339                            '<span class="text">'+
340                            '</span>'+
341                        '</p>'+
342                    '</div>'
343                );
344                // Si le retour de l'appel Ajax n'est pas vide, alors il y a eu une
345                // lors du traitement
346                if ( html.length > 2 ) {
347                    $("#msg .message").addClass("ui-state-error");
348                    $("#msg .text").html(html);
349                } else {
350                    // Sinon message de succès et appel de l'édition
351                    $("#msg .message").addClass("ui-state-valid");
352                    $("#msg .text").html("Traitement terminé. Le registre a été téléchargé.");
353                    window.open("../pdf/pdfetat.php?obj=registre_dossiers_affichage_reglementaire&idx=demo");
354                }
355            },
356            async: false
357        });
358        //
359        return false;
360    }
361    
362    //Fonction de redirection pour le widget de recherche de dossier
363    function widget_recherche_dossier(data,nbRes){
364        /*$('#msg').show();
365        $('#msg').html(msg_loading);*/
366      
367        // S'il n'y a qu'un seul résultat, afficher un résumé
368        if ( nbRes == 1 ){
369        
370            window.location = "../scr/form.php?obj=dossier_instruction&action=3&" +
371                "idx=" + data + "&premier=0&advs_id=&recherche=&tricol=&" +
372                "selectioncol=&valide=&retour=tab";  
373        }
374        // S'il y a une liste de dossier, redirection vers le tableau
375        else {
376            
377            window.location = "../scr/tab.php?obj=recherche_direct&selectioncol=0&recherche=" + data;
378        }
379    }
380    //
381  function dossierdepot()  function dossierdepot()
382  {  {
383  //if(fenetreouverte==true)  //if(fenetreouverte==true)
384      window.location="../pdf/pdfetat.php?obj=dossier_depot&nature="+      window.location="../pdf/pdfetat.php?obj=registre_dossiers_depots_par_type_par_date&nature="+
385      document.f1.nature.value+"&idx=demo&datedebut="+      document.f1.nature.value+"&idx=demo&datedebut="+
386      document.f1.datedebut.value+"&datefin="+document.f1.datefin.value;      document.f1.datedebut.value+"&datefin="+document.f1.datefin.value;
387  }  }
388    //
389  function dossierads()  function dossierads()
390  {  {
391  //if(fenetreouverte==true)  //if(fenetreouverte==true)
392      window.location="../pdf/pdfetat.php?obj=dossier_ads&nature="+      window.location="../pdf/pdfetat.php?obj=registre_dossiers_par_type_par_date&nature="+
393      document.f1.nature.value+"&idx=demo&datedebut="+      document.f1.nature.value+"&idx=demo&datedebut="+
394      document.f1.datedebut.value+"&datefin="+document.f1.datefin.value;      document.f1.datedebut.value+"&datefin="+document.f1.datefin.value;
395  }  }
396    
397    // téléchargement du fichier
398  function VerifNumdec(champ) {  function file(fichier) {
399      champ.value = champ.value.replace(",", "."); // remplacement de la virgule      //
400      //if (champ.value.lastIndexOf(".") == -1){ // champ decimal      if (fichier == "") {
401          if (isNaN(champ.value)) {          alert("zone vide");
402              alert(msg_alert_error_verifnum);      }
403              champ.value = "";      //
404              return;      pfenetre = window.open("../app/file.php?file="+fichier,"Visualisation","width=100,height=100,top=1,left=150,scrollbars=yes,resizable = yes");
405          }      //
406      //}      fenetreouverte = true;
       
407  }  }
408  /* -- Debut -- */  
409    /**
410     * Retour spécifique de l'écran de consultation multiple - surcharge de ajaxIt
411     * @todo XXX voir les différences avec ajaxIt et si il n'est pas possible
412     * d'effectuer  la modification dans le core
413     */
414  function messageIt(objsf, link, empty) {  function messageIt(objsf, link, empty) {
415      // recuperation du terme recherche      // recuperation du terme recherche
416      var recherche = document.getElementById("recherchedyn");      var recherche = document.getElementById("recherchedyn");
# Line 93  function messageIt(objsf, link, empty) { Line 433  function messageIt(objsf, link, empty) {
433      });      });
434  }  }
435    
436    /**
437     * TTélécharegement de fichier pdf en ajax
438     * spécifique de l'écran de consultation multiple
439     */
440  /* 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*/
441  jQuery.download = function(url, data, method){  jQuery.download = function(url, data, method){
442      //url and data options required      //url and data options required
# Line 111  jQuery.download = function(url, data, me Line 455  jQuery.download = function(url, data, me
455      };      };
456  };  };
457    
458  /* -- FIN -- */  /**
459  function popupIt(objsf, link) {   * Cette fonction permet de charger dans un dialog jqueryui un formulaire tel
460     * qu'il aurait été chargé avec ajaxIt
461     *
462     * @param objsf string : objet de sousformulaire
463     * @param link string : lien vers un sousformulaire (../scr/sousform.php...)
464     * @param width integer: width en px
465     * @param height integer: height en px
466     * @param callback function (optionel) : nom de la méthode à appeler
467     *                                       à la fermeture du dialog
468     * @param callbackParams mixed (optionel) : paramètre à traiter dans la function
469     *                                          callback
470     *
471     **/
472    function popupIt(objsf, link, width, height, callback, callbackParams) {
473      // Insertion du conteneur du dialog      // Insertion du conteneur du dialog
474      var dialog = $('<div id=\"sousform-'+objsf+'\"></div>').insertAfter('.formControls');      var dialog = $('<div id=\"sousform-'+objsf+'\"></div>').insertAfter('#tabs-1 .formControls');
475      $('<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);
476            
477      // execution de la requete passee en parametre      // execution de la requete passee en parametre
# Line 134  function popupIt(objsf, link) { Line 491  function popupIt(objsf, link) {
491              $(dialog).dialog({              $(dialog).dialog({
492              //OnClose suppression du contenu              //OnClose suppression du contenu
493              close: function(ev, ui) {              close: function(ev, ui) {
494                  // Si le formulaire est submit et valide                  // Si le formulaire est submit et valide on execute la méthode
495                  var valid=$('#sousform-'+objsf+' div.ui-state-valid');                  // passée en paramètre
496                  if(valid.length > 0) {                  if (typeof(callback) === "function") {
497                      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');  
498                  }                  }
499                  $(this).remove();                  $(this).remove();
500              },              },
501              resizable: false,              resizable: true,
502              modal: true,              modal: true,
503              width: 700,              width: 'auto',
504              height: 520,              height: 'auto',
505                position: 'left top',
506            });            });
507          },          },
508          async : false          async : false
509      });      });
510      //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','');  
     });  
511      $('#sousform-'+objsf).on("click",'a.retour',function() {      $('#sousform-'+objsf).on("click",'a.retour',function() {
512          $(dialog).dialog('close').remove();          $(dialog).dialog('close').remove();
513            return false;
514      });      });
     return false;  
515  }  }
516    
517    /***
518     * Fonction getter des paramètres de l'url courante
519     */
520  // Parse URL Queries Method  // Parse URL Queries Method
521  (function($){  (function($){
522          $.getQuery = function( query ) {      $.getQuery = function( query ) {
523                  query = query.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");          query = query.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
524                  var expr = "[\\?&]"+query+"=([^&#]*)";          var expr = "[\\?&]"+query+"=([^&#]*)";
525                  var regex = new RegExp( expr );          var regex = new RegExp( expr );
526                  var results = regex.exec( window.location.href );          var results = regex.exec( window.location.href );
527                  if( results !== null ) {          if( results !== null ) {
528                          return results[1];              return results[1];
529                          return decodeURIComponent(results[1].replace(/\+/g, " "));              return decodeURIComponent(results[1].replace(/\+/g, " "));
530                  } else {          } else {
531                          return false;              return false;
532                  }          }
533          };      };
534  })(jQuery);  })(jQuery);
535    
536  function changeQuartier(){  
537    /*
538     * Javascript concernant la demande d'avis
539     *
540     *
541     */
542    
543    /**
544     * Fonction de callback appellée lors de la fermeture du dialog (popupit)
545     * du retour d'avis d'un service
546     **/
547    function returnToTab(objsf) {
548        var valid=$('#sousform-'+objsf+' div.ui-state-valid');
549        if(valid.length > 0) {
550            document.location.href="../scr/tab.php?obj="+$.getQuery('obj')+"&premier="+$.getQuery('premier')
551            +"&advs_id="+$.getQuery('advs_id')+"&recherche="+$.getQuery('recherche')+"&tricol="+$.getQuery('tricol')
552            +"&selectioncol="+$.getQuery('selectioncol');
553        }
554    };
555    
556    
557    /*
558     * Javascript concernant la demande
559     *
560     *
561     */
562    
563     /**
564      * Fonction permettant de mettre à jour les infos du demandeur
565      **/
566    function getDemandeurId(type) {
567        var id_demandeur=$('#id_retour').val();
568        if($.isNumeric(id_demandeur)) {
569            afficherDemandeur(id_demandeur,type);
570            om_initialize_content();
571        }
572    }
573    
574    /**
575     * Fonction permettant d'afficher la synthèse d'un demandeur
576     */
577    function afficherDemandeur(id,type) {
578        $.ajax({
579            type: "GET",
580            url: '../app/afficher_synthese_demandeur.view.php?iddemandeur='+id+'&type='+type,
581            cache: false,
582            success: function(html){
583                $(html).insertBefore('#add_'+type).fadeIn(500);
584    
585            },
586            async:false
587        });
588        affichageBoutonsDemandeurs();
589    }
590    
591    /**
592     * Fonction permettant de modifier un demandeur
593     */
594    function editDemandeur(obj,id,type,id_css) {
595        var url = '../scr/sousform.php?obj='+obj+'&retourformulaire=demande';
596        //Vérification des contraintes de récupération des demandeurs
597        if(getDemandeInfo('contraintes') == 'avec_recup') {
598            url += '&action=0&idx_demandeur='+id;
599        } else {
600            url += '&action=1&idx='+id;
601        }
602        popupIt(obj, url, 860, 'auto',
603                replaceDemandeur, {'type':type,'id': id, 'id_css':id_css});
604        affichageBoutonsDemandeurs();
605    }
606    
607    /**
608     * Function permettant de remplacer un contenu déjà existant
609     **/
610    function replaceDemandeur(obj) {
611        var new_demandeur=$('#id_retour').val();
612        if($.isNumeric(new_demandeur)) {
613            $.ajax({
614                type: "GET",
615                url: '../app/afficher_synthese_demandeur.view.php?iddemandeur='+new_demandeur+'&type='+obj.type,
616                cache: false,
617                success: function(html){
618                    $(obj.id_css).replaceWith(html);
619                }
620            });
621        }
622    }
623    /**
624     * Function permettant de remplacer un contenu déjà existant
625     **/
626    function removeDemandeur(id) {
627        var div_class=$('#'+id).attr("class");
628        $('#'+id).remove();
629        if(div_class == "delegataire") {
630            $('#add_delegataire').fadeIn(500);
631        }
632        affichageBoutonsDemandeurs();
633    }
634    
635    /**
636     * Fonction permettant d'afficher et cacher les boutons d'ajout de demandeurs
637     */
638    function affichageBoutonsDemandeurs(){
639    
640        // Si formulaire après validation on cache les boutons d'ajout de demandeurs
641        url = document.location + "" ;
642    
643        if ((url.indexOf("form.php?obj=demande&") != -1
644            || url.indexOf("form.php?obj=demande_nouveau_dossier&") != -1
645            || url.indexOf("form.php?obj=demande_dossier_existant&") != -1)
646            && $("form[name=f1] .form-is-valid").size() > 0 ) {
647    
648            $('#add_petitionnaire_principal').hide();
649            $('#add_delegataire').hide();
650            if($('input[name=delegataire][type=hidden]').size() == 0) {
651                $('#delegataire').hide();
652            }
653            $('#add_petitionnaire').hide();
654    
655        } else {
656    
657            // Affichage du bouton d'ajout du petitionnaire principal
658            if($('input[name=petitionnaire_principal][type=hidden]').size() == 1) {
659                $('#add_petitionnaire_principal').hide();
660            } else {
661                $('#add_petitionnaire_principal').fadeIn(500);
662            }
663    
664            // Affichage du bouton d'ajout du delegataire
665            if($('input[name=petitionnaire_principal][type=hidden]').size() == 1
666               || $('input[name=delegataire][type=hidden]').size() == 1) {
667                $('#delegataire').fadeIn(500);
668                if($('input[name=delegataire][type=hidden]').size() == 0) {
669                    $('#add_delegataire').fadeIn(500);
670                } else {
671                    $('#add_delegataire').hide();
672                }
673            } else {
674                $('#delegataire').hide();
675            }
676    
677            // Affichage du bouton d'ajout de petitionnaires
678            if($('input[name=petitionnaire_principal][type=hidden]').size() == 0) {
679                $('#add_petitionnaire').hide();
680            } else {
681                $('#add_petitionnaire').fadeIn(500);
682            }
683        }
684    }
685    
686    /**
687     * Appel au chargement de la page
688     **/
689    $(function() {
690        changeDemandeurType('qualite');
691        if ( $('#type_demandeur') == 'petitionnaire' ){
692            
693            addSearchIcon();
694            addDivDialog('.bloc_demandeur');
695        }
696        affichageBoutonsDemandeurs();
697        // Bind de la fonction permettant l'ajout du pétitionnaire principal
698        $("#formulaire").on("click","#add_petitionnaire_principal",  function() {
699            popupIt('petitionnaire',
700                    '../scr/sousform.php?obj=petitionnaire&action=0'+
701                    '&retourformulaire=demande&principal=true', 860, 'auto',
702                    getDemandeurId, 'petitionnaire_principal');
703        });
704        // Bind de la fonction permettant l'ajout du délégataire
705        $("#formulaire").on("click","#add_delegataire", function(event) {
706            popupIt('delegataire',
707                    '../scr/sousform.php?obj=delegataire&action=0'+
708                    '&retourformulaire=demande', 860, 'auto',
709                    getDemandeurId, 'delegataire');
710        });
711        // Bind de la fonction permettant l'ajout des pétitionnaires
712        $("#formulaire").on("click","#add_petitionnaire", function(event) {
713            popupIt('petitionnaire',
714                    '../scr/sousform.php?obj=petitionnaire&action=0'+
715                    '&retourformulaire=demande', 860, 'auto',
716                    getDemandeurId, 'petitionnaire');
717        });
718    
719        url = document.location + "" ;
720        if ((
721            url.indexOf("form.php?obj=demande&") != -1 ||
722            url.indexOf("form.php?obj=dossier&") != -1 ||
723            url.indexOf("form.php?obj=dossier_instruction&") != -1
724            )
725            && url.indexOf("&action=3") == -1) {
726    
727            formatFieldReferenceCadastrale();
728        }
729    
730        // S'il y a une erreur durant la validation lors de l'ajout
731        // d'une nouvelle demande
732        if (url.indexOf("form.php?obj=demande_nouveau_dossier&") != -1
733            && (url.indexOf("&action=3") == -1
734            && url.indexOf("&action=2") == -1
735            && url.indexOf("&validation") != -1
736            && $(".form-is-valid").size() == 0)) {
737    
738            addButtonCadastraleAdesse();
739            formatFieldReferenceCadastrale();
740        }
741        
742        if (url.indexOf("form.php?obj=demande_nouveau_dossier&") != -1
743            && (url.indexOf("&action=3") == -1
744            && url.indexOf("&action=2") == -1
745            && url.indexOf("&validation") == -1
746            && $(".form-is-valid").size() == 0)) {
747            
748            addButtonCadastraleAdesse();
749            changeDemandeType();
750        }
751        
752        // Ajout de demande
753        if ((url.indexOf("form.php?obj=demande_nouveau_dossier&") != -1
754            || url.indexOf("form.php?obj=demande_dossier_existant&") != -1)
755            && url.indexOf("&action=0") != -1 ){
756    
757            /*Cache les champs avant que dossier_autorisation_type_detaille soit choisi*/
758            hideFields();
759        }
760        
761        // Ajout de demande sur dossier existant
762        if (url.indexOf("form.php?obj=demande_dossier_existant&") != -1
763            && url.indexOf("&action=0") != -1 ){
764    
765            //Cache les champs avant que dossier_autorisation_type_detaille soit choisi
766            hideFields();
767            //On affiche le select du type de la demande
768            $('#demande_type').parent().parent().show();
769        }
770        
771        // Modification de demande
772        if (
773            (
774                url.indexOf("form.php?obj=demande&") != -1
775                || url.indexOf("form.php?obj=demande_nouveau_dossier&") != -1
776                || url.indexOf("form.php?obj=demande_dossier_existant&") != -1
777            )
778            && url.indexOf("&action") == -1
779        ){
780    
781            formatFieldReferenceCadastrale();
782        }
783        
784        //Gestion de la commission
785        $( "#tabs" ).tabs();
786          
787        // Affichage du tableau des dossier_commission au clique
788        $("#dossier_planifie").click(function() {
789            
790            var params = extractUrlParams();
791            idx = params['idx'];
792    
793            ajaxIt(
794                'dossier_commission',
795                '../scr/soustab.php?obj=dossier_commission&idxformulaire='+
796                idx +
797                '&retourformulaire=commission');
798        });
799        
800        // Affichage du tableau des dossier_commission posssible au clique
801        $('#commission_dossiers_plannifier_retirer').click(
802            function(){
803                
804                var params = extractUrlParams();
805                idx = params['idx'];
806                
807                $('#tabs-2').empty();
808                ajouterTableauDossierCommissionPossible(idx);
809            }
810        );
811        
812        //Suppression du message et des données dans le champ dossier
813        $('#commission_dossiers_plannifier_numero').click(
814            function(){
815                
816                $('#tabs-3 .message').remove();
817                $('#tabs-3 #dossier').val("");
818            }
819        );
820    });
821    
822    /*
823     * Action sur les champs pour les références cadastrales
824     */
825    function formatFieldReferenceCadastrale(){
826    
827        addNewFieldReferencesCadastrales();
828        $('#terrain_references_cadastrales').parent().parent().hide();
829        
830        url = document.location + "";
831    
832        reference_cadastrale = $('#terrain_references_cadastrales').val();
833        /*Formatage de la reference cadastrale*/
834        if ( reference_cadastrale != '' ){
835            
836            /* Récupère la référence cadastrale non formatée */
837            references_cadastrales = reference_cadastrale.split(';');
838            donnees = new Array();
839            
840            i = 0 ;
841            /* Boucle sur les références, elles étaient séparées par un ; */
842            for ( l = 0 ; l < references_cadastrales.length - 1 ; l ++ ){
843                
844                /*Récupère le code impots du qartier [CHIFFRES]*/
845                k = 0;
846                donnees[i] = '';
847                for ( j = k ; j < references_cadastrales[l].length ; j++ ){
848                    
849                    if ( references_cadastrales[l].charAt(j) >= 0 &&
850                        references_cadastrales[l].charAt(j) <= 9 ){
851                            
852                        donnees[i] += references_cadastrales[l].charAt(j);
853                        k++;
854                        
855                    } else {
856                        
857                        i++;
858                        break;
859                    }
860                }
861                
862                /* Récupère la section [LETTRES] */    
863                donnees[i] = '';
864                for ( j = k ; j < references_cadastrales[l].length ; j++ )
865                    if ( isAlpha(references_cadastrales[l].charAt(j)) ){
866                        
867                        donnees[i] += references_cadastrales[l].charAt(j);
868                        k++;
869                        
870                    } else {
871                        
872                        i++;
873                        break;
874                    }
875                
876                /* Récupère la parcelle [CHIFFRES] */
877                donnees[i] = '';
878                for ( j = k ; j < references_cadastrales[l].length ; j++ )
879                    if ( references_cadastrales[l].charAt(j) >= 0 &&
880                        references_cadastrales[l].charAt(j) <= 9 ){
881                            
882                        donnees[i] += references_cadastrales[l].charAt(j);
883                        k++;
884                        
885                    } else {
886                        
887                        break;
888                    }
889                
890                /* Récupère les séparateurs [ A / ] et les sections */
891                m = 0 ; // Nombre de suffixe
892                if ( k < references_cadastrales[l].length ){
893                    
894                    for ( j = k ; j < references_cadastrales[l].length ; j++ )
895                        if ( isAlpha(references_cadastrales[l].charAt(j)) ){
896                            
897                            m++;
898                            donnees[++i] = references_cadastrales[l].charAt(j);
899                            donnees[++i] = '';
900                        }
901                        else {
902                            
903                            donnees[i] += references_cadastrales[l].charAt(j);
904                        }
905                }
906                
907                /*Créé autant de champs de que de référence */
908                donnees[++i] = ';';
909                i++;
910    
911                if ( l > 0 ) {
912                    
913                    $('.reference_cadastrale_custom_fields').append(
914                        "<br/>" + fieldReferenceCadastraleBase()
915                    );
916                }
917                
918                actionFormReferenceCadastrale();
919                
920                if ( m > 0 ){
921                            
922                    for ( j = 0 ; j < m ; j++ ){
923                        
924                        $('#moreFieldReferenceCadastrale' +
925                            ( $('.moreFieldReferenceCadastrale').length - 1 ) ).
926                        before(
927                            newInputReferenceCadastrale()
928                        );
929                    }
930                }
931            }
932             /* Action sur les boutons [+ ajouter d'autres champs] et [+ ajouter
933              * d'autres lignes] */
934            actionLineFormReferenceCadastrale();
935            
936            /* Ajoute les données dans les champs nouvellement créés */
937            $('.reference_cadastrale_custom_field').each(
938                function(index) {
939                    
940                    $(this).val(donnees[index])
941                }
942            );
943        }
944        else{
945            actionFormReferenceCadastrale();
946            actionLineFormReferenceCadastrale();
947        }
948    }
949    
950    /**
951     * Ajoute les icônes pour la recherche de pétitionnaire fréquent.
952     */
953    function addSearchIcon(){
954    
955        $("#form-content:not(.form-is-valid) .search_fields").each(
956            function() {
957                //Ajout de l'icône après le champs dénomination et nom de la personne morale*/
958                $(this).append(
959                    '<span '+
960                        'class="om-icon om-icon-16 om-icon-fix search-frequent-16" '+
961                        'title="Chercher un frequent"> '+
962                    '</span>'
963                );
964            }
965        );
966        
967        /*Ajout des actions sur les boutons*/
968        addActionSearchIcon();
969        addActionRemove();
970    
971    }
972    
973    /**
974     * Fonction permettant de revenir sur le formulaire d'ajout de demandeur
975     **/
976    function addActionRemove(){
977        $('.erase-petitionnaire').click(
978            function(){
979                ajaxIt('petitionnaire','../scr/sousform.php?obj=petitionnaire&action=0');
980        });
981    }
982    
983    /**
984     * Vérifie que les champs necessaires sont remplis et retourne les données necessaires
985     * sous forme de tableau JSOn
986     */
987    function getDataSearch(){
988        
989        //Il faut un minimum de trois lettres pour lancer la recherche
990        var minChar = false;
991        //Récupération des données
992        var dataJson = "{";
993        $('.search_fields input').each(
994            function(){
995                if ( $(this).val().length >= 3 ){
996                    minChar = true;
997                }
998                
999                var idInput = $(this).attr("id");
1000                var valInput = $(this).val();
1001                dataJson += "\"" + idInput + "\":\"" + valInput + "\",";
1002            }
1003        );
1004        if (!minChar){
1005            alert('Saisissez au moins trois lettres pour la recherche');
1006            return "";
1007        }
1008        
1009        dataJson = $.parseJSON(dataJson.substring(0,dataJson.length-1)+"}");
1010        //Données sous forme d'un tableau JSON
1011        return dataJson;
1012    }
1013    
1014    /*
1015     * Ajoute les actions sur les icônes de recherche
1016     */
1017    function addActionSearchIcon(){
1018        
1019        //Selon l'objet dans lequel on se trouve
1020        var objName = '';
1021        var objReturn = '';
1022        if ( $('#demandeur').length == 1 ){
1023            objName = 'petitionnaire';
1024            objReturn = 'demande';
1025        }
1026        else if($('#architecte').length == 1){
1027            objName = 'architecte';
1028            objReturn = 'donnees_techniques';
1029        }
1030        
1031        $('.search-frequent-16').click(
1032            function(){
1033                //Récupération des données
1034                dataJson = getDataSearch();
1035                //Si ce n'est pas un tableau JSON on n'exécute pas le reste du code
1036                if ( typeof dataJson !== 'object' ){
1037                    return;
1038                }
1039                
1040                //Requête qui va récupérer les données du addSearchIcon(es)
1041                //pétitionnaire(s) correspondant(s) à la recherche
1042                $.ajax({
1043                    type: "POST",
1044                    dataType: "json",
1045                    data: dataJson,
1046                    url: "../app/find" + objName.charAt(0).toUpperCase() + objName.substring(1) + ".php" ,
1047                    cache: false,
1048                    success: function(obj){
1049                        var freq = obj;
1050                        var res='';
1051                        /*Si la recherche a donné des résultats*/
1052                        if ( freq.length > 0 ){
1053                            /*Limitation des résultats à 50 */
1054                            if ( freq.length > 50 ){
1055                                
1056                                nbRes = 50;
1057                                res += 'Votre recherche a donn&eacute; ' + freq.length
1058                                    + ' r&eacute;sultats. Seul les cinquantes premiers ' +
1059                                    'seront affich&eacute;s.<br/>';
1060                            } else {
1061                                nbRes = freq.length;
1062                            }
1063                            
1064                            res += '<select id="select-'+objName+'">' ;
1065                            
1066                            /* Met les résultats de la recherche dans un select */
1067                           for ( i = 0 ; i < nbRes ; i++ ){
1068                                res += '<option value="' + freq[i].value + '">' +
1069                                            freq[i].content +
1070                                       '</option>';
1071                            }
1072                            
1073                            res += '</select>';
1074                        } else {
1075                            res += 'Aucune correspondance trouvée.';
1076                        }
1077                        
1078                        addDivDialog('#sousform-' + objName);
1079                        /* Affichage de l'overlay */
1080                        $('#dialog').html(res);
1081                          
1082                        $( "#dialog" ).dialog({
1083                            dialogClass: "dialog-search-frequent-"+objName,
1084                            modal: true,
1085                            buttons : {
1086                                Valider: function(){
1087                                    if ( res != 'Aucune correspondance trouvée.'){
1088                                        var id = $('#select-'+objName+' option:selected').val();
1089                                        if($.isNumeric(id)) {
1090                                            ajaxIt(objName,
1091                                            '../scr/sousform.php?obj=' + objName +
1092                                            '&action=1&retourformulaire=' + objReturn +
1093                                            '&idx='+id
1094                                            );
1095                                        }
1096                                    }
1097                                    // Fermeture de l'overlay
1098                                    $(this).dialog( "close" );
1099                                    $(this).remove();
1100                                }
1101                            },
1102                            close: function(){
1103                                $(this).remove();
1104                            }
1105                        });
1106                    },
1107                });
1108            }
1109        );
1110    }
1111    
1112    /*
1113     * Ajoute un div pour l'overlay dialog de jQuery
1114     */
1115    function addDivDialog(id){
1116        
1117        $(id).prepend('<div id="dialog"></div>');
1118    }
1119    
1120    /*
1121        Action au changement du select de la qualite du demandeur
1122     * */
1123    function changeDemandeurType(id){
1124    
1125        /*Réinitialise les champs et cache les champs inutiles selon la qualité du demandeur*/
1126        /*Si la qualite du demandeur est particulier */
1127        if ( $('#' + id ).val() == 'particulier' ){
1128            
1129            $('.personne_morale_fields input').each(
1130                function(){
1131                    $(this).val('');
1132                }
1133            );
1134            $('.personne_morale_fields select option[value=""]').each(
1135                function(){
1136                    $(this).attr('selected', 'selected');
1137                }
1138            );
1139            
1140            $('.personne_morale_fields').hide();
1141            $('.particulier_fields').show();
1142        }
1143        /*Si c'est une personne morale*/
1144        else {
1145            
1146           $('.particulier_fields input').each(
1147                function(){
1148                    $(this).val('');
1149                }
1150            );
1151            $('.particulier_fields select option[value=""]').each(
1152                function(){
1153                    $(this).attr('selected', 'selected');
1154                }
1155            );
1156            
1157            $('.particulier_fields').hide();
1158            $('.personne_morale_fields').show();
1159        }
1160    }
1161    
1162    /*
1163        Fonction de test des champs
1164     * */
1165    function isAlpha(str) {
1166        return /^[a-zA-Z\/]+$/.test(str);
1167    }
1168    
1169    function isMail(str){
1170        return /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/.test(str);
1171    }
1172    
1173    function isPhoneNumber(str){
1174        return /[0-9-()+]{3,20}/.test(str);
1175    }
1176    
1177    function testSeparator(obj){
1178    
1179        if ( obj.value != 'A' &&
1180             obj.value != '/' ) {
1181                
1182            alert('Saisissez uniquement un A ou un / comme séparateur');
1183            obj.value = '';
1184        }
1185    }
1186    /* Fin fonction test */
1187    
1188    /*
1189     *  Ajoute les ations spécifiques pour le formulaire personnalisé d'ajout de
1190     *  référence cadastrale
1191    */
1192    function actionFormReferenceCadastrale(){
1193        
1194        $('form').submit(
1195            function(){
1196                
1197                getDataFieldReferenceCadastrale();
1198            }
1199        );
1200        if( $("form[name=f1] .form-is-valid").size() == 0) {
1201    
1202            $('#moreFieldReferenceCadastrale' +
1203                ($('.moreFieldReferenceCadastrale').length - 1 )).
1204            on("click", function() {
1205                
1206                $(this).before(newInputReferenceCadastrale());
1207            });
1208        }
1209        
1210    }
1211    
1212    /*
1213     * Récupère les données saisies dans les champs de références cadastrales
1214     */
1215    function getDataFieldReferenceCadastrale(){
1216        
1217        var reference_cadastrale = '';
1218        var reference_cadastrale_temp = '';
1219        
1220        /*Pour chacun des champs du formulaire de saisie de référence cadastrale*/
1221        $('.reference_cadastrale_custom_field').each(
1222            function(){
1223                
1224                /*Si on est à la fin d'une ligne de champs*/
1225                if ( $(this).val() == ';' ){
1226                    
1227                    reference_cadastrale_bis = reference_cadastrale_temp ;
1228                    
1229                    /* Vérifie que les données sont correctement formatées avant de
1230                     * les ajouter au résultat*/
1231                    while( reference_cadastrale_bis != ''){
1232                        if ( /^([0-9]{1,4}[a-zA-Z]{1,3}[0-9]{1,5}([A\/]{1}[0-9]{1,4})*)*$/.test(reference_cadastrale_bis) ){
1233                            
1234                            reference_cadastrale += reference_cadastrale_bis + ";";
1235                            break;
1236                        }
1237                        else{
1238                            
1239                            reference_cadastrale_bis = reference_cadastrale_bis.slice( 0, -1);
1240                        }    
1241                    }
1242                    
1243                    reference_cadastrale_temp = '';
1244                }
1245                
1246                else {
1247                    
1248                    /*Sinon, on récupère la valeur du champ*/
1249                    reference_cadastrale_temp += $(this).val();
1250                }
1251            }
1252        );
1253    
1254        /*Met la valeur du résultat dans le champs généré par le framework*/
1255        $('#terrain_references_cadastrales').val(reference_cadastrale);
1256    }
1257    
1258    /*
1259        Action pour l'ajout de nouvelle ligne dans le formulaire d'ajout
1260        de référence cadastrale
1261     * */
1262    function actionLineFormReferenceCadastrale(){
1263        if( $("form[name=f1] .form-is-valid").size() == 0) {
1264    
1265            $('#morelineReferenceCadastrale').click(
1266                function(){
1267                    
1268                    /*Ajout des trois champs de base*/
1269                    $('.reference_cadastrale_custom_fields').
1270                    append( "<br/>" + fieldReferenceCadastraleBase());
1271    
1272                    /*Ajout du bind pour l'ajout de nouveaux champs*/
1273                    $('#moreFieldReferenceCadastrale'+
1274                        ($('.moreFieldReferenceCadastrale').length - 1 )).
1275                    on("click", function() {
1276                        $(this).before(newInputReferenceCadastrale());
1277                    });
1278                }
1279            );
1280        }
1281    }
1282    
1283    /*
1284        Met à jour le select demande_type dès qu'un
1285        dossier_autorisation_type_detaille est choisi
1286     * */
1287    function changeDemandeType(){
1288    
1289        var idDossierAutorisationTypeDetaille =
1290            $("#dossier_autorisation_type_detaille").val();
1291            
1292        /* Récupère les données saisies dans les champs pour la référence cadastrale */
1293        getDataFieldReferenceCadastrale();
1294        
1295        /*Si l'identifiant fourni est correct*/
1296        if ( $.isNumeric(idDossierAutorisationTypeDetaille) ){
1297            
1298            /*Met à jour le select de demande_type avec les données correspondant*/
1299            changeDemandeTypeDataSelect();
1300            if ( $('#demande_type option').size() < 2 ) {
1301                showFormsDemande();
1302            }
1303          
1304           /*Affiche le select*/
1305           $('#demande_type').parent().parent().show();
1306           if($('#demande_type').val() == '' ) {
1307                $('.demande_hidden_bloc').each(
1308                    function(){
1309                        $(this).hide();
1310                    }
1311                );
1312                $('input[type=submit]').hide();
1313           }
1314        }
1315        else {
1316            
1317            /*Sinon, cache tous les champs du formulaire*/
1318            hideFields();
1319        }
1320    }
1321    
1322    /*
1323        Ajoute le code HTML des champs pour les références cadastrales
1324     * */
1325    function addNewFieldReferencesCadastrales(){
1326    
1327        var html = '<div class="field field-type-text references_cadastrales_new_field" >'+
1328                '<div class="form-libelle">' +
1329                    '<label '+
1330                        'class="libelle-terrain_references_cadastrales" '+
1331                        'for="terrain_references_cadastrales">'+
1332                        ' Références cadastrales '+
1333                    '</label>' +
1334                '</div>' +
1335                '<div class="form-content reference_cadastrale_custom_fields">' +
1336                     fieldReferenceCadastraleBase() +
1337                '</div>' +
1338            '</div>';
1339        
1340        url = document.location + "";
1341        if((getDemandeInfo('nature') == 'NOUV' || getDemandeInfo('nature') == 'NONE' ) && $(".form-is-valid").size() == 0 && url.indexOf('action=3') == -1 ) {
1342            html += '<div class="field field-type-text" id="morelineReferenceCadastrale">' +
1343                '<div class="form-libelle"></div>' +
1344                '<div class="form-content">' +
1345                    '<span class="om-form-button add-16" title="Ajouter">ajouter d\'autres lignes</span>' +
1346                '</div>' +
1347           '</div>';
1348        }
1349    
1350        $('.references_cadastrales_new_field').remove();
1351        $('.moreFieldReferenceCadastrale').remove();
1352        $('#morelineReferenceCadastrale').remove();
1353        $('#terrain_references_cadastrales').parent().parent().before(
1354            html
1355        );
1356    }
1357    
1358    function addButtonCadastraleAdesse(){
1359    
1360        // Permet d'ajouter le bouton de récupération d'adresse si sig activé
1361        if ($('#option_sig').val() == 'sig_externe'){
1362        
1363            $('#terrain_references_cadastrales').parent().parent().after('<div class="field field-type-text" >' +
1364                '<div class="form-libelle"></div>' +
1365                '<div class="form-content buttonCadAdr">' +
1366                    '<input id="cad-adr-them" '+
1367                        'class="ui-button ui-widget ui-state-default ui-corner-all" '+
1368                        'type="button" '+
1369                        'onclick="getAdressFromCadastrale();" '+
1370                        'value="Récupérer l\'adresse de la parcelle"/>' +
1371                '</div>' +
1372           '</div>' );
1373        }
1374    }
1375    
1376    /*
1377        Séparateur caché ; pour marqué la fin d'une ligne de référence cadastrale
1378     * */
1379    function hiddenSeparatorField(){
1380    
1381        return '<input ' +
1382                    'class="reference_cadastrale_custom_field" ' +
1383                    'type="hidden" ' +
1384                    'maxlength="2" ' +
1385                    'size="2" ' +
1386                    'value=";" />';
1387    }
1388    
1389    /**
1390     * Retourne l'info passée en paramètre (nature de la demande ou type de la demande)
1391     **/
1392    function getDemandeInfo(info) {
1393        var id_demande_type = $('#demande_type').val();
1394        var res = "";
1395        if ( typeof id_demande_type !== "undefined" ){
1396            $.ajax({
1397                type: "GET",
1398                url: "../app/getDemandeInfo.php?iddemandetype=" + id_demande_type
1399                        + "&info=" + info,
1400                cache: false,
1401                async: false,
1402                success: function(val){
1403                    res = val;
1404                }
1405            });
1406        }
1407        else {
1408            
1409            res = "NONE"
1410        }
1411        return res;
1412    }
1413    /*
1414        Ajout d'une nouvelle ligne de champ de référence cadastrale
1415        Retourne le code HTML
1416     * */
1417    function fieldReferenceCadastraleBase(){
1418        
1419        url = document.location + "";
1420        
1421        var type = getDemandeInfo('nature');
1422        var reference_cadastrale = '<input ' +
1423                    'class="champFormulaire reference_cadastrale_custom_field" ' +
1424                    'type="text" ' +
1425                    'onchange="VerifNum(this);str_pad_js(this, 3);" ' +
1426                    'maxlength="3" ' +
1427                    'size="3" '+
1428                    'placeholder="Quart." ';
1429                    
1430        // désactivation des champs de référence cadastrale
1431        if( (type != 'NOUV' &&  type != 'NONE') || $(".form-is-valid").size() > 0 || url.indexOf('action=3') != -1 ) {
1432            reference_cadastrale += 'disabled="disabled" ';
1433        }
1434            
1435      var idArrondissement = $("#arrondissement option:selected").val();      reference_cadastrale += 'value="" />';
1436      link = "../app/listeQuartier.php?idx=" + idArrondissement;  
1437        reference_cadastrale += '<input ' +
1438                    'class="champFormulaire reference_cadastrale_custom_field" ' +
1439                    'type="text" ' +
1440                    'maxlength="3" ' +
1441                    'size="3" '+
1442                    'placeholder="Sect." ';
1443        
1444        // désactivation des champs de référence cadastrale
1445        if((type != 'NOUV'&&  type != 'NONE') || $(".form-is-valid").size() > 0 || url.indexOf('action=3') != -1 ) {
1446            reference_cadastrale += 'disabled="disabled" ';
1447        }
1448        
1449        reference_cadastrale += 'value="" '+
1450                    'onchange="if ( !isAlpha(this.value) && this.value != \'\' ){ alert(\'Vous ne devez saisir que des lettres dans ce champs.\'); this.value = \'\'; }; this.value=this.value.toUpperCase();"/>';
1451        reference_cadastrale += '<input ' +
1452                    'class="champFormulaire reference_cadastrale_custom_field" ' +
1453                    'type="text" ' +
1454                    'onchange="VerifNum(this);str_pad_js(this, 4);" ' +
1455                    'maxlength="4" ' +
1456                    'size="4" '+
1457                    'placeholder="Parc." ';
1458        
1459        // désactivation des champs de référence cadastrale
1460        if((type != 'NOUV'&&  type != 'NONE') || $(".form-is-valid").size() > 0 || url.indexOf('action=3') != -1 ) {
1461            reference_cadastrale += 'disabled="disabled" ';
1462        }
1463        
1464        reference_cadastrale += 'value="" />';
1465    
1466        reference_cadastrale += '<span id="moreFieldReferenceCadastrale' +
1467            $('.moreFieldReferenceCadastrale').length +
1468            '" class="moreFieldReferenceCadastrale">' + hiddenSeparatorField();
1469    
1470        // Si form validé pas de bouton
1471        url = document.location + "";
1472        if( (type == 'NOUV' ||  type == 'NONE') && $("form[name=f1] .form-is-valid").size() == 0 && url.indexOf('action=3') == -1 ) {
1473    
1474            reference_cadastrale +=
1475                '<span class="om-form-button add-16" title="Ajouter">ajouter d\'autres champs</span>';
1476        }
1477    
1478        reference_cadastrale += '</span>';
1479        
1480        return reference_cadastrale;
1481    }
1482    
1483    /**
1484     * Cache les champs inutules [formulaire de demande]
1485     **/
1486    function hideFields(){
1487        $('.demande_hidden_bloc').each(
1488            function(){
1489                $(this).hide();
1490            }
1491        );
1492        
1493        $('.field-type-text').hide();
1494        $('input[type=submit]').hide();
1495        $('#demande_type').parent().parent().hide();
1496    }
1497    
1498    /*
1499        Affiche les champs dont on a besoin dans le formulaire de demande
1500     * */
1501    function showFormsDemande(){
1502        
1503        
1504        if($('#demande_type').val() != "") {
1505    
1506            $('.demande_hidden_bloc').each(
1507                function(){
1508                    $(this).show();
1509                }
1510            );
1511            formatFieldReferenceCadastrale(1);
1512            $('.field-type-text').show();
1513            $('input[type=submit]').show();
1514            $('.terrain_references_cadastrales_custom').hide();
1515            
1516            $('#terrain_references_cadastrales').parent().parent().hide();
1517    
1518            //Vérification des contraintes de récupération des demandeurs si
1519            // pas de récupération, on efface la liste
1520            if(getDemandeInfo('contraintes') == 'sans_recup') {
1521                if($('input[name=petitionnaire_principal]').size() != -1) {
1522                    removeDemandeur("petitionnaire_principal_" + $('input[name=petitionnaire_principal]').val());
1523                }
1524                if($('input[name=delegataire]').size() != -1) {
1525                    removeDemandeur("delegataire_" + $('input[name=delegataire]').val());
1526                }
1527    
1528                $('#listePetitionnaires input.demandeur_id').each(function(){
1529                    if($(this).size() != -1) {
1530    
1531                        removeDemandeur("petitionnaire_" + $(this).val());
1532                    }
1533                });
1534            } else if ( getDemandeInfo('contraintes') == 'avec_recup' ) {
1535                            //Récupération des demandeurs si la contrainte le permet
1536                $.ajax({
1537                    type: "GET",
1538                    url: "../app/getDemandeurList.php?dossier_autorisation=" + $('#dossier_autorisation').val(),
1539                    cache: false,
1540                    async: false,
1541                    success: function(html){
1542                        $('#liste_demandeur').replaceWith(html);
1543                    }
1544                });
1545            }
1546            affichageBoutonsDemandeurs();
1547        } else {
1548            
1549            /*Récupère les references cadastrales*/
1550            getDataFieldReferenceCadastrale();
1551            
1552            $('.demande_hidden_bloc').each(
1553                function(){
1554                    $(this).hide();
1555                }
1556            );
1557            $('input[type=submit]').hide();
1558    
1559        }
1560    }
1561    
1562    /*
1563        Action au clique sur le bouton " + ajouter d'autres champs"
1564     * */
1565    function newInputReferenceCadastrale(){
1566        
1567        // Champs désactivé si le formulaire a été validé et est valide
1568        var type = getDemandeInfo('nature');
1569        var reference_cadastrale_disabled = '';
1570        if((type != 'NOUV'&&  type != 'NONE') || $(".form-is-valid").size() > 0 || url.indexOf('action=3') != -1 ) {
1571            reference_cadastrale_disabled = 'disabled="disabled" ';
1572        }
1573        
1574        return '<input ' +
1575                'class="champFormulaire reference_cadastrale_custom_field" ' +
1576                'type="text" ' +
1577                'maxlength="1" ' +
1578                'size="3" ' +
1579                'value="" ' +
1580                'placeholder="Sep." ' +
1581                reference_cadastrale_disabled +
1582                'onchange="testSeparator(this);"/>' +
1583            '<input ' +
1584                'class="champFormulaire reference_cadastrale_custom_field" ' +
1585                'type="text" ' +
1586                'onchange="VerifNum(this);str_pad_js(this, 4)" ' +
1587                'maxlength="4" ' +
1588                'size="4" ' +
1589                'placeholder="Parc." ' +
1590                reference_cadastrale_disabled +
1591                'value="" />';
1592    }
1593    
1594    
1595    // Cette fonction permet d'associer a un arbre html les fonctions jquery
1596    // necessaires. Elle permet notamment lors du chargement d'une page en ajax
1597    // d'associer le comportement du bouton, la gestion du calendrier et la gestion
1598    // du fieldset.
1599    function om_initialize_content() {
1600        // Gestion du skin des boutons, liens
1601        link_bind_button();
1602        // Gestion du calendrier avec le widget datepicker de jqueryui
1603        inputdate_bind_datepicker();
1604        // Gestion des fieldset avec le plugin collaspsible de jquery
1605        fieldset_bind_collapsible();
1606        // Gestion du picker color avec le plugin minicolors
1607        bind_form_field_rvb();
1608        // Gestion du widget aide à la saisie localisation avec le plugin draggable
1609        // de jqueryui
1610        localisation_bind_draggable();
1611        // Gestion de la redimension automatique des textarea
1612        textarea_autoresize();
1613        
1614    
1615        changeDemandeurType('qualite');
1616        addSearchIcon();
1617        addDivDialog('.bloc_demandeur');
1618        
1619    }
1620    
1621    // Retourne la valeur d'une variable GET de l'URL
1622    function getQuerystring(key, default_)
1623    {
1624      if (default_==null) default_="";
1625      key = key.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
1626      var regex = new RegExp("[\\?&]"+key+"=([^&#]*)");
1627      var qs = regex.exec(window.location.href);
1628      if(qs == null)
1629        return default_;
1630      else
1631        return qs[1];
1632    }
1633    
1634    // Récupère l'id de l'enregistrement lié au lot passé en parametre puis appel popupit
1635    function overlayCerfa(idLot) {
1636        $.get("../app/displayLotCerfa.php?lot="+idLot, function(data) {
1637            if(data != '') {
1638                    popupIt('donnees_techniques',
1639                            '../scr/sousform.php?obj=donnees_techniques&idx='+data+
1640                                '&retourformulaire=lot&maj=1&idxformulaire='+idLot,
1641                                950, 700);
1642                    
1643                } else {
1644                    // Si pas d'id retourner on créer un nouvel enregistrement de donnéees techniques
1645                    popupIt('donnees_techniques',
1646                            '../scr/sousform.php?obj=donnees_techniques&retourformulaire=lot&maj=0&idxformulaire='+idLot,
1647                                950, 700);
1648                }
1649    
1650            });
1651    }
1652    
1653    /**
1654     * Fonction permettant de faire la somme des champs passé en 2nd parametre et
1655     * le stocker dans le champ passé en 1er
1656     */
1657    function sommeChampsCerfa(cible, source) {
1658        val_cible = 0;
1659        
1660        $.each(source, function(index, value) {
1661            // Conversion des champs source en integer
1662            val_source = parseInt($('#'+value).val());
1663            // Cumul des valeurs des champs source
1664            val_cible = val_cible + (isNaN(val_source) ? 0 : val_source);
1665        });
1666        // Affectation de la nouvelle valeur
1667        $('#'+cible).val(val_cible);
1668    }
1669    
1670    function calculSurfaceTotal() {
1671        
1672        var nom_col = [ "su_avt_shon",
1673                        "su_cstr_shon",
1674                        "su_trsf_shon",
1675                        "su_chge_shon",
1676                        "su_demo_shon",
1677                        "su_tot_shon" ];
1678    
1679        // Calcul des totaux de colonnes
1680        $.each(nom_col, function(index, value) {
1681            var tot_col = 0;
1682            for ( var i = 1; i <= 9; i++ ) {
1683                // Conversion des champs source en integer
1684                val_source = parseInt($('#'+value+i).val());
1685                // Cumul des valeurs des champs source
1686                tot_col = tot_col + (isNaN(val_source) ? 0 : val_source);
1687            }
1688    
1689            // Affectation du résultat de ligne
1690            $('#'+value+'_tot').val(tot_col);
1691        });
1692    
1693        // Calcul des totaux des lignes
1694        for ( var j = 1; j <= 9; j++ ) {
1695            // Conversion des champs source en integer
1696            su_avt_shon = parseInt($('#su_avt_shon'+j).val());
1697            su_cstr_shon = parseInt($('#su_cstr_shon'+j).val());
1698            su_trsf_shon = parseInt($('#su_trsf_shon'+j).val());
1699            su_chge_shon = parseInt($('#su_chge_shon'+j).val());
1700            su_demo_shon = parseInt($('#su_demo_shon'+j).val());
1701            
1702            // Cumul des valeurs des champs source
1703            su_avt_shon = isNaN(su_avt_shon) ? 0 : su_avt_shon;
1704            su_cstr_shon = isNaN(su_cstr_shon) ? 0 : su_cstr_shon;
1705            su_trsf_shon = isNaN(su_trsf_shon) ? 0 : su_trsf_shon;
1706            su_chge_shon = isNaN(su_chge_shon) ? 0 : su_chge_shon;
1707            su_demo_shon = isNaN(su_demo_shon) ? 0 : su_demo_shon;
1708    
1709            // Affectation du résultat de ligne
1710            $('#su_tot_shon'+j).val((su_avt_shon+su_cstr_shon+su_trsf_shon)-(su_chge_shon+su_demo_shon));
1711    
1712        }
1713    
1714        // Calcul du total des totaux
1715        // Conversion des champs source en integer
1716        su_avt_shon = parseInt($('#su_avt_shon_tot').val());
1717        su_cstr_shon = parseInt($('#su_cstr_shon_tot').val());
1718        su_trsf_shon = parseInt($('#su_trsf_shon_tot').val());
1719        su_chge_shon = parseInt($('#su_chge_shon_tot').val());
1720        su_demo_shon = parseInt($('#su_demo_shon_tot').val());
1721        
1722        // Cumul des valeurs des champs source
1723        su_avt_shon = isNaN(su_avt_shon) ? 0 : su_avt_shon;
1724        su_cstr_shon = isNaN(su_cstr_shon) ? 0 : su_cstr_shon;
1725        su_trsf_shon = isNaN(su_trsf_shon) ? 0 : su_trsf_shon;
1726        su_chge_shon = isNaN(su_chge_shon) ? 0 : su_chge_shon;
1727        su_demo_shon = isNaN(su_demo_shon) ? 0 : su_demo_shon;
1728    
1729        // Affectation du résultat de ligne
1730        $('#su_tot_shon_tot').val((su_avt_shon+su_cstr_shon+su_trsf_shon)-(su_chge_shon+su_demo_shon));
1731    
1732    }
1733    
1734    /*
1735     * Marque comme lu une consultation ou commission
1736     */
1737    function portletUpdateData(id, objet, objetc, file, field, message){
1738        
1739        /*Vérifie que l'identifiant passé en paramètre est bien un chiffre
1740         * et que le type d'objet est défini
1741         * */
1742        if ( $.isNumeric(id) && objet != '' ){
1743            
1744            donnees = "?ido=" + id + '&obj=' + objet + '&objk=' + objetc + '&idxDossier=' + getQuerystring('idx');
1745            $.ajax({
1746                type: "GET",
1747                url: "../app/"+file+".php" + donnees ,
1748                cache: false,
1749                success: function(html){
1750                    
1751                    $('#sousform-' + objet + ' .message').remove();
1752                    /*Change la valeur affiché et affiche un message valide*/
1753                    if ( $.parseJSON(html) == "Mise a jour effectue avec succes" ||
1754                    $.parseJSON(html).indexOf("Transfert effectue avec succes") != -1 ){
1755                        
1756                        // On modife le champ field
1757                        if ( field != '' && message != '' ){
1758                            $('#'+field).html(message);
1759                            html = $.parseJSON(html);
1760                        }
1761                        else {
1762                            html = $.parseJSON(html).split(';');
1763                            
1764                            $('#'+field).html(html[0]);
1765                            
1766                            html = html[1];
1767                        }
1768                        
1769                        // On supprime l'action
1770                        $('span.'+field+'-16').parent().parent().remove();
1771                        // On affiche le message
1772                        $('#sousform-' + objet + ' .subtitle').after(
1773                            '<div ' +
1774                                'class="message ui-widget ui-corner-all ui-state-highlight ui-state-valid">' +
1775                                '<p>' +
1776                                    '<span class="ui-icon ui-icon-info"></span>' +
1777                                    '<span class="text">' +
1778                                        html +
1779                                    '</span>' +
1780                                '</p>' +
1781                            '</div>'                    
1782                        );
1783                    }
1784                    /*Affichage d'une erreur*/
1785                    else{
1786                        $('#sousform-' + objet + ' .subtitle').after(
1787                            '<div ' +
1788                                'class="message ui-widget ui-corner-all ui-state-highlight ui-state-error">' +
1789                                '<p>' +
1790                                    '<span class="ui-icon ui-icon-info"></span>' +
1791                                    '<span class="text">' +
1792                                        $.parseJSON(html) +
1793                                    '</span>' +
1794                                '</p>' +
1795                            '</div>'                    
1796                        );
1797                    }
1798                }
1799            });
1800        }
1801    }
1802    
1803    /*
1804     * Marque comme non frequent un petitionnaire
1805     */
1806    function portletUpdatePetitionnaire(id, objet, objetc, file, field, message){
1807        
1808        /*
1809         *Vérifie que l'identifiant passé en paramètre est bien un chiffre
1810         * et que le type d'objet est défini
1811         */
1812        if ( $.isNumeric(id) && objet != '' ){
1813            
1814            donnees = "?ido=" + id + '&obj=' + objet + '&objk=' + objetc + '&idxDossier=' + getQuerystring('idx');
1815            $.ajax({
1816                type: "GET",
1817                url: "../app/"+file+".php" + donnees ,
1818                cache: false,
1819                success: function(html){
1820                    
1821                    $('#formulaire .message').remove();
1822                    /*Change la valeur affiché et affiche un message valide*/
1823                    if ( $.parseJSON(html) == "Mise a jour effectue avec succes" ||
1824                    $.parseJSON(html).indexOf("Transfert effectue avec succes") != -1 ){
1825                        
1826                        // On modife le champ field
1827                        if ( field != '' && message != '' ){
1828                            $('#'+field).html(message);
1829                            html = $.parseJSON(html);
1830                        }
1831                        else {
1832                            html = $.parseJSON(html).split(';');
1833                            
1834                            $('#'+field).html(html[0]);
1835                            
1836                            html = html[1];
1837                        }
1838                        
1839                        // On supprime l'action
1840                        $('span.'+field+'-16').parent().parent().remove();
1841                        // On affiche le message
1842                        $('#formulaire #tabs-1').prepend(
1843                            '<div ' +
1844                                'class="message ui-widget ui-corner-all ui-state-highlight ui-state-valid">' +
1845                                '<p>' +
1846                                    '<span class="ui-icon ui-icon-info"></span>' +
1847                                    '<span class="text">' +
1848                                        html +
1849                                    '</span>' +
1850                                '</p>' +
1851                            '</div>'
1852                        );
1853                    }
1854                    /*Affichage d'une erreur*/
1855                    else{
1856                        $('#formulaire #tabs-1').prepend(
1857                            '<div ' +
1858                                'class="message ui-widget ui-corner-all ui-state-highlight ui-state-error">' +
1859                                '<p>' +
1860                                    '<span class="ui-icon ui-icon-info"></span>' +
1861                                    '<span class="text">' +
1862                                        $.parseJSON(html) +
1863                                    '</span>' +
1864                                '</p>' +
1865                            '</div>'
1866                        );
1867                    }
1868                }
1869            });
1870        }
1871    }
1872    
1873    
1874    // Affiche le sous formulaire onglet
1875    function redirectPortletAction(id, onglet, nom_tabs){
1876    
1877        var nom_tabs =  ( typeof nom_tabs === "undefined" ) ? ".ui-tabs" : nom_tabs;
1878        var $tabs = $(nom_tabs).tabs();
1879    
1880        lien_onglet = $('#' + onglet).attr('href');
1881        lien_onglet = lien_onglet.substring( lien_onglet.length - 1, lien_onglet.length);
1882    
1883        $tabs.tabs('select', lien_onglet);
1884    }
1885    
1886    //Rajoute un dossier pour la commission id
1887    function addDossierCommission(id, container){
1888        
1889        link = "../app/commission_ajouter_dossier.php?idx=" + id + "&idxDossier=" + $(container+" #dossier").val();
1890    
1891        $.ajax({
1892            type: "GET",
1893            url: link,
1894            cache: false,
1895            dataType: "json",
1896            success: function(i, obj){
1897                
1898                $(container + " .message").remove();
1899                $(container).prepend(
1900                    '<div class="message ui-widget ui-corner-all ui-state-highlight">'+
1901                        '<p>'+
1902                            '<span class="ui-icon ui-icon-info"></span>'+
1903                            '<span class="text">'+
1904                            '</span>'+
1905                        '</p>'+
1906                    '</div>'
1907                );
1908                    
1909                // Nouveau dossier ajouté
1910                if ( i.return == "1" ){
1911                    
1912                    $(container + ' .message').addClass("ui-state-ok");
1913                    $(container + ' .message .text').html("Dossier ajouté avec succès.");
1914                }
1915                //Dossier existe mais non ajouté
1916                else if( i.return == "0" ){
1917                    
1918                    $(container + ' .message').addClass("ui-state-error");
1919                    $(container + ' .message .text').html("Une erreur s'est produite lors de l'ajout de ce dossier. " +
1920                        "Veuillez contacter votre administrateur");
1921                }
1922                //Le dossier n'existe pas
1923                else if( i.return == "-1" ){
1924                    
1925                    $(container + ' .message').addClass("ui-state-error");
1926                    $(container + ' .message .text').html("Ce dossier n'existe pas.");
1927                }
1928                //Le dossier est déjà à l'ordre du jour
1929                else if( i.return == "2" ){
1930                    
1931                    $(container + ' .message').addClass("ui-state-error");
1932                    $(container + ' .message .text').html("Ce dossier est deja a l'ordre du jour.");
1933                }
1934                
1935            },
1936            async: false
1937        });
1938    }
1939    
1940    //Affichage du tableau des dossier_commission possibles
1941    function ajouterTableauDossierCommissionPossible(id){
1942        
1943        link = "../app/commission_tableau_dossier_possible.php?idx=" + id ;
1944    
1945      $.ajax({      $.ajax({
1946          type: "GET",          type: "GET",
1947          url: link,          url: link,
1948          cache: false,          cache: false,
1949          success: function(html){          success: function(html){
1950              if ( html !== '' ){              
1951                $('#tabs-2').html(html);
1952            },
1953            async: false
1954        });
1955    }
1956    
1957    //Met à jour la liste des dossiers de la commission
1958    function updateCommission(id, container){
1959        
1960        var link = "../app/commission_update_dossier.php?idx=" + id ;
1961        var valid = "";
1962        var error = "";
1963        var error_avis = "";
1964        
1965         //Affiche du message de retour
1966        $(container + " .message").remove();
1967        $(container).prepend(
1968            '<div class="message ui-widget ui-corner-all ui-state-highlight dossier-ok">'+
1969                '<p>'+
1970                    '<span class="ui-icon ui-icon-info"></span>'+
1971                    '<span class="text">'+
1972                    msg_loading +
1973                    '</span>'+
1974                '</p>'+
1975            '</div>'
1976        );
1977    
1978        $(container + " input[type='checkbox']").each(
1979            function(index) {
1980                
1981                var idxDossier = $(this).val();
1982                //Identifiant du dossier formaté de façon lisible
1983                var idzDossier = $(this).parent().next().text();
1984                
1985                link = "../app/commission_update_dossier.php?idx=" + id +
1986                    "&idxDossier=" + idxDossier;
1987                
1988                //Ajoute ces dossiers de l'ordre du jour
1989                if ( $(this).is(":checked")){
1990                                    
1991                  $('#quartier').empty();                  link += "&action=add";
1992                  $('#quartier').append(              }
1993                      '<option value="" selected="selected">*</option>'              //Supprime ces dossiers de l'ordre du jour
1994                else{
1995                    
1996                    link += "&action=remove";
1997                }
1998    
1999                //Mise à jour des données
2000                $.ajax({
2001                    type: "GET",
2002                    url: link,
2003                    cache: false,
2004                    dataType: "json",
2005                    success: function(i, obj){
2006                        
2007                        // Erreur
2008                        if( i.error == "0" ){
2009                            
2010                            error += idzDossier + ", ";
2011                        }
2012                        else if ( i.error == "-1" ) {
2013    
2014                            error_avis += idzDossier + ", ";
2015                        }
2016                        else{
2017                            valid += idzDossier + ", ";
2018                        }
2019                    },
2020                    async: false
2021                });
2022            }
2023        );
2024    
2025        //Ajout du div des erreurs
2026        if ( error != "" || error_avis != "" ){
2027            
2028            $(container + " .dossier-ok").after(
2029            '<div class="message ui-widget ui-corner-all ui-state-highlight dossier-err">'+
2030                '<p>'+
2031                    '<span class="ui-icon ui-icon-info"></span>'+
2032                    '<span class="text">'+
2033                    '</span>'+
2034                '</p>'+
2035            '</div>');
2036        }
2037    
2038        //le traitement a été effectué avec succès
2039        if ( valid != "" ){
2040            
2041            $(container + ' .dossier-ok').addClass("ui-state-ok");
2042            $(container + ' .dossier-ok .text').html("Mise à jour réalisée avec succès pour le(s) dossier(s) : "+
2043                valid.slice(0,valid.length-2) +
2044                ".");
2045        }
2046        else {
2047            
2048            $(container + " .dossier-ok").remove();
2049        }
2050        //Une erreur s'est produite
2051        if ( error != "" ) {
2052            
2053            $(container + ' .dossier-err').addClass("ui-state-error");
2054            $(container + ' .dossier-err .text').append(
2055                "Dossier : " + error.slice(0,error.length-2) + " déjà plannifié pour une autre commission.");
2056        }
2057        else if ( error_avis != "" ){
2058            
2059            $(container + ' .dossier-err').addClass("ui-state-error");
2060            $(container + ' .dossier-err .text').append(
2061                "Un  avis a déjà été rendu pour le(s) dossier(s): " +
2062                error_avis.slice(0,error_avis.length-2) +
2063                ".");
2064        }
2065    }
2066    
2067    
2068    //Récupère les données du type de commission et les mets dans les champs
2069    function chargeDonneesCommissionType(id_commission_type){
2070    
2071        //Requête ajax de récupération des données
2072        $.ajax({
2073            type: "GET",
2074            url: "../app/getCommissionTypeInfo.php?idx=" + id_commission_type,
2075            dataType: "json",
2076            async: false,
2077            success: function(data){
2078    
2079                // Ajout des données dans les champs
2080                $('#libelle').val(data.libelle);
2081                $('#lieu_adresse_ligne1').val(data.lieu_adresse_ligne1);
2082                $('#lieu_adresse_ligne2').val(data.lieu_adresse_ligne2);
2083                $('#lieu_salle').val(data.lieu_salle);
2084                $('#listes_de_diffusion').val(data.listes_de_diffusion);
2085                $('#participants').val(data.participants);
2086            }
2087        });
2088    }
2089    
2090    // Action de diffusion de mails des commissions
2091    function commission_diffusion(idx, obj, champ){
2092        
2093        $('#tabs-1 .message').remove();
2094        
2095        // Si les données sont fournies
2096        if ( $.isNumeric(idx) && obj != "" ){
2097            
2098            //Requête ajax d'envoi des données
2099            $.ajax({
2100                type: "GET",
2101                url: "../app/commission_diffusion.php?idx=" + idx + "&obj=" + obj,
2102                dataType: "json",
2103                async: false,
2104                success: function(data){
2105    
2106                    $('#tabs-1').prepend(
2107                        '<div ' +
2108                            'class="message ui-widget ui-corner-all ui-state-highlight">' +
2109                            '<p>' +
2110                                '<span class="ui-icon ui-icon-info"></span>' +
2111                                '<span class="text">' +
2112                                '</span>' +
2113                            '</p>' +
2114                        '</div>'                    
2115                  );                  );
2116                                    
2117                  html = html.split(';');                  var type = ( obj == "commission_compte_rendu" ) ? "du compte-rendu" : "de l'ordre du jour";
2118                  for ( i = 0 ; i < html.length - 1 ; i++ ){                  //L'envoi des mails a été effectué avec succès
2119                    if ( data.return == 1 ){
2120                                            
2121                      html_temp = html[i].split('_');                      //Finalisation du document
2122                      $('#quartier').append(                      $.ajax({
2123                          '<option value="'+html_temp[0]+'" >'+html_temp[1]+'</option>'                          type: "GET",
2124                            url: "../app/finalisation_document.php?idx=" + idx +
2125                                "&obj=commission&champ="+champ,
2126                            dataType: "json",
2127                            async: false,
2128                            success: function(data){
2129    
2130                                //Si la finalisation a été effectuée avec succès
2131                                if ( data != -1 ){
2132                                                      
2133                                    //On affiche le lien du document finalisé
2134                                    $('.'+champ).parent().attr("href", data+"");
2135                                    
2136                                    //On affiche un message de valisation
2137                                    $('.'+obj+' .message .text').html(
2138                                        "La finalisation du document s'est effectuée avec succès.<br/>"
2139                                    );
2140                                }
2141                                // Si une erreur s'est produite
2142                                else {
2143                                    
2144                                    //On affiche un message de validation
2145                                    $('.'+obj+' .message .text').html(
2146                                        "Une erreur s'est produite lors de la finalisation du document."
2147                                    );
2148                                }
2149                            }
2150                        });
2151                        
2152                        $('#tabs-1 .message').addClass("ui-state-valid");
2153                        $('#tabs-1 .message .text').prepend(
2154                            "La diffusion " + type + " s'est effectuée avec succès."
2155                      );                      );
2156                  }                  }
2157                    //Un erreur s'est produite
2158                    else if ( data.return == -1 ){
2159                        
2160                        $('#tabs-1 .message').addClass("ui-state-error");
2161                        $('#tabs-1 .message .text').html(
2162                            "Une erreur s'est produite lors de la diffusion " +
2163                            type +
2164                            ". Veuillez contacter votre administrateur."
2165                        );
2166                    }
2167                }
2168            });
2169        }
2170    }
2171    
2172    /**
2173     * Popup de confirmation pour les traitements
2174     */
2175    //
2176    function trt_confirm() {
2177        //
2178        if (confirm("Etes-vous sur de vouloir confirmer cette action ?")) {
2179            //
2180            return true;
2181        } else {
2182            //
2183            return false;
2184        }
2185    }
2186    
2187    /**
2188     * Finalisation des documents.
2189     *
2190     */
2191    function finalizeDocument(idx, obj, sousform, status, retour){
2192    
2193        //Requête ajax de finalisation des documents
2194        $.ajax({
2195            type: "GET",
2196            url: "../app/finalisation_document.php?idx=" + idx + "&obj=" + obj +
2197                "&status="+status+"&sousform="+sousform+"&retourformulaire="+retour,
2198            dataType: "json",
2199            async: false,
2200            success: function(data){
2201                
2202                $('#'+sousform+obj+' .message.ui-widget.ui-corner-all.ui-state-highlight').remove()
2203                $('#'+sousform+obj+' a.retour').first().before(
2204                    '<div ' +
2205                        'class="message ui-widget ui-corner-all ui-state-highlight">' +
2206                        '<p>' +
2207                            '<span class="ui-icon ui-icon-info"></span>' +
2208                            '<span class="text">' +
2209                            '</span>' +
2210                        '</p>' +
2211                    '</div>'                    
2212                );
2213                
2214                //Si la finalisation a été effectuée avec succès
2215                if ( typeof data.pdf !== "undefined" && data.pdf != -1 ){
2216                    
2217                    // On change le lien
2218                    var etat = ((status == 1)?'':'de') + 'finalis';
2219                    
2220                    $('.'+etat+'e').parent().parent().html(
2221                        data.portlet+""
2222                    );
2223                    
2224                    //On affiche le lien de l'action inverse
2225                    $('.edition').parent().attr("href", data.pdf+"");
2226                    
2227                    //Si on le document est finalisé, on cache les actions du portlet
2228                    if ( status == 1 ){
2229                        
2230                        $("#"+sousform+obj+" .edit-16").parent().parent().remove();
2231                        $("#"+sousform+obj+" .delete-16").parent().parent().remove();
2232                    }
2233                    else{
2234                        
2235                        var actions = '';
2236                        //Si le lien modifier est autorisé pour cet utilisateur
2237                        if ( typeof(data.actions.modifier)!='undefined' ){
2238                            
2239                            actions += data.actions.modifier;
2240                        }
2241                        
2242                        //Si le lien supprimer est autorisé pour cet utilisateur
2243                        if ( typeof(data.actions.supprimer)!='undefined' ){
2244                            
2245                            actions += data.actions.supprimer;
2246                        }
2247                        
2248                        $('#'+sousform+obj+' .portlet-list').prepend(actions);
2249                    }
2250                    
2251                    //On affiche un message de valisation
2252                    $('#'+sousform+obj+' .message').addClass("ui-state-valid");
2253                    $('#'+sousform+obj+' .message .text').html(data.message);
2254                }
2255                // Si une erreur s'est produite
2256                else {
2257                    
2258                    //On affiche un message de validation
2259                    $('#'+sousform+obj+' .message').addClass("ui-state-error");
2260                    $('#'+sousform+obj+' .message .text').html(data.message);
2261                }
2262            },
2263            error: function(jqXHR, textStatus, errorThrown) {
2264                
2265                //Si un parsererror est retourné, du code HTML s'est affiché dans
2266                //l'application, on affiche ce code
2267                if ( textStatus === "parsererror" ){
2268                    $('#'+sousform+obj+' .message.ui-widget.ui-corner-all.ui-state-highlight').remove()
2269                    $('#'+sousform+obj+' a.retour').first().before(jqXHR.responseText);
2270                }
2271            }
2272        });
2273    }
2274    
2275    /**
2276     * Cette fonction permet d'afficher les options d'un select par rapport
2277     * à un autre champ
2278     *
2279     * @param  int id               Données (identifiant) du champ visé
2280     * @param  string tableName     Nom de la table
2281     * @param  string linkedField   Champ visé
2282     * @param  string formCible     Formulaire visé
2283     */
2284    function filterSelect(id, tableName, linkedField, formCible) {
2285    
2286        //lien vers script php
2287        link = "../app/filterSelect.php?idx=" + id + "&tableName=" + tableName +
2288                "&linkedField=" + linkedField + "&formCible=" + formCible;
2289    
2290        $.ajax({
2291            type: "GET",
2292            url: link,
2293            cache: false,
2294            dataType: "json",
2295            success: function(res){
2296                $('#'+tableName).empty();
2297    
2298                for ( j=0 ; j < res[0].length ; j++ ){
2299    
2300                    $('#'+tableName).append(
2301                        '<option value="'+res[0][j]+'" >'+res[1][j]+'</option>'
2302                    );
2303                    
2304              }              }
2305    
2306          },          },
2307          async: false          async: false
2308      });      });
2309  }  }
2310  function vuploadMulti(champ) {  
2311    /**
2312     * Redirige vers une page après un temps d'attente
2313     * @param  string   page            lien de la page vers la redirection
2314     * @param  int      milliseconde    temps d'attente avant la redirection
2315     */
2316    function redirection(page, milliseconde) {
2317    
2318      //      //
2319      if (fenetreouverte == true) {      setTimeout(window.location = page, milliseconde);
2320          pfenetre.close();  }
2321    
2322    /**
2323     * Retourne ce qu'il y a à afficher dans le formulaire de retour (bouton ajouter ou supprimer et éditer)
2324     */
2325    function getObjId(obj){
2326    
2327        //Récupération de l'id de l'objet
2328        var id=$('#id_retour').val();
2329    
2330        //Retour des données
2331        if ( $('#id_retour').length > 0 ){
2332            setDataFrequent(id, obj);
2333            om_initialize_content();
2334      }      }
     //  
     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");  
     //pfenetre = window.open("../spg/upload2.php?origine="+champ,"upload2","width=300,height=100,top=120,left=120");  
     //  
     fenetreouverte = true;  
2335  }  }
2336  function tmpUpload(champ) {  
2337      //  function setDataFrequent(id,obj) {
2338      if (fenetreouverte == true) {      $.ajax({
2339          pfenetre.close();          type: "GET",
2340            url: '../app/afficher_synthese_obj.view.php?idx='+id+'&obj=' + obj,
2341            cache: false,
2342            success: function(html){
2343                $('.add_'+obj).each(
2344                    function(){
2345                        $(this).remove();
2346                    }
2347                );
2348                $(html).insertBefore('#'+obj).fadeIn(500);
2349                $('#'+obj).val(id);
2350            },
2351            async:false
2352        });
2353    }
2354    
2355    /**
2356     * Redirige vers le script PHP pour mettre à jour les informations
2357     * et met à jour l'interface pour l'utilisateur
2358     * @param  string   id          Identifiant du dossier
2359     * @param  string   fieldname   Nom du champ
2360     * @param  Function callback    Fonction mettant à jour l'interface des données
2361     * @param  string   confirm_message     Texte du message de confirmation
2362     */
2363    function geolocalisation_treatment(id, fieldname, callback, confirm_message) {
2364    
2365        // Overlay de confirmation du traitement
2366        if (confirm_message != null && confirm_message != '') {
2367            var dialog_confirm = confirm(confirm_message);
2368            if( dialog_confirm == false ){
2369              return false;
2370            }
2371      }      }
     //  
     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");  
     //pfenetre = window.open("../spg/upload2.php?origine="+champ,"upload2","width=300,height=100,top=120,left=120");  
     //  
     fenetreouverte = true;  
 }  
2372    
2373        // Affichage du spinner
2374        $('#'+fieldname).each(
2375            function(){
2376                $(this).children().removeClass();
2377                $(this).children().addClass('message ui-widget ui-corner-all ui-state-highlight ui-state-empty');
2378                $(this).children().children().children(".text").html(msg_loading);
2379            }
2380        );
2381        
2382        // lien vers script PHP faisant l'appel au webservice
2383        link = '../app/geolocalisation_treatment.php?fieldname='+fieldname+'&id='+id+'&callback='+callback;
2384    
2385        // Traitement
2386        $.ajax({
2387            type: "GET",
2388            url: link,
2389            cache: false,
2390            dataType: "json",
2391            success: function(res){
2392                //
2393                $('#'+fieldname).each(
2394                    function(){
2395                        $(this).children().children().children(".text").text(res['log']['message']);
2396                        $(this).children().removeClass();
2397                        if (res['log']['etat'] == 't') {
2398                            $(this).children().addClass('message ui-widget ui-corner-all ui-state-highlight ui-state-valid');
2399                        } else {
2400                            $(this).children().addClass('message ui-widget ui-corner-all ui-state-highlight ui-state-error');
2401                        }
2402                    }
2403                );
2404    
2405                //
2406                if (typeof(callback) === "function" && res['log']['etat'] == 't') {
2407                    callback(res);
2408                }
2409            },
2410            async:false
2411        });
2412    }
2413    
2414    /**
2415     * Efface le message en haut du formulaire
2416     * @param array res Résultat après le traitement du script PHP
2417     */
2418    function set_geolocalisation_message(res) {
2419        // Si il y a un message d'erreur
2420        if ($('#geolocalisation-message')[0]) {
2421            // Supprime le message
2422            $('#geolocalisation-message').remove();
2423            // Modifie les messages des autres fonctionnalités
2424            $('#calcul_emprise').each(
2425                function() {
2426                    $(this).children().removeClass();
2427                    $(this).children().addClass('message ui-widget ui-corner-all ui-state-highlight ui-state-error');
2428                    $(this).children().children().children(".text").text(res['log']['message_diff_parcelle']);
2429                }
2430            );
2431            $('#calcul_centroide').each(
2432                function() {
2433                    $(this).children().removeClass();
2434                    $(this).children().addClass('message ui-widget ui-corner-all ui-state-highlight ui-state-error');
2435                    $(this).children().children().children(".text").text(res['log']['message_diff_parcelle']);
2436                }
2437            );
2438            $('#recup_contrainte').each(
2439                function() {
2440                    $(this).children().removeClass();
2441                    $(this).children().addClass('message ui-widget ui-corner-all ui-state-highlight ui-state-error');
2442                    $(this).children().children().children(".text").text(res['log']['message_diff_parcelle']);
2443                }
2444            );
2445        }
2446        
2447    }
2448    
2449    /**
2450     * Met le champ centroïde à jour
2451     * @param  array   res  Résultat après le traitement du script PHP
2452     */
2453    function set_geolocalisation_centroide(res) {
2454        
2455        var content = "<a id='action-form-localiser'"+
2456                " target='_SIG' href='../app/redirect_plan_sig.php?idx="+res['return']['dossierID']+"'>"+
2457                "<span class='om-icon om-icon-16 om-icon-fix sig-16' title='Localiser'>Localiser</span> "+
2458                " POINT("+res['return']['coordX']+" "+res['return']['coordY']+")"+
2459                " </a>";
2460        
2461        $('span#centroide').html(content);
2462        $('span#geom').html(content);
2463    }
2464    
2465    /**
2466     * Met le champ servitude à jour
2467     * @param  array   res  Résultat après le traitement du script PHP
2468     */
2469    function set_geolocalisation_contrainte(res) {
2470        $('span#servitude').html(res['return']['servitude']);
2471    }
2472    
2473    /**
2474     * Redirige vers ElyxWeb
2475     * @param array res Résultat après le traitement du script PHP
2476     */
2477    function redirection_elyxweb(res) {
2478        window.open(res['return']);
2479    }
2480    
2481    /**
2482     * Traitement du bouton permettant de calculer toutes les données géographiques
2483     * @param  string   id                  Identifiant du dossier
2484     * @param  string   confirm_message     Texte du message de confirmation
2485     */
2486    function all_geolocalisation_treatments(id, confirm_message) {
2487    
2488        // Overlay de confirmation du traitement
2489        if (confirm_message != null && confirm_message != '') {
2490            var dialog_confirm = confirm(confirm_message);
2491            if( dialog_confirm == false ){
2492              return false;
2493            }
2494        }
2495    
2496        // Initialisation des variables utilisées en paramètres
2497        var fieldname = '';
2498        var callback = '';
2499        var confirm_message = '';
2500        var flag = '';
2501    
2502        // Modification des variables utilisées en paramètres pour "Vérifier les
2503        // parcelles"
2504        fieldname = 'verif_parcelle';
2505        callback = set_geolocalisation_message;
2506        // Traitement "Vérifier les parcelles"
2507        geolocalisation_treatment(id, fieldname, callback, confirm_message);
2508    
2509        // Positionne le flag sur le message de "Vérifier les parcelles"
2510        flag = $('#'+fieldname+"-message").attr("class");
2511        // Si c'est un message d'erreur on arrete le traitement
2512        if (flag == 'message ui-widget ui-corner-all ui-state-highlight ui-state-error') {
2513            return false;
2514        }
2515    
2516        // Modification des variables utilisées en paramètres pour "Calculer
2517        // l'emprise"
2518        fieldname = 'calcul_emprise';
2519        callback = '';
2520        // Traitement "Calculer l'emprise"
2521        geolocalisation_treatment(id, fieldname, callback, confirm_message);
2522    
2523        // Positionne le flag sur le message de "Calculer l'emprise"
2524        flag = $('#'+fieldname+"-message").attr("class");
2525        // Si c'est un message d'erreur on arrete le traitement
2526        if (flag == 'message ui-widget ui-corner-all ui-state-highlight ui-state-error') {
2527            return false;
2528        }
2529    
2530        // Modification des variables utilisées en paramètres pour "Calculer le
2531        // centroïde"
2532        fieldname = 'calcul_centroide';
2533        callback = set_geolocalisation_centroide;
2534        // Traitement "Calculer le centroïde"
2535        geolocalisation_treatment(id, fieldname, callback, confirm_message);
2536    
2537        // Positionne le flag sur le message de "Calculer le centroïde"
2538        flag = $('#'+fieldname+"-message").attr("class");
2539        // Si c'est un message d'erreur on arrete le traitement
2540        if (flag == 'message ui-widget ui-corner-all ui-state-highlight ui-state-error') {
2541            return false;
2542        }
2543    
2544        // Modification des variables utilisées en paramètres pour "Récupérer les
2545        // contraintes"
2546        fieldname = 'recup_contrainte';
2547        callback = set_geolocalisation_contrainte;
2548        //Traitement "Récupérer les contraintes"
2549        geolocalisation_treatment(id, fieldname, callback, confirm_message);
2550        
2551    }
2552    
2553    /**
2554     * Remplit le formulaire avec l'adresse trouvée ou affiche un message d'erreur
2555     */
2556    function getAdressFromCadastrale(){
2557        
2558        //Récupération des références cadastrales
2559        var referenceCadastrale = '{"refcad":[{';
2560        var i = 0 ;
2561        var j = 1 ;
2562        var delimit = 0;
2563        var parcelleDelimit = 0;
2564        var noReferenceCadastrale = false;
2565        $(".reference_cadastrale_custom_field").each(
2566            function(){
2567                
2568                //On vérifie que le champ n'est pas vide
2569                if ($(this).val()!=""&&$(this).val() != ";"){
2570                    noReferenceCadastrale = true;
2571                }
2572                
2573                //On va à la ligne suivante
2574                if ( $(this).val() == ";" ){
2575                    referenceCadastrale +=(delimit!=0)?'}]':'';
2576                    referenceCadastrale += "}" ;
2577                    i++;
2578                    j = 1;
2579                    delimit = 0;
2580                    parcelleDelimit = 0;
2581                }
2582                //On parcourt la ligne
2583                else {
2584                    switch(true){
2585                        //Quartier
2586                        case (j==1):
2587                            referenceCadastrale += (i!=0)?',':'';
2588                            referenceCadastrale += '"' + i + '"' + ':{"quartier":"'+$(this).val()+'"';
2589                            break;
2590                        //Section
2591                        case (j==2):
2592                            referenceCadastrale += ', "section":"'+$(this).val()+'"';
2593                            break;
2594                        //Parcelle
2595                        case (j==3):
2596                            referenceCadastrale += ', "parcelle":"'+$(this).val()+'"';
2597                            break;
2598                        //Le délimiteur
2599                        case (j%2==0&&j!=2):
2600                            if ( delimit==0 ){
2601                                referenceCadastrale += ', "delimit":[{"'+(delimit++)+'":"'+$(this).val()+'"';
2602                            }
2603                            else {
2604                                referenceCadastrale += ', "'+(delimit++)+'":"'+$(this).val()+'"';
2605                            }
2606                            break;
2607                        //La parcelle après le délimiteur
2608                        case (j%2==1&&j!=1&&j!=3):
2609                            referenceCadastrale += ',"'+(delimit++)+'":"'+$(this).val()+'"';
2610                            break;
2611                    }
2612                    j++;
2613                }
2614            }
2615        );
2616        if ( noReferenceCadastrale == true ){
2617            referenceCadastrale += "}]}";
2618        }
2619        else {
2620            referenceCadastrale = "";
2621        }
2622    
2623        //Lance la tentative de récupération de l'adresse
2624        $.ajax({
2625            type: "POST",
2626            url: '../app/getAdressFromCadastrale.php',
2627            data: $.parseJSON(referenceCadastrale),
2628            cache: false,
2629            dataType: "json",
2630            success: function(data){
2631    
2632                //Si le retour est un objet JSON, on a un résultat
2633                if ( $.isPlainObject(data)){
2634                    
2635                    //On met l'adresse dans les champs
2636                    $("#terrain_adresse_voie_numero").val(data.return.dnuvoi);
2637                    $("#terrain_adresse_voie").val(data.return.prefixe+" "+data.return.nom);
2638                    $("#terrain_adresse_code_postal").val(data.return.arrdt);
2639                    $("#terrain_adresse_localite").val(data.return.localite);
2640                }
2641                //Sinon, on affiche un message d'erreur
2642                else {
2643                    alert(data);
2644                }
2645            },
2646            async: false
2647        });
2648    }
2649    
2650    /**
2651     * Modifie les champs requis pour le formulaire demande_type
2652     * @param  integer  demande_nature                         Identifiant
2653     * @param  string   lib_dossier_autorisation_type_detaille Libellé du champ
2654     * dossier_autorisation_type_detaille
2655     * @param  string   lib_dossier_instruction_type           Libellé du champ
2656     * dossier_instruction_type
2657     */
2658    function required_fields_demande_type(demande_nature, lib_dossier_autorisation_type_detaille, lib_dossier_instruction_type) {
2659    
2660        // Lien
2661        link = "../app/getDemandeNatureInfo.php?demande_nature=" + demande_nature;
2662    
2663        // Traitement
2664        $.ajax({
2665            type: "GET",
2666            url: link,
2667            cache: false,
2668            dataType: "json",
2669            success: function(demande_nature_info) {
2670    
2671                // On enlève le "*" au libellé du champ
2672                // dossier_autorisation_type_detaille pour montrer qu'il n'est
2673                // pas obligatoire
2674                $("#lib-dossier_autorisation_type_detaille").text('');
2675                $("#lib-dossier_autorisation_type_detaille")
2676                    .html(lib_dossier_autorisation_type_detaille);
2677    
2678                // On enlève le "*" au libellé du champ
2679                // dossier_instruction_type pour montrer qu'il n'est
2680                // pas obligatoire
2681                $("#lib-dossier_instruction_type").text('');
2682                $("#lib-dossier_instruction_type")
2683                    .html(lib_dossier_instruction_type);
2684                
2685                // Si c'est une nouvelle demande
2686                if (demande_nature_info != ''
2687                    && demande_nature_info != null) {
2688    
2689                    if (demande_nature_info['code'] == 'NOUV') {
2690    
2691                        // On ajoute le "*" au libellé du champ
2692                        // dossier_autorisation_type_detaille pour montrer qu'il est
2693                        // obligatoire
2694                        $("#lib-dossier_autorisation_type_detaille").text('');
2695                        $("#lib-dossier_autorisation_type_detaille")
2696                            .html(lib_dossier_autorisation_type_detaille + ' <span class="not-null-tag">*</span>');
2697    
2698                        // On ajoute le "*" au libellé du champ
2699                        // dossier_instruction_type pour montrer qu'il est
2700                        // obligatoire
2701                        $("#lib-dossier_instruction_type").text('');
2702                        $("#lib-dossier_instruction_type")
2703                            .html(lib_dossier_instruction_type + ' <span class="not-null-tag">*</span>');
2704    
2705                    }
2706    
2707                }
2708                
2709            },
2710            async:false
2711        });
2712    }
2713    
2714    /**
2715     * Appel au chargement de la page
2716     **/
2717    $(function() {
2718    
2719        // url de la page
2720        url = document.location + "";
2721    
2722        // Si dans le formulaire des type de demande
2723        // et que c'est en mode ajout ou modifier
2724        if (url.indexOf("form.php?obj=demande_type&") != -1
2725            && (url.indexOf("&action=0") != -1
2726            || url.indexOf("&action=1") != -1
2727            || url.indexOf("&validation=") != -1)) {
2728    
2729            // Récupère les paramètres nécessaires
2730            var demande_nature = $("#demande_nature").val();
2731            var lib_dossier_autorisation_type_detaille = $("#lib-dossier_autorisation_type_detaille").text();
2732            var lib_dossier_instruction_type = $("#lib-dossier_instruction_type").text();
2733    
2734            // Appelle la fonction pour indiquer si les champs sont requis ou non
2735            required_fields_demande_type(demande_nature, lib_dossier_autorisation_type_detaille, lib_dossier_instruction_type);
2736        }
2737    
2738    });

Legend:
Removed from v.636  
changed lines
  Added in v.2367

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26