/[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 153 by fraynaud, Thu Sep 29 16:48:28 2011 UTC revision 840 by vpihour, Tue Nov 27 13:40:37 2012 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/avis_code_barre.php pour donner le focus sur le champ de
8        * recherche au chargement de la page.
9        */
10       $('#avis_code_barre_form #consultation').focus();
11     });
12    
13    
14    /**
15     * WIDGET liés au formulaire et sousformulaire
16     *
17     * Ces fonctions javascript sont appelées depuis les méthodes setOnChange,
18     * setOnClick, ...
19     */
20    // bible - type httpclick
21    function bible() {
22      if(fenetreouverte==true)      if(fenetreouverte==true)
23             pfenetre.close();             pfenetre.close();
24      var ev=document.f2.evenement.value;      var ev=document.f2.evenement.value;
25      var idx=document.f2.dossier.value;      var idx=document.f2.dossier.value;
26      pfenetre=window.open("../app/bible.php?ev="+ev+"&idx="+idx,"bible","width=600,height=100,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");
27      fenetreouverte=true;      fenetreouverte=true;
28  }  }
29    // bible2 - type httpclick
30  function bible2()  function bible2()
31  {  {
32      if(fenetreouverte==true)      if(fenetreouverte==true)
33             pfenetre.close();             pfenetre.close();
34      var ev=document.f2.evenement.value;      var ev=document.f2.evenement.value;
35      var idx=document.f2.dossier.value;      var idx=document.f2.dossier.value;
36      pfenetre=window.open("../app/bible2.php?ev="+ev,"bible","width=600,height=100,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");
37      fenetreouverte=true;      fenetreouverte=true;
38  }  }
39    // bible_auto - type httpclick
40  function bible_auto(){  function bible_auto(){
41      if(fenetreouverte==true)      if(fenetreouverte==true)
42             pfenetre.close();             pfenetre.close();
# Line 27  function bible_auto(){ Line 45  function bible_auto(){
45      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");
46      fenetreouverte=true;      fenetreouverte=true;
47  }  }
48    // VerifNumdec - type text
49    function VerifNumdec(champ) {
50        champ.value = champ.value.replace(",", "."); // remplacement de la virgule
51        //if (champ.value.lastIndexOf(".") == -1){ // champ decimal
52            if (isNaN(champ.value)) {
53                alert(msg_alert_error_verifnum);
54                champ.value = "";
55                return;
56            }
57        //}
58        
59    }
60    // Ce widget permet de charger les données d'un select en ajax
61    function changeDataSelect(tn, ds, joker){
62            
63        var id = $("#"+ds+" option:selected").val();
64        link = "../app/listData.php?idx=" + id + "&tn=" + tn + "&ds=" + ds;
65        $.ajax({
66            type: "GET",
67            url: link,
68            cache: false,
69            dataType: "json",
70            success: function(html){
71                
72                $('#'+tn).empty();
73                
74                if ( joker == true )
75                    $('#'+tn).append(
76                        '<option value="" selected="selected">*</option>'
77                    );
78                else
79                    $('#'+tn).append(
80                        '<option value="" selected="selected">Choisir ' + tn + '</option>'
81                    );
82                
83                if ( html !== '' ){
84                    
85                    html = html.split(';');
86                    for ( i = 0 ; i < html.length - 1 ; i++ ){
87                        
88                        html_temp = html[i].split('_');
89                        $('#'+tn).append(
90                            '<option value="'+html_temp[0]+'" >'+html_temp[1]+'</option>'
91                        );
92                    }
93                }
94            },
95            async: false
96        });
97    }
98    // vuploadMulti - XXX
99    function vuploadMulti(champ) {
100        //
101        if (fenetreouverte == true) {
102            pfenetre.close();
103        }
104        //
105        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");
106        //pfenetre = window.open("../spg/upload2.php?origine="+champ,"upload2","width=300,height=100,top=120,left=120");
107        //
108        fenetreouverte = true;
109    }
110    // tmpUpload - Upload  XXX
111    function tmpUpload(champ) {
112        //
113        if (fenetreouverte == true) {
114            pfenetre.close();
115        }
116        //
117        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");
118        //pfenetre = window.open("../spg/upload2.php?origine="+champ,"upload2","width=300,height=100,top=120,left=120");
119        //
120        fenetreouverte = true;
121    }
122    
123    
124    
125    /**
126     * POPUP pour le téléchargement de fichier
127     *
128     * Ces fonctions javascript sont appelées depuis des onClick sur des
129     * formulaires spécifiques pour permettre de transmettre des paramètres aux
130     * éditions pdf ainsi appelées.
131     */
132    //
133  function dossierads_d(debut)  function dossierads_d(debut)
134  {  {
135  //if(fenetreouverte==true)  //if(fenetreouverte==true)
# Line 35  window.location="../pdf/pdfetat.php?obj= Line 137  window.location="../pdf/pdfetat.php?obj=
137  +document.f1.nature.value+"&idx=demo&datedebut="  +document.f1.nature.value+"&idx=demo&datedebut="
138  +document.f1.datedebut.value+"&datefin="+document.f1.datefin.value;  +document.f1.datedebut.value+"&datefin="+document.f1.datefin.value;
139  }  }
140    //
141    function dossier_m(){
142    window.location="../pdf/pdfetat.php?obj=dossier_m&idx=demo";  
143    /*Requete AJAX vers le fichier edition_m.php pour mettre à jour les dossiers*/
144    $.ajax({
145        type: "GET",
146        url: "../app/edition_m.php?update",
147        cache: false,
148        success: function(html){
149            if ( html.length > 2 ){
150                
151                alert(html);
152            }
153        },
154        async: false
155    });
156    }
157    //
158  function dossierdepot()  function dossierdepot()
159  {  {
160  //if(fenetreouverte==true)  //if(fenetreouverte==true)
# Line 43  function dossierdepot() Line 162  function dossierdepot()
162      document.f1.nature.value+"&idx=demo&datedebut="+      document.f1.nature.value+"&idx=demo&datedebut="+
163      document.f1.datedebut.value+"&datefin="+document.f1.datefin.value;      document.f1.datedebut.value+"&datefin="+document.f1.datefin.value;
164  }  }
165    //
166  function dossierads()  function dossierads()
167  {  {
168  //if(fenetreouverte==true)  //if(fenetreouverte==true)
# Line 52  function dossierads() Line 171  function dossierads()
171      document.f1.datedebut.value+"&datefin="+document.f1.datefin.value;      document.f1.datedebut.value+"&datefin="+document.f1.datefin.value;
172  }  }
173    
174  function onSaisieSelect(evt){  // téléchargement du fichier
175      //ne pas faire la transformation sur la couche mais sur un clone  function file(fichier) {
176      // specifique openfoncier      //
177      geom = evt.feature.geometry.clone()      if (fichier == "") {
178      geom.transform(mercator, projection_externe);          alert("zone vide");
179      if(fenetreouverte==true)      }
180          pfenetre.close();      //
181      //compatibilite IE -> mettre des ' au lieu de "      pfenetre = window.open("../app/file.php?file="+fichier,"Visualisation","width=100,height=100,top=1,left=150,scrollbars=yes,resizable = yes");
182      pfenetre=window.open("../app/form_sig.php?obj="+obj+"&idx="+idx+"&geom="+geom+"&table="+table+"&champ="+champ, 'saisie_geometrie', 'width=400,height=300,top=120,left=120' );      //
183      fenetreouverte=true;      fenetreouverte = true;
184  }  }
185    
186    /**
187     * Retour spécifique de l'écran de consultation multiple - surcharge de ajaxIt
188     * @todo XXX voir les différences avec ajaxIt et si il n'est pas possible
189     * d'effectuer  la modification dans le core
190     */
191    function messageIt(objsf, link, empty) {
192        // recuperation du terme recherche
193        var recherche = document.getElementById("recherchedyn");
194        if (recherche != null) {
195            link += "&recherche="+recherche.value;
196        }else {
197            link += "&recherche=";
198        }
199        // execution de la requete en GET
200        $.ajax({
201            type: "GET",
202            url: link,
203            cache: false,
204            success: function(html){
205                (empty == true )?$("#sousform-"+objsf).empty():'';
206                $("#sousform-"+objsf).append(html);
207                om_initialize_content();
208            },
209            async: false
210        });
211    }
212    
213    /**
214     * TTélécharegement de fichier pdf en ajax
215     * spécifique de l'écran de consultation multiple
216     */
217    /* Plugin jQuery qui lance un espèce d'appel AJAX vers un script PHP de téléchargement de fichier*/
218    jQuery.download = function(url, data, method){
219        //url and data options required
220        if( url && data ){
221            //data can be string of parameters or array/object
222            data = typeof data == 'string' ? data : jQuery.param(data);
223            //split params into form inputs
224            var inputs = '';
225            jQuery.each(data.split('&'), function(){
226                var pair = this.split('=');
227                inputs+='<input type="hidden" name="'+ pair[0] +'" value="'+ pair[1] +'" />';
228            });
229            //send request
230            jQuery('<form action="'+ url +'" method="'+ (method||'post') +'">'+inputs+'</form>')
231            .prependTo('body').submit().remove();
232        };
233    };
234    
235    /**
236     * Cette fonction permet de charger dans un dialog jqueryui un formulaire tel
237     * qu'il aurait été chargé avec ajaxIt
238     *
239     * @param objsf string : objet de sousformulaire
240     * @param link string : lien vers un sousformulaire (../scr/sousform.php...)
241     * @param width integer: width en px
242     * @param height integer: height en px
243     * @param callback function (optionel) : nom de la méthode à appeler
244     *                                       à la fermeture du dialog
245     * @param callbackParams mixed (optionel) : paramètre à traiter dans la function
246     *                                          callback
247     *
248     **/
249    function popupIt(objsf, link, width, height, callback, callbackParams) {
250        // Insertion du conteneur du dialog
251        var dialog = $('<div id=\"sousform-'+objsf+'\"></div>').insertAfter('.formControls');
252        $('<input type=\"text\" name=\"recherchedyn\" id=\"recherchedyn\" value=\"\" class=\"champFormulaire\" style=\"display:none\" />').insertAfter('#sousform-'+objsf);
253        
254        // execution de la requete passee en parametre
255        // (idem ajaxIt + callback)
256        $.ajax({
257            type: "GET",
258            url: link,
259            cache: false,
260            success: function(html){
261                //Suppression d'un precedent dialog
262                dialog.empty();
263                //Ajout du contenu recupere
264                dialog.append(html);
265                //Initialisation du theme OM
266                om_initialize_content();
267                //Creation du dialog
268                $(dialog).dialog({
269                //OnClose suppression du contenu
270                close: function(ev, ui) {
271                    // Si le formulaire est submit et valide on execute la méthode
272                    // passée en paramètre
273                    if (typeof(callback) === "function") {
274                        callback(callbackParams);
275                    }
276                    $(this).remove();
277                },
278                resizable: false,
279                modal: true,
280                width: width,
281                height: height,
282              });
283            },
284            async : false
285        });
286        //Fermeture du dialog lors d'un clic sur le bouton retour
287        $('#sousform-'+objsf).on("click",'a.retour',function() {
288            $(dialog).dialog('close').remove();
289            return false;
290        });
291    }
292    
293    /***
294     * Fonction getter des paramètres de l'url courante
295     */
296    // Parse URL Queries Method
297    (function($){
298        $.getQuery = function( query ) {
299            query = query.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
300            var expr = "[\\?&]"+query+"=([^&#]*)";
301            var regex = new RegExp( expr );
302            var results = regex.exec( window.location.href );
303            if( results !== null ) {
304                return results[1];
305                return decodeURIComponent(results[1].replace(/\+/g, " "));
306            } else {
307                return false;
308            }
309        };
310    })(jQuery);
311    
312    
313    /*
314     * Javascript concernant la demande d'avis
315     *
316     *
317     */
318    
319    /**
320     * Fonction de callback appellée lors de la fermeture du dialog (popupit)
321     * du retour d'avis d'un service
322     **/
323    function returnToTab(objsf) {
324        var valid=$('#sousform-'+objsf+' div.ui-state-valid');
325        if(valid.length > 0) {
326            document.location.href="../scr/tab.php?obj="+$.getQuery('obj')+"&premier="+$.getQuery('premier')
327            +"&advs_id="+$.getQuery('advs_id')+"&recherche="+$.getQuery('recherche')+"&tricol="+$.getQuery('tricol')
328            +"&selectioncol="+$.getQuery('selectioncol');
329        }
330    };
331    
332    
333    /*
334     * Javascript concernant la demande
335     *
336     *
337     */
338    
339     /**
340      * Function permettant de mettre à jour les infos du demandeur
341      **/
342    function getDemandeurId(type) {
343        var id_demandeur=$('#id_retour').val();
344        if($.isNumeric(id_demandeur)) {
345            if(type != 'petitionnaire') {
346                $('#add_'+type).hide();
347            }
348            
349            afficherDemandeur(id_demandeur,type);
350            om_initialize_content();
351        }
352    }
353    
354    /**
355     * Fonction permettant d'afficher la synthèse d'un demandeur
356     */
357    function afficherDemandeur(id,type) {
358        $.ajax({
359            type: "GET",
360            url: '../app/afficher_synthese_demandeur.view.php?iddemandeur='+id+'&type='+type,
361            cache: false,
362            success: function(html){
363                $(html).insertBefore('#add_'+type).fadeIn(500);;
364            }
365        });
366    }
367    
368    /**
369     * Function permettant de modifier un demandeur
370     */
371    function editDemandeur(id,type,id_css) {
372        popupIt(type,
373                    '../scr/sousform.php?obj='+type+'&action=1'+
374                    '&retourformulaire=demande&idx='+id, 780, 500,
375                    replaceDemandeur, {'type':type,'id': id, 'id_css':id_css});
376            changeDemandeurType('qualite');
377            addSearchIcon();
378            addDivDialog('.bloc_demandeur');
379    }
380    
381    /**
382     * Function permettant de remplacer un contenu déjà existant
383     **/
384    function replaceDemandeur(obj) {
385        $.ajax({
386            type: "GET",
387            url: '../app/afficher_synthese_demandeur.view.php?iddemandeur='+obj.id+'&type='+obj.type,
388            cache: false,
389            success: function(html){
390                $(obj.id_css).replaceWith(html);
391            }
392        });
393    }
394    /**
395     * Function permettant de remplacer un contenu déjà existant
396     **/
397    function removeDemandeur(id) {
398        var div_class=$('#'+id).attr("class");
399        $('#'+id).remove();
400        if(div_class == "delegataire") {
401            $('#add_delegataire').fadeIn(500);
402        }
403        if(div_class == "petitionnaire_principal") {
404            $('#add_petitionnaire_principal').fadeIn(500);
405        }
406    }
407    
408    /**
409     * Appel au chargement de la page
410     **/
411    $(function() {
412        changeDemandeurType('qualite');
413        if ( $('#type_demandeur') == 'petitionnaire' ){
414            
415            addSearchIcon();
416            addDivDialog('.bloc_demandeur');
417        }
418        if($('input[name=petitionnaire_principal][type=hidden]').size() == 1) {
419            $('#add_petitionnaire_principal').hide();
420        }
421        if($('input[name=delegataire][type=hidden]').size() == 1) {
422            $('#add_delegataire').hide();
423        }
424        // Bind de la fonction permettant l'ajout du pétitionnaire principal
425        $("#formulaire").on("click","#add_petitionnaire_principal",  function() {
426            popupIt('petitionnaire',
427                    '../scr/sousform.php?obj=petitionnaire&action=0'+
428                    '&retourformulaire=demande&principal=true', 780, 500,
429                    getDemandeurId, 'petitionnaire_principal');
430    
431            changeDemandeurType('qualite');
432            addSearchIcon();
433            addDivDialog('.bloc_demandeur');
434        });
435        // Bind de la fonction permettant l'ajout du délégataire
436        $("#formulaire").on("click","#add_delegataire", function(event) {
437            popupIt('delegataire',
438                    '../scr/sousform.php?obj=delegataire&action=0'+
439                    '&retourformulaire=demande', 780, 500,
440                    getDemandeurId, 'delegataire');
441            changeDemandeurType('qualite');
442            addSearchIcon();
443            addDivDialog('.bloc_demandeur');
444        });
445        // Bind de la fonction permettant l'ajout des pétitionnaires
446        $("#formulaire").on("click","#add_petitionnaire", function(event) {
447            popupIt('petitionnaire',
448                    '../scr/sousform.php?obj=petitionnaire&action=0'+
449                    '&retourformulaire=demande', 780, 500,
450                    getDemandeurId, 'petitionnaire');
451            changeDemandeurType('qualite');
452            addSearchIcon();
453            addDivDialog('.bloc_demandeur');
454        });
455    
456            
457        url = document.location + "" ;
458        if (url.indexOf("form.php?obj=demande&") != -1
459            && url.indexOf("&action=0") != -1 ){
460            /*Cache les champs avant que dossier_autorisation_type_detaille soit choisi*/
461            hideFields();
462        }
463      
464       if (url.indexOf("form.php?obj=demande&") != -1
465            && url.indexOf("&action=1") != -1 ){
466            
467            formatFieldReferenceCadastrale();
468       }
469    });
470    
471    /*
472     * Action sur les champs pour les références cadastrales
473     */
474    function formatFieldReferenceCadastrale(){
475        addNewFieldReferencesCadastrales();
476        $('#terrain_references_cadastrales').parent().parent().hide();
477        
478        reference_cadastrale = $('#terrain_references_cadastrales').val();
479        /*Formatage de la reference cadastrale*/
480        if ( reference_cadastrale != '' ){
481            
482            /* Récupère la référence cadastrale non formatée */
483            references_cadastrales = reference_cadastrale.split(';');
484            donnees = new Array();
485            
486            i = 0 ;
487            /* Boucle sur les références, elles étaient séparées par un ; */
488            for ( l = 0 ; l < references_cadastrales.length - 1 ; l ++ ){
489                
490                /*Récupère le code impots du qartier [CHIFFRES]*/
491                k = 0;
492                donnees[i] = '';
493                for ( j = k ; j < references_cadastrales[l].length ; j++ ){
494                    
495                    if ( references_cadastrales[l].charAt(j) >= 0 &&
496                        references_cadastrales[l].charAt(j) <= 9 ){
497                            
498                        donnees[i] += references_cadastrales[l].charAt(j);
499                        k++;
500                        
501                    } else {
502                        
503                        i++;
504                        break;
505                    }
506                }
507                
508                /* Récupère la section [LETTRES] */    
509                donnees[i] = '';
510                for ( j = k ; j < references_cadastrales[l].length ; j++ )
511                    if ( isAlpha(references_cadastrales[l].charAt(j)) ){
512                        
513                        donnees[i] += references_cadastrales[l].charAt(j);
514                        k++;
515                        
516                    } else {
517                        
518                        i++;
519                        break;
520                    }
521                
522                /* Récupère la parcelle [CHIFFRES] */
523                donnees[i] = '';
524                for ( j = k ; j < references_cadastrales[l].length ; j++ )
525                    if ( references_cadastrales[l].charAt(j) >= 0 &&
526                        references_cadastrales[l].charAt(j) <= 9 ){
527                            
528                        donnees[i] += references_cadastrales[l].charAt(j);
529                        k++;
530                        
531                    } else {
532                        
533                        break;
534                    }
535                
536                /* Récupère les séparateurs [ A / ] et les sections */
537                m = 0 ;
538                if ( k < references_cadastrales[l].length ){
539                    
540                    for ( j = k ; j < references_cadastrales[l].length ; j++ )
541                        if ( isAlpha(references_cadastrales[l].charAt(j)) ){
542                            
543                            m++;
544                            donnees[++i] = references_cadastrales[l].charAt(j);
545                            donnees[++i] = '';
546                        }
547                        else {
548                            
549                            donnees[i] += references_cadastrales[l].charAt(j);
550                        }
551                }
552                
553                /*Créé autant de champs de que de référence */
554                donnees[++i] = ';';
555                i++;
556    
557                if ( l > 0 ) {
558                    
559                    $('.reference_cadastrale_custom_fields').append(
560                        "<br/>" + fieldReferenceCadastraleBase()
561                    );
562                }
563                
564                actionFormReferenceCadastrale();
565                
566                if ( m > 0 ){
567                            
568                    for ( j = 0 ; j < m ; j++ ){
569                        
570                        $('#moreFieldReferenceCadastrale' +
571                            ( $('.moreFieldReferenceCadastrale').length - 1 ) ).
572                        before(
573                            newInputReferenceCadastrale()
574                        );
575                    }
576                }
577            }
578             /* Action sur les boutons [+ ajouter d'autres champs] et [+ ajouter
579              * d'autres lignes] */
580            actionLineFormReferenceCadastrale();
581            
582            /* Ajoute les données dans les champs nouvellement créés */
583            $('.reference_cadastrale_custom_field').each(
584                function(index) {
585                    
586                    $(this).val(donnees[index])
587                }
588            );
589        }
590        else{
591            actionFormReferenceCadastrale();
592            actionLineFormReferenceCadastrale();
593        }
594    }
595    
596    /*
597     * Ajoute les icônes pour la recherche de pétitionnaire fréquent.
598     */
599    function addSearchIcon(){
600        
601        /*Ajout de l'icône après le champs du prénom du particulier*/
602        $('.search_particulier_fields input').
603        last().
604        after(
605            '<span '+
606                'class="om-icon om-icon-16 om-icon-fix search-part-16" '+
607                'title="Chercher un petitionnaire">'+
608            '</span>'
609        );
610        
611        /*Ajout de l'icône après le champs dénomination et nom de la personne morale*/
612        $('.search_personne_morale_fields input').each(
613            function(){
614                $(this).
615                after(
616                    '<span '+
617                        'class="om-icon om-icon-16 om-icon-fix search-mor-16" '+
618                        'title="Chercher un petitionnaire"> '+
619                    '</span>'
620                );
621            }
622        );
623        
624        addActionSearchIcon('#sousform-petitionnaire #form-content');
625    }
626    
627    /*
628     * Ajoute les actions sur les icônes de recherche
629     */
630    function addActionSearchIcon(id){
631        
632        /*Si on recherche un pétitionnaire de type particulier*/
633        $(' .search-part-16').click(
634            function(){
635                
636                /*Le champ nom du particulier doit contenir au moins trois lettres*/
637                if ( $('#particulier_nom').val().length < 3 ||
638                    $('#particulier_prenom') < 3 ){
639                    
640                    alert('Saisissez au moins trois lettres pour la recherche');
641                    return;
642                }
643                
644                /*Données des champs nom et prénom du particulier*/
645                var donnees = "?qualite=particulier"+
646                    "&par_nom=" + $('.search_particulier_fields #particulier_nom').val() +
647                    "&par_prenom=" + $('.search_particulier_fields #particulier_prenom').val();
648    
649                /* Requête qui va récupérer les données duaddSearchIcon(es) pétitionnaire(s)
650                 * correspondant(s) à la recherche */
651                $.ajax({
652                    type: "GET",
653                    url: "../app/findPetitionnaire.php" + donnees ,
654                    cache: false,
655                    success: function(html){
656                        
657                        res = 'Auncune correspondance trouvée.';
658                        
659                        /*Si la recherche a donné des résultats*/
660                        if ( html.length > 2 ){
661                            
662                            res = '' ;
663                            donnees = html.split(';');
664                            nbRes = donnees.length;
665                            
666                            /*Limitation des résultats à 50 */
667                            if ( nbRes > 50 ){
668                                
669                                nbRes = 50;
670                                res = 'Votre recherche a donn&eacute; ' + donnees.length
671                                    + ' r&eacute;sultats. Seul les cinquantes premiers ' +
672                                    'seront affich&eacute;s.<br/>';
673                            }
674                            
675                            res += '<select>' ;
676                            
677                            /* Met les résultats de la recherche dans un select */
678                           for ( i = 0 ; i < nbRes - 1 ; i++ ){
679    
680                                val = donnees[i].replace('"', '');
681                                line = donnees[i].split('_');
682                                
683                                if ( line[3] != '' ){
684                                    
685                                    line[3] = ' - ' + line[3];
686                                }
687                                
688                                res += '<option value="' + val + '">' +
689                                            line[1] + ' ' + line[2] + line[3] +
690                                       '</option>';
691                            }
692                            
693                            res += '</select>' ;
694                        }
695                        
696                        /* Affichage de l'overlay */
697                        $('#dialog').html(res);
698                          
699                        $( "#dialog" ).dialog({
700                            modal: true,
701                            buttons : {
702                                Valider: function(){
703                                    
704                                    /*Action à l'appui sur le bouton valider*/
705                                    if ( res != 'Auncune correspondance trouvée.' ){
706                                        
707                                        /*Vide les valeurs des champs*/
708                                        emptyFields(id);
709                                        
710                                        donnees = $('#dialog select option:selected').val();
711                                        donnees = donnees.split('_');
712                                        
713                                        if ( $.isNumeric(donnees[4]) ){
714                                            $('#particulier_civilite ' +
715                                                'option[value="' + $.trim(donnees[4]) + '"]').
716                                            attr('selected','selected');
717                                        }
718                                        
719                                        $('#particulier_nom').
720                                        val($.trim(donnees[1]));
721                                        
722                                        $('#particulier_prenom').
723                                        val($.trim(donnees[2]));
724                                        
725                                        /*Vérifie si la date est non vide avant de la traiter*/
726                                        date_temp = $.trim(donnees[3]);
727                                        if ( date_temp != '' ){
728                                            
729                                            date = date_temp.split('-');
730                                            date = date[2] + "/" + date[1] + "/" + date[0] ;
731                                            $('#particulier_date_naissance').
732                                            val(date);
733                                            
734                                        }
735                                        $('#particulier_commune_naissance').
736                                        val($.trim(donnees[10]));
737                                        $('#particulier_departement_naissance').
738                                        val($.trim(donnees[11]));
739                                        
740                                        changeValInputDemandeur(donnees);
741                                    }
742                                    
743                                    /*Fermeture de l'overlay*/
744                                    $(this).dialog( "close" );
745                                }
746                            }
747                        });
748                    },
749                    async: false
750                });
751            }
752        );
753        
754        /*Si on recherche un pétitionnaire de type personne morale*/
755        $('.search-mor-16').click(
756            function(){
757                
758                /*Le champ nom du particulier doit contenir au moins trois lettres*/
759                if ( $('#personne_morale_denomination').val().length < 3 ||
760                    $('#personne_morale_nom') < 3 ){
761                    
762                    alert('Saisissez au moins trois lettres pour la recherche');
763                    return;
764                }
765                
766                /*Données des champs dénomination et nom de la personne morale*/
767                var donnees = "?qualite=personne_morale"+
768                    "&mor_denomination="+$('#personne_morale_denomination').val() +
769                    "&mor_nom="+$('#personne_morale_nom').val();
770                    
771                /* Requête qui va récupérer les données du(es) pétitionnaire(s)
772                 * correspondant(s) à la recherche */    
773                $.ajax({
774                    type: "GET",
775                    url: "../app/findPetitionnaire.php" + donnees ,
776                    cache: false,
777                    success: function(html){
778                        
779                        res = 'Auncune correspondance trouvée.';
780    
781                        /*Si la recherche a donné des résultats*/
782                        if ( html.length > 2 ){
783                            
784                            res = '' ;
785                            donnees = html.split(';');
786                            nbRes = donnees.length;
787                            
788                            /*Limitation des résultats à 50 */
789                            if ( nbRes > 50 ){
790                                
791                                nbRes = 50;
792                                res = 'Votre recherche a donn&eacute; ' + donnees.length
793                                    + ' r&eacute;sultats. Seul les cinquantes premiers ' +
794                                    'seront affich&eacute;s.<br/>';
795                            }
796                            
797                            res += '<select>' ;
798                            
799                            /* Met les résultats de la recherche dans un select */
800                            for ( i = 0 ; i < nbRes - 1 ; i++ ){
801    
802                                val = donnees[i].replace('"', '');
803                                line = donnees[i].split('_');
804                                
805                                res += '<option value="' + val + '">' +
806                                            line[5] + ' ' + line[6] +
807                                        '</option>';
808                            }
809                            
810                            res += '</select>' ;
811                        }
812                        
813                        /* Affichage de l'overlay */
814                        $('#dialog').html(res);
815                          
816                        $( "#dialog" ).dialog({
817                            modal: true,
818                            buttons : {
819                                Valider: function(){
820                                    
821                                    /*Vide les valeurs des champs*/
822                                    emptyFields(id);
823                                    
824                                    /*Action à l'appui sur le bouton valider*/
825                                    if ( res != 'Auncune correspondance trouvée.' ){
826                                        donnees = $('#dialog select option:selected').val();
827                                        donnees = donnees.split('_');
828                                                                            
829                                        if ( $.isNumeric(donnees[8]) ){
830                                            
831                                            $('#personne_morale_civilite ' +
832                                                'option[value="' + $.trim(donnees[8]) + '"]').
833                                            attr('selected','selected');
834                                        }
835                                        
836                                        $('#personne_morale_denomination').
837                                        val($.trim(donnees[5]));
838                                        
839                                        $('#personne_morale_raison_sociale').
840                                        val($.trim(donnees[12]));
841                                        
842                                        $('#personne_morale_siret').
843                                        val($.trim(donnees[6]));
844                                        
845                                        $('#personne_morale_categorie_juridique').
846                                        val($.trim(donnees[13]));
847                                        
848                                        $('#personne_morale_nom').
849                                        val($.trim(donnees[7]));
850                                        
851                                        $('#personne_morale_prenom').
852                                        val($.trim(donnees[9]));
853                                        
854                                        changeValInputDemandeur(donnees);
855                                    }
856                                    
857                                    /*Fermeture de l'overlay*/
858                                    $(this).dialog( "close" );
859                                }
860                            }
861                        });
862                    },
863                    async: false
864                });
865            }
866        );
867        
868    }
869    
870    /*
871     * Vide les champs avant d'y mettre les nouvelles informations
872     */
873    function emptyFields(id){
874        $(id + ' input').each(
875            function(){
876                $(this).val('');
877            }
878        );
879        
880        $(id + ' select option[value=""]').each(
881            function(){
882                
883                /*Ne pas remettre à zéro le select concernant la qualite du demandeur*/
884                if ( $(this).attr('id') != 'qualite' ) {
885                    
886                    $(this).attr('selected', 'selected');
887                }
888            }
889        );
890        
891        $(id + ' input[type="checkbox"]').each(
892            function(){
893                $(this).val('');
894                $(this).removeAttr('checked');
895            }
896        );
897    }
898    
899    /*
900        Change les valeurs des champs en commun des particuliers et des personnes morales
901        Lié à la fonction addActionSearch
902        
903     * */
904    function changeValInputDemandeur( donnees){
905        
906        $('input[id="demandeur"]').val($.trim(donnees[0]));
907        
908        /*Teste si la valeur retournée est TRUE*/
909        if ( donnees[28] === 't' ){
910            
911            $('#notification').attr('checked', 'checked');
912            $('#notification').val('Oui');
913        }
914        
915        $('#sousform-petitionnaire #frequent').attr('checked','checked');
916        $('#sousform-petitionnaire #frequent').val('Oui');
917        $('#sousform-petitionnaire #numero').val($.trim(donnees[14]));
918        $('#sousform-petitionnaire #voie').val($.trim(donnees[15]));
919        $('#sousform-petitionnaire #complement').val($.trim(donnees[16]));
920        $('#sousform-petitionnaire #lieu_dit').val($.trim(donnees[17]));
921        $('#sousform-petitionnaire #localite').val($.trim(donnees[18]));
922        $('#sousform-petitionnaire #code_postal').val($.trim(donnees[19]));
923        $('#sousform-petitionnaire #bp').val($.trim(donnees[20]));
924        $('#sousform-petitionnaire #cedex').val($.trim(donnees[21]));
925        $('#sousform-petitionnaire #pays').val($.trim(donnees[22]));
926        $('#sousform-petitionnaire #division_territoriale').val($.trim(donnees[23]));
927        $('#sousform-petitionnaire #telephone_fixe').val($.trim(donnees[24]));
928        $('#sousform-petitionnaire #telephone_mobile').val($.trim(donnees[25]));
929        $('#sousform-petitionnaire #indicatif').val($.trim(donnees[26]));
930        $('#sousform-petitionnaire #courriel').val($.trim(donnees[27]));
931        $('#sousform-petitionnaire #type_demandeur').val($.trim(donnees[29]));
932    }
933    
934    /*
935     * Ajoute un div pour l'overlay dialog de jQuery
936     */
937    function addDivDialog(id){
938        
939        $(id).prepend('<div id="dialog"></div>');
940    }
941    
942    /*
943        Action au changement du select de la qualite du demandeur
944     * */
945    function changeDemandeurType(id){
946    
947        /*Si la qualite du demandeur est particulier */
948        if ( $('#' + id + ' option:selected').val() == 'particulier' ){
949            
950            $('.personne_morale_fields input').each(
951                function(){
952                    $(this).val('');
953                }
954            );
955            $('.personne_morale_fields select option[value=""]').each(
956                function(){
957                    $(this).attr('selected', 'selected');
958                }
959            );
960            
961            $('.personne_morale_fields').hide();
962            $('.particulier_fields').show();
963        }
964        else {
965            
966           $('.particulier_fields input').each(
967                function(){
968                    $(this).val('');
969                }
970            );
971            $('.particulier_fields select option[value=""]').each(
972                function(){
973                    $(this).attr('selected', 'selected');
974                }
975            );
976            
977            $('.particulier_fields').hide();
978            $('.personne_morale_fields').show();
979        }
980    }
981    
982    /*
983        Function de test des champs
984     * */
985    function isAlpha(str) {
986        return /^[a-zA-Z\/]+$/.test(str);
987    }
988    
989    function isMail(str){
990        return /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/.test(str);
991    }
992    
993    function isPhoneNumber(str){
994        return /[0-9-()+]{3,20}/.test(str);
995    }
996    
997    function testSeparator(obj){
998    
999        if ( obj.value != 'A' &&
1000             obj.value != '/' ) {
1001                
1002            alert('Saisissez uniquement un A ou un / comme séparateur');
1003            obj.value = '';
1004        }
1005    }
1006    
1007    /* FIN */
1008    
1009    /*
1010        Ajoute les ations spécifiques pour le formulaire personnalisé d'ajout de
1011        référence cadastrale
1012     * */
1013    function actionFormReferenceCadastrale(){
1014        $('form').submit(
1015            function(){
1016                
1017                getDataFieldReferenceCadastrale();
1018            }
1019        );
1020    
1021        $('#moreFieldReferenceCadastrale' +
1022            ($('.moreFieldReferenceCadastrale').length - 1 )).
1023        on("click", function() {
1024            $(this).before(newInputReferenceCadastrale());
1025        });
1026        
1027    }
1028    
1029    /*
1030     * Récupère les données saisies dans les champs de références cadastrales
1031     */
1032    function getDataFieldReferenceCadastrale(){
1033        
1034        var reference_cadastrale = '';
1035        var reference_cadastrale_temp = '';
1036        
1037        $('.reference_cadastrale_custom_field').each(
1038            function(){
1039                
1040                if ( $(this).val() == ';' ){
1041                    
1042                    reference_cadastrale_bis = reference_cadastrale_temp ;
1043                    
1044                    while( reference_cadastrale_bis != ''){
1045                        if ( /^([0-9]{1,4}[a-zA-Z]{1,3}[0-9]{1,5}([A\/]{1}[0-9]{1,4})*)*$/.test(reference_cadastrale_bis) ){
1046                            
1047                            reference_cadastrale += reference_cadastrale_bis + ";";
1048                            break;
1049                        }
1050                        else{
1051                            
1052                            reference_cadastrale_bis = reference_cadastrale_bis.slice( 0, -1);
1053                        }    
1054                    }
1055                    
1056                    
1057                    reference_cadastrale_temp = '';
1058                }
1059                
1060                else {
1061                    
1062                    reference_cadastrale_temp += $(this).val();
1063                }
1064                
1065            }
1066        );
1067        
1068        $('#terrain_references_cadastrales').val(reference_cadastrale);
1069    }
1070    
1071    /*
1072        Action pour l'ajout de nouvelle ligne
1073     * */
1074    function actionLineFormReferenceCadastrale(){
1075        $('#morelineReferenceCadastrale').click(
1076            function(){
1077                
1078                $('.reference_cadastrale_custom_fields').
1079                append( "<br/>" + fieldReferenceCadastraleBase());
1080                
1081                $('#moreFieldReferenceCadastrale'+
1082                    ($('.moreFieldReferenceCadastrale').length - 1 )).
1083                on("click", function() {
1084                    $(this).before(newInputReferenceCadastrale());
1085                });
1086                
1087                
1088            }
1089        );
1090    }
1091    
1092    /*
1093        Met à jour le select demande_type dès qu'un
1094        dossier_autorisation_type_detaille est choisi
1095     * */
1096    function changeDemandeType(){
1097        
1098        var idDossierAutorisationTypeDetaille =
1099            $("#dossier_autorisation_type_detaille option:selected").val();
1100        
1101        /* Récupère les données saisies dans les champs pour la référence cadastrale */
1102        getDataFieldReferenceCadastrale();    
1103        
1104        if ( $.isNumeric(idDossierAutorisationTypeDetaille) ){
1105            
1106            changeDataSelect('demande_type','dossier_autorisation_type_detaille');
1107            if ( $('#demande_type option').size() < 2 )
1108                showFormsDemande();
1109            
1110           $('#demande_type').parent().parent().show();
1111          
1112           formatFieldReferenceCadastrale();
1113        }
1114        else {
1115            hideFields();
1116        }
1117    }
1118    
1119    /*
1120        Ajoute le code HTML des champs pour les références cadastrales
1121     * */
1122    function addNewFieldReferencesCadastrales(){
1123        $('.references_cadastrales_new_field').remove();
1124        $('.moreFieldReferenceCadastrale').remove();
1125        $('#morelineReferenceCadastrale').remove();
1126        $('.buttonCadAdr').remove();
1127        $('.localisation .fieldsetContent').prepend(
1128           '<div class="field field-type-text references_cadastrales_new_field" >'+
1129                '<div class="form-libelle">' +
1130                    '<label '+
1131                        'class="libelle-terrain_references_cadastrales" '+
1132                        'for="terrain_references_cadastrales">'+
1133                        ' terrain_references_cadastrales '+
1134                    '</label>' +
1135                '</div>' +
1136                '<div class="form-content reference_cadastrale_custom_fields">' +
1137                     fieldReferenceCadastraleBase() +
1138                '</div>' +
1139           '</div>' +
1140           '<div class="field field-type-text" id="morelineReferenceCadastrale">' +
1141                '<div class="form-libelle"></div>' +
1142                '<div class="form-content">' +
1143                    ' + ajouter d\'autres lignes' +
1144                '</div>' +
1145           '</div>'      
1146       );
1147       $('#terrain_superficie').parent().parent().after('<div class="field field-type-text" >' +
1148                '<div class="form-libelle"></div>' +
1149                '<div class="form-content buttonCadAdr">' +
1150                    '<input id="cad-adr-them" class="ui-button ui-widget ui-state-default ui-corner-all" type="button" value="Cadastrale < = > Adresse"/>' +
1151                '</div>' +
1152           '</div>' );
1153    }
1154    
1155    /*
1156        Séparateur caché ;
1157     * */
1158    function hiddenSeparatorField(){
1159        return '<input ' +
1160                    'class="reference_cadastrale_custom_field " ' +
1161                    'type="hidden" ' +
1162                    'maxlength="2" ' +
1163                    'size="2" ' +
1164                    'value=";" />';
1165    }
1166    
1167    /*
1168        Ajout d'une nouvelle ligne de champ
1169     * */
1170    function fieldReferenceCadastraleBase(){
1171        return '<input ' +
1172                    'class="champFormulaire reference_cadastrale_custom_field" ' +
1173                    'type="text" ' +
1174                    'onchange="VerifNum(this)" ' +
1175                    'maxlength="4" ' +
1176                    'size="4" ' +
1177                    'value="" />' +
1178                '<input ' +
1179                    'class="champFormulaire reference_cadastrale_custom_field" ' +
1180                    'type="text" ' +
1181                    'maxlength="3" ' +
1182                    'size="3" ' +
1183                    'value="" '+
1184                    'onchange="if ( !isAlpha(this.value) ){ alert(\'Vous ne devez saisir que des lettres dans ce champs.\'); this.value = \'\'; }"/>' +
1185                '<input ' +
1186                    'class="champFormulaire reference_cadastrale_custom_field" ' +
1187                    'type="text" ' +
1188                    'onchange="VerifNum(this)" ' +
1189                    'maxlength="5" ' +
1190                    'size="5" ' +
1191                    'value="" />' +
1192                '<span id="moreFieldReferenceCadastrale' + $('.moreFieldReferenceCadastrale').length + '" class="moreFieldReferenceCadastrale">' +
1193                    hiddenSeparatorField() +
1194                    ' + ajouter d\'autres champs' +
1195                '</span>';
1196    }
1197    
1198    /**
1199     * Cache les champs inutules
1200     **/
1201    function hideFields(){
1202        $('.demande_hidden_bloc').each(
1203            function(){
1204                $(this).hide();
1205            }
1206        );
1207        
1208        $('.field-type-text').hide();
1209        $('input[type=submit]').hide();
1210        $('#demande_type').parent().parent().hide();
1211    }
1212    
1213    /*
1214        Affiche les champs dont on a besoin
1215     * */
1216    function showFormsDemande(){
1217        $('.demande_hidden_bloc').each(
1218            function(){
1219                $(this).show();
1220            }
1221        );
1222        
1223        $('.field-type-text').show();
1224        $('input[type=submit]').show();
1225        $('.terrain_references_cadastrales_custom').hide();
1226        
1227        $('#terrain_references_cadastrales').parent().parent().hide();
1228    }
1229    
1230    /*
1231        Action au clique sur le bouton " + ajouter d'autres champs"
1232     * */
1233    function newInputReferenceCadastrale(){
1234        return '<input ' +
1235                'class="champFormulaire reference_cadastrale_custom_field" ' +
1236                'type="text" ' +
1237                'maxlength="1" ' +
1238                'size="1" ' +
1239                'value="" ' +
1240                'onchange="testSeparator(this);"/>' +
1241            '<input ' +
1242                'class="champFormulaire reference_cadastrale_custom_field" ' +
1243                'type="text" ' +
1244                'onchange="VerifNum(this)" ' +
1245                'maxlength="4" ' +
1246                'size="4" ' +
1247                'value="" />';
1248    }
1249    
1250    
1251    
1252    /**
1253     * Desactivation des fonctions widget du tableau de bord inutiles sur le nouveau
1254     * tableau de bord
1255     */
1256    function widget_bind_move_actions() {}
1257    function widget_bind_add_action() {}
1258    function widget_bind_edit_actions(widget_selector) {}
1259    

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26