/[openfoncier]/trunk/app/js/script.js
ViewVC logotype

Annotation of /trunk/app/js/script.js

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1473 - (hide annotations)
Sun Mar 17 21:18:22 2013 UTC (11 years, 10 months ago) by fmichon
File MIME type: application/javascript
File size: 62370 byte(s)
Ajout du focus sur le champ de recherche au chargement de la page.

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

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26