PageSourceSearch

https://www.gites-de-france-22-35-56.fr/lib_2/js/pagesWeb/liste.js?t=1783433236

js gites-de-france-22-35-56.fr collected 2026-10-07 13:39:03 UTC 59,460 bytes, 1,424 lines download raw bytes

1$(document).ready(function () {
2    loadImgSliderMobilePos2();
3    init_affichage_ajout_panier();
4    initChoixTarifsNDate();
5    if (yaDateAGererBureauITEA()) {
6        transformePrixAPartirDeByAjax();
7    } else {
8        $('a#bureauPrintSelectionPDF').removeAttr('disabled');
9        $('a#bureauPrintSelectionPDF i.loader').remove();
10    }
11    if (yaInseeAGererBureauITEA()) {
12        transformeDistanceByAjax();
13    }
14    if(typeof foncQdFini_initListe === 'function'){
15        foncQdFini_initListe();
16    }
17    if(typeof leaflet_initMapListe === 'function'){
18        if($(window).width() <= 1024) {
19            return; // la carte se charge uniquement si on la demande (pour alléger les chargements) : cf. bouton '.accesCarteResponsive'
20        }
21        leaflet_loadLeafletAssets('getParamsGoogleMap', 'classique');        
22    }
23    refreshUrlLienFiche();
24});
25
26function refreshUrlLienFiche() {
27    (function ($) {
28        var paramValues = {};
29        var tabParamAPasser = ['deb', 'fin', 'nbj', 'nbp_min', 'nbp_adultes', 'nbp_enfants', 'nbp_bebes', 'nb_chiens', 'nb_chats', 'OPE', 'ORI'];
30        var urlParams = new URLSearchParams(window.location.search);
31        if (urlParams.has('CHECKDISPOPARTIEL')) {
32            tabParamAPasser.splice(0, 2);
33        }
34        tabParamAPasser.forEach(function (param) {
35            var values = urlParams.getAll(param);
36            var filteredValues = values.filter(function (value) {
37                return value !== null && value !== undefined && value !== '';
38            });
39            if (filteredValues.length === 1) {
40                paramValues[param] = filteredValues[0];
41            } else if (filteredValues.length > 1) {
42                paramValues[param] = filteredValues.pop();
43            }
44        });
45        $('a.urlLienFiche').each(function (index, lien) {
46            var base = $(lien).attr('href').split('?')[0];
47            $(lien).attr('href', base + '?' + $.param(paramValues));
48        });
49    })($);
50}
51
52function getUrlWithLstParam(urlBase,cgi, valeur){
53	//console.trace("getUrlWithLstParam");
54	cgi=cgi.toLowerCase();
55	valeur=valeur.toLowerCase();
56    urlBase = String (urlBase);	
57	var reg_exp = RegExp("page=[0-9]+", "gi");
58	urlBase = urlBase.replace (reg_exp, "");
59
60	var reg_exp = RegExp("&&", "gi");
61	urlBase = urlBase.replace (reg_exp, "&");
62
63    if($('#divgmap3').length > 0 && $('#divgmap3').attr('data-cartedeplace') === '1'){
64        urlBase = getUrlAvecLstParamsGoogleMaps(urlBase);
65    }
66
67	//on verifie que le cgi n'est pas déjà présent
68	if(urlBase.match(cgi+"=")){
69        //on fait un traitement différent si le paramètre est en fin de chaine ou pas
70        if(urlBase.match(cgi+"=.*?&")){
71            var reg_exp = RegExp(cgi+"=.*?&", "gi");
72            urlBase = urlBase.replace (reg_exp, cgi+"="+valeur+"&");
73        }
74        // fiche 220922 :
75        // je modifie le traitement :on faisait un else ici, sauf que 
76        // si on a deux fois le cgi (un au début des params et un à la fin de l'url),
77        // on ne traite pas toutes les occurences, c'est le cas lorsqu'on veut définir un distcomm par défaut dans un moteur.
78        // 222985 : il se peut qu'il n'y ai aucue valeur, on met * et pas + dans la regex
79        if(urlBase.match(cgi+"=[^&]*")){
80            var reg_exp = RegExp(cgi+"=[^&]*", "gi");
81            urlBase = urlBase.replace (reg_exp,cgi+"="+valeur);
82        }
83    }else{
84        //s'il y a déjà une chaine de caractère on ajoute à la fin
85        if(!urlBase.match("\\?"))urlBase+="?";
86        else urlBase+="&";
87        urlBase+=cgi+"="+valeur;
88    }
89	
90	return urlBase;
91}
92
93function refreshListeWithCgi(url){
94    (function($){
95        if($('#divgmap3').length > 0 && $('#divgmap3').attr('data-cartedeplace') === '1'){
96            url = getUrlAvecLstParamsGoogleMaps(url);
97        }
98        var params = url.substr(url.indexOf('?')+1);
99        var baseUrl = url.substr(0,url.indexOf('?'));
100        var tabParams = params.split('&');
101        var tabKey= [];
102        var html = "<form id='formRechercheListe' action='"+baseUrl+"' method='post' style='display:hidden'>";
103        for(var i = 0; i<tabParams.length;i++){
104            var couple = tabParams[i].split('=');
105            var key = couple[0];
106            var value = couple[1];
107            
108            if(tabKey.indexOf(key) !== -1){
109                continue;
110            }
111            tabKey.push(key);
112            
113            html += '<input type="hidden" name="'+key+'" value="'+value+'">';
114        }
115        html += '</form>';
116        $('body').append(html);
117        
118        
119        $('#formRechercheListe').submit();
120        moteur_affMessageLoadingMoteur();
121
122    })($);
123}
124
125function getUrlAvecLstParamsGoogleMaps(urlBase) {
126    var valCgiGM = {};
127    var tabCgiGM = ['zoom', 'centrex', 'centrey', 'minlat', 'maxlat', 'minlng', 'maxlng'];
128    if (_leafletMap !== undefined) {
129        var bounds = _leafletMap.getBounds();
130        valCgiGM.zoom = _leafletMap.getZoom();
131        valCgiGM.minlat = bounds.getSouth();
132        valCgiGM.maxlat = bounds.getNorth();
133        valCgiGM.minlng = bounds.getWest();
134        valCgiGM.maxlng = bounds.getEast();
135    } else if (window.gmap !== undefined) {
136        var gmap = $('#divgmap3').gmap('get', 'map');
137        valCgiGM.zoom = gmap.getZoom();
138        valCgiGM.minlat = gmap.getBounds().getSouthWest().lat();
139        valCgiGM.maxlat = gmap.getBounds().getNorthEast().lat();
140        valCgiGM.minlng = gmap.getBounds().getSouthWest().lng();
141        valCgiGM.maxlng = gmap.getBounds().getNorthEast().lng();
142    }
143    valCgiGM.centrex = (parseFloat(valCgiGM.maxlat) + parseFloat(valCgiGM.minlat)) / 2;
144    valCgiGM.centrey = (parseFloat(valCgiGM.maxlng) + parseFloat(valCgiGM.minlng)) / 2;
145    $(tabCgiGM).each(function (cgi) {
146        if (valCgiGM[cgi] == undefined) {
147            return;
148        }
149        if(urlBase.match(cgi+"=.*?&")){
150            var reg_exp = RegExp(cgi+"=.*?&", "gi");
151            urlBase = urlBase.replace (reg_exp, cgi+"="+valCgiGM[cgi]+"&");
152        }else{
153            if (!urlBase.match("\\?")) {
154                urlBase += '?';
155            } else {
156                urlBase += '&';
157            }
158            urlBase += cgi + '=' + valCgiGM[cgi];
159        }
160    });
161    return urlBase;
162}
163
164function format_nb(valeur, decimal, separateur) {
165    var deci = Math.round(Math.pow(10, decimal) * (Math.abs(valeur) - Math.floor(Math.abs(valeur))));
166    var val = Math.floor(Math.abs(valeur));
167    if ((decimal == 0) || (deci == Math.pow(10, decimal))) {
168        val = Math.floor(Math.abs(valeur));
169        deci = 0;
170    }
171    var val_format = val + "";
172    var nb = val_format.length;
173    for (var i = 1; i < 4; i++) {
174        if (val >= Math.pow(10, (3 * i))) {
175            val_format = val_format.substring(0, nb - (3 * i)) + separateur + val_format.substring(nb - (3 * i));
176        }
177    }
178    if (decimal > 0) {
179        var decim = "";
180        for (var j = 0; j < (decimal - deci.toString().length); j++) {
181            decim += "0";
182        }
183        deci = decim + deci.toString();
184        val_format = val_format + "." + deci;
185    }
186    if (parseFloat(valeur) < 0) {
187        val_format = "-" + val_format;
188    }
189    return val_format;
190}
191
192function gaTrack(url) {
193    if (window.pageTracker)
194        window.pageTracker.push(['_trackPageview', url]);
195    if (window.pageTrackerItea)
196        window.pageTrackerItea.push(['_trackPageview', url]);
197}
198
199function getCoord(e, c) {
200    // pour touchstart et touchend
201    return /touch/.test(e.type) ? (e.originalEvent || e).changedTouches[0]['page' + c] : e['page' + c];
202}
203
204function init_affichage_ajout_panier(){
205    $('.li_elemListe.li_elemListe_dansPanier .a_ajoutPanier').addClass('a_dansPanier');
206}
207
208function refreshListeAvecQueProp(queProp,accs){
209	$(".iteaListeArboDiv").each(function(elt){
210		refreshListe(null,{
211			"cgis":"QUEPROP="+queProp+"&ACC="+accs,
212			"saveCrits":false,
213			"arboDiv":elt.getAttribute("arbodiv"),
214			"idDiv":elt.getAttribute("id")
215		});
216	});
217}
218
219function refreshListe(ok,params){
220	var typeInfo,idDiv,idPageArboDiv="";
221	if (params && params.idDiv)idDiv=params.idDiv
222	if (!idDiv)idDiv="divLst_generale";
223	if (params && params.arboDiv)idPageArboDiv=params.arboDiv;
224	if (params && params.typeInfo)typeInfo=params.typeInfo;
225	else typeInfo="visu_structAllId";
226	
227	
228	var url="/lib_2/ajax/contenuFenetre.php";
229	var sending="element=objProd&";
230	sending+="typeInfo="+typeInfo+"--"+idPageArboDiv+"&";
231	sending+=getInfoSession("PHPSESSID");
232	sending+="&CGISCUR="+escape(getQueryString());
233
234	if (params && params.cgis)sending+="&CGIS="+escape(params.cgis);
235	if (params && params.saveCrits)sending+="&SAVECRIT=O";
236	if (params && params.avecGestionPage==false)sending+="&PAGINATION=N";
237	else sending+="&PAGINATION=O";
238		
239	affUrlInDiv(idDiv,url,sending,"aucun",function(retour){
240		checkPageSiAfficheVraiPrixDansListe();
241		if(window.gmap)window.gmap.reload();
242		checkPageSiDivForChargePrixInLst();
243		effAttenteMoteur(params.classDivMoteur);
244		gereAffichageTriParPrix();
245		if(window.onRefreshList)onRefreshList();
246	});
247}
248
249function checkPageSiAfficheVraiPrixDansListe(){
250	$(".itea_divLstPrix1StructAjax").each(function(elt){
251        //console.log("ckp >"+elt.getAttribute("ident"))
252		var deb=elt.getAttribute("deb");if (!deb)return;
253		var url="/lib_2/ajax/infosDist.php";
254		var sending="info=REQ4&ident="+elt.getAttribute("ident")+"&deb="+deb+"&nbj="+elt.getAttribute("nbj")+"&dpt="+elt.getAttribute("dpt");
255		appelAjaxToFunc(url,sending,function(reponse){
256			if (reponse){
257				var objParentCourant = elt.parentNode;
258				var firstChild=elt.children;
259				//on verifie si la div pour le libelle avant le prix est déja présente
260				//si elle est déjà présente, pas la peine de le re-ajouter.
261
262				if(firstChild[0]){
263					if(firstChild[0] && !firstChild[0].hasClassName("span_lst_libelle_avant_prix")){
264						htmlSpanAvantPrix="<span class='span_lst_libelle_avant_prix'></span>";
265					}else {
266						if(firstChild[0] && firstChild[0].hasClassName("span_lst_libelle_avant_prix"))
267							htmlSpanAvantPrix="<span class='span_lst_libelle_avant_prix_vous_aimerez_aussi span_lst_libelle_avant_prix'></span>";
268						else htmlSpanAvantPrix="";
269					}
270				}
271				eval("var infosPrix="+reponse); 
272				if (infosPrix && infosPrix.prix_promo>0 && parseInt(infosPrix.prix_promo)!=parseInt(infosPrix.prix_normal)){
273					if(elt.hasClassName("prixArrondi")) html="<span class='prixListeAvantPromo'>
273"+parseInt(Math.round(infosPrix.prix_normal))+"&nbsp;&euro;</span>";
274					else html="<span class='prixListeAvantPromo'>"+infosPrix.prix_normal+"&nbsp;&euro;</span>";
275					if(elt.hasClassName("prixArrondi")) html+="<span class='prixListePromo'>" +parseInt(Math.round(infosPrix.prix_promo))+"&nbsp;&euro;</span>";
276					else html+="<span class='prixListePromo'>" +infosPrix.prix_promo+"&nbsp;&euro;</span>";
277				}else {
278					if(elt.hasClassName("prixArrondi")) html="<strong><span class='prixListeNormal'>"+parseInt(Math.round(infosPrix.prix_normal))+"&nbsp;&euro;</span></strong>";
279					else html="<span class='prixListeNormal'>"+infosPrix.prix_normal+"&nbsp;&euro;</span>";
280				}
281				elt.innerHTML=html;
282
283				if(objParentCourant){
284					firstChild=objParentCourant.children;
285					objParentCourant.innerHTML=htmlSpanAvantPrix+objParentCourant.innerHTML;
286					if(firstChild[0] && firstChild[0].hasClassName("span_lst_libelle_avant_prix_vous_aimerez_aussi")){
287						chargeMotCleDsDiv(firstChild[0],"LBL_TARIF_SEJOUR_AVANT_VOUS_AIMEREZ");
288					}
289					else if(firstChild[0] && firstChild[0].hasClassName("span_lst_libelle_avant_prix")){
290						chargeMotCleDsDiv(firstChild[0],"LBL_TARIF_SEJOUR_AVANT");
291					}
292				}
293			}
294		});
295	});
296}
297
298function checkPageSiDivForChargePrixInLst(){
299	$(".itea_divForLoadNewPrixInLstForDate").each(function(elt){
300		if(!elt.getAttribute("deb"))return;
301		var url="lib_2/ajax/infosDist.php";
302		var sending="info=SETPXINOBJLST&deb="+elt.getAttribute("deb")+"&nbj="+elt.getAttribute("nbj");
303		appelAjaxToFunc(url,sending,function(reponse){});
304	});
305
306	
307	$(".itea_divForDispoBaseNatForDate").each(function(elt){
308		/*** On commence par effacer tous les boutons reserver en ligne des dispogites de la page courante (page 1) ***/
309		$(".div_bt_reserverDispogiteFNGF").each(function(elt){
310			elt.style.display="none";
311		});
312	
313		var url="lib_2/ajax/infosDist.php";
314		if(!elt.getAttribute("deb"))return;
315		var sending="info=SETDISPOINOBJLSTDBNAT&instance_exe="+elt.getAttribute("instance_exe")+"&instance="+elt.getAttribute("instance")+"&dpt="+elt.getAttribute("dpt")+"&type_gite="+elt.getAttribute("type_gite")+"&id_famille="+elt.getAttribute("id_famille")+"&deb="+elt.getAttribute("deb")+"&nbj="+elt.getAttribute("nbj")+"&ope="+elt.getAttribute("ope");
316		appelAjaxToFunc(url,sending,function(reponse){
317			if (reponse){
318				checkPageAfficheBtResaSiDispogiteResa();
319				checkPageSiDivForNbResult();
320			}
321		});
322	});
323    
324	var tabExec=new Array();
325	$(".itea_divForPrixBaseNatForDate").each(function(elt){
326		var url="lib_2/ajax/infosDist.php";
327		if(!elt.getAttribute("deb"))return;
328		if(tabExec[elt.getAttribute("instance_exe")+"_"+elt.getAttribute("dpt")+"_"+elt.getAttribute("type_gite")+"_"+elt.getAttribute("id_famille")+"_"+elt.getAttribute("deb")+"_"+elt.getAttribute("nbj")]!=true){
329			var sending="info=SETPXINOBJLSTDBNAT&instance_exe="+elt.getAttribute("instance_exe")+"&instance="+elt.getAttribute("instance")+"&dpt="+elt.getAttribute("dpt")+"&type_gite="+elt.getAttribute("type_gite")+"&id_famille="+elt.getAttribute("id_famille")+"&deb="+elt.getAttribute("deb")+"&nbj="+elt.getAttribute("nbj")+"&ope="+elt.getAttribute("ope")+"&pomxj="+elt.getAttribute("pomxj");
330
331			tabExec[elt.getAttribute("instance_exe")+"_"+elt.getAttribute("dpt")+"_"+elt.getAttribute("type_gite")+"_"+elt.getAttribute("id_famille")+"_"+elt.getAttribute("deb")+"_"+elt.getAttribute("nbj")]=true;
332			appelAjaxToFunc(url,sending,function(reponse){
333				gereAffichageTriParPrix(reponse);
334			});
335		}
336	});
337}
338
339function effAttenteMoteur(classMoteur){
340	$('.'+classMoteur).each(function(elt){
341		effaceMsgAttenteParDessus("_moteur");
342	});
343}
344
345function gereAffichageTriParPrix(result){
346	if(result=="toutestok" || $('itea_divForPrixOkInObjLst')){
347		if($('div_liste_critereTriHautAvecImgPrix')){
348			var obj=$('div_liste_critereTriHautAvecImgPrix');
349			if(obj.childNodes[0].childNodes[0]){
350				obj.childNodes[0].childNodes[0].style.visibility="visible";
351			}
352		}
353	}
354}
355
356function chargeMotCleDsDiv(idDiv,motCle){
357	if (!window.jsonMotcle)window.jsonMotcle=[];
358	for (var i=0;i<window.jsonMotcle.length;i++){
359		if (window.jsonMotcle[i].motcle==motCle){
360			if ($(idDiv))$(idDiv).innerHTML=window.jsonMotcle[i].content;
361			return;
362		}
363	}
364	var adr="/lib_2/ajax/contenuFenetre.php";
365	var sending=getInfoSession()+"&element=motCle&typeInfo=motcle&val="+motCle;
366	appelAjaxToFunc(adr,sending,function(reponse){
367		window.jsonMotcle.push({'motcle':motCle,'content':reponse});
368		window.jsonMotcle.uniq();
369		if ($(idDiv))$(idDiv).innerHTML=reponse;
370	});
371}
372
373function checkPageAfficheBtResaSiDispogiteResa(){
374
375	/*** Puis on reaffiche ceux nécessaires en fonction des modes de vente trouvés ***/
376	var url="lib_2/ajax/infosDist.php";
377	var sending="info=GETIDENTDISPOGITERESERVABLE";
378	appelAjaxToFunc(url,sending,function(reponse){
379			if (reponse){
380				var tabIdentBtAAfficher=new String(reponse).evalJSON();
381				$A(tabIdentBtAAfficher).each(function(ident){
382					var bt=$("btResaDispoGite_"+ident);
383					if (bt)bt.style.display="block";
384				});
385			}
386	});	
387}
388
389function checkPageSiDivForNbResult(){
390	if (!getCookie("__sess_") && !getCookie("__sessV5_") && window.foncQdPadCookie){window.foncQdPadCookie();return false;}
391	$(".itea_div_liste_infoNbResultat_ajx").each(function(elt){
392		var adr="/lib_2/ajax/contenuFenetre.php";
393		var sending="element=objProd&typeInfo=getNbResult";
394		sending+="&CGISCUR="+escape(getQueryString());
395		if(estSurPanier())sending+="&mode=panier";
396		appelAjaxToFunc(adr,sending,function(reponse){
397			if (reponse)$(elt).update(reponse);
398			if(window.refreshNbPageInNav)window.refreshNbPageInNav();
399		});
400	});
401	$(".itea_div_liste_infoDetailsNbResultatGestionProp_ajx").each(function(elt){
402		var adr="/lib_2/ajax/contenuFenetre.php";
403		var sending="element=objProd&typeInfo=getNbResultDetailsProp";
404		sending+="&CGISCUR="+escape(getQueryString());
405		appelAjaxToFunc(adr,sending,function(reponse){
406			if (reponse)$(elt).update(reponse);
407		});
408
409	});
410
411	$('.itea_div_liste_InfoCritCourant').each(function(elt){
412		var adr="/lib_2/ajax/contenuFenetre.php";
413		var sending="element=objProd&typeInfo=getInfoCritCourant";
414		sending+="&CGISCUR="+escape(getQueryString());
415		if(estSurPanier())sending+="&mode=panier";
416		elt.innerHTML="";
417		affMsgAttenteInDiv(elt.id);
418		appelAjaxToFunc(adr,sending,function(reponse){
419			if (reponse)$(elt).update(reponse);
420		});
421	});
422}
423
424function estSurPanier() {
425    return $("#divParametre_TypePage").html();
426}
427
428function affAttenteListe(idDivGene){
429	if (!idDivGene) {
430        idDivGene="div_contentListe";
431    }
432	affMsgAttenteParDessusInDiv(idDivGene);
433}
434
435function refreshNumeroPage(prefix_id_navigPage,numPage,classe,foncQdfini){
436	var tabSuffPossible=new Array("","_haut","_bas");
437	var tabTypeNav=new Array("int","num");
438	for (var i=0;i<tabSuffPossible.length;i++){
439		for(var j=0;j<2;j++){
440			var obj=$(prefix_id_navigPage+tabSuffPossible[i]+"_"+tabTypeNav[j]+"_"+numPage);
441			if (obj){
442				setClassForObj_uniqClass(obj,classe+tabSuffPossible[i]);
443			}
444		}
445	}
446	if(foncQdfini)foncQdfini(numPage);
447}
448
449function setClassForObj_uniqClass(obj, classe) {
450    if (obj) {
451        var classAvant = obj.getAttribute("class");
452        var objs = $("." + classe);
453        /*** On transforme les autres objet ayant la meme classe ***/
454        for (var i = 0; i < objs.length; i++)
455            setClassForObj(objs[i], classAvant);
456        setClassForObj(obj, classe);
457    }
458}
459
460function showResaInPopIn(addr, sending,w,h,titreDiv){
461	if(!w || !h){
462		w=parseInt(window.innerWidth)*0.9;
463		h=parseInt(window.innerHeight)*0.9;
464		if (!w)w=800;
465		if (!h)h=600;
466	}
467
468	var html_init="<iframe src='"+addr+"?"+sending+"' name='frame_resa' frameborder='0' id='frame_resa' width='"+w+"' height='100%'>\n\
469							<img src=/config_v3/imgs_defaut/loading/roue16x16.gif /><br />\n\
470						</iframe>";
471
472	afficheDivAvecTransparenceAbsolue(html_init,w,h,'',titreDiv);
473}
474
475function afficheDivAvecTransparenceAbsolue(html,w,h,suffixe,titreDiv){
476	if (!suffixe || suffixe==undefined)suffixe="";
477	var hW=getHauteurWindow();
478	var lW=getLargeurWindow();
479	if(hW<40) hW=40;
480	if(lW<40) lW=40;
481	if (h>hW)h=hW-70;
482	if (w>lW)w=lW-40;
483
484	var divGene=document.getElementById("divGraph_affFenetre"+suffixe);
485	if (!divGene)divGene=getNewDivToBody("divGraph_affFenetre"+suffixe,"divGraph"+suffixe);
486	divGene.setAttribute("style","");
487	//divGene.style=null;
488	divGene.style.position="fixed";
489	$("bodyPage").scrollTo();
490	divGene.style.zIndex="900000";
491	divGene.style.left="0px";
492	divGene.style.top="0px";
493	divGene.style.width="100%";
494	divGene.style.height="100%";
495	divGene.style.opacity=0.2;
496	divGene.style.backgroundColor="#000000";
497	divGene.style.display="block";
498
499	/*** IE 7 ***/
500	divGene.style.filter="alpha(opacity=70)";
501
502	var divMsg=document.getElementById("divGraph_fenetre"+suffixe);
503	if (!divMsg)divMsg=getNewDivToBody("divGraph_fenetre"+suffixe,"divGraph"+suffixe);
504
505	divMsg.setAttribute("style","");
506
507	divMsg.style.position="fixed";
508
509	divMsg.style.zIndex="1000000";
510	divMsg.style.backgroundColor="#FFFFFF";
511	divMsg.style.width=w+"px";
512	divMsg.style.height=h+"px";
513	divMsg.style.opacity=1;
514	divMsg.style.marginLeft="-"+(w/2)+"px";
515	//divMsg.style.marginTop="-"+(h/2)+"px";
516	divMsg.style.left="50%";
517	divMsg.style.top="20px";
518	divMsg.style.display="block";
519
520	if(titreDiv)html="<div id='div_btnCloseFrmResa' class='div_headPopin'><p><span class='sp_titrePopin'>"+titreDiv+"</span><a href='#ferme' onClick='effaceDivAvecTransparence();' class='a_fermePopin' title='fermer'><img src='/config_v3/imgs_defaut/v5/fermer-popin.gif' alt='fermer'/></a></p></div>"+html;
521
522	divMsg.innerHTML=unescape(html);
523
524	if (window.Effect)new Effect.Opacity($(divGene), {from: 0.2, to: 0.7});
525
526	//gestion de la préssion d'une touche d'échapement (ESCAP)
527	Event.observe(document, 'keypress', function(event){
528		if(event.keyCode == Event.KEY_ESC){
529			effaceDivAvecTransparence(suffixe);
530			Event.stopObserving(document,'keypress');
531		}
532	});
533}
534
535function transformeDistanceByAjax(){
536    console.log('transformeDistanceByAjax');
537    var insee = getParamFromURL('insee');
538    if(!insee){
539        insee = getParamFromURL('INSEE')
540    }
541    $.ajax('/lib_2/ajax/infosDist.php?INFO=INFOSDISTANCE&INSEE=' + insee).done(function (data, textStatus, jqXHR) {
542        //console.log('transformeDistanceByAjax data', data);
543        if (data['distance'] === undefined) {
544            return;
545        }
546        var nomCommune;
547        if (data['nomCommune'] === '') {
548            nomCommune = getParamFromURL('lieucgi');
549        } else {
550            nomCommune = data['nomCommune'];
551        }   
552        $.each($('span.sp_distanceFromCommune'), function () {
553            var ident = $(this).data('ident');
554            var avecTemps = $(this).data('avectemps');
555            var memeCommune = $(this).data('memecommune');
556            if (data['distance'][ident] === undefined) {
557                return;
558            }
559            console.log('transformeDistanceByAjax ident', data['distance'][ident], ident);
560            var html = '<span class="sp_lblDedistComm"';
561            if (data['distance'][ident]['distance_route'] !== undefined) {
562                var distanceRouteKm = format_nb(data['distance'][ident]['distance_route'] / 1000, 2);
563                var tempsRouteMin = format_nb(data['distance'][ident]['temps_route'] / 60);
564                html += 'title="en voiture par la route, données OpenStreetMap">';
565                html += '<i class="fa fa-road" aria-hidden="true"></i> à ' + distanceRouteKm + 'Km';
566                if(avecTemps){
567                    html +=  ' (' + tempsRouteMin + 'min)';
568                }
569                html += ' du centre de ' + nomCommune;
570            } else if (data['distance'][ident]['distance_oiseau'] !== undefined){
571                var distanceVolKm = format_nb(data['distance'][ident]['distance_oiseau'], 2);
572                html += 'title="à vol d oiseau">';
573                html += '<i class="fa fa-circle-o" aria-hidden="true"></i> à '+distanceVolKm+'Km du centre de ' + nomCommune;
574            }
575            html+= '</span>';
576            $(this).html(html);
577            $('li.li_elemListe[data-ident="'+ident+'"] p.p_distFromCommune').hide();
578        });
579    });
580}
581
582function transformePrixAPartirDeByAjax(){
583    // 1117128
584    if (getParamDureeSejourFromUrl() > 28) {
585        return;
586    }
587    console.log('transformePrixAPartirDeByAjax');
588    $.ajax('/lib_2/ajax/infosDist.php?INFO=INFOSPRIX').done(function( data, textStatus, jqXHR ) {
589        console.log('transformePrixAPartirDeByAjax data',data);
590        $.each($('div.prixAPartirDe'),function() {
591            var ident = $(this).data('ident');
592            if (data[ident]===undefined) {
593                return;
594            }
595            var prixNormal = data[ident]['prix_normal'];
596            var prixPromo = data[ident]['prix_promo'];
597            console.log('transformePrixAPartirDeByAjax ident', ident, prixNormal, prixPromo);
598            if ($(this).data('classegite') == '1') {
599                $(this).html(getHtmlDivTarifBureauGite(prixNormal, prixPromo));
600                $(this).addClass('avecPrixSejour');
601            }
602            if ($(this).data('classechambre') == '1') {
603                $(this).html(getHtmlDivTarifBureauChambre(prixNormal, prixPromo));
604                $(this).addClass('avecPrixSejour');
605            }                
606        });
607        $.each($('a.a_BoutonResaBureau'), function () {
608            var ident = $(this).data('ident');
609            if (data[ident] === undefined) {
610                return;
611            }
612            var planning_vente = data[ident]['planning_vente'];
613            if (planning_vente === undefined) {
614                return;
615            }
616            if(planning_vente.match(/^r+$/)){
617                $(this).html('Réserver');
618                return;
619            }
620            if(planning_vente.match(/n/)){
621                $(this).html('Réserver LD');
622            }
623        });
624    });
625}
626
627function getHtmlDivTarifBureauGite(prixNormal,prixPromo){
628    return getHtmlDivTarifBureau(prixNormal,prixPromo)+'<span class="span_lst_libelle_apres_prix">pour le séjour</span>';
629}
630
631function getHtmlDivTarifBureauChambre(prixNormal,prixPromo){
632    return getHtmlDivTarifBureau(prixNormal,prixPromo)+'<span class="span_lst_libelle_apres_prix">(base 2 pers.)</span>';
633}
634
635function getHtmlDivTarifBureau(prixNormal,prixPromo){
636    var html;
637    prixNormal = prixNormal.replace('.00','');
638    if (prixPromo > 0 && $.isNumeric(prixPromo)) {
639        prixPromo = prixPromo.replace('.00','');
640        var pourcentagePromo = Math.round(((prixPromo-prixNormal)/prixNormal)*100);
641        html = '<span class="prixListeAvantPromo">' + prixNormal + '<span class="lblEuro">€</span></span>';
642        html += '<span class="prixListePromo">' + prixPromo + '<span class="lblEuro">€</span></span>';
643        html += '<span class="prixListePourcentagePromo" style="display:none;">'+pourcentagePromo+'%</span>';
644    } else {
645        html = '<span class="prixListeNormal" data-prix="' + prixNormal + '" data-prix-promo="">' + prixNormal + '<span class="lblEuro">€</span></span>';
646    }
647    return html;
648}
649
650function getParamDureeSejourFromUrl() {
651    var nbj = getParamFromURL('duree');
652    if (nbj === undefined) {
653        nbj = getParamFromURL('nbj');
654    }
655    if (nbj === undefined) {
656        nbj = getParamFromURL('dureesejour');
657    }
658    return nbj;
659}
660
661function getParamFromURL(param) {
662    var params = {}, queries, temp, i, l;
663    // Split into key/value pairs
664    queries = window.location.search.replace('?', '').split('&');
665    // Convert the array of strings into an object
666    for (i = 0, l = queries.length; i < l; i++) {
667        temp = queries[i].split('=');
668        params[temp[0]] = temp[1];
669    }
670    if (params[param] === undefined) {
671        return undefined;
672    }
673    return decodeURIComponent(params[param]);
674}
675
676function afficheMoteurDates(idSelection,ident) {
677	var html="<div id='divPanier_moteurDate'></div>";
678	html+="<a id='a_valider' onclick='setDatesPanier("+idSelection+");'>Valider</a>";
679	html+="<a id='a_retour' onclick='effaceDivAvecTransparence();'>Retour</a>";
680	afficheDivAvecTransparence(html,400,200);
681
682	var adr="/lib_2/ajax/contenuFenetre.php";
683	var sending=getInfoSession()+"&element=critere&typeInfo=date&ident="+ident;
684	affUrlInDiv("divPanier_moteurDate",adr,sending);
685}
686
687function setDatesPanier(idSelection){
688	var adr="/lib_2/ajax/gerePanier.php";
689	var sending="action=defDatesSelect&idSelect="+idSelection+"&jour="+document.getElementById('jour').value+"&mois="+document.getElementById('mois').value+"&annee="+document.getElementById('annee').value+"&duree="+document.getElementById('duree').value;
690	effaceDivAvecTransparence();
691	affUrlInDiv("divPanier_visu",adr,sending);
692}
693
694function ajouterAuPanierBoutique(tabParams,quelleReponseAjax,callback) {
695    var retourAjax = quelleReponseAjax || false;
696    var params = tabParams;
697    if(!params.action){
698        params.action= 'ajoutePanier_v5';
699    }
700    params.panier_v5= '1';
701    params.retourAjax= retourAjax;
702    $.ajax({
703        type: "POST",
704        url: "/lib_2/ajax/gerePanier.php",
705        async: false,
706        dataType:'json',
707        data: params,
708        beforeSend: function () {
709            afficheLoaderGlobal_site();
710        },
711        success: function (retour) {
712            if(callback){
713                (callback)(retour);
714            }
715        },
716       complete:function(){
717           effaceLoaderGlobal_site();
718       }
719    });
720}
721
722function initChoixTarifsNDate() {
723    if ($('.div_choixTarifAjax').length > 0) {
724        $('.div_choixTarifAjax').each(function () {
725            // TODO : pour chaque div div_choixTarifAjax il faut récupérer le paramétrage, 
726            // recréer un objet NDate et appeler la fonction getHTML_choixTarif avec chargementAjax à false
727            var ident = $(this).attr('data-ident');
728            var avecListeDeroulante = $(this).find('.inpt_choixTarifAvecListe').val();
729            var avecAccesResa = $(this).find('.inpt_choixTarifAcce
729sResa').val();
730            var divChoixTarif = $(this);
731            var reload = $(this).find('.inpt_choixTarifReload').val();
732            $.ajax({
733                type: 'POST',
734                url: '/lib_2/ajax/infosDist.php',
735                data: {info: "getHTML_choixTarifNDate", ident: ident, avecListeDeroulante: avecListeDeroulante, avecAccesResa: avecAccesResa, reload: reload},
736                success: function (result) {
737                    divChoixTarif.replaceWith(result);
738                    $('.viewWithQtipTohide').hide();               
739                    if(typeof foncQdFini_initChoixTarifsNDate === 'function'){
740                        foncQdFini_initChoixTarifsNDate();
741                    }
742                    initForPanier_v5();
743                }
744            });
745        });
746    }
747}
748
749function setScrollHorizontalOnDiv(idDiv,idUl,params){
750	if (!$(params.nextButton) || !$(params.prevButton)){
751        return false;
752    }
753	var btSuiv=$(params.nextButton);
754	var btPrec=$(params.prevButton);
755	var decal;
756
757	if (!params.noResizeToLi){
758		if ($(idDiv) && $(idUl) && $(idUl).firstChild){
759			$(idDiv).style.width=$(idUl).firstChild.offsetWidth+'px';
760			$(idUl).style.padding='0px';
761		}
762	}
763    //console.trace('effects.js on setScrollHorizontalOnDiv');
764    btPrec.css('visibility','hidden');
765	if (btSuiv){
766        btSuiv.onclick=function (evt){
767            if (params.decalage){
768                decal=params.decalage;
769            } else if (params.nbLiDecal){
770                var unLi=idUl.childNodes[1].offsetLeft;
771                decal=unLi*params.nbLiDecal;
772            } else {
773                decal=$(idDiv).getWidth();
774            }
775			var posXLastChild=$(idUl).childElements().last().positionedOffset(idUl).left;
776			var posX0=$(idUl).positionedOffset(idDiv).left;
777			var posX1=posXLastChild+$(idUl).childElements().last().getWidth()+posX0;
778			var posFinal=posXLastChild+$(idUl).childElements().last().getWidth();
779			if (posX1-decal<decal){
780				decal=posX1-decal;
781			}
782            if(btPrec){
783                btPrec.style.visibility="visible";
784            }
785			if(params.scrollSansEffet){
786				var position = $(idUl).positionedOffset(idDiv).left;
787				$(idUl).style.left = (position + (decal*-1))+"px";
788                //console.log('effects.js setScrollHorizontalOnDiv btSuiv position:'+position*-1+' posFinal:'+posFinal+' decal: '+decal);
789                if(decal == 0){
790                    btSuiv.style.visibility="hidden";
791                }
792                if ($(params.ulJumelle)){
793                    $(params.ulJumelle).style.left = $(params.ulJumelle).positionedOffset(idDiv).left + (decal*-1);
794                }
795			}else{
796				new Effect.Move(idUl, {x: decal*-1, mode: 'relative'})
797                if ($(params.ulJumelle)){
798                    new Effect.Move(params.ulJumelle, {x: decal*-1, mode: 'relative'})
799                }
800			}
801		}
802	}
803	if(btPrec){
804        btPrec.onclick=function(evt){
805            if (params.decalage){
806                decal=params.decalage;
807            } else if (params.objDecalage){
808                decal=params.objDecalage.getWidth();
809                if (params.multipDecal){
810                    decal*=params.multipDecal;
811                }
812            } else {
813                decal=$(idDiv).getWidth();
814            }
815            var posX=$(idUl).positionedOffset(idDiv).left;
816            if (posX+decal>0){
817                decal=posX*-1;
818            }
819            if(btSuiv){
820                btSuiv.style.visibility="visible";
821            }
822			if(params.scrollSansEffet){
823				var position = $(idUl).positionedOffset(idDiv).left;
824				$(idUl).style.left = (position + decal)+"px";
825                //console.log('effects.js setScrollHorizontalOnDiv btPrec position:'+position+' decal: '+decal);
826                if((position + decal)==0){
827                    btPrec.style.visibility="hidden";
828                }
829                if ($(params.ulJumelle)){
830                    $(params.ulJumelle).style.left = $(params.ulJumelle).positionedOffset(idDiv).left + decal;
831                }
832			} else {
833				new Effect.Move(idUl, {x: decal, mode: 'relative'})
834				if ($(params.ulJumelle)){
835                    new Effect.Move(params.ulJumelle, {x: decal, mode: 'relative'})
836                }
837			}
838		}
839	}
840	return true;
841}
842
843function setNbResultByCgi(classe,obj){
844    return;
845}
846
847function afficheEnvoiSelectionPourClient(action) {
848    var sending = getInfoSession() + '&element=' + action + "&idcontact=" + $('body').data('idcontact') + "&k=" + $('body').data('k');
849    $.ajax({
850        type: 'POST',
851        url: '/lib_2/ajax/contenuFenetre.php',
852        data: sending,
853        success: function (data) {
854            var html = $(data);
855            var titre = $('.input_titre_form', html).val();
856            afficheDivAvecTransparence('<div id="div_sendMailToFriend"></div>', 650, 600, '', titre);
857            $('#div_sendMailToFriend').html(data);
858            if ($('#inputDateFinEnvoiAmi').length > 0) {
859                $('#inputDateDebEnvoiAmi').datepicker({
860                    minDate: 0,
861                    onSelect: function (date) {
862                        $('#inputDateFinEnvoiAmi').datepicker({
863                            minDate: date
864
865                        });
866                    }
867                });
868            }
869            if ($('#select_typeCentrale').length > 0) {
870                $('#select_typeCentrale').change(function () {
871                    var mail = $(this).find('option:selected').attr('data-mail');
872                    $('#emailDeLaPart').val(mail);
873                });
874            }
875            if ($('#div_envoiAmisInfosMiniCata').length > 0) {
876                $('#div_envoiAmisInfosMiniCata').click(function () {
877                    if ($('#div_saisieInfosClientPourMiniCata').is(':visible')) {
878                        $('#div_saisieInfosClientPourMiniCata').hide();
879                    } else {
880                        $('#div_saisieInfosClientPourMiniCata').show();
881                    }
882                });
883            }
884            $('select[name="typeEnvoiMiniCatalogue"]').change(function () {
885                if ($(this).val()) {
886                    $('#div_selectModelMailMiniCata').hide('fast');
887                    $('#div_envoiAmiMessage').hide('fast');
888                    $('#emailMessage').attr('disabled', 'disabled');
889                    $('#div_envoiCommentaire').show('fast');
890                    $('#emailCommentaire').removeAttr('disabled');
891                }
892                else {
893                    $('#div_envoiCommentaire').hide('fast');
894                    $('#emailCommentaire').attr('disabled', 'disabled');
895                    $('#div_selectModelMailMiniCata').show('fast');
896                    $('#div_envoiAmiMessage').show('fast');
897                    $('#emailMessage').removeAttr('disabled');
898
899                }
900                if ($(this).val() == 'HTMLX') {
901                    $('#divSelectLienDocHTML').show('fast');
902                }
903                else {
904                    $('#divSelectLienDocHTML').hide('fast');
905                }
906            });
907            if ($('input[name="CP"]').length > 0 && $('input[name="ville"]').length > 0) {
908                autocompleteurCpVille($('input[name="CP"]'), $('input[name="ville"]'));
909            }
910            var langue = $("body").attr("data-langue") || 'FRANCAIS';
911            var tabAValider = [];
912            var mail = new LiveValidation('email1', {validMessage: 'Ok', onlyOnSubmit: true});
913            addValidateOnLiveValidationEmail(mail, langue, true);
914            tabAValider.push(mail);
915
916            $('#a_validFormMail,#a_validFormEnregistrementSeulement', '#div_sendMailToFriend').click(function () {
917                var seulementEnregistrement = $(this).attr('id') === 'a_validFormEnregistrementSeulement';
918                var mailClient = new LiveValidation("emailDeLaPart", {validMessage: "Ok", onlyOnSubmit: true});
919                addValidateOnLiveValidationEmail(mailClient, langue, true);
920                var mailAmi1 = new LiveValidation("email1", {validMessage: "Ok", onlyOnSubmit: true});
921                var email1Obligatoire = true;
922                if (seulementEnregistrement) {
923                    email1Obligatoire = false;
924                }
925                addValidateOnLiveValidationEmail(mailAmi1, langue, email1Obligatoire);
926                var mailAmi2 = new LiveValidation("email2", {validMessage: "Ok", onlyOnSubmit: true});
927                addValidateOnLiveValidationEmail(mailAmi2, langue, false);
928                var mailAmi3 = new LiveValidation("email3", {validMessage: "Ok", onlyOnSubmit: true});
929                addValidateOnLiveValidationEmail(mailAmi3, langue, false);
930                if (langue == "FRANCAIS") {
931                    if (!$('#prenomDeLaPart').hasClass('optionnel')) {
932                        var prenomClient = new LiveValidation("prenomDeLaPart", {validMessage: "Ok", onlyOnSubmit: true});
933                        prenomClient.add(Validate.Presence, {failureMessage: "Champ obligatoire"});
934                    }
935                    var message = new LiveValidation("emailMessage", {validMessage: "Ok", onlyOnSubmit: true});
936                    message.add(Validate.Presence, {failureMessage: "Champ obligatoire"});
937                } else {
938                    if (!$('#prenomDeLaPart').hasClass('optionnel')) {
939                        var prenomClient = new LiveValidation("prenomDeLaPart", {validMessage: "Ok", onlyOnSubmit: true});
940                        prenomClient.add(Validate.Presence, {failureMessage: "Required field"});
941                    }
942                    var message = new LiveValidation("emailMessage", {validMessage: "Ok", onlyOnSubmit: true});
943                    message.add(Validate.Presence, {failureMessage: "Required field"});
944                }
945
946                var tabAValider = new Array(mailClient, mailAmi1, mailAmi2, mailAmi3, message);
947                // si on a le mini catalogue, on doit mettre un nom fiche 258292
948                if ($('#div_envoiAmisInfosMiniCata').length > 0) {
949                    $('#div_saisieInfosClientPourMiniCata').show();
950                    var nom = new LiveValidation('nomPourMiniCatalogue', {validMessage: 'Ok', onlyOnSubmit: true});
951                    nom.add(Validate.Presence, {failureMessage: "Champ obligatoire"});
952                    tabAValider.push(nom);
953                }
954                if (!$('#prenomDeLaPart').hasClass('optionnel')) {
955                    tabAValider.push(prenomClient);
956                }
957                LiveValidation.massValidate(tabAValider);
958
959                if ($(".LV_invalid").length == 0) {
960                    envoiMailClientSelection(seulementEnregistrement);
961                }
962                if (estSurBureauITEA()) {
963                    if ($('#emailRecevoirCopie').prop('checked')) {
964                        localStorage.setItem('emailRecevoirCopie', '1');
965                    } else {
966                        localStorage.setItem('emailRecevoirCopie', '0');
967                    }
968                    var typeEnvoi = $('select[name="typeEnvoiMiniCatalogue"]').val() || '';
969                    localStorage.setItem('typeEnvoiMiniCatalogue', typeEnvoi);
970                    var typeLienMiniCata = localStorage.typeLienMiniCata || 'liste';
971                    localStorage.setItem('typeLienMiniCata', typeLienMiniCata);
972                }
973            });
974            if (estSurBureauITEA()) {
975                // gestion des préférences du localStorage
976                if (localStorage.emailRecevoirCopie === '1') {
977                    $('#emailRecevoirCopie').prop('checked', true);
978                }
979                var typeEnvoiMinCata = localStorage.typeEnvoiMiniCatalogue || '';
980                var option = $('select[name="typeEnvoiMiniCatalogue"] > option[value="' + typeEnvoiMinCata + '"]');
981                if (option.length > 0) {
982                    $('select[name="typeEnvoiMiniCatalogue"]').val(typeEnvoiMinCata);
983                    $('select[name="typeEnvoiMiniCatalogue"]').change();
984                    var typeLienMiniCata = localStorage.typeLienMiniCata || 'liste';
985                    $('select[name="typeLienMiniCatalogue"]').val(typeLienMiniCata);
986                }
987
988                initHistoClientMiniCata();
989                //autocompléteur clients
990                initAutocompleteClientsExistantsMiniCatalogue();
991                initGestionModelesMailMiniCata();
992                var dernierModelUtilise = getDernierModelUtilise();
993                if (dernierModelUtilise.length > 0) {
994                    $('#selectModelMailMiniCata').val(dernierModelUtilise).change();
995                }
996            }
997        }
998    });
999}
1000
1001function envoiMailClientSelection(seulementEnregistrement) {
1002    var sending = $('#formMailToFriend').serialize();
1003    if ($('#div_saisieInfosClientPourMiniCata').length > 0) {
1004        var tabInfosClient = getInfosClientPourMiniCata();
1005        sending += "&tabInfosClient=" + JSON.stringify(tabInfosClient);
1006    }
1007    var url = '/lib_2/ajax/envoiMail.php';
1008    if (seulementEnregistrement) {
1009        url = '/lib_2/ajax/gerePanier.php';
1010        sending += '&action=ENREGISTREMENTSELECTIONCLIENT';
1011    }
1012
1013    $("#div_envoiAmiSubmit").hide();
1014    $('#a_validFormEnregistrementSeulement').hide();
1015    $.ajax({
1016        type: 'POST',
1017        url: url,
1018        data: sending,
1019        success: function (data) {
1020            $('#div_messageEnvoiMail').addClass("messageAffiche");
1021            $('#div_messageEnvoiMail').html(data);
1022            setHistoClientMiniCata();
1023            enregistrerDernierModeleUtilise();
1024            $("#div_sendMailToFriend form *").attr("disabled", "disabled");
1025            $(".div_messageIntroForm").hide();
1026        },
1027        error: function (data) {
1028            $('#div_messageEnvoiMail').html('<p class="alert alert-warning">Il y a eu une erreur lors du traitement de votre demande. Veuillez contacter ITEA.</p>');
1029        }
1030    });
1031}
1032
1033function initHistoClientMiniCata() {
1034    var tabCiv = {1: 'M', 2: 'Mme', 3: 'M et Mme', O: ''};
1035    var tabHistoClient = getHistoClientMiniCata();
1036    if (tabHistoClient.length > 0) {
1037        tabHistoClient.forEach(function (client) {
1038            var objClient = {};
1039            client.split('&').forEach(function (key) {
1040                objClient[key.split("=")[0]] = key.split("=")[1];
1041            });
1042            var option = '<option data-civilite="' + objClient.civilite + '" data-nom="' + objClient.nom + '" data-prenom="' + objClient.prenom + '" data-adresse1="' + objClient.adresse1 + '" data-adresse2="' + objClient.adresse2
1043                    + '" data-cp="' + objClient.CP + '" data-ville="' + objClient.ville + '" data-pays="' + objClient.pays + '" data-teldom="' + objClient.teldom
1044                    + '" data-telbur="' + objClient.telbur + '" onclick="fillInfosClientMiniCata(this);" >' + tabCiv[objClient.civilite] + ' ' + objClient.prenom + ' ' + objClient.nom + ' - ' + objClient.ville + '</option>';
1045            $('#histoClientMiniCata').append(option);
1046        });
1047        $('#div_histoClientMiniCata').show();
1048    } else {
1049        $('#div_histoClientMiniCata').hide();
1050    }
1051}
1052
1053function initAutocompleteClientsExistantsMiniCatalogue() {
1054    var date;
1055    var timeKeyUp;
1056    var xhr;
1057    $('.div_champMiniCatalogue .nom, .div_champMiniCatalogue .prenom, #div_envoiAmiContent #email1, .div_champMiniCatalogue .cp, .div_champMiniCatalogue .teldom').keyup(function () {
1058        if ($('.div_champMiniCatalogue .rpenom').val() != '') {
1059            if ($('.div_champMiniCatalogue .nom').val() == '' && $('#div_envoiAmiContent #email1').val() == '' && $('.div_champMiniCatalogue .cp').val() == '' && $('.div_champMiniCatalogue .teldom').val() == '') {
1060                return false;
1061            }
1062        }
1063        date = new Date();
1064        timeKeyUp = date.getTime();
1065        setTimeout(function () {
1066            date = new Date();
1067            var time = date.getTime();
1068            var delai = time - timeKeyUp;
1069            if (delai >= 800) {
1070                xhr = lanceAutocompleteClientsMiniCatalogue();
1071            }
1072        }, 800);
1073    });
1074    $('.div_champMiniCatalogue .nom, .div_champMiniCatalogue .prenom, #div_envoiAmiContent #email1, .div_champMiniCatalogue .cp, .div_champMiniCatalogue .teldom').keypress(function () {
1075        if (xhr !== undefined) {
1076            xhr.abort();
1077        }
1078    });
1079}
1080
1081function initGestionModelesMailMiniCata() {
1082    $('#btnAjoutModeleMailMiniCata').click(function () {
1083        $(this).next('.error').html('');
1084        var objet = $('#emailObjet').val();
1085        var mail = $('#emailMessage').val();
1086        if (objet.length === 0) {
1087            $(this).next('.error').html('Vous n\'avez pas saisi d\'objet !');
1088            return;
1089        } else if (mail.length === 0) {
1090            $(this).next('.error').html('Le contenu de votre email est vide !');
1091            return;
1092        }
1093        $.ajax({
1094            url: './ajax/appelsAjax.php',
1095            type: 'POST',
1096            data: {
1097                'mail': mail,
1098                'objet': objet,
1099                'action': 'addNewModeleMailMiniCata'
1100            },
1101            beforeSend: function (xhr) {
1102                afficheLoaderGlobal_site();
1103            },
1104            success: function (data, textStatus, jqXHR) {
1105                if (data === 'KO') {
1106                    $(this).next('.error').html('Une erreur s\'est produite !');
1107                    return;
1108                }
1109                var rep = JSON.parse(data);
1110                //TO DO vérifier que l'option n'existe pas déjà dans le select
1111                if ($("#selectModelMailMiniCata option[value='" + rep.value + "']").length === 0) {
1112                    $('#selectModelMailMiniCata').append('<option value="' + rep.value + '">' + rep.text + '</option>');
1113                }
1114                $('#selectModelMailMiniCata').val(rep.value);
1115            },
1116            complete: function (jqXHR, textStatus) {
1117                effaceLoaderGlobal_site();
1118            }
1119        });
1120
1121    });
1122
1123    $('#supprModeleMailMiniCata').click(function () {
1124        var file = $('#selectModelMailMiniCata').val();
1125        if (file.length === 0) {
1126            $('#emailObjet').val("");
1127            $('#emailMessage').val("");
1128            return;
1129        }
1130        $.ajax({
1131            url: './ajax/appelsAjax.php',
1132            type: 'POST',
1133            data: {
1134                'file': file,
1135                'action': 'supprModeleMailMiniCata'
1136            },
1137            beforeSend: function (xhr) {
1138                afficheLoaderGlobal_site();
1139            },
1140            success: function (data, textStatus, jqXHR) {
1141                if (data === 'KO') {
1142                    $(this).next('.error').html('Une erreur s\'est produite !');
1143                    return;
1144                }
1145                $('#selectModelMailMiniCata option[value="' + file + '"]').remove();
1146                $('#emailObjet').val("");
1147                $('#emailMessage').val("");
1148                setValueMessageMailMiniCata(); // pour éviter de séléctionner un modele qui n'existe plus
1149            },
1150            complete: function (jqXHR, textStatus) {
1151                effaceLoaderGlobal_site();
1152            }
1153        });
1154    });
1155
1156    $('#selectModelMailMiniCata').change(function () {
1157        var file = $(this).val();
1158        if (file.length === 0) {
1159            $('#emailObjet').val("");
1160            setValueMessageMailMiniCata();
1161            return;
1162        }
1163        $.ajax({
1164            url: './ajax/appelsAjax.php',
1165            type: 'POST',
1166            data: {
1167                'file': file,
1168                'action': 'getModeleMailMiniCata'
1169            },
1170            beforeSend: function (xhr) {
1171                afficheLoaderGlobal_site();
1172            },
1173            success: function (data, textStatus, jqXHR) {
1174                if (data === 'KO') {
1175                    $(this).next('.error').html('Une erreur s\'est produite !');
1176                    return;
1177                }
1178                $('#emailObjet').val(file.replace('.txt', ''));
1179                setValueMessageMailMiniCata(data);
1180            },
1181            complete: function (jqXHR, textStatus) {
1182                effaceLoaderGlobal_site();
1183            }
1184        });
1185    });
1186
1187    $('#emailMessage').redactor({
1188        lang: 'fr',
1189        emptyHtml: "<br/>",
1190        buttons: ['html', '|', 'formatting', '|', 'bold', 'italic', 'deleted', '|', 'underline', '|',
1191            'unorderedlist', 'orderedlist', '|',
1192            'link', '|',
1193            'fontcolor', '|', 'alignment'],
1194        minHeight: 250,
1195    });
1196}
1197
1198function getDernierModelUtilise() {
1199    return window.localStorage["dernierModeleUtilise"] || '';
1200}
1201
1202function setHistoClientMiniCata() {
1203    var chaine = "civilite=" + $('select[name="civilite"]').val() + "&";
1204    chaine += $('#div_saisieInfosClientPourMiniCata  input').serialize();
1205    var pastSearches = [];
1206    if (window.localStorage["histoClientMiniCata"]) {
1207        pastSearches = JSON.parse(localStorage["histoClientMiniCata"]);
1208        for (var i = 0; i < pastSearches.length; i++) {
1209            if (chaine === pastSearches[i]) {
1210                return;
1211            }
1212        }
1213    }
1214    pastSearches.unshift(chaine);
1215    if (pastSearches.length > 5) {
1216        pastSearches.pop();
1217    }
1218    window.localStorage["histoClientMiniCata"] = JSON.stringify(pastSearches);
1219}
1220
1221function enregistrerDernierModeleUtilise(valueDernierModele) {
1222    var dernierModele = valueDernierModele || $('#selectModelMailMiniCata').val() || '';
1223    window.localStorage["dernierModeleUtilise"] = dernierModele;
1224}
1225
1226function getHistoClientMiniCata() {
1227    var pastSearches = [];
1228    if (window.localStorage["histoClientMiniCata"]) {
1229        pastSearches = JSON.parse(window.localStorage["histoClientMiniCata"]);
1230    }
1231    return pastSearches;
1232}
1233
1234function lanceAutocompleteClientsMiniCatalogue() {
1235    var nom = $('.div_champMiniCatalogue .nom').val();
1236    var prenom = $('.div_champMiniCatalogue .prenom').val();
1237    var mail = $('#div_envoiAmiContent #email1').val();
1238    var cp = $('.div_champMiniCatalogue .cp').val();
1239    var tel = $('.div_champMiniCatalogue .teldom').val();
1240    var url = './ajax/appelsAjax.php';
1241    var data = { nom, prenom, mail, cp, tel, action: 'getHTML_listeClientsForAutocomplete' };
1242    var xhr;
1243    if (nom.length>=3 || prenom.length>=4 || mail.length>=4 || cp.length>=2 || tel.length>=6) {
1244        xhr = $.ajax({
1245            type: 'POST',
1246            url: url, 
1247            data: data,
1248            beforeSend: function(){
1249                $('#div_autocompleteClients').show();
1250                $('#div_sendMailToFriend #div_saisieInfosClientPourMiniCata .div_saisieInfosClient').css('width','40%');
1251                $('#div_autocompleteClientsResults').html('<img src="/config_v3/imgs_defaut/loading/loader.gif" />');
1252            },
1253            success: function(result){
1254                $('#div_autocompleteClientsResults').html(result);
1255                $('#div_autocompleteClients').show();
1256                initChargeClientExistant();
1257            },
1258        });
1259    } else {
1260        $('#div_autocompleteClients').hide();
1261        $('#div_sendMailToFriend #div_saisieInfosClientPourMiniCata .div_saisieInfosClient').css('width','50%');
1262        $('#div_autocompleteClientsResults').html('');
1263    }
1264    return xhr;
1265}
1266
1267function setValueMessageMailMiniCata(value) {
1268    var message = value || "";
1269    $('#div_envoiAmiMessage .div_contentEnvoiAmi').empty();
1270    var textarea = '<textarea type="text" id="emailMessage" name="liste2Ami_message">' + message + '</textarea>';
1271    $('#div_envoiAmiMessage .div_contentEnvoiAmi').append(textarea);
1272    $('#emailMessage').redactor({
1273        lang: 'fr',
1274        emptyHtml: "<br/>",
1275        buttons: ['html', '|', 'formatting', '|', 'bold', 'italic', 'deleted', '|', 'underline', '|',
1276            'unorderedlist', 'orderedlist', '|',
1277            'link', '|',
1278            'fontcolor', '|', 'alignment'],
1279        minHeight: 250,
1280    });
1281}
1282
1283function initChargeClientExistant(){
1284    $('.li_autocompleteurClient').click(function(){
1285        // TODO : vérifier que tous les champs ont été chargés, si ce n'est pas le cas il faut faire une requête AJAX pour avoir le détail
1286        // Dans tous les cas on a ces 4 champs
1287        var nom = $(this).find('.inpt_autocompleteClient.nomClient').val();
1288        var prenom = $(this).find('.inpt_autocompleteClient.prenomClient').val();
1289        var mail = $(this).find('.inpt_autocompleteClient.mailClient').val();
1290        var instance = $(this).find('.inpt_autocompleteClient.instance').val();
1291        var civilite; var CP = ''; var ville = ''; var adresse1 = ''; var adresse2 = '';
1292        var telDom = ''; var telBur = ''; var mdp = ''; var pays = ''; 
1293        var numeroClient = ''; var identClientNat = '';var mdpNationalExistant;
1294        var commentaireClient = '';
1295        if ($(this).find('.inpt_autocompleteClient.villeClient').length===0 && instance.length>0 && $('#div_saisieInfosClientPourMiniCata').length===0) {
1296            // TODO : appel AJAX pour récupérer détail
1297            $.ajax({
1298                type: 'POST',
1299                url: urlAJAX,
1300                async: false,
1301                data: {type: 'getDetailClient', nom: nom, prenom: prenom, mail: mail, instance: instance},
1302                success: function(result){
1303                    var tabResult = XMLToArray(result);
1304                    civilite = tabResult.civilite;
1305                    CP = tabResult.code_postal;
1306                    ville = tabResult.ville;
1307                    adresse1 = tabResult.adresse;
1308                    adresse2 = tabResult.lieu_dit;
1309                    telDom = tabResult.tel1;
1310                    telBur = tabResult.tel2;
1311                    mdp = tabResult.mdp;
1312                    pays = tabResult.pays || '';
1313                    numeroClient = tabResult.numeroClient;
1314                    identClientNat = tabResult.identClientnat;
1315                    commentaireClient = tabResult.commentaire || '';
1316                }
1317            });
1318        } else {
1319            civilite = $(this).find('.inpt_autocompleteClient.civilite').val();
1320            CP = $(this).find('.inpt_autocompleteClient.CPClient').val();
1321            ville = $(this).find('.inpt_autocompleteClient.villeClient').val();
1322            adresse1 = $(this).find('.inpt_autocompleteClient.adresse1Client').val();
1323            adresse2 = $(this).find('.inpt_autocompleteClient.adresse2Client').val();
1324            telDom = $(this).find('.inpt_autocompleteClient.tel1Client').val();
1325            telBur = $(this).find('.inpt_autocompleteClient.tel2Client').val();
1326            mdp = $(this).find('.inpt_autocompleteClient.mdp').val();
1327            pays = $(this).find('.inpt_autocompleteClient.pays').val() || '';
1328            numeroClient = $(this).find('.inpt_autocompleteClient.numeroClient').val();
1329            if ($(this).find('.inpt_autocompleteClient.identClientNat').length>0) {
1330                identClientNat = $(this).find('.inpt_autocompleteClient.identClientNat').val();
1331                mdpNationalExistant = $(this).find('.inpt_autocompleteClient.mdpNationalExistant').val();
1332            }
1333            commentaireClient = $(this).find('.inpt_autocompleteClient.commentaireClient').val() || '';
1334        }
1335        
1336        // TODO : récupérer les infos des champs cachés et remplir le formulaire
1337        $('#select_civiliteClient, .div_champMiniCatalogue .civilite').val(civilite);
1338        $('#inpt_nomClient, .div_champMiniCatalogue .nom').val(nom);
1339        $('#inpt_prenomClient, .div_champMiniCatalogue .prenom').val(prenom);            
1340        $('#inpt_cpClient, .div_champMiniCatalogue .cp').val(CP);
1341        $('#inpt_villeClient, .div_champMiniCatalogue .ville').val(ville);
1342        $('#inpt_mailClient').val(mail);
1343        $('#div_envoiAmiContent #email1').val(mail); //pour le mini-catalogue
1344        $('#inpt_adresse1Client, .div_champMiniCatalogue .adresse1').val(adresse1);
1345        $('#inpt_adresse2Client, .div_champMiniCatalogue .adresse2').val(adresse2);
1346        $('#inpt_telDomClient, .div_champMiniCatalogue .teldom').val(telDom);
1347        $('#inpt_telBurClient, .div_champMiniCatalogue .telbur').val(telBur);
1348        $('#inpt_mdpClient, .div_champMiniCatalogue .mdp').val(mdp);
1349        $('#inpt_numeroClient').val(numeroClient);
1350        if(estResaBureauGestloc()){
1351            $('#inpt_commentaireClientPourCentrale').text(commentaireClient);
1352        }
1353        $('#inpt_identClientNat').val(identClientNat);
1354        if (identClientNat && identClientNat.length>0) {
1355            $('.ipt_clientExistant').attr('disabled', true);
1356            $('#div_saisieClientEmail .i_helperInfoBulle').show();
1357            var htmlAlerte = "<div class='row'><strong><i class='fa fa-exclamation-triangle' aria-hidden='true'></i></strong>" +
1358                                " Ce client possède un compte client National";
1359            if(estSurBureauITEA()){
1360                htmlAlerte += "<input class='btn btn-primary pull-right' type='button' value='Modifier les coordonnées' onclick='actionBtnDelierCptNat(this);'>";
1361            }
1362            htmlAlerte += "</div>";
1363            $('#alerte_inputsClientDisabled').html(htmlAlerte);
1364            $('#alerte_inputsClientDisabled').show();
1365        } else {
1366            $('.ipt_clientExistant').attr('disabled', false);
1367            $('#div_saisieClientEmail .i_helperInfoBulle').hide();
1368            $('#alerte_inputsClientDisabled').hide();
1369        }
1370        
1371        $('#inpt_mdpNationalExistant').val(mdpNationalExistant);
1372        if(pays){
1373            $('option',$('#select_pays')).attr('selected',false);
1374            $('option[data-code="'+pays+'"]',$('#select_pays')).attr('selected',true);
1375            $('.div_champMiniCatalogue .pays').val(pays); // Vincent 312116
1376        }
1377        //On valide les champs
1378        validFormulaire();
1379        checkChampsImportants();
1380    });
1381}
1382
1383function validFormulaire(){
1384    // Fonction appelée si on a un objClient en session, il faut pouvoir afficher les msgs
1385    // du plugin de validation de formulaire (LiveValidation)
1386    var tabAValider = [];
1387    tabAValider = getTabChampAValider();
1388    LiveValidation.massValidate(tabAValider); 
1389}
1390
1391function checkChampsImportants(){
1392    if ($('#inpt_adresse1Client').val()=='') {
1393        $('#div_msgInfosChampsSaisis p.adresse').show();
1394    } else {
1395        $('#div_msgInfosChampsSaisis p.adresse').hide();
1396    }
1397    if ($('#inpt_telDomClient').val()=='') {
1398        $('#div_msgInfosChampsSaisis p.tel').show();
1399    } else {
1400        $('#div_msgInfosChampsSaisis p.tel').hide();
1401    }
1402    if ($('#inpt_mailClient').val()=='') {
1403        $('#div_msgInfosChampsSaisis p.mail').show();
1404    } else {
1405        $('#div_msgInfosChampsSaisis p.mail').hide();
1406    }
1407    if ($('#div_msgInfosChampsSaisis .p_msgInfosChampsSaisis:visible').length==0) {
1408        $('#div_msgInfosChampsSaisis').hide();
1409    } else {
1410        $('#div_msgInfosChampsSaisis').show();
1411    }
1412}
1413
1414function toggleAffichageCarteResponsive() {
1415    chargeCarteResponsive();
1416    $('#content').toggleClass('carteVisible');
1417}
1418
1419function chargeCarteResponsive() {
1420    if($('#divgmap3>*').length > 0) {
1421        return;
1422    }
1423    leaflet_loadLeafletAssets('getParamsGoogleMap', 'classique');
1424}

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.