PageSourceSearch

https://www.gites-de-france-rhone.com/lib_2/js/foncs/moteur.js?t=2023-07-06

js gites-de-france-rhone.com collected 2026-10-07 20:43:45 UTC 156,414 bytes, 3,239 lines download raw bytes

1// Adrien 10/05/23 : Attention, ce fichier n'est plus utilisé sur la majorité des sites web excepté sur le compte client et le script de résa
2
3var _reqAjaxMoteur;
4var _timerPourMoteurLieu;
5
6function setCGIForLstLieu(li){
7    if ( navigator.appName == 'Microsoft Internet Explorer' )
8        var commune = li.getElementsByTagName("span")[0].getAttribute("lieu_reel");
9    else var commune = li.getElementsByTagName("span")[0].getAttribute("lieu_reel");
10   
11    var cgi=li.getElementsByTagName("span")[0].getAttribute("cgi");
12    var val_cgi=li.getElementsByTagName("span")[0].getAttribute("val_cgi");
13    
14    $("inpt_saisieLieu").value=commune;
15    $("inpt_saisieLieu").onfocus=function (evt){
16        this.value='';
17        $("inpt_saisieLieuHidden").value='';
18    }
19    $("inpt_saisieLieu").onblur=function (evt){
20        $("inpt_saisieLieuHidden").value=this.value;
21    }
22    
23    $("inpt_saisieLieuHidden").value=commune;
24    $("inpt_saisieLieuHidden").setAttribute("cgi",cgi);
25    $("inpt_saisieLieuHidden").setAttribute("valeur",val_cgi);
26    
27    if(window.setListeByLieuSelect) setListeByLieuSelect();
28}
29
30function setCGIForLstRef(li){
31    var reference = li.getElementsByTagName("span")[0].getAttribute("lno");
32    var departement = li.getElementsByTagName("span")[0].getAttribute("dep");
33
34    $("inpt_reference").value=reference;
35    $("inpt_reference").onfocus=function (evt){
36        this.value='';
37        $("inpt_saisieRefHidden").value='';
38        this.value='';
39        $("inpt_saisieRefDepHidden").value='';
40    }
41    $("inpt_reference").onblur=function (evt){
42        $("inpt_saisieRefHidden").value=this.value;
43        $("inpt_saisieRefDepHidden").value=this.value;
44    }
45
46    $("inpt_saisieRefHidden").value=reference;
47    $("inpt_saisieRefHidden").setAttribute("cgi","LNO");
48    $("inpt_saisieRefHidden").setAttribute("valeur",reference);
49
50    $("inpt_saisieRefDepHidden").value=reference;
51    $("inpt_saisieRefDepHidden").setAttribute("cgi","DEP");
52    $("inpt_saisieRefDepHidden").setAttribute("valeur",departement);
53
54    if(window.setListeByRefSelect) setListeByRefSelect();
55}
56
57function setChmpCommuneAutoCompleter(reponse){
58    var suffixe;
59    var jsonarray=eval(reponse);
60    var infos=[];
61    
62    for (var i=0;i<jsonarray.length;i++){
63        (jsonarray[i].nb>1)?suffixe="s":suffixe="";
64        infos.push(jsonarray[i].lieu+" ("+Math.round(jsonarray[i].nb)+" réponse"+suffixe+")<span cgi=\""+jsonarray[i].cgi+"\" val_cgi=\""+jsonarray[i].val_cgi+"\" lieu_reel=\""+jsonarray[i].lieuReel+"\" />");
65    }
66    
67    /**** champ lieu ****/
68    var typeahead = new Autocompleter.Local('inpt_saisieLieu', 'div_lstLieu_autocomplete', infos, {
69        frequency: 0.1,
70        updateElement: setCGIForLstLieu,
71        minChars :3
72    });
73}
74
75function setChmpCommuneAutoCompleterRef(reponse){
76    var jsonarray=eval(reponse);
77    var infos=new Array();
78
79    for(var i=0;i<jsonarray.length;i++){
80        infos.push(jsonarray[i].ref+" ("+jsonarray[i].lib+")<span lno=\""+jsonarray[i].ref+"\"dep=\""+jsonarray[i].dep+"\" />");
81    }
82
83    /**** champ reference ****/
84    var typeahead = new Autocompleter.Local('inpt_reference', 'div_lstRef_autocomplete', infos, {
85        frequency: 0.1,
86        updateElement: setCGIForLstRef
87    });
88}
89
90function setAutoCompleterByLieu(idChampSaisie,divChampChoix,typeRep,priseEnCompteCrits,avecinfostour,avecInseeAffiche,avecCPAffiche){
91    /*var idChampSaisie="inpt_saisieLieu";
92	var divChampChoix="div_lstLieu_autocomplete";*/
93    
94    if(typeof(priseEnCompteCrits) == "undefined") priseEnCompteCrits = true;
95    if(typeof(avecinfostour) == "undefined") avecinfostour = true;
96    if(typeof(avecInseeAffiche) == "undefined") avecInseeAffiche = false;
97    if(typeof(avecCPAffiche) == "undefined") avecCPAffiche = false;
98    
99    var url="/lib_2/ajax/infosCGI.php";
100    var options;
101    //jslog("le type de lien : ".typeRep);
102    var foncUpdate;
103    if(window.setListeByLieuSelect)foncUpdate=window.setListeByLieuSelect;
104    else foncUpdate=null;
105    
106    var queryString = String(document.location.pathname);
107    if(queryString.match("\\?"))queryString=queryString.split("?")[1];
108    if(queryString.match("#"))queryString=queryString.split("#")[0];
109    var uri = encodeURIComponent(queryString);
110    if(jQuery("#moteur_inptUrlListe").length>0 && jQuery("#moteur_inptUrlListe").val() && (uri=='' || uri=='/' || uri=='%2F')){
111        uri = jQuery("#moteur_inptUrlListe").val();
112    }
113
114    if(typeRep=="lien"){
115        var parametres = "typeInfo=LISTALLLIEU&typeReponse=HTML";
116        if(priseEnCompteCrits){
117            parametres += "&uri="+uri;
118        }
119        if(avecinfostour){
120            parametres += '&avecinfostour=true';
121        }
122        if(jQuery("#moteur_inptDistcomm").length>0){
123            parametres += '&distcomm='+jQuery("#moteur_inptDistcomm").val();
124        } 
125        
126        
127        options={
128            frequency:0.1,
129            minChars:3,
130            parameters:parametres,
131            tokens: ',',
132            updateElement:foncUpdate
133        }
134        window.autoCompleterLieu=new Ajax.Autocompleter(idChampSaisie, divChampChoix, url, options);
135    }else if(window.setListeByLieuSelect){
136        if(priseEnCompteCrits){
137            var parametres = "typeInfo=LISTALLLIEU&typeReponse=JS"+"&uri="+uri;
138        }
139        else{
140            var parametres = "typeInfo=LISTALLLIEU&typeReponse=JS";
141        }
142        if(avecinfostour){
143             parametres += '&avecinfostour=true';
144         }     
145        if(avecInseeAffiche){
146            parametres += '&avec_insee_affiche=true';
147        }
148        if(avecCPAffiche){
149            parametres += '&avec_cp_affiche=true';
150        }
151
152        options={
153            frequency:0.1,
154            minChars:3,
155            parameters:parametres,
156            updateElement:setListeByLieuSelect,
157            tokens: ','
158        }
159        window.autoCompleterLieu=new Ajax.Autocompleter(idChampSaisie, divChampChoix, url, options);
160        // on ajoute ce listener pour gérer le hide de la div divChampChoix quand on perd le focus de idChampSaisie
161        // fiche 168352 guillaume 20/04/12
162//        $(idChampSaisie).observe('blur',function(){
163//            var div_lstRef_autocomplete = $(divChampChoix);
164//            if(div_lstRef_autocomplete){
165//                var hover = window.autoCompleterLieu.isHovered;
166//                if(div_lstRef_autocomplete.style.display != 'none' && window.autoCompleterLieu.isHovered != true){
167//                    $(div_lstRef_autocomplete).style.display = 'none';
168//                }
169//            }
170//        });
171    }
172}
173
174function setAutoCompleterByRef(idChampSaisie,divChampChoix,typeRep,communeDansAutoComplet,departements,libelleDansAutoCompleteur,gestprod){
175    var url="/lib_2/ajax/infosCGI.php";
176    var options;
177                                
178    var foncUpdate;
179    if(window.setListeByRefSelect)foncUpdate=window.setListeByRefSelect;
180    else foncUpdate=null;
181    var affComm="";
182    if(communeDansAutoComplet){
183        affComm=true;
184    }
185    var dataLblac = '';
186    if(libelleDansAutoCompleteur){
187        dataLblac='&libelleDansAutoCompleteur=false';
188    }
189    if(gestprod){
190        dataLblac = dataLblac + '&RETURNREFGESTPROD=true';
191    }
192    if(departements)var depts=departements;
193    else var depts='';
194    if(typeRep=="lien"){
195        options={
196            frequency:0.1,
197            minChars:1,
198            parameters:"typeInfo=LISTALLREF&typeReponse=HTML&departements="+depts,
199            tokens: ',',
200            updateElement:foncUpdate
201        }
202    }else if(window.setListeByRefSelect){
203        options={
204            frequency:0.1,
205            minChars:1,
206            parameters:"typeInfo=LISTALLREF&typeReponse=JS&communeDansAutoComplet="+affComm+"&departements="+depts+dataLblac,
207            updateElement:setListeByRefSelect,
208            tokens: ','
209        }
210    }
211    window.autoCompleterRef=new Ajax.Autocompleter(idChampSaisie, divChampChoix, url, options);
212
213}
214
215function getNomLieuByPositionCurr(position,foncQdFini){
216    var out;
217	
218    /*if(position.address.city)out.city=position.address.city;
219	else{*/
220    var latitude = position.coords.latitude;
221    var longitude = position.coords.longitude;
222    var url="/lib_2/ajax/infosCGI.php";
223    var sending="typeInfo=POSITIONCURR&latitude="+latitude+"&longitude="+longitude;
224		
225    appelAjaxToFunc(url,sending,foncQdFini);
226    //}
227	
228    return out
229}
230
231function moteur_initMoteurCommun(){
232    /***** Pour actualiser la page lorsque l'on change la valeur d'un select ****/
233    // réécriture en JQuery de la fonction ci-après pour les problèmes liste ne s'actualise pas en ajax en utilisant le composant .selectmenu - Erwan 17/04/2012
234	if(jQuery(".moteur_selectOnChange").length>0){
235		jQuery(".moteur_selectOnChange").bind('change selectmenuchange',function() {
236			var cgi = jQuery(this).attr("name");
237			var value = this.value;
238            console.log('moteur_selectOnChange cgi:'+cgi+' value:'+value);
239			var url = document.location.href;
240            if(window.initClicMoteur_selectOnChange){ // fonction à définir dans look
241                initClicMoteur_selectOnChange(jQuery(this));
242            }
243			if(jQuery("#moteur_inptUrlListe") && jQuery("#moteur_inptUrlListe").val()){
244                //moteur_inptUrlListe permet de définir une autre page que la page en cour.
245                //moteur_inptUrlListe_supprimerCGI permet de ne pas garder les cgis en cours
246                var urlSeule = url.substring( 0 ,url.lastIndexOf( "/" ) );
247                var autresCGI = url.substring( url.lastIndexOf( "?" )+1, url.length );
248                if(jQuery("#moteur_inptUrlListe_supprimerCGI") && jQuery("#moteur_inptUrlListe_supprimerCGI").val() == '1'){
249                    autresCGI = '';
250                }
251                url = urlSeule+'/'+jQuery("#moteur_inptUrlListe").val()+'?'+autresCGI;
252            } 
253            if(jQuery("#"+jQuery(this).attr("id")+" option:selected").attr("data-url") != undefined && jQuery("#"+jQuery(this).attr("id")+" option:selected").attr("data-url").length>0){
254                url = jQuery("#"+jQuery(this).attr("id")+" option:selected").attr("data-url");
255            } 
256            url = getUrlWithLstParam(url, cgi, value);
257            
258            // 322629
259            if (cgi === 'lieu'){
260                url = removeParamGoogleMaps(url);
261                url = supprimeCgisDansUrl(url, ['lieucgi']);
262            } else {
263                //console.log('moteur_selectOnChange url:'+url);
264                url = getUrlAvecLstParamsGoogleMaps(url);
265                //console.log('moteur_selectOnChange getUrlAvecLstParamsGoogleMaps url:'+url);
266            }
267
268            if (cgi === 'order_by') {
269                console.log('moteur_selectOnChange order_by ',jQuery(this));
270                var ordre = jQuery(this).find('option:selected').attr('data-ordre');
271                url = getUrlWithLstParam(url, 'order_by_tri', ordre);
272            }
273            
274            if(jQuery(this).hasClass('moteur_selectEnregistreCritere')){
275                setCookieEnregistreCritere(cgi,value)
276            }
277            if(jQuery(this).hasClass('moteur_selectLieuEnregistreCritere')){
278                setCookieEnregistreCritere(cgi,value)
279            }
280            
281            //alert(jQuery(this).prop("tagName").toLowerCase());
282//            if(jQuery(this).prop("tagName").toLowerCase() == 'select'){            
283//                // on test qu'il s'agit bien d'un select sinon ceux qui sont en mode selectMenu c'est executé 2 fois
284//                var nomFonctionQdOnChange = 'foncQdFini_changeMoteur_'+jQuery(this).attr("name");
285//                if(typeof window[nomFonctionQdOnChange] === 'function'){
286//                    window[nomFonctionQdOnChange]();
287//                }
288//            }
289
290            
291            if (estMoteurSansLien()) {
292                refreshListeWithCgi(url + '&' + jQuery('#itea_page_contentListe').attr('data-cgi'));
293            } else {
294                document.location.href = url;
295                moteur_affMessageLoadingMoteur();
296            }
297		});
298	}
299    
300    if(jQuery(".moteur_selectLieuMultpleSansLien").length>0){
301        jQuery(".moteur_selectLieuMultpleSansLien").bind('change selectmenuchange',function(){
302            if(jQuery("#"+jQuery(this).attr("id")+" option:selected").attr("data-url") != undefined && jQuery("#"+jQuery(this).attr("id")+" option:selected").attr("data-url").length>0){
303                url = jQuery("#"+jQuery(this).attr("id")+" option:selected").attr("data-url");
304                jQuery(this).parents("form").attr("action",url);
305            }
306        });
307    }
308    
309	if(jQuery(".moteur_radioOnChange").length>0){
310		jQuery(".moteur_radioOnChange").bind("click",function(){
311			document.location.href = jQuery(this).attr("data-href");
312			moteur_affMessageLoadingMoteur();
313		});
314	}
315    
316    /***** Permet d'afficher "Loading" et masque sur la page, quand clic sur un lien simulant un checkbox *****/
317	if(jQuery(".moteur_imitecheckbox").length>0 || jQuery(".moteur_ulSimuleListe a").length>0){
318		$$(".moteur_imitecheckbox, .moteur_ulSimuleListe a").each(function(obj){
319			jQuery(obj).bind("click",function(evt){
320				moteur_affMessageLoadingMoteur();
321			});
322		});
323	}
324    
325    if(jQuery(".moteur_enregistreCritere").length>0){
326		jQuery(".moteur_enregistreCritere").each(function(){
327			jQuery(this).bind("click",function(){				
328                setCookieEnregistreCritere(jQuery(this).find('.sp_nbResult').data('cgi'),'O');
329			});
330		});
331	}
332
333    /***** Les liens qui ne sont pas des liens, au click, on change la classe *****/
334	if(jQuery(".moteur_imiteCheckBoxPasLien").length>0){
335		$$(".moteur_imiteCheckBoxPasLien").each(function(obj){
336            // on a déja prévu une action quand c'est une date
337            if(obj.getAttribute('id') != 'moteur_imiteCheckBoxPasDate'){
338			jQuery(obj).bind("click", function(evt){
339				if(jQuery(obj).hasClass("moteur_imitecheckbox_off")){
340					jQuery(obj).removeClass("moteur_imitecheckbox_off");
341					jQuery(obj).addClass("moteur_imitecheckbox_on");
342				}
343				else{
344					jQuery(obj).addClass("moteur_imitecheckbox_off");
345					jQuery(obj).removeClass("moteur_imitecheckbox_on");
346				}
347                //return false;
348			});
349            }
350		});
351	}
352
353    /** les liens qui ne sont pas des liens et qui permettent la recherche du type - on modifie le input hidden associé **/
354	if(jQuery(".moteur_imiteCheckBoxPasLienType").length>0){
355		$$(".moteur_imiteCheckBoxPasLienType").each(function(obj){
356			jQuery(obj).bind("click", function(evt){
357				var inputHidden = jQuery(obj).attr("data-alt");
358                var valueok = jQuery(obj).attr("data-valueok");
359                if(!valueok) valueok = 'o';
360				if($(inputHidden).value==valueok){
361					$(inputHidden).value="n";
362				}
363				else{
364					$(inputHidden).value=valueok;
365				}
366               // return false;
367			});
368		});
369	}
370	if(jQuery(".moteur_imiteCheckBoxPasLienChangeValue").length>0){
371        $$(".moteur_imiteCheckBoxPasLienChangeValue").each(function (obj) {
372            jQuery(obj).bind("click", function (evt) {
373                if (jQuery(obj).attr("alt")) {
374                    var inputHidden = jQuery(obj).attr("alt");
375                }
376                else if (jQuery(obj).attr("data-alt").length > 0)
377                    var inputHidden = jQuery(obj).attr("data-alt");
378                var valueok = jQuery(obj).attr("data-valueok");
379                if (!valueok)
380                    valueok = 'o';
381                if ($(inputHidden).value == valueok) {
382                    $(inputHidden).value = "n";
383                    jQuery('input[name="'+jQuery(this).attr('data-cgi')+'"]').val('n');
384                    jQuery(this).find(".sp_nbResult").attr("data-valeur","n");
385                }
386                else {
387                    $(inputHidden).value = valueok;
388                    jQuery('input[name="'+jQuery(this).attr('data-cgi')+'"]').val(valueok);
389                    jQuery(this).find(".sp_nbResult").attr("data-valeur",valueok);
390                }
391                jQuery("#"+inputHidden).trigger("change");
392                
393            });
394        });
395	}
396    if(jQuery(".moteur_imiteCheckBoxPasLienChangeMultiValue").length>0){
397		$$(".moteur_imiteCheckBoxPasLienChangeMultiValue").each(function(obj){
398			jQuery(obj).bind("click", function(evt){
399				if(jQuery(obj).attr("alt")){
400                    var inputHidden = jQuery(obj).attr("alt");
401                } 
402				else if(jQuery(obj).attr("data-alt").length > 0) var inputHidden = obj.getAttribute("data-alt");
403				if($(inputHidden).value=="o"){
404					$(inputHidden).value="n";
405                    var inputsAchanger = obj.getAttribute("data-inputsachanger");
406                    tabInputs = inputsAchanger.split(";");
407                    tabInputs.each(function(inpt){
408                        $(inpt).value="n";
409                        jQuery("*[data-alt="+inpt+"]").removeClass("moteur_imitecheckbox_on").addClass("moteur_imitecheckbox_off");
410                    });
411				}
412				else{
413					$(inputHidden).value="o";
414				}
415                //return false;
416			});
417		});
418	}
419
420    /**** spécificité du checkbox pour "pas de date de séjour" ***/
421    if($("moteur_imiteCheckBoxPasDate")){
422        jQuery("moteur_imiteCheckBoxPasDate").bind("click",function(evt){
423            $("moteur_inptDateDeb").value="";
424            $("moteur_selectDuree").value="";
425            if(jQuery("moteur_imiteCheckBoxPasDate").hasClass("moteur_imitecheckbox_on")){
426                jQuery("moteur_imiteCheckBoxPasDate").addClass("moteur_imitecheckbox_off");
427                jQuery("moteur_imiteCheckBoxPasDate").removeClass("moteur_imitecheckbox_on");
428            }else{
429                jQuery("moteur_imiteCheckBoxPasDate").addClass("moteur_imitecheckbox_on");
430                jQuery("moteur_imiteCheckBoxPasDate").removeClass("moteur_imitecheckbox_off");
431            }
432        });
433    }
434
435    /**** spécificité du checkbox pour "inclure les hébergements sans dispo" ***/
436    if($("moteur_CheckBoxAvecSansDispo")){
437        jQuery("moteur_CheckBoxAvecSansDispo").bind("click",function(evt){
438            $("moteur_inptDateDeb").value="";
439            $("moteur_selectDuree").value="";
440        });
441    }
442
443
444    /***** Initialisation autocompleter lieu *****/
445    if($("moteur_inptTextLieu")){
446        $("moteur_inptTextLieu").onfocus = function(evt){
447            $("moteur_inptTextLieu").value="";
448            $("moteur_inptTextLieuHidden").value="";
449            if($("moteur_spanTextLieu_infotour")){
450               $("moteur_spanTextLieu_infotour").innerHTML = ''; 
451            }
452        };
453        $("moteur_inptTextLieu").onblur = function(evt){
454            if($("moteur_inptTextLieu").value==""){
455                $("moteur_inptTextLieu").value=$("moteur_inptTextLieu").getAttribute("title");
456                $("moteur_inptTextLieuHidden").value="";
457                $$(".moteur_selectRayon").each(function(obj){
458                    obj.value="0";
459                    obj.disabled=true;
460                });
461            }			
462        };
463        if($("moteur_divRechercheLieuAvecLien")){
464            window.setListeByLieuSelect = function(li){
465                var lieu = li.getAttribute("valreel");
466                var cgi = li.getAttribute("cgi");
467                var val_cgi = li.getAttribute("val_cgi");
468                var nb = li.getAttribute("nb");
469                $("moteur_inptTextLieu").value=lieu;
470                $("moteur_inptTextLieuHidden").setAttribute("name",cgi);
471                $("moteur_inptTextLieuHidden").setAttribute("value",val_cgi);              
472            }
473            setAutoCompleterByLieu("moteur_inptTextLieu","moteur_divLieuAutoComplete","lien");
474        }
475        else if($("moteur_divRechercheLieuSansLien")){
476            window.setListeByLieuSelect = function(li){
477                var lieu = li.getAttribute("valreel");
478                var cgi = li.getAttribute("cgi");
479                var val_cgi = li.getAttribute("val_cgi");
480				var nb = li.getAttribute("nb");
481                if(li.childElements('span').length > 1 && $("moteur_spanTextLieu_infotour")){
482                    $("moteur_spanTextLieu_infotour").innerHTML = li.childElements('span')[1].innerHTML;
483                }
484                $("moteur_inptTextLieu").value=lieu;
485                $("moteur_inptTextLieuHidden").setAttribute("name",cgi);
486                $("moteur_inptTextLieuHidden").setAttribute("value",val_cgi);
487                if(cgi=="INSEE" || cgi=="insee"){
488                    $$(".moteur_selectRayon").each(function(obj){
489                        obj.disabled=false;
490						if(nb=="0") obj.value="10";
491                    });
492                }
493                else{
494                    $$(".moteur_selectRayon").each(function(obj){
495                        obj.value="0";
496                        obj.disabled=true;						
497                    });
498                }
499            }
500            if(jQuery("#moteur_divRechercheLieuSansLien").attr("data-priseEnCompteCriteres") == "false"){
501                var priseEnCompteCrits = false;
502            } 
503            else {
504                priseEnCompteCrits = true;
505            }
506            if(jQuery("#moteur_divRechercheLieuSansLien").attr("data-avecinfostour") == "false"){
507                var avecinfostour = false;
508            } 
509            else {
510                avecinfostour = true;
511            }
512            var avecInseeAffiche = false;
513            if(jQuery('#moteur_divRechercheLieuSansLien').data('avec-insee-affiche') === true){
514                avecInseeAffiche = true;
515            }
516            var avecCPAffiche = false;
517            if(jQuery('#moteur_divRechercheLieuSansLien').data('avec-cp-affiche') === true){
518                avecCPAffiche = true;
519            }
520            setAutoCompleterByLieu("moteur_inptTextLieu", "moteur_divLieuAutoComplete", "", priseEnCompteCrits, avecinfostour, avecInseeAffiche, avecCPAffiche);
521        }
522    }
523
524    /***** Initialisation de la reglette de budget maximum *****/
525    if($("moteur_divDudgetMaxi")){
526        var slider = $("moteur_sliderBudgetMaxiContent");
527
528        var vals=new Array();
529        for (var i=50;i<=2500;i+=50) vals.push(i);
530
531        if($("moteur_hiddenPxMax").value) var valeurEnCour = $("moteur_hiddenPxMax").value;
532        else var valeurEnCour = 1500;
533
534        new Control.Slider(slider.down('.moteur_handle'), slider, {
535            range: $R(50, 2500),
536            sliderValue: valeurEnCour,
537            values: vals,
538            onSlide: function(value) {
539                $("moteur_spanTitreBudgetMaxiInfoPrix").innerHTML = value+" &euro;";
540            },
541            onChange: function(value) {
542                var url = document.location.href;
543                document.location.href = getUrlWithLstParam(url,"pxmax",value.toString());
544                moteur_affMessageLoadingMoteur();
545            }
546        });
547    }
548
549    /***** Initialisation de la reglette budget maxi avec jsiler *****/
550    if(jQuery("#sliderOnlyMaxi").length>0){
551        if(jQuery("#moteur_inptBudgetMaxiJsliderFrom").length>0) var sliderFrom = parseInt(jQuery("#moteur_inptBudgetMaxiJsliderFrom").attr("value"));
552        if(jQuery("#moteur_inptBudgetMaxiJsliderTo").length>0) var sliderTo = parseInt(jQuery("#moteur_inptBudgetMaxiJsliderTo").attr("value"));
553        if(jQuery("#moteur_inptBudgetMaxiJsliderStep").length>0) var sliderStep = parseInt(jQuery("#moteur_inptBudgetMaxiJsliderStep").attr("value"));
554        jQuery("#sliderOnlyMaxi").slider({
555            from: sliderFrom,
556            to: sliderTo,
557            step: sliderStep,
558            round: 0,
559            dimension: '&nbsp;€',
560            callback : function(value){
561                var url = document.location.href;
562                if(jQuery("#moteur_inptUrlListe").length>0 && jQuery("#moteur_inptUrlListe").val()) url += jQuery("#moteur_inptUrlListe").val();
563                document.location.href = getUrlWithLstParam(url,jQuery("#sliderOnlyMaxi").data('cgi'),value);
564                moteur_affMessageLoadingMoteur();
565            }
566        });
567    }
568
569    /***** Initialisation de la reglette de budget en reglette (mini-maxi) *****/
570    moteur_initRegletteMiniMaxi();
571
572    /***** Initialisation de la reglette de confort en reglette (mini-maxi) *****/
573    if($("moteurInptConfortMinMax")){
574        var from = parseInt($("moteurInptConfortFrom").value);
575        var to = parseInt($("moteurInptConfortTo").value);
576        var step = parseInt($("moteurInptConfortStep").value);
577        eval("scale = " + $('moteurInptConfortScale').value);
578        jQuery("#moteurInptConfortMinMax").slider({
579            from: from,
580            to: to,
581            step: step,
582            scale: scale,
583            smooth: false,
584            round: 0,
585            dimension: "&nbsp;$",
586            limits : false,
587            callback : function(value){
588                var tabEpi = value.split(";");
589                var min = tabEpi[0];
590                var max = tabEpi[1];
591                if(min!=jQuery("#moteurInptFromInit").val() || max!=jQuery("#moteurInptToInit").val()){
592                    var epiMin, epiMax;
593
594                    if(min=="2")epiMin="3";
595                    else if(min=="3")epiMin="5";
596                    else epiMin=min;
597
598                    if(max=="2")epiMax="3";
599                    else if(max=="3")epiMax="5";
600                    else epiMax=max;
601
602                    var url = document.location.href;
603                    url = getUrlWithLstParam(url,"epi_min",epiMin);
604                    document.location.href = getUrlWithLstParam(url,"epi_max",epiMax);
605                    moteur_affMessageLoadingMoteur();
606                }
607            }
608        });
609    /*var slider = $("moteur_sliderConfortregletteContent");
610
611		var valuePossible;
612		var valeurMax, valeurMin;
613		
614		eval("valuePossible = " + $("moteur_hiddenConfortEtapeValue").value);
615		
616		
617		valeurMax=valuePossible[(valuePossible.length-1)];
618		valeurMin=valuePossible[0];
619
620		var valeurEnCourMax = parseInt($("moteur_inpt_epiMax").value);
621		var valeurEnCourMin = parseInt($("moteur_inpt_epiMin").value);
622
623		var vals=new Array();
624		valuePossible.each(function(val){
625			vals.push(val);
626		})
627		//for (var i=valeurMin;i<=valeurMax;i+=valeurMin) vals.push(i);
628		
629		//le moteur maxi
630		new Control.Slider(slider.down('#moteur_slider_epiMaxi'), slider, {
631		  range: $R(valeurMin, valeurMax),
632		  sliderValue: valeurEnCourMax,
633		  values: vals,
634		  onSlide: function(value) {
635			
636		  },
637		  onChange: function(value) {
638			var url = document.location.href;
639			document.location.href = getUrlWithLstParam(url,"epi_max",value.toString());
640			moteur_affMessageLoadingMoteur();
641		  }
642		});
643		//le moteur mini
644
645		new Control.Slider(slider.down('#moteur_slider_epiMini'), slider, {
646		  range: $R(valeurMin, valeurMax),
647		  sliderValue: valeurEnCourMin,
648		  values: vals,
649		  onSlide: function(value) {
650			
651		  },
652		  onChange: function(value) {
653			var url = document.location.href;
654			document.location.href = getUrlWithLstParam(url,"epi_min",value.toString());
655			moteur_affMessageLoadingMoteur();
656		  }
657		});*/
658    }
659	
660    /***** Initialisation de la reglette de capacité en regelette (mini-maxi) **
660***/
661    if($("moteur_divCapaciteReglette")){
662        var slider = $("moteur_sliderCapaciteContent");
663
664        var valeurMax, valeurMin;
665        if($("moteur_hiddenCapaciteMaxReglette").value)valeurMax=parseInt($("moteur_hiddenCapaciteMaxReglette").value);
666        else valeurMax=15;
667        if($("moteur_hiddenCapaciteMinReglette").value)valeurMin=parseInt($("moteur_hiddenCapaciteMinReglette").value);
668        else valeurMin=1;
669
670        if($("moteur_hiddenCapaciteMax").value)var valeurEnCourMax = parseInt($("moteur_hiddenCapaciteMax").value);
671        else var valeurEnCourMax = valeurMax;
672        if($("moteur_hiddenCapaciteMini").value)var valeurEnCourMin = parseInt($("moteur_hiddenCapaciteMini").value);
673        else var valeurEnCourMin = valeurMin;
674
675        var vals=new Array();
676        for (var i=valeurMin;i<=valeurMax;i+=valeurMin) vals.push(i);
677		
678        //la capacité maxi
679        new Control.Slider(slider.down('#moteur_sliderCapaciteMaxi'), slider, {
680            range: $R(valeurMin, valeurMax),
681            sliderValue: valeurEnCourMax,
682            values: vals,
683            onSlide: function(value) {
684                $("spn_budgetInfosCapaciteMax").innerHTML = value;
685            },
686            onChange: function(value) {
687                var url = document.location.href;
688                document.location.href = getUrlWithLstParam(url,"nbp_max",value.toString());
689                moteur_affMessageLoadingMoteur();
690            }
691        });
692        //la capacité mini
693
694        new Control.Slider(slider.down('#moteur_sliderCapaciteMini'), slider, {
695            range: $R(valeurMin, valeurMax),
696            sliderValue: valeurEnCourMin,
697            values: vals,
698            onSlide: function(value) {
699                $("spn_budgetInfosCapaciteMin").innerHTML = value;
700            },
701            onChange: function(value) {
702                var url = document.location.href;
703                document.location.href = getUrlWithLstParam(url,"nbp_min",value.toString());
704                moteur_affMessageLoadingMoteur();
705            }
706        });
707    }
708
709    /***** Initialisation de la reglette de nombre de chambre en regelette (mini-maxi) *****/
710    if($("moteur_divChambreReglette")){
711        var slider = $("moteur_sliderChambreContent");
712
713        var valeurMax, valeurMin;
714        if($("moteur_hiddenChambreMaxReglette").value)valeurMax=parseInt($("moteur_hiddenChambreMaxReglette").value);
715        else valeurMax=15;
716        if($("moteur_hiddenChambreMinReglette").value)valeurMin=parseInt($("moteur_hiddenChambreMinReglette").value);
717        else valeurMin=1;
718
719        if($("moteur_hiddenChambreMax").value)var valeurEnCourMax = parseInt($("moteur_hiddenChambreMax").value);
720        else var valeurEnCourMax = valeurMax;
721        if($("moteur_hiddenChambreMini").value)var valeurEnCourMin = parseInt($("moteur_hiddenChambreMini").value);
722        else var valeurEnCourMin = valeurMin;
723
724        var vals=new Array();
725        for (var i=valeurMin;i<=valeurMax;i+=valeurMin) vals.push(i);
726		
727        //le nombre de chambre maxi
728        new Control.Slider(slider.down('#moteur_sliderChambreMaxi'), slider, {
729            range: $R(valeurMin, valeurMax),
730            sliderValue: valeurEnCourMax,
731            values: vals,
732            onSlide: function(value) {
733                $("spn_budgetInfosChambreMax").innerHTML = value;
734            },
735            onChange: function(value) {
736                var url = document.location.href;
737                document.location.href = getUrlWithLstParam(url,"nbchb_max",value.toString());
738                moteur_affMessageLoadingMoteur();
739            }
740        });
741        //le nombre de chambre mini
742
743        new Control.Slider(slider.down('#moteur_sliderChambreMini'), slider, {
744            range: $R(valeurMin, valeurMax),
745            sliderValue: valeurEnCourMin,
746            values: vals,
747            onSlide: function(value) {
748                $("spn_budgetInfosChambreMin").innerHTML = value;
749            },
750            onChange: function(value) {
751                var url = document.location.href;
752                document.location.href = getUrlWithLstParam(url,"nbchb_min",value.toString());
753                moteur_affMessageLoadingMoteur();
754            }
755        });
756    }
757	
758    /** Calendrier **/
759    if($("moteur_inptDateDeb")){
760        var chaineJoursArrivee = jQuery('#moteur_inptDateDeb').attr('data-joursArrivee') || false;
761        var dateDebChaineJoursArrivee = false;
762        if(chaineJoursArrivee){
763            var formatDate = 'dd/mm/yy';
764            dateDebChaineJoursArrivee = jQuery('#moteur_inptDateDeb').attr('data-debut');
765            window.paramsJoursArriveeGeneral = {chaineJoursArrivee:chaineJoursArrivee,dateDebChaineJoursArrivee:dateDebChaineJoursArrivee};
766        }
767        jQuery("#moteur_inptDateDeb").click(function(evt){
768            if(jQuery("#moteur_inptDateDeb").val()==jQuery("#moteur_inptDateDeb").attr("data-defaut"))jQuery("#moteur_inptDateDeb").val('');
769            var langue = jQuery("body").attr("data-langue");
770            setCalendrierGeneral("","1",langue,"","moteur_divCalendrierDebutContent",moteur_clicCalendDateDeb,"moteur_inptDateDeb","","","moteur_selectDuree","1","",6,$("moteur_inptDateDeb").value,$("moteur_selectDuree").value);
771            
772            if(jQuery('#moteur_divCalendrierDebut').length>0 && jQuery('#moteur_divCalendrierDebut').is(':hidden')){
773                jQuery('#moteur_divCalendrierDebut').show('fast');
774            } 
775            else if(jQuery('#moteur_divCalendrierDebut').length>0){
776                jQuery('#moteur_divCalendrierDebut').hide('fast');
777            } 
778        });
779        jQuery("#moteur_inptDateDeb").blur(function(evt){
780            if(jQuery("#moteur_inptDateDeb").val()=="") jQuery("#moteur_inptDateDeb").val(jQuery("#moteur_inptDateDeb").attr("data-defaut"));
781        });
782        if(jQuery('#moteurBoutonResetDate').length>0){
783            jQuery('#moteurBoutonResetDate').click(function(){
784                if(jQuery("#moteur_inptDateDeb").val()==jQuery("#moteur_inptDateDeb").attr("data-defaut")){
785                    return false;
786                    
787                }
788                jQuery('#moteur_inptDateDeb').val('N');
789                if(jQuery("#moteur_frmDateNbj")){
790                    jQuery("#moteur_frmDateNbj").submit();
791                }
792            });
793        }
794    }
795    if($("moteur_imgCalendDateDeb")){ // calendrier avec simplement date de début et durée de séjour <¤moteur{div:moteur_date-nbj}¤>
796        jQuery("#moteur_imgCalendDateDeb").click(function(evt){
797			if(jQuery("#moteur_selectDuree").length>0 && jQuery("#moteur_selectDuree").val()!='') var duree = jQuery('#moteur_selectDuree').val();
798			else var duree = 1;
799            var langue = jQuery("body").attr("data-langue");
800            setCalendrierGeneral("","1",langue,"","moteur_divCalendrierDebutContent",moteur_clicCalendDateDeb,"moteur_inptDateDeb","","","moteur_selectDuree","1","",6,jQuery("#moteur_inptDateDeb").val(),duree);
801
802            if(jQuery('#moteur_divCalendrierDebut').length>0 && $('moteur_divCalendrierDebut').style.display=="none") jQuery('#moteur_divCalendrierDebut').show('fast');
803            else if(jQuery('#moteur_divCalendrierDebut').length>0) jQuery('#moteur_divCalendrierDebut').show('fast');
804        });
805    }
806	
807    if(jQuery("#moteur_CalenddateDeb").length>0){
808        jQuery("#moteur_CalenddateDeb, #moteur_imgCalendDebutFinDeb").bind("click",function(){
809            setCalendrierGeneral("","1","","","moteur_calendrierDebMoteurContent",moteur_clicCalendDateDebut,"moteur_CalenddateDeb","","","inpt_frmBandeau_nbjInit","1","",6,$("moteur_CalenddateDeb").value,window.dureeSejour);
810            if(jQuery("#moteur_calendrierDebMoteur").is(":hidden")){
811                if(jQuery("#moteur_CalenddateDeb").val()==jQuery("#moteur_CalenddateDeb").attr("data-defaut")) jQuery("#moteur_CalenddateDeb").val("");
812                if(jQuery("#moteur_CalenddateFin").val()=="") jQuery("#moteur_CalenddateFin").val(jQuery("#moteur_CalenddateFin").attr("data-defaut"));
813                jQuery("#moteur_calendrierFinMoteur").fadeOut();
814                jQuery("#moteur_calendrierDebMoteur").fadeIn();
815            }
816            else{
817                if(jQuery("#moteur_CalenddateDeb").val()=="") jQuery("#moteur_CalenddateDeb").val(jQuery("#moteur_CalenddateDeb").attr("data-defaut"));
818                jQuery("#moteur_calendrierDebMoteur").fadeOut();
819            }
820        });
821    }
822    if(jQuery("#moteur_CalenddateFin").length>0){
823        jQuery("#moteur_CalenddateFin, #moteur_imgCalendDebutFinFin").bind("click",function(){
824			if(jQuery("#moteur_CalenddateFin").val().length>0 && jQuery("#moteur_CalenddateFin").val()!=jQuery("#moteur_CalenddateFin").attr("data-defaut") && jQuery("#moteur_CalenddateDeb").val().length>0 && jQuery("#moteur_CalenddateDeb").val()!=jQuery("#moteur_CalenddateDeb").attr("data-defaut")){
825				var ObjDateDeb = new OBJDate(jQuery("#moteur_CalenddateDeb").val());
826				var ObjDateFin = new OBJDate(jQuery("#moteur_CalenddateFin").val());
827				var duree = ObjDateFin.getNbJourEcartWithOBJDate(ObjDateDeb,"N");
828			}
829			else{
830				var duree = jQuery("#moteur_CalenddateDeb").attr("data-duree");
831			}
832            setCalendrierGeneral("","1","","","moteur_calendrierFinMoteurContent",moteur_clicCalendDateFin,"moteur_CalenddateFin","","","inpt_frmBandeau_nbjInit","1","",6,$("moteur_CalenddateDeb").value,duree);
833            if(jQuery("#moteur_calendrierFinMoteur").is(":hidden")){
834                if(jQuery("#moteur_CalenddateFin").val()==jQuery("#moteur_CalenddateFin").attr("data-defaut")) jQuery("#moteur_CalenddateFin").val("");
835                if(jQuery("#moteur_CalenddateDeb").val()=="") jQuery("#moteur_CalenddateDeb").val(jQuery("#moteur_CalenddateDeb").attr("data-defaut"));
836                jQuery("#moteur_calendrierDebMoteur").fadeOut();
837                jQuery("#moteur_calendrierFinMoteur").fadeIn();
838            }
839            else{
840                if(jQuery("#moteur_CalenddateFin").val()=="") jQuery("#moteur_CalenddateFin").val(jQuery("#moteur_CalenddateFin").attr("data-defaut"));
841                jQuery("#moteur_calendrierFinMoteur").fadeOut();
842            }
843        });
844    }
845	
846    if(jQuery("#moteur_CalenddateDebOnChange").length>0){
847        jQuery("#moteur_CalenddateDebOnChange, #moteur_imgCalendDebutFinDebOnChange").bind("click",function(){
848            var langue = "";
849            if(jQuery("#moteur_CalenddateDebOnChange").attr("data-langue")) langue = jQuery("#moteur_CalenddateDebOnChange").attr("data-langue");
850
851            setCalendrierGeneral("","1",langue,"","moteur_calendrierDebMoteurContent",moteur_clicCalendDateDebut,"moteur_CalenddateDebOnChange","","","inpt_frmBandeau_nbjInit","1","",6,$("moteur_CalenddateDebOnChange").value,window.dureeSejour);
852            if(jQuery("#moteur_calendrierDebMoteur").is(":hidden")){
853                if(jQuery("#moteur_CalenddateDebOnChange").val()==jQuery("#moteur_CalenddateDebOnChange").attr("data-defaut")) jQuery("#moteur_CalenddateDebOnChange").val("");
854                if(jQuery("#moteur_CalenddateFinOnChange").val()=="") jQuery("#moteur_CalenddateFinOnChange").val(jQuery("#moteur_CalenddateFinOnChange").attr("data-defaut"));
855                jQuery("#moteur_calendrierFinMoteur").fadeOut();
856                jQuery("#moteur_calendrierDebMoteur").fadeIn();
857            }
858            else{
859                if(jQuery("#moteur_CalenddateDebOnChange").val()=="") jQuery("#moteur_CalenddateDebOnChange").val(jQuery("#moteur_CalenddateDebOnChange").attr("data-defaut"));
860                jQuery("#moteur_calendrierDebMoteur").fadeOut();
861            }
862        });
863    }
864    if(jQuery("#moteur_CalenddateFinOnChange").length>0){
865        jQuery("#moteur_CalenddateFinOnChange, #moteur_imgCalendDebutFinFinOnChange").bind("click",function(){
866            var langue = "";
867            if(jQuery("#moteur_CalenddateDebOnChange").attr("data-langue")) langue = jQuery("#moteur_CalenddateDebOnChange").attr("data-langue");
868            setCalendrierGeneral("","1",langue,"","moteur_calendrierFinMoteurContent",moteur_clicCalendDateFin,"moteur_CalenddateFinOnChange","","","inpt_frmBandeau_nbjInit","1","",6,$("moteur_CalenddateFinOnChange").value,window.dureeSejour);
869            if(jQuery("#moteur_calendrierFinMoteur").is(":hidden")){
870                if(jQuery("#moteur_CalenddateFinOnChange").val()==jQuery("#moteur_CalenddateFinOnChange").attr("data-defaut")) jQuery("#moteur_CalenddateFinOnChange").val("");
871                if(jQuery("#moteur_CalenddateDebOnChange").val()=="") jQuery("#moteur_CalenddateDebOnChange").val(jQuery("#moteur_CalenddateDebOnChange").attr("data-defaut"));
872                jQuery("#moteur_calendrierDebMoteur").fadeOut();
873                jQuery("#moteur_calendrierFinMoteur").fadeIn();
874            }
875            else{
876                if(jQuery("#moteur_CalenddateFinOnChange").val()=="") jQuery("#moteur_CalenddateFinOnChange").val(jQuery("#moteur_CalenddateFinOnChange").attr("data-defaut"));
877                jQuery("#moteur_calendrierFinMoteur").fadeOut();
878            }
879        });
880    }
881
882
883
884    if($("moteur_frmDateNbj")){
885        $("moteur_frmDateNbj").onsubmit = function(evt){
886            if($("moteur_selectDuree") && $("moteur_inptDateDeb") && $("moteur_inptDateDebValueDefaut") && $("moteur_imiteCheckBoxPasDate")){
887                if(!$("moteur_imiteCheckBoxPasDate").hasClassName("moteur_imitecheckbox_on")){
888                    if(($("moteur_selectDuree").value!="" && ($("moteur_inptDateDeb").value=="" || $("moteur_inptDateDeb").value==$("moteur_inptDateDebValueDefaut").value)) || ($("moteur_selectDuree").value=="" && ($("moteur_inptDateDeb").value!="" && $("moteur_inptDateDeb").value!=$("moteur_inptDateDebValueDefaut").value)) ){
889                        alertAMalibu("Vous devez définir la date de début de votre séjour et sa durée.");
890                        return false;
891                    }
892                }
893            }
894        };
895    }
896    
897    if (jQuery("#moteur_datePickerDeb").length > 0 && jQuery("#moteur_datePickerFin").length > 0) {
898        (function ($) {
899            var langue = initLangueForDatePicker();
900            //console.log("moteur.js [moteur_datePickerDeb] langue: "+langue)
901            $.datepicker.setDefaults($.datepicker.regional[langue]);
902
903            var imgCalDeb = $("#moteur_datePickerDeb").attr("data-calend");
904            var imgCalFin = $("#moteur_datePickerFin").attr("data-calend");
905            var imgCalDebText = $("#moteur_datePickerDeb").attr("data-textImage");
906            var imgCalFinText = $("#moteur_datePickerFin").attr("data-textImage");
907            var formatDate = 'dd/mm/yy';
908            var nbMois =  parseInt($("#moteur_datePickerDeb").attr("data-nbmois"));
909            
910            var ajoutJourAuto = true;
911            if($("#moteur_datePickerDeb").attr("data-ajoutjourauto")=='false'){
912                ajoutJourAuto = false;
913            }
914            
915            var slideEffect = false;
916            if($("#moteur_datePickerDeb").attr("data-slide")=='true'){
917                slideEffect = true;
918            }
919            
920            var idDivRel = '#'+$("#moteur_datePickerDeb").attr("data-divrel");
921            
922            var minDateDefaut = "d";
923            var maxDateDefaut = "";
924            var maxDateFinDefaut = "";
925            var minDateFinDefaut = "";
926            
927            if( $("#moteur_datePickerDeb").data("mindate")){
928                minDateDefaut = $("#moteur_datePickerDeb").data("mindate");
929                minDateFinDefaut = minDateDefaut;
930            }
931            if( $("#moteur_datePickerFin").data("mindate")){
932                minDateFinDefaut = $("#moteur_datePickerFin").data("mindate");
933            }
934            if( $("#moteur_datePickerDeb").data("maxdate")){
935                maxDateDefaut = $("#moteur_datePickerDeb").data("maxdate");
936            }
937            if( $("#moteur_datePickerFin").data("maxdate")){
938                maxDateFinDefaut = $("#moteur_datePickerFin").data("maxdate");
939            }
940
941            if ($("#moteur_datePickerDeb").attr("data-formadate")) {
942                formatDate = $("#moteur_datePickerDeb").attr("data-formadate");                
943            }
944            jQuery("#moteur_datePickerDeb").datepicker({
945                showOtherMonths: true,
946                selectOtherMonths: true,
947                dateFormat: formatDate,
948                defaultDate: "+1d",
949                numberOfMonths: nbMois,
950                fistDay: 1,
951                minDate:minDateDefaut,
952                maxDate:maxDateDefaut,
953                showAnim:"fadeIn",
954                duration:"normal",
955                beforeShow: function()  {
956                    $('#ui-datepicker-div').addClass('notranslate');
957                    $("body").addClass("datepickerOpen");
958                    datePicker_gereHover("dateDeb");
959                    $(".ui-datepicker-calendar td:not(.ui-datepicker-other-month)").die('mouseover');
960                    if(jQuery("#moteurPrincipalDate.dateFinSelected").length == 0){
961                        jQuery("#label_moteur_datePickerFin_externe").css('opacity','0');
962                    }
963                    if(window.moteurInitDatepicker){ // fonction définie dans recette fédé
964                        moteurInitDatepicker();
965                    }
966                },
967                onClose: function()  {
968                    $("body").removeClass("datepickerOpen");
969                    if(jQuery("#moteurPrincipalDate.dateDebSelected").length == 0 || jQuery("#moteurPrincipalDate.dateDebSelected").length == 1){
970                        if(jQuery("#ui-datepicker-div-copie").length != 0){
971                            jQuery('#ui-datepicker-div-copie').remove();
972                        }
973                    }
974                    if(jQuery('#popinLimitationDatepicker').length != 0){
975                        jQuery('#popinLimitationDatepicker').fadeOut(125);
976                    }
977                }
978            });
979            
980            console.log(minDateFinDefaut);
981            jQuery("#moteur_datePickerFin").datepicker({
982                showOtherMonths: true,
983                selectOtherMonths: true,
984                dateFormat: formatDate,
985                defaultDate: "+1d",
986                numberOfMonths: nbMois,
987                fistDay: 1,
988                minDate:minDateFinDefaut,
989                maxDate:maxDateFinDefaut,
990                showAnim:"",
991                beforeShow: function()  {
992                    $('#ui-datepicker-div').addClass('notranslate');
993                    $("body").addClass("datepickerOpen");
994                    datePicker_gereHover("dateFin");
995                    if(jQuery("#moteurPrincipalDate.dateSelected").length > 0){
996                        datepicker_videDateFin();
997                    }
998                    if(window.moteurInitDatepicker){ // fonction définie dans recette fédé
999                        moteurInitDatepicker();
1000                    }
1001                },
1002                onClose: function()  {
1003                    $("body").removeClass("datepickerOpen");
1004                    if(jQuery('#label_moteur_datePickerFin_externe').length != 0){
1005                        jQuery("#label_moteur_datePickerFin_externe").css('opacity','1');
1006                    }
1007                    if(jQuery("#moteurPrincipalDate.dateDebSelected").length > 0){
1008                        if(jQuery("#ui-datepicker-div-copie").length != 0){
1009                            jQuery('#ui-datepicker-div-copie').remove();
1010                        }
1011                    }
1012                    if(jQuery('#popinLimitationDatepicker').length != 0){
1013                        jQuery('#popinLimitationDatepicker').fadeOut(125);
1014                    }
1015                }
1016            });
1017            
1018            $('#moteur_datePickerFin,#moteur_datePickerDeb').datepicker('option', 'beforeShowDay',function(date){
1019                var dateDeb = null; var dateFin = null; var maxDate = null;
1020                if ($('#moteur_datePickerDeb').val().length > 0 && $('#moteur_datePickerDeb').val() != $('#moteur_datePickerDeb').attr('data-defaut')){
1021                    dateDeb = new OBJDate($('#moteur_datePickerDeb').val());
1022                }
1023                
1024                if($('#moteur_datePickerFin').val() &&  $('#moteur_datePickerFin').val() != $('#moteur_datePickerFin').attr('data-defaut') ){
1025                    dateFin = new OBJDate($('#moteur_datePickerFin').val());
1026                }
1027                if(!dateFin && !dateDeb){
1028                    return [true,'',''];
1029                }
1030                var jourIn = date.getDate();
1031                jourIn = jourIn.toString();
1032                if(jourIn.length<2){
1033                    jourIn = '0'+jourIn;
1034                }
1035                var moisIn = date.getMonth() +1;
1036                moisIn = moisIn.toString();
1037                if(moisIn.length<2){
1038                    moisIn = '0'+moisIn;
1039                }
1040                var dateIn = parseFloat(date.getFullYear()+moisIn+jourIn);
1041                var classe = '';
1042                if(dateDeb){
1043                    if(dateIn === parseFloat(dateDeb.toString('yyyymmdd')) ){
1044                        classe = 'tdCalendJour_arrivee';
1045                    }
1046                    maxDate = new OBJDate($('#moteur_datePickerDeb').val());
1047                    maxDate.ajoutJour(28);
1048                    if(dateIn > parseFloat(maxDate.toString('yyyymmdd'))){
1049                        classe = 'tdCalendJour_apresLimite';
1050                    }
1051                }
1052                if(dateFin){
1053                    if(dateIn === parseFloat(dateFin.toString('yyyymmdd'))){
1054                        classe = 'tdCalendJour_depart';
1055                    }
1056                }
1057                if(dateFin && dateDeb){
1058                    if(dateIn > parseFloat(dateDeb.toString('yyyymmdd')) && dateIn < parseFloat(dateFin.toString('yyyymmdd'))){
1059                        classe = 'tdCalendJour_periodeRecherchee';
1060                    }
1061                }
1062                
1063                var datePlusUn = new Date(date);
1064                datePlusUn.setDate(datePlusUn.getDate()+1);
1065                if(datePlusUn.getMonth() !== date.getMonth() ){
1066                    classe += ' jourFinMois';
1067                }
1068                var dateMoinsUn = new Date(date);
1069                dateMoinsUn.setDate(dateMoinsUn.getDate()-1);
1070                if(dateMoinsUn.getMonth() !== date.getMonth() ){
1071                    classe += ' jourDebutMois';
1072                }
1073    
1074                return [true,classe,''];
1075            });
1076            
1077            if(window.moteurInitDatepicker){ // fonction définie dans re
1077cette fédé
1078                jQuery(document).on('click', '.ui-datepicker-next', function () {
1079                    moteurInitDatepicker();
1080                });
1081            }
1082            if(window.moteurInitDatepicker){ // fonction définie dans recette fédé
1083                jQuery(document).on('click', '.ui-datepicker-prev', function () {
1084                    moteurInitDatepicker();
1085                });
1086            }
1087            
1088            if(slideEffect){
1089                jQuery(document).on('click', '.ui-datepicker-next', function () {                
1090                    //$(".ui-datepicker-title>span").hide().show(125);
1091                    $(".ui-datepicker-title").hide('slide', { direction: 'left' }, 125).show('slide', { direction: 'right' }, 125);
1092                    $(".ui-datepicker-calendar").hide('slide', { direction: 'left' }, 125).show('slide', { direction: 'right' }, 125)
1093                });
1094
1095                jQuery(document).on('click', '.ui-datepicker-prev', function () {
1096                    //$(".ui-datepicker-title>span").hide().show(125);    
1097                    $(".ui-datepicker-title").hide('slide', { direction: 'right' }, 125).show('slide', { direction: 'left' }, 125);
1098                    $(".ui-datepicker-calendar").hide('slide', { direction: 'right' }, 125).show('slide', { direction: 'left' }, 125)
1099                });
1100            }
1101
1102            // on ajoute le picto calendrier si demandé à être affiché.
1103            if (imgCalDeb.length > 0) {
1104                $("#moteur_datePickerDeb").datepicker("option", "buttonImage", imgCalDeb);
1105                $("#moteur_datePickerDeb").datepicker("option", "buttonImageOnly", true);
1106                $("#moteur_datePickerDeb").datepicker("option", "showOn", "both");
1107                $("#moteur_datePickerDeb").datepicker("option", "buttonText", imgCalDebText);
1108            }
1109            if (imgCalFin.length > 0) {
1110                $("#moteur_datePickerFin").datepicker("option", "buttonImage", imgCalFin);
1111                $("#moteur_datePickerFin").datepicker("option", "buttonImageOnly", true);
1112                $("#moteur_datePickerFin").datepicker("option", "showOn", "both");
1113                $("#moteur_datePickerFin").datepicker("option", "buttonText", imgCalFinText);
1114            }
1115
1116            if ($("#moteur_datePickerDeb").val().length > 0 && $("#moteur_datePickerDeb").val() != $("#moteur_datePickerDeb").attr("data-defaut")) {
1117                var dateDebut = new OBJDate($("#moteur_datePickerDeb").val());
1118                dateDebut.ajoutJour(1);
1119                $("#moteur_datePickerFin").datepicker("option", "minDate", dateDebut.toString());
1120                // fiche 224619 : bloquer à 28 jours max la durée de séjour
1121                if(maxDateDefaut.length==0){
1122                   var maxDate = new OBJDate($("#moteur_datePickerDeb").val());
1123                    maxDate.ajoutJour(28);
1124                    $('#moteur_datePickerFin').datepicker('option', 'maxDate', maxDate.toString());
1125                }
1126            }
1127
1128            if ($("#moteur_datePickerFin").attr("data-onChange") == "true") {
1129                $("#moteur_datePickerFin").datepicker("option", "onSelect", function (selectedDate) {
1130                    var dateFin = new OBJDate(selectedDate);
1131                    var datesValides = false;
1132                    if ($("#label_moteur_datePickerFin_externe").length > 0) {
1133                        $("#label_moteur_datePickerFin_externe .jour").html(dateFin.jour);
1134                        $("#label_moteur_datePickerFin_externe .mois").html(dateFin.getLibelleMois());
1135                        $("#label_moteur_datePickerFin_externe .annee").html(dateFin.annee);
1136                    }
1137                    if ($("#moteur_datePickerDeb").val() != $("#moteur_datePickerDeb").attr("data-defaut") && $("#moteur_datePickerDeb").val().length > 0) {
1138                        var dateDebut = new OBJDate($("#moteur_datePickerDeb").val());
1139                        if (dateFin.estApresStrictOBJDate(dateDebut)) {
1140                            datesValides = true
1141                            if ($("#div_moteur_datePickerNbj").length > 0) {
1142                                $("#div_moteur_datePickerNbj .duree").html(dateDebut.getNbJourEcartWithOBJDate(dateFin))
1143                                $("#div_moteur_datePickerNbj .titre").html($("#div_moteur_datePickerNbj").attr("data-titre"));
1144                                if (dateDebut.getNbJourEcartWithOBJDate(dateFin) == 1) {
1145                                    $("#div_moteur_datePickerNbj .libelle").html($("#div_moteur_datePickerNbj").attr("data-nuit"));
1146                                }
1147                                else if (dateDebut.getNbJourEcartWithOBJDate(dateFin) > 1) {
1148                                    $("#div_moteur_datePickerNbj .libelle").html($("#div_moteur_datePickerNbj").attr("data-nuits"));
1149                                }
1150                            }
1151                        }
1152                    }
1153                    if (datesValides) {
1154                        var url = document.location.href
1155                        var nbj = dateDebut.getNbJourEcartWithOBJDate(dateFin);
1156                        url = getUrlWithLstParam(url, "deb", $("#moteur_datePickerDeb").val());
1157                        url = getUrlWithLstParam(url, "fin", $("#moteur_datePickerFin").val());
1158                        url = getUrlWithLstParam(url, "nbj", nbj.toString());
1159                        url = getUrlWithLstParam(url, "checkdispopartiel", 'n');
1160                        
1161                        if(typeof foncQdFini_changeMoteurDatePicker === 'function'){
1162                            foncQdFini_changeMoteurDatePicker();
1163                        }
1164                        
1165                        setCookieEnregistreCritere('deb',$("#moteur_datePickerDeb").val());
1166                        setCookieEnregistreCritere('fin',$("#moteur_datePickerFin").val());
1167                        if($('#itea_page_contentListe') && $('#itea_page_contentListe').attr('data-post') === 'true' ){
1168                            refreshListeWithCgi(url+'&'+$('#itea_page_contentListe').attr('data-cgi'));
1169                        }else{
1170                            document.location.href = url;
1171                            moteur_affMessageLoadingMoteur();
1172                        }
1173                    }
1174                    else {
1175                        //dateFin.enleveJour(1);
1176                        if (!datesValides) {
1177                            $('#moteur_datePickerDeb').datepicker("setDate", dateFin.toString());
1178                            if ($("#label_moteur_datePickerDeb_externe").length > 0) {
1179                                $("#label_moteur_datePickerDeb_externe .jour").html(dateFin.jour);
1180                                $("#label_moteur_datePickerDeb_externe .mois").html(dateFin.getLibelleMoisCourt());
1181                                $("#label_moteur_datePickerDeb_externe .annee").html(dateFin.annee);
1182                            }
1183                            setTimeout(function () {
1184                                $('#moteur_datePickerDeb').focus();
1185                            }, 0);
1186                        }
1187                    }
1188                });
1189            }
1190            else {
1191                $("#moteur_datePickerFin").datepicker("option", "onSelect", function (selectedDate) {
1192                    var dateFin = new OBJDate(selectedDate);
1193                    if ($("#label_moteur_datePickerFin_externe").length > 0) {
1194                        $("#label_moteur_datePickerFin_externe .jour").html(dateFin.jour);
1195                        $("#label_moteur_datePickerFin_externe .mois").html(dateFin.getLibelleMoisCourt());
1196                        $("#label_moteur_datePickerFin_externe .annee").html(dateFin.annee);
1197                    }
1198                    //dateFin.enleveJour(1);
1199
1200                    if ($("#moteur_datePickerDeb").val().length == 0 || $("#moteur_datePickerDeb").val() == $("#moteur_datePickerDeb").attr("data-defaut")) {
1201                        $('#moteur_datePickerDeb').datepicker("setDate", dateFin.toString());
1202                        // fiche 224619 : bloquer à 28 jours max la durée de séjour
1203                        if(maxDateFinDefaut.length==0){
1204                            var maxDate = new OBJDate(selectedDate);
1205                            maxDate.ajoutJour(28);
1206                        }
1207                        $('#moteur_datePickerFin').datepicker('option', 'maxDate', maxDate.toString());
1208                        var dateMin = new OBJDate(selectedDate);
1209                        dateMin.ajoutJour(1);
1210                        
1211                        if(minDateFinDefaut.length != 0){
1212                            var dateMinDefaut = new OBJDate(minDateFinDefaut);
1213                            if(dateMinDefaut.estApresOBJDate(dateMin)){
1214                                dateMin = dateMinDefaut;
1215                            }
1216                        }
1217                        
1218                        $("#moteur_datePickerFin").datepicker("option", "minDate",dateMin.toString());
1219                        if ($("#label_moteur_datePickerDeb_externe").length > 0) {
1220                            $("#label_moteur_datePickerDeb_externe .jour").html(dateFin.jour);
1221                            $("#label_moteur_datePickerDeb_externe .mois").html(dateFin.getLibelleMoisCourt());
1222                            $("#label_moteur_datePickerDeb_externe .annee").html(dateFin.annee);
1223                        }
1224                        setTimeout(function () {
1225                            $('#moteur_datePickerDeb').focus();
1226                        }, 0);
1227                        
1228                        if ($("#div_moteur_datePickerCgiNbj").length > 0) {
1229                            var dateDebut = new OBJDate($("#moteur_datePickerDeb").val());
1230                            $("#div_moteur_datePickerCgiNbj").attr('value','1');
1231                        }                 
1232                        if(typeof foncQdFini_changeMoteurDatePicker === 'function'){
1233                            foncQdFini_changeMoteurDatePicker();
1234                        }
1235                        setCookieEnregistreCritere('fin',$("#moteur_datePickerFin").val());
1236                    } else {
1237                        if ($("#div_moteur_datePickerNbj").length > 0) {
1238                            var dateDebut = new OBJDate($("#moteur_datePickerDeb").val());
1239                            $("#div_moteur_datePickerNbj .duree").html(dateDebut.getNbJourEcartWithOBJDate(dateFin))
1240                            $("#div_moteur_datePickerNbj .titre").html($("#div_moteur_datePickerNbj").attr("data-titre"));
1241                            if (dateDebut.getNbJourEcartWithOBJDate(dateFin) == 1) {
1242                                $("#div_moteur_datePickerNbj .libelle").html($("#div_moteur_datePickerNbj").attr("data-nuit"));
1243                            }
1244                            else if (dateDebut.getNbJourEcartWithOBJDate(dateFin) > 1) {
1245                                $("#div_moteur_datePickerNbj .libelle").html($("#div_moteur_datePickerNbj").attr("data-nuits"));
1246                            }
1247                        }
1248                        if ($("#div_moteur_datePickerCgiNbj").length > 0) {
1249                            var dateDebut = new OBJDate($("#moteur_datePickerDeb").val());
1250                            $("#div_moteur_datePickerCgiNbj").attr('value',dateDebut.getNbJourEcartWithOBJDate(dateFin));
1251                        }
1252                    }
1253                    
1254                    if($(idDivRel).length>0){
1255                        if (($("#moteur_datePickerFin").val().length > 0 && $("#moteur_datePickerFin").val() != $("#moteur_datePickerFin").attr("data-defaut")) &&
1256                            ($("#moteur_datePickerDeb").val().length > 0 && $("#moteur_datePickerDeb").val() != $("#moteur_datePickerDeb").attr("data-defaut"))) {
1257                            $(idDivRel).addClass('dateSelected');
1258                        }
1259                        else{
1260                            $(idDivRel).removeClass('dateSelected');
1261                        }
1262                        
1263                        if($("#moteur_datePickerFin").val().length > 0 && $("#moteur_datePickerFin").val() != $("#moteur_datePickerFin").attr("data-defaut")){
1264                            $(idDivRel).addClass('dateFinSelected');
1265                        }
1266                        else{
1267                            $(idDivRel).removeClass('dateFinSelected');
1268                        }
1269                    }
1270                });
1271            }
1272
1273            if ($("#moteur_datePickerDeb").attr("data-onChange") == "true") {
1274                $("#moteur_datePickerDeb").datepicker("option", "onSelect", function (selectedDate) {
1275                    var dateDebut = new OBJDate(selectedDate);
1276                    var datesValides = false;
1277                    if ($("#label_moteur_datePickerDeb_externe").length > 0) {
1278                        $("#label_moteur_datePickerDeb_externe .jour").html(dateDebut.jour);
1279                        $("#label_moteur_datePickerDeb_externe .mois").html(dateDebut.getLibelleMoisCourt());
1280                        $("#label_moteur_datePickerDeb_externe .annee").html(dateDebut.annee);
1281                    }
1282                    if ($("#moteur_datePickerFin").val() != $("#moteur_datePickerFin").attr("data-defaut") && $("#moteur_datePickerFin").val().length > 0) {
1283                        var dateFin = new OBJDate($("#moteur_datePickerFin").val());
1284                        if (dateFin.estApresStrictOBJDate(dateDebut) && dateFin.getNbJourEcartWithOBJDate(dateDebut)<=28 ) { 
1285                            datesValides = true
1286                        }
1287                    }
1288                    if (datesValides) {
1289                        var url = document.location.href;
1290                        var nbj = dateDebut.getNbJourEcartWithOBJDate(dateFin);
1291                        url = getUrlWithLstParam(url, "deb", $("#moteur_datePickerDeb").val());
1292                        url = getUrlWithLstParam(url, "fin", $("#moteur_datePickerFin").val());
1293                        url = getUrlWithLstParam(url, "nbj", nbj.toString());
1294                        url = getUrlWithLstParam(url, "checkdispopartiel", 'n');
1295                        
1296                        if(typeof foncQdFini_changeMoteurDatePicker === 'function'){
1297                            foncQdFini_changeMoteurDatePicker();
1298                        }
1299                        
1300                        setCookieEnregistreCritere('deb',$("#moteur_datePickerDeb").val());
1301                        setCookieEnregistreCritere('fin',$("#moteur_datePickerFin").val());
1302                        document.location.href = url;
1303                        moteur_affMessageLoadingMoteur();
1304                    }
1305                    else {
1306                        dateDebut.ajoutJour(1);
1307                        $("#moteur_datePickerFin").datepicker("option", "minDate", dateDebut.toString());
1308                        //if (!datesValides) { // pas besoin de retester on sait déjà qu'on a pas de dates valides
1309                            $('#moteur_datePickerFin').datepicker("setDate", dateDebut.toString());
1310                            // fiche 224619 : bloquer à 28 jours max la durée de séjour
1311                            var maxDate = new OBJDate(selectedDate);
1312                            maxDate.ajoutJour(28);
1313                            $('#moteur_datePickerFin').datepicker('option', 'maxDate', maxDate.toString());
1314                            if ($("#label_moteur_datePickerFin_externe").length > 0 && ajoutJourAuto) {
1315                                $("#label_moteur_datePickerFin_externe .jour").html(dateDebut.jour);
1316                                $("#label_moteur_datePickerFin_externe .mois").html(dateDebut.getLibelleMoisCourt());
1317                                $("#label_moteur_datePickerFin_externe .annee").html(dateDebut.annee);
1318                            }
1319                            setTimeout(function () {
1320                                $('#moteur_datePickerFin').focus();
1321                            }, 0);
1322                        //}
1323                    }
1324                });
1325            }
1326            else {
1327                $("#moteur_datePickerDeb").datepicker("option", "onSelect", function (selectedDate) {
1328                    var dateDebut = new OBJDate(selectedDate);
1329                    var datesValides = false;
1330                    datepicker_videDateFin();
1331                    if ($("#label_moteur_datePickerDeb_externe").length > 0) {
1332                        $("#label_moteur_datePickerDeb_externe .jour").html(dateDebut.jour);
1333                        $("#label_moteur_datePickerDeb_externe .mois").html(dateDebut.getLibelleMoisCourt());
1334                        $("#label_moteur_datePickerDeb_externe .annee").html(dateDebut.annee);
1335                    }
1336                    if ($("#moteur_datePickerFin").val().length != 0 && $("#moteur_datePickerFin").val() != $("#moteur_datePickerFin").attr("data-defaut")) {
1337                        var dateFin = new OBJDate($("#moteur_datePickerFin").val());
1338                        if (dateFin.estApresStrictOBJDate(dateDebut) && dateFin.getNbJourEcartWithOBJDate(dateDebut)<=28) {
1339                            datesValides = true;
1340                            setCookieEnregistreCritere('deb',$("#moteur_datePickerDeb").val());
1341                            if ($("#div_moteur_datePickerNbj").length > 0) {
1342                                $("#div_moteur_datePickerNbj .duree").html(dateDebut.getNbJourEcartWithOBJDate(dateFin))
1343                                $("#div_moteur_datePickerNbj .titre").html($("#div_moteur_datePickerNbj").attr("data-titre"));
1344                                if (dateDebut.getNbJourEcartWithOBJDate(dateFin) == 1) {
1345                                    $("#div_moteur_datePickerNbj .libelle").html($("#div_moteur_datePickerNbj").attr("data-nuit"));
1346                                }
1347                                else if (dateDebut.getNbJourEcartWithOBJDate(dateFin) > 1) {
1348                                    $("#div_moteur_datePickerNbj .libelle").html($("#div_moteur_datePickerNbj").attr("data-nuits"));
1349                                }
1350                            }
1351                        }
1352                        if ($("#div_moteur_datePickerCgiNbj").length > 0) {
1353                            var dateDebut = new OBJDate($("#moteur_datePickerDeb").val());
1354                            if(ajoutJourAuto){
1355                                $("#div_moteur_datePickerCgiNbj").attr('value','1');
1356                            }
1357                        }
1358                    }
1359                    
1360                    var nbAjoutJourPourMinFin = 1;
1361                    if($("#moteur_datePickerDeb").attr("data-ajoutjourdebpourminfin").length>0){
1362                        nbAjoutJourPourMinFin = parseInt($("#moteur_datePickerDeb").attr("data-ajoutjourdebpourminfin"));
1363                    }
1364                    
1365                    dateDebut.ajoutJour(nbAjoutJourPourMinFin);
1366                    
1367                    if(minDateFinDefaut.length != 0){
1368                        var dateMinDefaut = new OBJDate(minDateFinDefaut);
1369                        if(dateMinDefaut.estApresOBJDate(dateDebut)){
1370                            dateDebut = dateMinDefaut;
1371                        }
1372                    }
1373                    
1374                    $("#moteur_datePickerFin").datepicker("option", "minDate", dateDebut.toString());
1375                    if (!datesValides){
1376                        //$('#moteur_datePickerFin').datepicker("setDate", dateDebut.toString());
1377                        // fiche 224619 : bloquer à 28 jours max la durée de séjour
1378                        if(maxDateFinDefaut.length==0){
1379                            var maxDate = new OBJDate(selectedDate);
1380                            maxDate.ajoutJour(28);
1381                            $('#moteur_datePickerFin').datepicker('option', 'maxDate', maxDate.toString());
1382                        }
1383                        if ($("#label_moteur_datePickerFin_externe").length > 0 && ajoutJourAuto) {
1384                            $("#label_moteur_datePickerFin_externe .jour").html(dateDebut.jour);
1385                            $("#label_moteur_datePickerFin_externe .mois").html(dateDebut.getLibelleMoisCourt());
1386                            $("#label_moteur_datePickerFin_externe .annee").html(dateDebut.annee);
1387                        }
1388                        setTimeout(function () {
1389                            if(window.ajouterFondDatepicker){ // fonction définie dans re
1389cette fédé
1390                                ajouterFondDatepicker();
1391                            }
1392                            if(window.initPopinLimitations){ // fonction définie dans recette fédé
1393                                initPopinLimitations();
1394                            }
1395                            $('#moteur_datePickerFin').focus();
1396                        }, 0);
1397                    }
1398                    else{
1399                        setTimeout(function () {
1400                            if(window.ajouterFondDatepicker){ // fonction définie dans recette fédé
1401                                ajouterFondDatepicker();
1402                            }
1403                            $('#moteur_datePickerFin').focus();
1404                        }, 0);
1405                    }
1406                    if ($("#div_moteur_datePickerNbj").length > 0) {
1407                        $("#div_moteur_datePickerNbj .duree").html('1');
1408                    } 
1409                    
1410                    if($(idDivRel).length>0){
1411                        if (($("#moteur_datePickerFin").val().length > 0 && $("#moteur_datePickerFin").val() != $("#moteur_datePickerFin").attr("data-defaut")) &&
1412                            ($("#moteur_datePickerDeb").val().length > 0 && $("#moteur_datePickerDeb").val() != $("#moteur_datePickerDeb").attr("data-defaut"))) {
1413                            $(idDivRel).addClass('dateSelected');
1414                        }                        
1415                        else{
1416                            $(idDivRel).removeClass('dateSelected');
1417                        }
1418                        
1419                        if($("#moteur_datePickerDeb").val().length > 0 && $("#moteur_datePickerDeb").val() != $("#moteur_datePickerDeb").attr("data-defaut")){
1420                            $(idDivRel).addClass('dateDebSelected');
1421                        }
1422                        else{
1423                            $(idDivRel).removeClass('dateDebSelected');
1424                        }
1425                    }
1426                });
1427            }
1428
1429        })(jQuery);
1430    }
1431
1432    /** recherche par référence **/
1433    if($("moteur_divRechercheExpress")){
1434        // guillaume : la fonction est reportée dans une vraie fonction en bas du fichier
1435//        window.setListeByRefSelect = function(li){
1436//            $("moteur_inptRechercheExpress").value=li.getAttribute("ref");
1437//            if($("inpt_referenceHidden")){
1438//                $("inpt_referenceHidden").value = li.getAttribute("ident");
1439//            }
1440//            jQuery("form input, form select").not("[type=submit]").each(function(){
1441//                if(jQuery(this).attr("id")!="moteur_inptRechercheExpress" && jQuery(this).attr("id")!="inpt_referenceHidden"){
1442//                    jQuery(this).val("");
1443//                }
1444//            });
1445//        }
1446        $("moteur_inptRechercheExpress").onfocus = function(evt){
1447            $("moteur_inptRechercheExpress").value="";
1448            if($("inpt_referenceHidden")){
1449                $("inpt_referenceHidden").value = "";
1450            }
1451        };
1452        var type = $("moteur_inptRechercheExpress").getAttribute("data-type");
1453        var dpt= "";
1454        if($("moteur_inptRechercheExpress").getAttribute("data-depfiltre")){
1455            dpt = $("moteur_inptRechercheExpress").getAttribute("data-depfiltre");
1456        }
1457        var libelleDansAutoCompleteur = '';
1458        if($("moteur_inptRechercheExpress").getAttribute("data-libelleDansAutoCompleteur")){
1459            libelleDansAutoCompleteur = 'false';
1460        }
1461        var gestprod = false;
1462        if (jQuery('#moteur_divRechercheExpress').attr('data-gestprod')==="true"){
1463            gestprod=true;
1464        }
1465        setAutoCompleterByRef("moteur_inptRechercheExpress","moteur_divLieuAutoCompleteReference",type,'',dpt,libelleDansAutoCompleteur,gestprod);
1466        // TODO : voir si on peut mettre l'autocompleteur de jquery sur la reference (ça sera beaucoup plus simple !!):
1467        if(jQuery('#moteur_divRechercheExpress input[name="linkToFiche"]').length>0){
1468            // pour pouvoir faire un lien direct vers la fiche, il faut que quand on récupère l'ident choisi dans inpt_referenceHidden, 
1469            // on aille chercher le lien vers la fiche 
1470            // 219143: si on clicque sur ok sans selectionner d'ident, il faut aller sur la liste
1471            var evenementSubmitSur = '#moteur_divRechercheExpress form';
1472            if(jQuery(evenementSubmitSur).length == 0){
1473                //233878 : si je n'ai pas de form à l'interieur, je prend celui à l'exterieur
1474                evenementSubmitSur = jQuery('#moteur_divRechercheExpress').closest('form');
1475            }
1476            if(jQuery(evenementSubmitSur).length > 0){
1477                jQuery(evenementSubmitSur).submit(function(event){
1478                    var ident = jQuery('#inpt_referenceHidden').val() || false;
1479                    if(ident){
1480                        event.preventDefault;
1481                        jQuery.ajax({
1482                            dataType: "json",
1483                            url: '/lib_2/ajax/infosDist.php',
1484                            data: {INFO:'getLinkToFiche',ident:ident},
1485                            async:false,
1486                            success: function(data){
1487                                var link = data.link || false;
1488                                if(link){
1489                                    document.location.href = link;
1490                                }
1491                            }
1492                        });
1493                        return false;
1494                    }
1495                    //si j'ai saisi une valeur dans l'autocompléteur, mais n'ai pas cliqué sur la référence, on va sur la liste avec lno=
1496                });
1497            }
1498        }
1499    }
1500
1501    if(jQuery("#moteur_selectAmbiance").length>0 && jQuery("#inpt_envieDe").length>0){
1502        jQuery("#moteur_selectAmbiance").change(function(){
1503            jQuery("#inpt_envieDe").attr("name",jQuery("#moteur_selectAmbiance").val());
1504            jQuery("#inpt_envieDe").val("o");
1505        });
1506    }
1507
1508	if(jQuery(".sp_nbResult").length>0){
1509		setNbResultByCgi("sp_nbResult");
1510	}
1511
1512	if(jQuery(".span_elemSimuleListe").length>0){
1513		jQuery(".span_elemSimuleListe").bind("click",function(){
1514			var input = jQuery(this).attr("data-input");
1515			var value = jQuery(this).attr("data-value");
1516
1517			jQuery("#"+input).attr("value",value);
1518
1519			jQuery(this).parents(".moteur_ulSimuleListe").prev().children(".moteur_spanValueSimuleListe").text(value);
1520
1521			jQuery(this).parents(".moteur_ulSimuleListe").hide();
1522		});
1523	}
1524	if(jQuery(".moteur_divSimuleListeContent").length>0){
1525		jQuery(".moteur_divSimuleListeContent").toggle(
1526			function(){
1527			jQuery(this).siblings(".moteur_ulSimuleListe").show();
1528			},
1529			function(){
1530			jQuery(this).siblings(".moteur_ulSimuleListe").hide();
1531			}
1532		);
1533	}
1534    
1535    if(jQuery(".a_choixTypeFede").length>0){
1536       jQuery(".a_choixTypeFede").click(function(){
1537               if(jQuery(this).next().is(":hidden")){
1538                   jQuery(this).next().show();
1539               }
1540       }); 
1541    }
1542    
1543    
1544    // --------- Moteur Multi Critere
1545    if($("moteur_inptRechercheMutli")){
1546        $("moteur_inptRechercheMutli").onfocus = function(evt){
1547            jQuery('.ui-drp-fade').click();
1548            // on ne gère pas l'historique dans le cas du moteur avec lien car ça demande à avoir un formulaire avec toutes les données dedans pour le remplir
1549            if(!$('moteur_divRechercheMultiSansLien')){
1550                return;
1551            }
1552            // on va chercher l'historique dans le localStorage
1553            var previousSearch = getPreviousSearch();
1554            if (!previousSearch instanceof Array || previousSearch.length == 0) {
1555                return;
1556            }
1557            
1558            var voyageur = '';
1559            var voyageurs = '';
1560            var recherchesRecentes = '';
1561            // on recup les 3 mots clés à utiliser pour la génération de l'historique
1562            var result;
1563            if (sessionStorage['getMotsClesHistorique'] !== undefined) {
1564                result = JSON.parse(sessionStorage['getMotsClesHistorique']);
1565            } else {
1566                jQuery.ajax({
1567                    url: '/lib_2/ajax/infosCGI.php',
1568                    type: 'POST',
1569                    dataType: 'json',
1570                    async: false,
1571                    data: {typeInfo: 'getMotsClesHistorique'},
1572                    success: function (r) {
1573                        sessionStorage.setItem('getMotsClesHistorique', JSON.stringify(r));
1574                        result = r;
1575                    }
1576                });
1577            }
1578            voyageur = result.voyageur;
1579            voyageurs = result.voyageurs;
1580            recherchesRecentes = result.recherchesRecentes;
1581
1582            jQuery('#moteur_divMultiAutoComplete').hide();
1583
1584            var htmlHistorique = '<div class="historique">' + '<p class="categorie">' + recherchesRecentes + '</p>' + '<ul class="itea_ul">';
1585            var selected = 'selected';
1586                
1587            // on parcourt les différentes recherches
1588            for (var i = 0; i < previousSearch.length; i++) {
1589                // transformation du form serialisé en object
1590                var datePassees = false;
1591                var tabCrit = previousSearch[i].split('&');
1592                console.log('previousSearch tabCrit:',tabCrit);
1593                if(tabCrit.indexOf('lieucgi=') >0 && tabCrit.indexOf('deb=') > 0){
1594                    continue;
1595                }
1596                
1597                var tabInfo = new Object();
1598                for (var j = 0; j < tabCrit.length; j++) {
1599                    var couple = tabCrit[j].split('=');
1600                    var key = couple[0];
1601                    var value = couple[1];
1602                    
1603                        if(key === 'lieucgi'){
1604                        // il arrive que le lieu soit deux fois encodé, on le désencode deux fois et on remplace les + par des espaces
1605                        tabInfo.valreel = decodeURIComponent(decodeURIComponent(value)).replace(/\+/g, ' ');
1606                        }else if(key === 'lno'){
1607                            if(tabInfo.ref === '' || tabInfo.ref === undefined){
1608                                tabInfo.ref = value;
1609                            }
1610                        }else if(jQuery.inArray(key,['INSEE','DEP','REGION_ADM','REGION_SUP','REGION','INFOTOURFD', 'INFOTOUR']) !== -1){
1611                            tabInfo.cgi = key;
1612                            tabInfo.valcgi = value;
1613                        }else if(key === 'lnoident'){
1614                            if(tabInfo.lnoident === '' || tabInfo.lnoident === undefined){
1615                                tabInfo.lnoident = value;
1616                            }
1617                        }else if(key === 'deb'){ // deb, fin et nbp_min sont toujours présent dans le form même si on ne séléctionnep as de valeur pour eux
1618                            var objDateDeb = new OBJDate(decodeURIComponent(decodeURIComponent(value)));
1619                            var today = new OBJDate();
1620                            if(objDateDeb.estAvant(today.toString()) && !objDateDeb.estEgale(today.toString())){
1621                                datePassees = true;
1622                            }
1623                            tabInfo.dateDeb = value;// defaut = ""
1624                        }else if(key === 'fin'){
1625                            var objDateFin = new OBJDate(decodeURIComponent(decodeURIComponent(value)));
1626                            tabInfo.dateFin = value;// defaut = ""
1627                        }else if(key === 'nbp_min'){
1628                            tabInfo.nbPers = value;// defaut = "n"
1629                        }else if(key === 'urlListe'){
1630                            tabInfo.url = value; // defaut = 'liste'
1631                        }else if(key === 'input-drp-arrival-name'){
1632                            tabInfo.stringArrivee = decodeURIComponent(value.replace(/\+/g, ' '));
1633                        }else if(key === 'input-drp-departure-name'){
1634                            tabInfo.stringDepart = decodeURIComponent(value.replace(/\+/g, ' '));;
1635                        }else if(key === 'longitude') {
1636                            tabInfo.longitude = value;
1637                            tabInfo.cgi = 'VILLE_ETRANGER';
1638                        }else if(key === 'latitude') {
1639                            tabInfo.latitude = value;
1640                        }
1641                    }
1642                    
1643                    if(datePassees){
1644                        tabInfo.dateDeb = '';
1645                        tabInfo.dateFin = '';
1646                        tabInfo.stringArrivee = '';
1647                        tabInfo.stringDepart = '';
1648                    }
1649                    //on regarde en premier si toutes les info de l'objet sont undefined, ça n'est pas censé arriver, 
1649c'est juste une sécurité
1650                    //on regarde ensuite si les champs ont tous leur valeur par défaut (pour éviter d'afficher une recherche vide)
1651                    if(tabInfo.ref === undefined && tabInfo.valreel === undefined && tabInfo.dateDeb === undefined && tabInfo.dateFin === undefined){
1652                        continue;
1653                    }else if(tabInfo.ref === undefined && tabInfo.dateDeb === '' && tabInfo.dateFin === '' && tabInfo.nbPers === 'n'){
1654                        continue;
1655                    }
1656
1657                    // on mets toutes les infos dans le li même si elles sont vide ou undefined
1658                    // on lui ajoute la fonction onclick fillInputsHistoriqueMoteurMulti(this)
1659                    // la class selected permet l'highlight et la navigation avec les fleches
1660                    htmlHistorique += "<li nbp_min='"+tabInfo.nbPers+"' deb='"+tabInfo.dateDeb+"' fin='"+tabInfo.dateFin+"' stringArrivee='"+tabInfo.stringArrivee+"' stringDepart='"+tabInfo.stringDepart+"' class='"+selected+"' onclick='fillInputsHistoriqueMoteurMulti(this);' data-numLi='"+parseInt(i+1)+"' data-url ='"+ tabInfo.url +"' ";
1661                    if(typeof tabInfo.valreel !== 'undefined' && tabInfo.valreel !== "" && tabInfo.valreel !== "undefined"){
1662                        htmlHistorique += ' valreel="'+tabInfo.valreel+'"';
1663                        if(typeof tabInfo.cgi !== 'undefined' && tabInfo.cgi !== ""){
1664                            htmlHistorique += ' cgi="'+decodeURIComponent(decodeURIComponent(tabInfo.cgi))+'" val_cgi="'+tabInfo.valcgi+'" ' ;
1665                        }else if(typeof tabInfo.lnoident !== 'undefined' && tabInfo.lnoident !== ""){
1666                            htmlHistorique += ' lnoident="'+tabInfo.lnoident+'"' ;
1667                        }
1668                    }else if(typeof tabInfo.ref !== 'undefined' && tabInfo.ref !== "" && tabInfo.ref !== "undefined"){
1669                        htmlHistorique += ' ref="'+tabInfo.ref+'" lnoident="'+tabInfo.lnoident+'" ' ;
1670                    }
1671                    if(typeof tabInfo.longitude !== 'undefined' && typeof tabInfo.latitude !== 'undefined') {
1672                        htmlHistorique += ' data-longitude="' + tabInfo.longitude + '" data-latitude="' + tabInfo.latitude + '"';
1673                    }
1674                    htmlHistorique += ' >';
1675                    // on génére le premier span, on met soit le lieu soit la ref dedans
1676                    htmlHistorique += '<span class="lieu">';
1677
1678                    if(tabInfo.valreel !== undefined && tabInfo.valreel !== "" && tabInfo.valreel !== "undefined"){
1679                        htmlHistorique += tabInfo.valreel;
1680                    }else if(typeof tabInfo.ref !== 'undefined' && tabInfo.ref !== "" && tabInfo.ref !== "undefined"){
1681                        htmlHistorique += tabInfo.ref;
1682                    }
1683                    htmlHistorique +='</span>';
1684
1685                    // on génére le deuxième span, on met les dates dedans
1686                    htmlHistorique += '<span class="dates"> ';
1687
1688                    if((tabInfo.dateDeb !== undefined && tabInfo.dateDeb !== "") || (tabInfo.dateFin !== undefined && tabInfo.dateFin !== "")  ){                        
1689                        if(tabInfo.dateDeb !== undefined && tabInfo.dateDeb !== "" && tabInfo.stringArrivee !== undefined && tabInfo.stringArrivee !== ""){
1690                            htmlHistorique += '<span class="dateTxt">'+tabInfo.stringArrivee+'</span>';
1691                            htmlHistorique += '<span class="dateFormatDate" style="display:none">'+objDateDeb.toString('dd.mm.yy')+'</span>';
1692                            if(tabInfo.dateFin !== undefined && tabInfo.dateFin !== "" && tabInfo.stringDepart !== undefined && tabInfo.stringDepart !== ""){ // si jamais on ne mets pas de date de fin, on ne mets pas le tiret
1693                                htmlHistorique += ' - ';
1694                            }
1695                        }
1696                        if(tabInfo.dateFin !== undefined && tabInfo.dateFin !== "" && tabInfo.stringDepart !== undefined && tabInfo.stringDepart !== ""){                            
1697                            htmlHistorique += '<span class="dateTxt">'+tabInfo.stringDepart+'</span>';
1698                            htmlHistorique += '<span class="dateFormatDate" style="display:none">'+objDateFin.toString('dd.mm.yy')+'</span>';
1699                        }
1700                    }
1701                    htmlHistorique +='</span>';
1702                    
1703                    // on génére le troisième span, on met le nombre de personnes dedans
1704                    htmlHistorique += '<span class="voyageurs">';
1705                    if(tabInfo.nbPers !== undefined && tabInfo.nbPers !== "" && tabInfo.nbPers !== "n" && parseInt(tabInfo.nbPers)>0){
1706                        htmlHistorique += tabInfo.nbPers;
1707                        if(parseInt(tabInfo.nbPers)>1){ //selon le nombre de personnes, on utilise un des deux mots clés recup par ajax
1708                            htmlHistorique += ' '+voyageurs;
1709                        }else{
1710                            htmlHistorique += ' '+voyageur;
1711                        }
1712                    }
1713                    htmlHistorique +='</span>';
1714                    
1715                    htmlHistorique += '</li>';
1716                    if(selected === "selected"){
1717                        selected="";
1718                    }
1719                }
1720                htmlHistorique += '</ul>';
1721                htmlHistorique += '</div>';
1722                jQuery('#moteur_divMultiAutoComplete').html(htmlHistorique);
1723                
1724                // on gère la navigation avec les flèches, la séléction avec entré et tab, et le changement de classe lors du survol des li
1725                (function($){
1726                var divChampChoix='moteur_divMultiAutoComplete';
1727                var moteur = $('#moteur_divMultiAutoComplete');
1728                var li = $('#'+divChampChoix+' ul>li');
1729                var liSelected = $('#'+divChampChoix+' ul').find('.selected');
1730                var next,nextNum;
1731                $(window).keydown(function(e){
1732                    
1733                    if(e.which === 40){
1734                        li.removeClass('selected');
1735                        nextNum = parseInt(liSelected.attr('data-numLi'))+1;
1736                        next = $('#'+divChampChoix+' ul').find("[data-numLi='" + nextNum + "']");
1737                        if(next.length > 0){
1738                            liSelected = next.addClass('selected');
1739                        }else{
1740                            liSelected = li.eq(0).addClass('selected');
1741                        }
1742                        if(liSelected.offset().top+liSelected.height()>moteur.offset().top+moteur.height() || liSelected.offset().top<moteur.offset().top){
1743                            moteur.scrollTo(liSelected);
1744                        }
1745                    }else if(e.which === 38){
1746                        li.removeClass('selected');
1747                        nextNum = parseInt(liSelected.attr('data-numLi'))-1;
1748                        next = $('#'+divChampChoix+' ul').find("[data-numLi='" + nextNum + "']");
1749                        if(next.length > 0){
1750                            liSelected = next.addClass('selected');
1751                        }else{
1752                            liSelected = li.last().addClass('selected');
1753                        }
1754                        if(liSelected.offset().top+liSelected.height()>moteur.offset().top+moteur.height() || liSelected.offset().top<moteur.offset().top){
1755                            moteur.scrollTo(liSelected);
1756                        }
1757                    }else if(e.which === 13){
1758                        if( $('#'+divChampChoix).is(':visible')){
1759                            e.preventDefault();
1760                            $('#'+divChampChoix+' ul').find('.selected').click();
1761                            return false;
1762                        }
1763                    }
1764                    else if(e.which === 9){
1765                        if( $('#'+divChampChoix).is(':visible')){
1766                            $('#'+divChampChoix+' ul').find('.selected').click();
1767                        }
1768                    }
1769
1770                });
1771
1772                li.on('mouseenter',function(e){
1773                        e.preventDefault();
1774                        li.removeClass('selected');
1775                        $(this).addClass('selected');
1776                    });
1777                
1778                })(jQuery);
1779                
1780                
1781                
1782                jQuery('#moteur_divMultiAutoComplete').show(); 
1783        };
1784        
1785        // gère le clic en dehors du moteur, similaire à ITEA_clicOutBody
1786        var zone = "init";//init: on initialise OU on est dans la div
1787        jQuery(".moteurMultiCritere").each(function(){
1788            jQuery(this).bind("click",function(){
1789                zone = "init";
1790            })
1791            jQuery(this).on("touchstart",function(){ // il faut aussi gérer sur appareils tactiles
1792                zone = "init";
1793            })
1794        });
1795        jQuery("body").bind("click",function(){
1796            if (zone!="init"){                
1797                if(jQuery('#moteur_divMultiAutoComplete').is(":visible")){
1798                    clickOut_moteur_inptRechercheMutli();
1799                    zone = "init";
1800                }
1801            }
1802            else{
1803                zone="out";
1804            }
1805        });
1806        jQuery("body").on("touchstart",function(){ // il faut aussi gérer sur appareils tactiles
1807            if (zone!="init"){
1808                if(jQuery('#moteur_divMultiAutoComplete').is(":visible")){
1809                    clickOut_moteur_inptRechercheMutli();
1810                    jQuery('#moteur_inptRechercheMutli').blur();
1811                    zone = "init";
1812                }
1813            }
1814            else{
1815                zone="out";
1816            }
1817        });
1818        
1819        jQuery('#moteur_inptRechercheMutli').closest('form').on('submit',function(){
1820            if(
1821                (jQuery("#moteur_inptRechercheMutli").attr('name') === 'lieucgi' && jQuery("#moteur_inptRechercheMutliHidden").attr('name') === 'lnoident') 
1822                || 
1823                (jQuery("#moteur_inptRechercheMutli").attr('name') === 'lieucgi' && jQuery('input[name="longitude"]').length > 0 && jQuery('input[name="latitude"]').length > 0)
1824                ){
1825                jQuery("#moteur_inptRechercheMutli").attr("name","");
1826            }
1827            if (jQuery("#moteur_inptRechercheMutli").attr('name') === 'lno' && jQuery("#moteur_inptRechercheMutli").attr('value') === '') {
1828                jQuery("#moteur_inptRechercheMutli").attr("name", "lieucgi");
1829            }
1830            var chaine = jQuery(this).serialize();
1831            setPreviousSearch(chaine);
1832        });
1833        
1834        $("moteur_inptRechercheMutli").onblur = function(evt){
1835            if($("moteur_inptRechercheMutli").value===""){
1836                //$("moteur_inptRechercheMutli").value=$("moteur_inptRechercheMutli").getAttribute("title"); // on laisse le placeholder faire son taf en fait. sinon souci avec traducteur auto google.
1837                $("moteur_inptRechercheMutliHidden").value="";
1838            }			
1839        };
1840        $("moteur_inptRechercheMutli").on("input",function(){
1841            console.log('moteur_initMoteurCommun input '+jQuery('#moteur_inptRechercheMutli').val());
1842            if (_timerPourMoteurLieu !== undefined) {
1843                try {
1844                    console.log('moteur_initMoteurCommun input clearTimeout _timerPourMoteurLieu');
1845                    clearTimeout(_timerPourMoteurLieu);
1846                } catch (error) {
1847                    console.log('moteur_initMoteurCommun input error clearTimeout');
1848                }
1849            }
1850            
1851            var avecLien='true';
1852            var idDivMoteur = '#moteur_divRechercheMulti';
1853            if($('moteur_divRechercheMultiSansLien')){
1854                avecLien = 'false';
1855                idDivMoteur = '#moteur_divRechercheMultiSansLien';
1856            }
1857            
1858            if(jQuery("#moteur_inptRechercheMutli").val()==''){
1859                jQuery("#moteur_inptRechercheMutliHidden").val('');
1860                jQuery("#moteur_inptRechercheMutliHidden").attr('name','');
1861            }
1862            
1863            var priseEnCompteCrits = true;
1864            if(jQuery(idDivMoteur).attr("data-priseEnCompteCriteres") === "fal
1864se"){
1865                priseEnCompteCrits = false;
1866            } 
1867            
1868            var avecinfostour = true;
1869            if(jQuery(idDivMoteur).attr("data-avecinfostour") === "false"){
1870                avecinfostour = false;
1871            } 
1872            var avecInseeAffiche = false;
1873            if(jQuery(idDivMoteur).data('avec-insee-affiche') === true){
1874                avecInseeAffiche = true;
1875            }
1876            var dpt= "";
1877            if($("moteur_inptRechercheMutli").getAttribute("data-depfiltre")){
1878                dpt = $("moteur_inptRechercheExpress").getAttribute("data-depfiltre");
1879            }
1880            var libelleDansAutoCompleteur = '';
1881            if($("moteur_inptRechercheMutli").getAttribute("data-libelleDansAutoCompleteur")){
1882                libelleDansAutoCompleteur = 'false';
1883            }
1884            var gestprod = false;
1885            if (jQuery(idDivMoteur).attr('data-gestprod')==="true"){
1886                gestprod=true;
1887            }
1888            var avecRegion = true;
1889            if (jQuery(idDivMoteur).attr('data-avecRegion') === "false") {
1890                avecRegion = false;
1891            }
1892            var avecDep = true;
1893            if (jQuery(idDivMoteur).attr('data-avecDep') === "false") {
1894                avecDep = false;
1895            }
1896            var avecMicroRegion = false;
1897            if (jQuery(idDivMoteur).attr('data-avecMicroRegion') === "true") {
1898                avecMicroRegion = true;
1899            }
1900            var nbCommunesAffiche = 3;
1901            if (parseInt(jQuery(idDivMoteur).attr('data-nbCommunesAffiche')) > 0) {
1902                nbCommunesAffiche = parseInt(jQuery(idDivMoteur).attr('data-nbCommunesAffiche'));
1903            }
1904            
1905            changeAttrNameBasedOnInputType();
1906                        
1907            // on laisse un timer 500 ms pour taper, ensuite on lance l'appel ajax
1908            // si la valeur de l'input est changé alors qu'une req ajax est en cours, on l'annule
1909            _timerPourMoteurLieu = setTimeout(function () {
1910                console.log('moteur_initMoteurCommun setAutocompleteForRechercheMulti input:'+jQuery('#moteur_inptRechercheMutli').val());
1911                setAutocompleteForRechercheMulti('moteur_inptRechercheMutli', 'moteur_divMultiAutoComplete', '', dpt, libelleDansAutoCompleteur, gestprod, priseEnCompteCrits, avecinfostour, avecInseeAffiche, avecLien, avecRegion, avecDep, avecMicroRegion, nbCommunesAffiche);
1912            }, 200);
1913            
1914        });
1915        jQuery("#moteur_divRechercheMulti, #moteur_divRechercheMultiSansLien").mouseleave(function(){
1916            jQuery("#moteur_divMultiAutoComplete li").removeClass('selected');
1917        });
1918    }
1919    
1920    if(jQuery('#divConteneur_dateRangePicker').length > 0){
1921        initDivDateRangePicker();
1922    }
1923    
1924    if(jQuery('#moteurCapaciteAdultesEtEnfants').length > 0){
1925        initMoteur_capacite_adultesEtEnfants();
1926    }
1927    
1928    if(jQuery('#moteur_divRechercheMultiParApi').length > 0){
1929        initMoteurMultiApi();
1930    }
1931   
1932}
1933
1934function changeAttrNameBasedOnInputType() {
1935    // on change le name de l'input selon sa cible, si on cherche un lieu c'est lieucgi et si on cherche une ref c'est lno
1936    var text = jQuery("#moteur_inptRechercheMutli").val();
1937    if (text.match('^[0-9a-zA-Z]+[0-9]$') !== null) {
1938        jQuery("#moteur_inptRechercheMutli").attr('name', 'lno');
1939    } else {
1940        jQuery("#moteur_inptRechercheMutli").attr('name', 'lieucgi');
1941    }
1942}
1943
1944function clickOut_moteur_inptRechercheMutli () {
1945    if(jQuery('#moteur_divMultiAutoComplete .conteneurAutoCompleteur').length > 0) {
1946        if (jQuery(jQuery('#moteur_divMultiAutoComplete .conteneurAutoCompleteur li')[0]).find('a').length == 0) {
1947            jQuery('#moteur_divMultiAutoComplete .conteneurAutoCompleteur li')[0].click();
1948        } else {
1949            jQuery('#moteur_inptRechercheMutli').val('');
1950            jQuery('#moteur_inptRechercheMutli').attr('data-valeursaisie', '');
1951        }
1952    }
1953    jQuery('#moteur_divMultiAutoComplete').hide();
1954}
1955
1956function moteur_initBoutonsAfficheMasqueCriteres(){
1957	if(jQuery(".moteur_afficheMasqueCriteres").length>0){
1958		jQuery(".moteur_afficheMasqueCriteres").each(function(){
1959            var ul = jQuery(this).attr("data-ul");
1960			var nbAffiche = parseInt(jQuery(this).attr("data-nbaffiche"));
1961			var count = 1;
1962            
1963            if (localStorage && localStorage[ul]=="open"){
1964                jQuery(this).html(jQuery(this).attr("data-lblMasque"));
1965                jQuery("#"+ul).children("li:visible").each(function(){
1966                    if(count>nbAffiche){
1967                        jQuery(this).addClass("elemAreafficher");
1968                    }
1969                    count++;
1970                });
1971            }
1972            else{
1973                jQuery("#"+ul).children("li:visible").each(function(){
1974                    if(count>nbAffiche){
1975                        jQuery(this).css("display","none");
1976                        jQuery(this).addClass("elemAreafficher");
1977                    }
1978                    count++;
1979                });
1980            }
1981            //on a un ++ en fin de boucle, il faut decrmenter.
1982            count--;
1983            //si count == nbAffiche, le + de critère ne sert à rien
1984			if(count<=nbAffiche){
1985				jQuery(this).css("display","none");
1986			}
1987			else{
1988                if (localStorage && localStorage[ul] == "open"){
1989                    jQuery(this).toggle(
1990                        function(){
1991                         jQuery("#"+ul).children(".elemAreafficher").css("display","none");                         
1992                         jQuery(this).html(jQuery(this).attr("data-lblAffiche"));
1993                         if (localStorage){
1994                             localStorage[ul] = "close";
1995                         }
1996                        },
1997                        function(){
1998                         jQuery("#"+ul).children(".elemAreafficher").css("display","");
1999                         jQuery(this).html(jQuery(this).attr("data-lblMasque"));
2000                         if (localStorage){
2001                             localStorage[ul] = "open";
2002                         }
2003                        }                        
2004                     );
2005                }
2006                else{
2007                    jQuery(this).toggle(
2008                        function(){
2009                         jQuery("#"+ul).children(".elemAreafficher").css("display","");                         
2010                         jQuery(this).html(jQuery(this).attr("data-lblMasque"));
2011                         if (localStorage){
2012                             localStorage[ul] = "open";
2013                         }
2014                        },
2015                        function(){
2016                         jQuery("#"+ul).children(".elemAreafficher").css("display","none");
2017                         jQuery(this).html(jQuery(this).attr("data-lblAffiche"));
2018                         if (localStorage){
2019                             localStorage[ul] = "close";
2020                         }
2021                        }
2022                     );
2023                }
2024			}
2025		});
2026	}
2027}
2028
2029/***** Affichage du message de loading au choix d'un nouveau critère ****/
2030function moteur_affMessageLoadingMoteur(){
2031    if($("bodyPage")){
2032        $("bodyPage").scrollTo();
2033        
2034        //var txt="<img id='imgRechargement' class='img_rechargementSurListe' style='margin:50px auto 0;display:block;' src='/config_v3/imgs_defaut/v5/transparent.gif' />";
2035        
2036        var txt = '<div class="loaderMoteur"><div><div class="cp-spinnerLoader cp-ballsLoader"></div></div></div>';
2037        
2038        // attribuer la classe "hideMeWhenReload" pour masquer une ou plusieurs zones à recharger
2039        if(jQuery(".hideMeWhenReload").length>0){
2040            jQuery.each(jQuery(".hideMeWhenReload"), function() {                
2041                affMsgAttenteParDessusInDiv(jQuery(this).attr('id'),"moteur",txt);            
2042            });            
2043        }else affMsgAttenteParDessusInDiv("bodyPage","moteur",txt);        
2044    }
2045}
2046
2047/***** clic sur le calendrier de début de séjour ****/
2048function moteur_clicCalendDateDeb(evt,jour,mois,annee,etat,jrSemaine){
2049    if($("moteur_imiteCheckBoxPasDate") && $("moteur_imiteCheckBoxPasDate").hasClassName("moteur_imitecheckbox_on")){
2050        $("moteur_imiteCheckBoxPasDate").addClassName("moteur_imitecheckbox_off");
2051        $("moteur_imiteCheckBoxPasDate").removeClassName("moteur_imitecheckbox_on");
2052    }
2053    if($("moteur_imiteCheckBoxPasDate") && $("moteur_imiteCheckBoxPasDate").hasClassName("moteur_imitecheckbox_off")){
2054        $("moteur_imiteCheckBoxPasDate").addClassName("moteur_imitecheckbox_on");
2055        $("moteur_imiteCheckBoxPasDate").removeClassName("moteur_imitecheckbox_off");
2056    }
2057    if($("moteur_inptDateDeb")) $("moteur_inptDateDeb").value=jour+"/"+mois+"/"+annee;
2058    if($('moteur_divCalendrierDebut')) jQuery('#moteur_divCalendrierDebut').hide('fast');
2059}
2060function moteur_clicCalendDateDebut(evt,jour,mois,annee,etat,jrSemaine){
2061    if(jQuery("#moteur_CalenddateDeb").length>0){
2062		jQuery("#moteur_CalenddateDeb").val(jour+"/"+mois+"/"+annee);
2063		var duree = "";
2064		if(jQuery("#moteur_CalenddateDeb").attr("data-duree")) duree = jQuery("#moteur_CalenddateDeb").attr("data-duree");
2065		else duree="7";
2066		var ObjDateDeb = new OBJDate(jour+"/"+mois+"/"+annee);
2067		ObjDateDeb.ajoutJour(duree);
2068		jQuery("#moteur_CalenddateFin").addClass("active").val(ObjDateDeb.toString());
2069	}
2070    if(jQuery('#moteur_calendrierDebMoteur').length>0) jQuery('#moteur_calendrierDebMoteur').fadeOut();
2071    if(jQuery("#moteur_CalenddateDebOnChange").length>0){
2072        jQuery("#moteur_CalenddateDebOnChange").attr('value',jour+"/"+mois+"/"+annee);
2073        // si pas de date de fin
2074        if(jQuery("#moteur_CalenddateFinOnChange").val()==jQuery("#moteur_CalenddateFinOnChange").attr('data-defaut') || jQuery("#moteur_CalenddateFinOnChange").val()==""){
2075            var ObjDateDeb = new OBJDate(jour+"/"+mois+"/"+annee);
2076			var duree = "";
2077			if(jQuery("#moteur_CalenddateDebOnChange").attr("data-duree")) duree = jQuery("#moteur_CalenddateDebOnChange").attr("data-duree");
2078			else duree="7";
2079            ObjDateDeb.ajoutJour(duree);
2080            jQuery("#moteur_CalenddateFinOnChange").attr('value',ObjDateDeb.toString());
2081        }
2082        var url = document.location.href
2083        if(jQuery("#moteur_inptUrlListe").length>0 && jQuery("#moteur_inptUrlListe").val()) url += jQuery("#moteur_inptUrlListe").val();
2084        url = getUrlWithLstParam(url,jQuery("#moteur_CalenddateDebOnChange").attr("name"),jour+"/"+mois+"/"+annee);	
2085        url = getUrlWithLstParam(url,jQuery("#moteur_CalenddateFinOnChange").attr("name"),jQuery("#moteur_CalenddateFinOnChange").attr("value"));	
2086        document.location.href = url;
2087        moteur_affMessageLoadingMoteur();
2088    }
2089}
2090function moteur_clicCalendDateFin(evt,jour,mois,annee,etat,jrSemaine){
2091    if(jQuery("#moteur_CalenddateFin").length>0) jQuery("#moteur_CalenddateFin").val(jour+"/"+mois+"/"+annee);
2092    if(jQuery("#moteur_calendrierFinMoteur").length>0)jQuery("#moteur_calendrierFinMoteur").fadeOut();
2093    if(jQuery("#moteur_CalenddateFinOnChange").length>0){
2094        jQuery("#moteur_CalenddateFinOnChange").attr('value',jour+"/"+mois+"/"+annee);
2095        //si pas de date de début
2096        if(jQuery("#moteur_CalenddateDebOnChange").attr('value')==jQuery("#moteur_CalenddateDebOnChange").attr('data-defaut')){
2097            var ObjDateDeb = new OBJDate(jour+"/"+mois+"/"+annee);
2098			var duree = "";
2099			if(jQuery("#moteur_CalenddateDebOnChange").attr("data-duree")) duree = jQuery("#moteur_CalenddateDebOnChange").attr("data-duree");
2100			else duree="7";
2101            ObjDateDeb.enleveJour(duree);
2102            jQuery("#moteur_CalenddateDebOnChange").attr('value',ObjDateDeb.toString());
2103        }
2104       
2105        var url = document.location.href
2106        if(jQuery("#moteur_inptUrlListe").length>0 && jQuery("#moteur_inptUrlListe").val()) url += jQuery("#moteur_inptUrlListe").val();
2107        url = getUrlWithLstParam(url,jQuery("#moteur_CalenddateFinOnChange").attr("name"),jour+"/"+mois+"/"+annee);	
2108        url = getUrlWithLstParam(url,jQuery("#moteur_CalenddateDebOnChange").attr("name"),jQuery("#moteur_CalenddateDebOnChange").attr("value"));	
2109        document.location.href = url;
2110        moteur_affMessageLoadingMoteur();
2111        
2112    }
2113}
2114
2115function setListeByRefSelect(li){
2116    jQuery("#moteur_inptRechercheExpress").val(jQuery(li).attr("ref"));
2117    if(jQuery("#inpt_referenceHidden").length >0){
2118        jQuery("#inpt_referenceHidden").val(jQuery(li).attr("ident"));
2119    }
2120    jQuery("form input, form select").not("[type=submit]").each(function(){
2121        if(jQuery(this).attr("id")!="moteur_inptRechercheExpress" && jQuery(this).attr("id")!="inpt_referenceHidden"){
2122            jQuery(this).val("");
2123        }
2124    });
2125}
2126
2127function setAutocompleteForRechercheMulti(idChampSaisie,divChampChoix,communeDansAutoComplet,departements,libelleDansAutoCompleteur,gestprod,priseEnCompteCrits,avecinfostour,avecInseeAffiche,avecLien,avecRegion,avecDep,avecMicroRegion,nbCommunesAffiche){
2128    (function($){
2129        if(typeof(priseEnCompteCrits) === "undefined") priseEnCompteCrits = true;
2130        if(typeof(avecinfostour) === "undefined") avecinfostour = true;
2131        if(typeof(avecInseeAffiche) === "undefined") avecInseeAffiche = false;
2132        if(typeof(avecRegion) === "undefined") avecRegion = true; 
2133        if(typeof(avecDep) === "undefined") avecDep = true;
2134        if(typeof(avecMicroRegion) === "undefined") avecMicroRegion = false;
2135        if(typeof(nbCommunesAffiche) === "undefined") nbCommunesAffiche = 3;
2136        var url="/lib_2/ajax/infosCGI.php";
2137        var valInput = $('#' + idChampSaisie).val();
2138        var moteur = $('#'+divChampChoix);        
2139        if (valInput.length === 0) {
2140            moteur.empty();
2141            moteur.hide();
2142            return;
2143        }
2144        var data = {departements : departements, valInput : valInput, typeInfo : 'AUTOCOMPLETEMULTI', avecRegion: avecRegion, avecDep: avecDep, avecMicroRegion: avecMicroRegion, nbCommunesAffiche: nbCommunesAffiche, RETURNLNKTOFICHE:true, avecinfostour: avecinfostour};
2145
2146        if(communeDansAutoComplet){
2147            data = {affComm : true };
2148        }
2149        if(libelleDansAutoCompleteur){
2150            data = {libelleDansAutoCompleteur : false };
2151        }
2152        if(gestprod){
2153            data = {RETURNREFGESTPROD : true };
2154        }
2155        if(avecLien === 'false'){
2156            data.TYPEREPONSE = 'JS';
2157        }
2158        
2159        if (_reqAjaxMoteur !== undefined) {
2160            try {
2161                _reqAjaxMoteur.abord();
2162            } catch (error) {
2163                console.log('setAutocompleteForRechercheMulti error abord');
2164            }
2165        }
2166        
2167        _reqAjaxMoteur = $.ajax({
2168                url: url,
2169                type: 'GET',
2170                data: data,
2171                beforeSend : function(){
2172                    if(moteur.find('li').length === 0){
2173                        moteur.hide();
2174                    }
2175                },
2176                success:function(rep){   
2177                    moteur.empty();
2178                    moteur.append('<div class="conteneurAutoCompleteur">'+rep+'</div>');
2179                    if(window.moteurInitAutoCompletMultiple){ // fonction définie dans recette fédé
2180                        moteurInitAutoCompletMultiple();
2181                    }
2182                    
2183                    $('#'+divChampChoix+' ul>li').each(function(){
2184                        $(this).attr('onClick','onClickLiMoteurAutoCompleteMulti(this,' + avecLien + ')');
2185                    });
2186                    if(rep.length>0){
2187                        moteur.show();
2188                    }
2189                    else{
2190                        moteur.hide();
2191                    }
2192
2193                    var li = $('#'+divChampChoix+' ul>li');
2194                    var liSelected = $('#'+divChampChoix+' ul').find('.selected');
2195                    $(window).keydown(function(e){
2196                        if(e.which === 40){
2197                            li.removeClass('selected');
2198                            nextNum = parseInt(liSelected.attr('data-numLi'))+1;
2199                            next = $('#'+divChampChoix+' ul').find("[data-numLi='" + nextNum + "']");
2200                            if(next.length > 0){
2201                                liSelected = next.addClass('selected');
2202                            }else{
2203                                liSelected = li.eq(0).addClass('selected');
2204                            }
2205                            if(liSelected.offset().top+liSelected.height()>moteur.offset().top+moteur.height() || liSelected.offset().top<moteur.offset().top){
2206                                moteur.scrollTo(liSelected);
2207                            }
2208                        }else if(e.which === 38){
2209                            li.removeClass('selected');
2210                            nextNum = parseInt(liSelected.attr('data-numLi'))-1;
2211                            next = $('#'+divChampChoix+' ul').find("[data-numLi='" + nextNum + "']");
2212                            if(next.length > 0){
2213                                liSelected = next.addClass('selected');
2214                            }else{
2215                                liSelected = li.last().addClass('selected');
2216                            }
2217                            if(liSelected.offset().top+liSelected.height()>moteur.offset().top+moteur.height() || liSelected.offset().top<moteur.offset().top){
2218                                moteur.scrollTo(liSelected);
2219                            }
2220                        }else if(e.which === 13){
2221                            if( $('#'+divChampChoix).is(':visible')){
2222                                e.preventDefault();
2223                                $('#'+divChampChoix+' ul').find('.selected').trigger('click');
2224                                return false;
2225                            }
2226                        }
2227                        else if(e.which === 9){
2228                            if( $('#'+divChampChoix).is(':visible')){
2229                                $('#'+divChampChoix+' ul').find('.selected').trigger('click');
2230                            }
2231                        }
2232                        
2233                    });
2234                    
2235                    li.on('mouseenter',function(e){
2236                        e.preventDefault();
2237                        li.removeClass('selected');
2238                        $(this).addClass('selected');
2239                    });
2240                }
2241        });
2242    })(jQuery);
2243}
2244
2245function fillInputMoteurRechercheMulti(element){
2246    (function($) {
2247        $('#moteur_inptLong').attr('name', '');
2248        $('#moteur_inptLat').attr('name', '');
2249        $('#moteur_inptRayon').attr('name', '');
2250        if(typeof $(element).attr('ref')!== 'undefined'){     
2251            $('#moteur_inptRechercheMutli').val($(element).attr('ref'));
2252            var ident = $(element).attr("ident"); 
2253            $("#moteur_inptRechercheMutliHidden").attr("name","lnoident");
2254            $("#moteur_inptRechercheMutliHidden").attr("value",ident);
2255        }else{
2256            $('#moteur_inptRechercheMutli').val($(element).attr('valreel'));
2257            changeAttrNameBasedOnInputType();
2258            var cgi = $(element).attr("cgi");
2259            if (cgi === 'VILLE_ETRANGER'){
2260                $('#moteur_inptLong').attr('name', 'longitude');
2261                $('#moteur_inptLong').val($(element).data('longitude'));
2262                $('#moteur_inptLat').attr('name', 'latitude');
2263                $('#moteur_inptLat').val($(element).data('latitude'));
2264                $('#moteur_inptRayon').attr('name', 'rayon');
2265                $('#moteur_inptRayon').val('20');
2266            } else if(typeof cgi !== 'undefined'){
2267                var val_cgi = $(element).attr("val_cgi");
2268                $("#moteur_inptRechercheMutliHidden").attr("name",cgi);
2269                $("#moteur_inptRechercheMutliHidden").attr("value",val_cgi);
2270            }else{
2271                var ident = $(element).attr("ident");
2272                $("#moteur_inptRechercheMutliHidden").attr("name","lnoident");
2273                $("#moteur_inptRechercheMutliHidden").attr("value",ident);
2274            }
2275
2276        }
2277
2278        if($(element).attr('data-url').length>0){
2279            var url = $(element).attr('data-url');
2280            if(url.split('.').pop().length === 0 || (url.split('.').pop() !== 'html' && url.split('.').pop() !== 'php')){
2281                url += '.html';
2282            }
2283            if(url.substring(0, 1) !== '/'){
2284                url = '/'+url;
2285            }
2286            $('#moteur_inptRechercheMutli').parents('form').attr('action',url);
2287            $('#urlListeHidden').val($(element).attr('data-url'));
2288        }
2289        $('#moteur_divMultiAutoComplete').hide();
2290        
2291    })(jQuery);
2292}
2293
2294function getPreviousSearch(){
2295    var pastSearches = [];
2296
2297    if(window.localStorage["pastSearches"]) {
2298         pastSearches = JSON.parse(window.localStorage["pastSearches"]);
2299    }
2300    
2301    return pastSearches;
2302}
2303
2304function setPreviousSearch(chaine){
2305    var pastSearches = [];
2306    if(window.localStorage["pastSearches"]){
2307        pastSearches = JSON.parse(localStorage["pastSearches"]);
2308        for(var i = 0; i < pastSearches.length; i++) {
2309            if(chaine === pastSearches[i]) {
2310                return ;
2311            }
2312        }
2313    }
2314    pastSearches.unshift(chaine);
2315    if(pastSearches.length > 5) { 
2316        pastSearches.pop();
2317    }
2318    
2319    window.localStorage["pastSearches"] = JSON.stringify(pastSearches);        
2320}
2321
2322function fillInputsHistoriqueMoteurMulti(element){
2323    (function($){
2324        
2325        if(typeof $(element).attr('valreel') !== 'undefined'){
2326            var lieu = $(element).attr('valreel');
2327            var cgi = $(element).attr('cgi');
2328            var valcgi = $(element).attr('val_cgi');
2329        }else if( typeof $(element).attr('ref') !== 'undefined' ){
2330            var ref = $(element).attr('ref');
2331        }
2332        var lnoident = $(element).attr('lnoident');
2333        var nbPers = $(element).attr('nbp_min');
2334        var deb = $(element).attr('deb');
2335        var fin = $(element).attr('fin');
2336        var stringArrivee = $(element).attr('stringArrivee');
2337        var stringDepart = $(element).attr('stringDepart');
2338        var url = $(element).attr('data-url');
2339        var valDefaut = jQuery('#moteur_inptRechercheMutli').attr('data-defaut');
2340        
2341        $('#moteur_inptLong').attr('name', '');
2342        $('#moteur_inptLat').attr('name', '');
2343        $('#moteur_inptRayon').attr('name', '');
2344        
2345        if(lieu !== undefined && lieu !== 'undefined' && lieu !== ''){
2346            $('#moteur_inptRechercheMutli').val(decodeURIComponent(decodeURIComponent(lieu)).replace(/\+/g,' '));
2347            $("#moteur_inptRechercheMutliHidden").attr("name",'');
2348            $("#moteur_inptRechercheMutliHidden").attr("value",'');
2349            if(cgi === 'VILLE_ETRANGER') {
2350                $('#moteur_inptLong').attr('name', 'longitude');
2351                $('#moteur_inptLong').val($(element).data('longitude'));
2352                $('#moteur_inptLat').attr('name', 'latitude');
2353                $('#moteur_inptLat').val($(element).data('latitude'));
2354                $('#moteur_inptRayon').attr('name', 'rayon');
2355                $('#moteur_inptRayon').val('20');
2356            } else if(cgi !== undefined && cgi !== 'undefined' && cgi !== '' ){
2357                $("#moteur_inptRechercheMutliHidden").attr("name",cgi);
2358                $("#moteur_inptRechercheMutliHidden").attr("value",valcgi);
2359            }else if(lnoident !== undefined && lnoident !== 'undefined' && lnoident!==''){
2360                $("#moteur_inptRechercheMutliHidden").attr("name","lnoident");
2361                $("#moteur_inptRechercheMutliHidden").attr("value",lnoident);
2362            }
2363        }else if(ref !== undefined && ref !== 'undefined' && ref !== ''){
2364            $('#moteur_inptRechercheMutli').val(ref);
2365            $("#moteur_inptRechercheMutliHidden").attr("name","lnoident");
2366            $("#moteur_inptRechercheMutliHidden").attr("value",lnoident);
2367        }else{
2368            $('#moteur_inptRechercheMutli').val(valDefaut);
2369        }
2370        
2371        if(deb !== 'undefined' && deb !== ""){
2372            deb = decodeURIComponent(decodeURIComponent(deb));
2373            $("#input-drp-start-id").val(deb);
2374            if (stringArrivee !== 'undefined' && stringArrivee !== "") {
2375                $('#input-drp-arrival-id').val(stringArrivee);
2376                if(window.setDateHisto){ // fonction définie dans re
2376cette fédé
2377                    setDateHisto();
2378                }
2379            }
2380        }
2381        else{
2382            $('#input-drp-arrival-id').val('');
2383            $("#input-drp-start-id").val('');
2384        }
2385        
2386        if(fin !== 'undefined' && fin !== ""){
2387            fin = decodeURIComponent(decodeURIComponent(fin));
2388            $("#input-drp-end-id").val(fin);
2389            if (stringDepart !== 'undefined' && stringDepart !== "") {
2390                $('#input-drp-departure-id').val(stringDepart);
2391                if(window.setDateHisto){ // fonction définie dans recette fédé
2392                    setDateHisto();
2393                }            
2394            }
2395        }else{
2396            $("#input-drp-end-id").val('');
2397            $('#input-drp-departure-id').val('');
2398            if(deb !== 'undefined' && deb !== ""){
2399                $(".drp-end-container").click();
2400            }
2401        }
2402        
2403        if(nbPers !== 'undefined' && nbPers !== "" && nbPers !== "n"){
2404            $("#moteur_selectDenbp_min").val(parseInt(nbPers));
2405            if($("#moteurPrincipalCapacite .ui-selectmenu-button").length>0){
2406                $("#moteur_selectDenbp_min").selectmenu( "refresh" );
2407            }
2408        }else{
2409            $("#moteur_selectDenbp_min").val('n');
2410            if($("#moteurPrincipalCapacite .ui-selectmenu-button").length>0){
2411                $("#moteur_selectDenbp_min").selectmenu( "refresh" );
2412            }
2413        }
2414        
2415        if(url !== 'undefined' && url !== ""){
2416            // 336664
2417            var urlDecode = decodeURIComponent(url);
2418            $('#urlListeHidden').val(urlDecode);
2419            if(urlDecode.split('.').pop().length === 0 || (urlDecode.split('.').pop() !== 'html' && urlDecode.split('.').pop() !== 'php')){
2420                urlDecode += '.html';
2421            }
2422            if(urlDecode.substring(0, 1) !== '/'){
2423                urlDecode = '/'+urlDecode;
2424            }
2425            $('#moteur_inptRechercheMutli').parents('form').attr('action',urlDecode);
2426        }else{
2427            $('#urlListeHidden').val('liste');
2428            $('#moteur_inptRechercheMutli').parents('form').attr('action','/liste.html');
2429        }
2430        
2431        if(window.setMajMoteurResponsive){ // fonction définie dans recette fédé
2432            setMajMoteurResponsive();
2433        }
2434        
2435        $('#moteur_divMultiAutoComplete').hide();
2436    })(jQuery);
2437}
2438
2439function initDatePickerMarkup(e) {
2440    (function($){
2441    $(e).datepicker('widget').find('td').mouseover(function() {
2442        currentDate = new Date($(this).attr('data-year')+"/"+(parseInt($(this).attr('data-month'))+1)+"/"+$(this).text());
2443        selectedDate = $(e).datepicker('getDate');
2444        if (selectedDate === null) {
2445            selectedDate = new Date();
2446        }
2447        allTds = $(this).parents('table.ui-datepicker-calendar').find('td');
2448        allTds.removeClass('ui-datepicker-mouseover1')
2449        found = false;
2450        if (currentDate < selectedDate) {
2451            for (i = 0; i < allTds.length; i++) {
2452                if (allTds[i] == this) {
2453                    found = true;
2454                }
2455                if ($(allTds[i]).hasClass('ui-datepicker-today') || $(allTds[i]).hasClass('ui-datepicker-current-day')) {
2456                    break;
2457                }
2458                if (found) {
2459                    $(allTds[i]).addClass('ui-datepicker-mouseover1');
2460                }
2461            }
2462        } else if (currentDate > selectedDate) {
2463            for (i = 0; i < allTds.length; i++) {
2464                if (found) {
2465                    $(allTds[i]).addClass('ui-datepicker-mouseover1');
2466                }
2467                if ($(allTds[i]).hasClass('ui-datepicker-today') || $(allTds[i]).hasClass('ui-datepicker-current-day')) {
2468                    found = true;
2469                }
2470                if (allTds[i] == this) {
2471                    break;
2472                }
2473            }
2474        }
2475    });
2476    })(jQuery);
2477}
2478
2479function refreshListeWithCgi(url){
2480    (function($){
2481        if(jQuery('#divgmap3').length > 0 && jQuery('#divgmap3').attr('data-cartedeplace') === '1'){
2482            url = getUrlAvecLstParamsGoogleMaps(url);
2483        }
2484        var params = url.substr(url.indexOf('?')+1);
2485        var baseUrl = url.substr(0,url.indexOf('?'));
2486        var tabParams = params.split('&');
2487        var tabKey= [];
2488        var html = "<form id='formRechercheListe' action='"+baseUrl+"' method='post' style='display:hidden'>";
2489        for(var i = 0; i<tabParams.length;i++){
2490            var couple = tabParams[i].split('=');
2491            var key = couple[0];
2492            var value = couple[1];
2493            
2494            if(tabKey.indexOf(key) !== -1){
2495                continue;
2496            }
2497            tabKey.push(key);
2498            
2499            html += '<input type="hidden" name="'+key+'" value="'+value+'">';
2500        }
2501        html += '</form>';
2502        $('body').append(html);
2503        
2504        
2505        $('#formRechercheListe').submit();
2506        moteur_affMessageLoadingMoteur();
2507
2508    })(jQuery);
2509}
2510
2511
2512function datePicker_gereHover(inputDate){
2513    (function($){
2514        if($('#moteur_datePickerDeb').val() && $('#moteur_datePickerDeb').val()!=$("#moteur_datePickerDeb").attr("data-defaut") && inputDate=="dateFin"){
2515            var dateDeb = new OBJDate($('#moteur_datePickerDeb').val());
2516            $(".ui-datepicker-calendar td:not(.ui-datepicker-other-month):not(.tdCalendJour_arrivee)").live('mouseover',function(){
2517                
2518                var moisHover = parseInt($(this).data('month')) + 1;
2519                var dateFin = new OBJDate($(this).find('a').text()+'/'+moisHover+'/'+$(this).data('year'));
2520
2521                $(".ui-datepicker-calendar td:not(.ui-datepicker-other-month)").each(function(){
2522                    var moisTd = parseInt($(this).data('month')) + 1;
2523                    var dateTd = new OBJDate($(this).find('a').text()+'/'+moisTd+'/'+$(this).data('year'));
2524                    if(dateTd.estComprisEntre(dateDeb,dateFin)){
2525                        $(this).addClass('tdCalendJour_periodeSurvolee');
2526                    }
2527                    else{
2528                        $(this).removeClass('tdCalendJour_periodeSurvolee');
2529                    }
2530                });
2531                
2532                if($('#moteurPrincipalDate.dateSelected ').length == 0){
2533                    if($(".ui-datepicker-calendar td.tdCalendJour_periodeSurvolee").length == 0){
2534                        $(".ui-datepicker-calendar td.tdCalendJour_arrivee").addClass('td_debSansHover');
2535                    }
2536                    else{
2537                        $(".ui-datepicker-calendar td.tdCalendJour_arrivee").removeClass('td_debSansHover');
2538                    }
2539                }
2540            });
2541            $(".ui-datepicker-calendar td:not(.ui-datepicker-other-month):not(.ui-datepicker-unselectable)").live('mouseleave',function(){
2542                $(".ui-datepicker-calendar td").each(function(){
2543                    $(this).removeClass('tdCalendJour_periodeSurvolee');
2544                });
2545                if($('#moteurPrincipalDate.dateSelected').length == 0){
2546                    if($(".ui-datepicker-calendar td.tdCalendJour_arrivee").length > 0){
2547                        $(".ui-datepicker-calendar td.tdCalendJour_arrivee").addClass('td_debSansHover');
2548                    }
2549                }
2550            });
2551        }
2552        else{
2553            $(".ui-datepicker-calendar td:not(.ui-datepicker-other-month):not(.tdCalendJour_arrivee)").die('mouseover');
2554            $(".ui-datepicker-calendar td:not(.ui-datepicker-other-month):not(.ui-datepicker-unselectable)").die('mouseleave');
2555        }
2556        setTimeout(function(){
2557            if($('#moteurPrincipalDate.dateSelected').length == 0){
2558                if($(".ui-datepicker-calendar td.tdCalendJour_arrivee").length > 0){
2559                    $(".ui-datepicker-calendar td.tdCalendJour_arrivee").addClass('td_debSansHover');
2560                }
2561            }
2562        },0);
2563    })(jQuery);
2564}
2565
2566function datepicker_videDateFin(){
2567    
2568    if(jQuery('#moteur_datePickerDeb').val() != "" && jQuery('#moteur_datePickerFin').val() != "" && jQuery('#moteur_datePickerDeb').val() != jQuery('#moteur_datePickerDeb').attr('data-defaut') && jQuery('#moteur_datePickerFin').val() != jQuery('#moteur_datePickerFin').attr('data-defaut')){
2569        var dateDebut = new OBJDate(jQuery('#moteur_datePickerDeb').val());
2570        var dateFin = new OBJDate(jQuery('#moteur_datePickerFin').val());
2571
2572        if(dateFin.estAvantOBJDate(dateDebut)){
2573            jQuery("#moteur_datePickerFin").datepicker('setDate', null);
2574            jQuery("#moteur_datePickerFin").val(jQuery("#moteur_datePickerFin").attr('data-defaut'));
2575            jQuery("#label_moteur_datePickerFin_externe").css('opacity','0');
2576            jQuery("#label_moteur_datePickerFin_externe span").each(function(){
2577                jQuery(this).text('');
2578            });
2579            jQuery("#moteurPrincipalDate").removeClass('dateSelected dateFinSelected');
2580        }
2581    }
2582}
2583
2584function initDivDateRangePicker(){
2585    
2586    var formatDate = jQuery("#divConteneur_dateRangePicker").attr('data-formatDate');
2587    var maxRange = jQuery("#divConteneur_dateRangePicker").attr('data-maxRange');
2588    var firstWeekDay = parseInt(jQuery("#divConteneur_dateRangePicker").attr('data-firstWeekDay'));
2589    var clearCross = '';
2590    
2591    var forceDepartureSelection = false;
2592    if(jQuery("#divConteneur_dateRangePicker").attr('data-forcedepartureselection') == 'true'){
2593        forceDepartureSelection = true;
2594    }
2595    
2596    if(jQuery("#divConteneur_dateRangePicker").attr('data-nextmonthimg').length > 0){
2597        var nextMonthSrc = jQuery("#divConteneur_dateRangePicker").attr('data-nextmonthimg');
2598    }else{
2599        var nextMonthSrc = '/imgs_defaut/dateRangePicker/next.svg';
2600    }
2601    if(jQuery("#divConteneur_dateRangePicker").attr('data-prevmonthimg').length > 0){
2602        var prevMonthSrc = jQuery("#divConteneur_dateRangePicker").attr('data-prevmonthimg');
2603    }else{
2604        var prevMonthSrc = '/imgs_defaut/dateRangePicker/prev.svg';
2605    }
2606    if(jQuery("#divConteneur_dateRangePicker").attr('data-avecClearCross').length > 0){
2607        if(jQuery("#divConteneur_dateRangePicker").attr('data-avecClearCross') == 'true'){
2608            var clearCross = '<div class="ui-drp-clear-cross" ><img src="../../img/css/close.svg" /></div>';
2609        }
2610    }
2611    
2612    jQuery("#divConteneur_dateRangePicker").dateRangePicker({
2613        maxRange : maxRange,
2614        previousButton : '<img alt="Mois suivant" src="'+prevMonthSrc+'" />',
2615        nextButton : '<img alt="Mois suivant" src="'+nextMonthSrc+'" />',
2616        separator : '<div class="separator"><img src="/imgs_defaut/dateRangePicker/arrow_606060.svg" alt="separator" /></div>',
2617        picto : '',
2618        clearCross: clearCross,
2619        nameStart : 'deb',
2620        nameEnd : 'fin',
2621        dateFormat : formatDate,
2622        readonly : true,
2623        allowPrevious : false,
2624        firstWeekDay : firstWeekDay,
2625        forceDepartureSelection : forceDepartureSelection
2626    },{
2627        selectedRange : dateRangePickerSelectedRange,
2628        inputsCleared : dateRangePickerInputsCleared,
2629        openingPopup : dateRangePickerOpenPopup,
2630        selectedStart : dateRangePickerSelectedStart
2631                
2632    });
2633        
2634}
2635
2636function dateRangePickerSelectedRange(){
2637    
2638    if(window.initClickDrpRangeSelected){ // fonction à définir dans look
2639        initClickDrpRangeSelected();
2640    }
2641    
2642    if(jQuery('#divConteneur_dateRangePicker[data-onchange="true"]').length>0){
2643        var nameDateDebut = jQuery('#input-drp-start-id').attr('name');
2644        var valueDateDebut = jQuery('#input-drp-start-id').val();
2645        var nameDateFin = jQuery('#input-drp-end-id').attr('name');
2646        var valueDateFin = jQuery('#input-drp-end-id').val();
2647
2648        moteur_affMessageLoadingMoteur();
2649        
2650        var urlRedirect = window.location.href;
2651        if(window.location.href.indexOf('?')==-1){
2652            urlRedirect += "?";
2653        }
2654        else{
2655            urlRedirect += "&";
2656        }
2657        urlRedirect += nameDateDebut+"="+valueDateDebut+"&"+nameDateFin+"="+valueDateFin;
2658        if(jQuery('input[name="nbj"]').length>0){
2659            var ObjDateDeb = new OBJDate(jQuery("#input-drp-start-id").val());
2660            var ObjDateFin = new OBJDate(jQuery("#input-drp-end-id").val());
2661            var ecartNbj = ObjDateDeb.getNbJourEcartWithOBJDate(ObjDateFin,true);
2662            urlRedirect += "&nbj="+ecartNbj;
2663        }
2664        window.location.href = (urlRedirect);
2665    }
2666}
2667
2668function dateRangePickerInputsCleared() {
2669    if(window.initClickDrpInputsCleared){ // fonction à définir dans look
2670        initClickDrpInputsCleared();
2671    }
2672    dateRangePickerSelectedRange();
2673}
2674
2675function dateRangePickerOpenPopup() {
2676    if(window.initDrpOpen_look){ // fonction à définir dans look
2677        initDrpOpen_look();
2678    }
2679}
2680
2681function dateRangePickerSelectedStart() {
2682    if(window.initDrpStartSelected_look){ // fonction à définir dans look
2683        initDrpStartSelected_look();
2684    }
2685}
2686
2687function onClickLiMoteurAutoCompleteMulti(element, avecLien){
2688    (function($){
2689        fillInputMoteurRechercheMulti(element);
2690
2691        if(window.initClickPropositionLieu){ // fonction définie dans recette fédé
2692            initClickPropositionLieu();
2693        }
2694
2695        if (avecLien) {
2696            var cgi, value;
2697            if(typeof $(element).attr('ref')!== 'undefined'){
2698                cgi = 'lnoident';
2699                value = $(element).attr("ident"); 
2700            }else{
2701                var cgi = $(element).attr("cgi");
2702                if(typeof cgi !== 'undefined'){
2703                    value = $(element).attr("val_cgi");
2704                }else{
2705                    cgi = 'lnoident';
2706                    value = $(element).attr("ident");
2707                }
2708            }
2709            
2710            var urlListe = document.location.href;
2711            if($(element).data("url") && $(element).data("url").length>0){
2712                urlListe = $(element).data("url");
2713            }            
2714            var url = getUrlWithLstParam(urlListe, cgi, value);
2715            // on cherche la distcomm mise dans le formulaire 
2716            var inputDistcomm = $('.moteur_inptRechercheMutli').siblings('input[name="distcomm"]');
2717            if(inputDistcomm !== undefined && inputDistcomm.length > 0){
2718                url = getUrlWithLstParam(url, 'distcomm',inputDistcomm.val());
2719            }
2720            // on enlève les paramètres de la carte pour afficher la carte au bon endroit
2721            url = removeParamGoogleMaps(url);
2722
2723            document.location.href = url;
2724            moteur_affMessageLoadingMoteur();
2725        }
2726    })(jQuery);
2727}
2728
2729function moteur_initRegletteMiniMaxi(){
2730    if($("moteur_divDudgetreglette")){
2731        var slider = $("moteur_sliderBudgetregletteContent");
2732
2733        var valeurMax, valeurMin;
2734        if($("moteur_hiddenPxMaxReglette").value)valeurMax=parseInt($("moteur_hiddenPxMaxReglette").value);
2735        else valeurMax=2500;
2736        if($("moteur_hiddenPxMinReglette").value)valeurMin=parseInt($("moteur_hiddenPxMinReglette").value);
2737        else valeurMin=50;
2738
2739        if($("moteur_hiddenPxMax").value)var valeurEnCourMax = parseInt($("moteur_hiddenPxMax").value);
2740        else var valeurEnCourMax = valeurMax;
2741        if($("moteur_hiddenPxMini").value)var valeurEnCourMin = parseInt($("moteur_hiddenPxMini").value);
2742        else var valeurEnCourMin = valeurMin;
2743
2744        var vals=new Array();
2745        for (var i=valeurMin;i<=valeurMax;i+=valeurMin) vals.push(i);
2746        
2747        var regletteOnchange = true;
2748        if(jQuery("#moteur_divDudgetreglette").attr("data-onchange") == 'false'){
2749            regletteOnchange = false;
2750        }
2751		
2752        //le moteur maxi
2753        new Control.Slider(slider.down('#moteur_sliderBudgetMaxi'), slider, {
2754            range: $R(valeurMin, valeurMax),
2755            sliderValue: valeurEnCourMax,
2756            values: vals,
2757            onSlide: function(value) {
2758                $("spn_budgetInfosPrixMax").innerHTML = value;
2759                jQuery("#moteur_hiddenPxMax").val(value);
2760            },
2761            onChange: function(value) {
2762                if(regletteOnchange){
2763                    var url = document.location.href;
2764                    document.location.href = getUrlWithLstParam(url,"pxmax",value.toString());
2765                    moteur_affMessageLoadingMoteur();
2766                }
2767            }
2768        });
2769        //le moteur mini
2770
2771        new Control.Slider(slider.down('#moteur_sliderBudgetMini'), slider, {
2772            range: $R(valeurMin, valeurMax),
2773            sliderValue: valeurEnCourMin,
2774            values: vals,
2775            onSlide: function(value) {
2776                $("spn_budgetInfosPrixMin").innerHTML = value;
2777                jQuery("#moteur_hiddenPxMini").val(value);
2778            },
2779            onChange: function(value) {
2780                if(regletteOnchange){
2781                    var url = document.location.href;
2782                    document.location.href = getUrlWithLstParam(url,"pxmin",value.toString());
2783                    moteur_affMessageLoadingMoteur();
2784                }
2785            }
2786        });
2787    }
2788}
2789
2790function setCookieEnregistreCritere(cgi,value){
2791    var date = new OBJDate();
2792    date.ajoutJour(30);
2793    var dateExpire = new Date(date.getAnnee(),date.getMois() - 1, date.getJour());
2794    var cookie = "critereEnregistre_"+cgi;
2795    setCookie(cookie.toUpperCase(),value.toUpperCase(),dateExpire);
2796}
2797
2798function removeCookieEnregistreCritere(cgi){
2799    var cookie = "critereEnregistre_"+cgi;
2800    var date = new OBJDate();
2801    date.enleveJour(30);    
2802    var dateExpire = new Date(date.getAnnee(),date.getMois() - 1, date.getJour());
2803    setCookie(cookie.toUpperCase(),'',dateExpire);
2804}
2805
2806/**
2807 * Enlève les paramètres de la carte google map d'une url
2808 * fiche 322629
2809 * @param {String} url
2810 * @returns {String}
2811 */
2812function removeParamGoogleMaps(url) {
2813    // on recup la partie avant et après le ?
2814    var urlSeule = url.substring(0, url.indexOf("?"));
2815    var cgi = url.substring(url.indexOf("?") + 1, url.length);
2816    
2817    // tab des CGI google map à enlever
2818    var tabCgiGM = ['zoom', 'centrex', 'centrey', 'minlat', 'maxlat', 'minlng', 'maxlng'];
2819    
2820    // j'ai un tableau de retour pour ne pas perturber l'ordre du for
2821    var tabCgi = cgi.split('&');
2822    var tabCgiRetour = [];
2823    
2824    for (var i = 0; i < tabCgi.length; i++) {
2825        var infosCgi = tabCgi[i].split('=');
2826        // si la clé du cgi n'est pas trouvé avec le indexOf, on garde le cgi
2827        if (tabCgiGM.indexOf(infosCgi[0]) === -1) {
2828            tabCgiRetour.push(tabCgi[i]);
2829        }
2830    }
2831    return urlSeule + '?' + tabCgiRetour.join('&');
2832}
2833
2834function supprimeCgisDansUrl(url, tabCgisASupprimer) {
2835    // on recup la partie avant et après le ?
2836    var urlSeule = url.substring(0, url.indexOf("?"));
2837    var cgi = url.substring(url.indexOf("?") + 1, url.length);
2838
2839    // j'ai un tableau de retour pour ne pas perturber l'ordre du for
2840    var tabCgi = cgi.split('&');
2841    var tabCgiRetour = [];
2842
2843    for (var i = 0; i < tabCgi.length; i++) {
2844        var infosCgi = tabCgi[i].split('=');
2845        // si la clé du cgi n'est pas trouvé avec le indexOf, on garde le cgi
2846        if (tabCgisASupprimer.indexOf(infosCgi[0]) === -1) {
2847            tabCgiRetour.push(tabCgi[i]);
2848        }
2849    }
2850    return urlSeule + '?' + tabCgiRetour.join('&');
2851}
2852
2853function initMoteur_capacite_adultesEtEnfants(){
2854    
2855    jQuery('#moteurCapaciteAdultesEtEnfants .partieVisible').click(function(){
2856        if(jQuery('#moteurCapaciteAdultesEtEnfants .partieVisible .simuleInput.opened').length>0){
2857            fermerMoteur_capacite_adultesEtEnfants();
2858        }
2859        else{
2860            ouvrirMoteur_capacite_adultesEtEnfants();
2861        }
2862    });
2863    
2864    var nbMinAdultes = jQuery('#inputCapaciteAdultesEtEnfants').attr('data-nbminadultes');
2865    var nbAdultes = jQuery('#inputCapaciteAdultes').val();
2866    var nbEnfants = jQuery('#inputCapaciteEnfants').val();
2867    
2868    jQuery('#moteurCapaciteAdultesEtEnfants .partieMasquee a.btn_modifie').click(function () {
2869        ajouterEnleverMoteur_capacite_adultesEtEnfants(jQuery(this), nbMinAdultes);
2870    });
2871    
2872    jQuery('#moteurCapaciteAdultesEtEnfants .partieMasquee a.btn_enleve').addClass('disabled');
2873    jQuery('#moteurCapaciteAdultesEtEnfants .partieMasquee .enfant a.btn_ajoute').addClass('disabled');
2874        
2875    if(nbAdultes > 0){
2876        jQuery('#inputCapaciteAdultes').val(0);
2877        for (var i = 0; i < nbAdultes; i++) {
2878            jQuery('#moteurCapaciteAdultesEtEnfants .partieMasquee .ligneAdultes a.btn_ajoute').get(0).click();
2879        }
2880        if(nbAdultes == nbMinAdultes){
2881            jQuery('#moteurCapaciteAdultesEtEnfants .partieMasquee .ligneAdultes a.btn_enleve').addClass('disabled');
2882        }
2883        jQuery('#moteurCapaciteAdultesEtEnfants .partieMasquee .ligneAdultes a.btn_ajoute').removeClass('disabled');
2884    }
2885    else{
2886        if (nbMinAdultes > 0) {
2887            for (var i = 0; i < nbMinAdultes; i++) {
2888                jQuery('#moteurCapaciteAdultesEtEnfants .partieMasquee .ligneAdultes a.btn_ajoute').get(0).click();
2889            }
2890            jQuery('#moteurCapaciteAdultesEtEnfants .partieMasquee a.btn_enleve').addClass('disabled');
2891            jQuery('#moteurCapaciteAdultesEtEnfants .partieMasquee a.btn_ajoute').removeClass('disabled');
2892        }
2893    }
2894    if(nbEnfants > 0){
2895        jQuery('#inputCapaciteEnfants').val(0);
2896        for (var i = 0; i < nbEnfants; i++) {
2897            jQuery('#moteurCapaciteAdultesEtEnfants .partieMasquee .ligneEnfants a.btn_ajoute').get(0).click();
2898        }
2899    }
2900    
2901    var nbp_total = parseInt(jQuery('#inputCapaciteAdultes').val()) + parseInt(jQuery('#inputCapaciteEnfants').val()); 
2902    jQuery('[id="inputCapaciteAdultesEtEnfants"]').val(nbp_total);
2903    
2904    // event clic bouton "mettre à jour", visible quand param avecboutonmaj:true
2905    if(jQuery('#boutonMettreAJourCapacite').length>0){
2906        jQuery('#boutonMettreAJourCapacite').click(function(){
2907            var nameNbpTotal = jQuery('#inputCapaciteAdultesEtEnfants').attr('name');
2908            var valueNbpTotal = jQuery('#inputCapaciteAdultesEtEnfants').val();
2909            var nameNbpAdultes = jQuery('#inputCapaciteAdultes').attr('name');
2910            var valueNbpAdultes = jQuery('#inputCapaciteAdultes').val();
2911            var nameNbpEnfants = jQuery('#inputCapaciteEnfants').attr('name');
2912            var valueNbpEnfants = jQuery('#inputCapaciteEnfants').val();
2913            if (window.location.href.indexOf('?') == -1) {
2914                window.location.href = (window.location.href+"?"+nameNbpTotal+"="+valueNbpTotal+"&"+nameNbpAdultes+"="+valueNbpAdultes+"&"+nameNbpEnfants+"="+valueNbpEnfants); 
2915            } else {
2916                window.location.href = (window.location.href+"&"+nameNbpTotal+"="+valueNbpTotal+"&"+nameNbpAdultes+"="+valueNbpAdultes+"&"+nameNbpEnfants+"="+valueNbpEnfants);
2917            }
2918        });
2919    }
2920
2921}
2922
2923function ouvrirMoteur_capacite_adultesEtEnfants(){
2924    
2925    jQuery('#moteurCapaciteAdultesEtEnfants .partieVisible .simuleInput').removeClass("closed").addClass('opened');
2926    jQuery('#moteurCapaciteAdultesEtEnfants').addClass('opened');
2927    jQuery('#moteurCapaciteAdultesEtEnfants .partieMasquee').fadeIn();
2928    
2929    if(window.ouvrirMoteur_capacite_adultesEtEnfants_look){ // fonction à définir dans le look
2930        ouvrirMoteur_capacite_adultesEtEnfants_look();
2931    }
2932
2933}
2934
2935function fermerMoteur_capacite_adultesEtEnfants(){
2936    
2937    jQuery('#moteurCapaciteAdultesEtEnfants .partieVisible .simuleInput').removeClass("opened").addClass('closed');
2938    jQuery('#moteurCapaciteAdultesEtEnfants').removeClass('opened');
2939    jQuery('#moteurCapaciteAdultesEtEnfants .partieMasquee').fadeOut();
2940    
2941    if(window.fermerMoteur_capacite_adultesEtEnfants_look){ // fonction à définir dans le look
2942        fermerMoteur_capacite_adultesEtEnfants_look();
2943    }
2944    
2945}
2946
2947function ajouterEnleverMoteur_capacite_adultesEtEnfants(elementClique,nbMinAdultes){
2948    
2949    var typePersonne = elementClique.attr('data-typePersonne');
2950    var typeBouton = elementClique.attr('data-typeBouton');
2951    var nbMax = jQuery('#moteurCapaciteAdultesEtEnfants #inputCapaciteAdultesEtEnfants').attr('data-nbmax');
2952    var spanValeurMasque = jQuery('#moteurCapaciteAdultesEtEnfants .partieMasquee .'+typePersonne+' p .valeur');
2953    var spanLblMasque = jQuery('#moteurCapaciteAdultesEtEnfants .partieMasquee .'+typePersonne+' p .lbl');
2954    var spanLblVisible = jQuery('#moteurCapaciteAdultesEtEnfants .partieVisible .plein .lbl.'+typePersonne);
2955    var inputMasque = jQuery('#moteurCapaciteAdultesEtEnfants #inputCapaciteAdultesEtEnfants');
2956    var inputMasqueAdultes = jQuery('#moteurCapaciteAdultesEtEnfants #inputCapaciteAdultes');
2957    var inputMasqueEnfants = jQuery('#moteurCapaciteAdultesEtEnfants #inputCapaciteEnfants');
2958    var valInputMasque = parseInt(inputMasque.attr('value'));
2959    var valInputMasqueAdultes = parseInt(inputMasqueAdultes.attr('value'));
2960    var valInputMasqueEnfants = parseInt(inputMasqueEnfants.attr('value'));
2961    var valueAvant = parseInt(spanValeurMasque.html());
2962    var valueApres, nbMin;
2963    
2964    if(typePersonne == "enfant"){
2965        nbMin = 0;
2966    }
2967    else{ // donc "adulte"
2968        nbMin = nbMinAdultes;
2969    }
2970        
2971    if(typeBouton == "ajoute"){
2972        if(valueAvant < nbMax && !(typePersonne == "enfant" && valInputMasqueAdultes == 0)){
2973            valueApres = valueAvant+1;
2974            valInputMasque++;
2975            if (typePersonne == "enfant") {
2976                valInputMasqueEnfants++;
2977            } else { // donc "adulte"
2978                valInputMasqueAdultes++;
2979            }
2980        }
2981        else{
2982            return;
2983        }
2984    }
2985    else{ // donc "enleve"
2986        if(valueAvant > nbMin){
2987            valueApres = valueAvant-1;
2988            valInputMasque--;
2989            if (typePersonne == "enfant") {
2990                valInputMasqueEnfants--;
2991            } else { // donc "adulte"
2992                valInputMasqueAdultes--;
2993            }
2994        }
2995        else{
2996            return;
2997        }
2998    }
2999    inputMasque.attr('value',valInputMasque);
3000    inputMasqueAdultes.attr('value',valInputMasqueAdultes);
3001    inputMasqueEnfants.attr('value',valInputMasqueEnfants);
3002    spanValeurMasque.html(valueApres);
3003    jQuery('#moteurCapaciteAdultesEtEnfants .partieVisible .simuleInput.plein .val.'+typePersonne).html(valueApres); 
3004    
3005    if(valInputMasqueAdultes == 0){
3006        jQuery('#moteurCapaciteAdultesEtEnfants .partieMasquee a.btn_modifie').addClass('disabled');
3007        jQuery('#moteurCapaciteAdultesEtEnfants .partieMasquee .adulte a.btn_ajoute').removeClass('disabled');
3008    }
3009    else if(valueApres == nbMin || valueApres == nbMax){
3010        elementClique.addClass('disabled');
3011    }
3012    else{
3013        jQuery('#moteurCapaciteAdultesEtEnfants .partieMasquee .'+typePersonne+' a.btn_modifie').removeClass('disabled');
3014    }
3015    
3016    if(valueApres == 1){
3017        if(valueAvant == 2){
3018            spanLblMasque.html(spanLblMasque.attr('data-singulier'));
3019            spanLblVisible.html(spanLblVisible.attr('data-singulier'));
3020        }
3021        else {
3022            jQuery('#moteurCapaciteAdultesEtEnfants .partieVisible .vide').hide();
3023            jQuery('#moteurCapaciteAdultesEtEnfants .partieVisible .plein').show();
3024            if (typePersonne == "adulte") {
3025                jQuery('#moteurCapaciteAdultesEtEnfants .partieMasquee .enfant a.btn_ajoute').removeClass('disabled');
3026            }
3027        }
3028    }
3029    else if(valueApres == 0){
3030        if(valInputMasque == 0){
3031            jQuery('#moteurCapaciteAdultesEtEnfants .partieVisible .plein').hide();
3032            jQuery('#moteurCapaciteAdultesEtEnfants .partieVisible .vide').show();
3033        }
3034        if (typePersonne == "adulte") {
3035            // on enlève tous les enfants :
3036            for (var i = valInputMasqueEnfants; i > 0; i--) {
3037                jQuery('#moteurCapaciteAdultesEtEnfants .partieMasquee .ligneEnfants a.btn_enleve').get(0).click();
3038            }
3039        }
3040    }
3041    else if(valueApres == nbMax){
3042        var i = nbMax-1
3043        if(valueAvant == i){
3044            spanValeurMasque.html(valueApres+' '+jQuery('#moteurCapaciteAdultesEtEnfants .partieMasquee .'+typePersonne+' p').attr('data-etplus'));
3045        }
3046    }
3047    else{ // de 2 à nbMax-1
3048        if(valueAvant == 1){
3049            spanLblMasque.html(spanLblMasque.attr('data-pluriel'));
3050            spanLblVisible.html(spanLblVisible.attr('data-pluriel'));
3051        }
3052    }
3053    
3054}
3055
3056function initMoteurMultiApi(){
3057    (function($){
3058        // gère le clic en dehors du moteur, similaire à ITEA_clicOutBody
3059        var zone = "init";//init: on initialise OU on est dans la div
3060        $(".moteurMultiCritereParApi").each(function () {
3061            $(this).bind("click", function () {
3062                zone = "init";
3063            });
3064            $(this).on("touchstart", function () { // il faut aussi gérer sur appareils tactiles
3065                zone = "init";
3066            });
3067        });
3068        $("body").bind("click", function () {
3069            if (zone !== "init") {
3070                if ($('#moteur_divMultiParApiAutoComplete').is(":visible")) {
3071                    $('#moteur_divMultiParApiAutoComplete').hide();
3072                    zone = "init";
3073                }
3074            }
3075            else {
3076                zone = "out";
3077            }
3078        });
3079        $("body").on("touchstart", function () { // il faut aussi gérer sur appareils tactiles
3080            if (zone !== "init") {
3081                if ($('#moteur_divMultiParApiAutoComplete').is(":visible")) {
3082                    $('#moteur_divMultiParApiAutoComplete').hide();
3083                    $('#moteur_inptRechercheMutliParApi').blur();
3084                    zone = "init";
3085                }
3086            }
3087            else {
3088                zone = "out";
3089            }
3090        });
3091        
3092        $("#moteur_inptRechercheMutliParApi").on("input",function(){
3093            clearTimeout($(this).data('timer'));
3094            
3095            var avecLien=true;
3096            if($('#moteur_divRechercheMultiParApiSansLien')){
3097                avecLien = false;
3098            }
3099                        
3100            // on laisse un timer 200 ms pour taper, ensuite on lance l'appel ajax
3101            // si la valeur de l'input est changé alors qu'une req ajax est en cours, on l'annule
3102            $(this).data('timer', setTimeout(function(){ 
3103                console.log('initMoteurMultiApi setAutocompleteForRechercheMulti');               
3104                setAutocompleteForRechercheMultiByApi("moteur_inptRechercheMutliParApi", "moteur_divMultiParApiAutoComplete", avecLien);
3105            },200));
3106            
3107        });
3108    })(jQuery);  
3109}
3110
3111function setAutocompleteForRechercheMultiByApi(idChampSaisie, divChampChoix, avecLien) {
3112    (function ($) {
3113        var url = "/lib_2/ajax/infosCGI.php";
3114        var valInput = $('#' + idChampSaisie).val();
3115        var typeReponse = null;
3116        if (!avecLien) {
3117            typeReponse = 'JS';
3118        }
3119        var moteur = $('#' + divChampChoix);
3120
3121        $.when(
3122                $.ajax(url, {data: {valInput: valInput, typeInfo: 'autocompleteByApi', typeReponse: typeReponse}, dataType : 'html'}),
3123                $.ajax(url, {data: {valInput: valInput, typeInfo: 'autocompleteNomHebs', typeReponse: typeReponse}, dataType : 'html'})
3124                ).then(
3125                function (dataApi, dataNomHeb) {
3126                    var rep = dataApi[0] + dataNomHeb[0];
3127                    
3128                    moteur.empty();
3129                    moteur.append('<div class="conteneurAutoCompleteur">' + rep + '</div>');
3130
3131                    $('#' + divChampChoix + ' ul>
3131li:not(.heb)').each(function () {
3132                        $(this).attr('onClick', 'onClickLiMoteurAutoCompleteApiHere(this)');
3133                    });
3134                    if (rep.length > 0) {
3135                        moteur.show();
3136                    }
3137                    else {
3138                        moteur.hide();
3139                        return;
3140                    }
3141
3142                    var li = $('#' + divChampChoix + ' ul>li');
3143                    var liSelected = $('#' + divChampChoix + ' ul').find('.selected');
3144                    $(window).keydown(function (e) {
3145                        if (e.which === 40) {
3146                            li.removeClass('selected');
3147                            nextNum = parseInt(liSelected.attr('data-numLi')) + 1;
3148                            next = $('#' + divChampChoix + ' ul').find("[data-numLi='" + nextNum + "']");
3149                            if (next.length > 0) {
3150                                liSelected = next.addClass('selected');
3151                            } else {
3152                                liSelected = li.eq(0).addClass('selected');
3153                            }
3154                            if (liSelected.offset().top + liSelected.height() > moteur.offset().top + moteur.height() || liSelected.offset().top < moteur.offset().top) {
3155                                moteur.scrollTo(liSelected);
3156                            }
3157                        } else if (e.which === 38) {
3158                            li.removeClass('selected');
3159                            nextNum = parseInt(liSelected.attr('data-numLi')) - 1;
3160                            next = $('#' + divChampChoix + ' ul').find("[data-numLi='" + nextNum + "']");
3161                            if (next.length > 0) {
3162                                liSelected = next.addClass('selected');
3163                            } else {
3164                                liSelected = li.last().addClass('selected');
3165                            }
3166                            if (liSelected.offset().top + liSelected.height() > moteur.offset().top + moteur.height() || liSelected.offset().top < moteur.offset().top) {
3167                                moteur.scrollTo(liSelected);
3168                            }
3169                        } else if (e.which === 13) {
3170                            if ($('#' + divChampChoix).is(':visible')) {
3171                                e.preventDefault();
3172                                $('#' + divChampChoix + ' ul').find('.selected').click();
3173                                return false;
3174                            }
3175                        }
3176                        else if (e.which === 9) {
3177                            if ($('#' + divChampChoix).is(':visible')) {
3178                                $('#' + divChampChoix + ' ul').find('.selected').click();
3179                            }
3180                        }
3181
3182                    });
3183
3184                    li.on('mouseenter', function (e) {
3185                        e.preventDefault();
3186                        li.removeClass('selected');
3187                        $(this).addClass('selected');
3188                    });
3189                }, function (err) {
3190            console.log(err);
3191        }
3192        );
3193    })(jQuery);
3194}
3195
3196function onClickLiMoteurAutoCompleteApiHere(element){
3197    (function($){
3198        var idHere = $(element).attr('data-idhere');
3199        var rayon = $(element).attr('data-rayon');
3200        var pays = $(element).attr('data-pays');
3201        var region = $(element).attr('data-region');
3202        var dep = $(element).attr('data-dep');
3203        var commune = $(element).attr('data-commune');
3204        var lib = $(element).attr('data-valreel');
3205        $('#idLocationHere').val(idHere);
3206        $('#rayon').val(rayon);
3207        $('#moteur_inptRechercheMutliParApi').val(lib);
3208        resetAndFillChampsLieu(pays, region, dep, commune);
3209        
3210        $('#moteur_divMultiParApiAutoComplete').hide();
3211        $('#moteur_divMultiParApiAutoComplete').empty();
3212        
3213        if($('#inpt_moteurApiHereAvecLien').val()=='true'){
3214            $('#form_moteurLieuApiHere').submit();
3215        }
3216        
3217    })(jQuery);
3218}
3219
3220function resetAndFillChampsLieu(pays, region, dep, ville){
3221    (function($){
3222        $('#pays').val('');
3223        $('#region').val('');
3224        $('#dep').val('');
3225        $('#commune').val('');
3226        if(pays !== undefined){
3227            $('#pays').val(pays);
3228        }
3229        if(region !== undefined){
3230            $('#region').val(region);
3231        }
3232        if(dep !== undefined){
3233            $('#dep').val(dep);
3234        }
3235        if(ville !== undefined){
3236            $('#commune').val(ville);
3237        }
3238    })(jQuery);
3239}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.