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

Legend:
Removed from v.833  
changed lines
  Added in v.2716

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26