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

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26