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

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26