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

Legend:
Removed from v.528  
changed lines
  Added in v.1470

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26