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

Legend:
Removed from v.651  
changed lines
  Added in v.828

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26