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

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26