1/** 2 * Permet de regrouper les fonctions utilisées sur les pages de fiche 3 * Afin d'éviter de faire des fonctions identiques dans tous les looks... 4 */ 5 6// 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 7 8// Initialisation des différents évènements liés aux divs _packDivDatesTarifs 9function init_packDivDatesTarifs(){ 10 (function($){ 11 initSelectionTypeTarifs_packDivDatesTarifs(); 12 initSelectionMois_packDivDatesTarifs(); 13 initNavigationMois_packDivDatesTarifs(); 14 initSelectionPeriode_packDivDatesTarifs(); 15 checkAfficheBoutonWeekEnd_packDivDatesTarifs(); 16 checkAfficheBoutonMidWeek_packDivDatesTarifs(); 17 initCalendrierDatesFiche_packDivDatesTarifs(); 18 init_detailChambreAfficheTarifs(); 19 init_detailChambreAfficheDispo(); 20 init_detailChambreSelectNbPers(); 21 if(!jQuery('#inpt_resaDateDebCal')){ 22 initEventClickBoutonReserver_packDivDatesTarifs(); 23 } 24 initEventClickBoutonContactProp_packDivDatesTarifs(); 25 26 // On vérifie que les champs de dates sont bien remplis avant d'aller en résa 27 if (!dateDebEtFin_VideOuDefault()) { 28 lanceCalculPrixSejour(); 29 } 30 31 $(document).ready(function() { 32 $('#widgetFNGF_selectChambre').on('change', function() { 33 $('#div_loaderUnload').show(); 34 var capacite = $('#widgetFNGF_selectChambre option[value="' + $(this).val() + '"]').attr('capacite'); 35 updateSelectCapacite(capacite); 36 updatePrixResa(); 37 $('#div_loaderUnload').hide(); 38 }); 39 40 $('#widgetFNGF_selectCapacite').on('change', function() { 41 $('#div_loaderUnload').show(); 42 updatePrixResa(); 43 $('#div_loaderUnload').hide(); 44 }); 45 }); 46 47 })(jQuery); 48} 49 50function initSelectionTypeTarifs_packDivDatesTarifs(){ 51 (function($){ 52 $('.tarifsAvecDispo_choixDuree li span').bind('click', function(){ 53 var liParent = $(this).parent('li'); 54 if (liParent.hasClass('indisponible')) { 55 return; 56 } 57 var typeTarif = $(this).parent('li').attr('data-duree-tarif'); 58 59 if (typeTarif=='autre') { 60 ouvreDatePickerDateDeb_packDivDatesTarifs(); 61 $(this).parent('li').addClass("opened"); 62 } else { 63 $('.tarifsAvecDispo_choixDuree li').removeClass('active'); 64 liParent.addClass('active'); 65 $('.tarifsAvecDispo_detailUnMois .tarifsAvecDispo_detailUnMois_tarifUneDuree').hide(); 66 $('.tarifsAvecDispo_detailUnMois .tarifsAvecDispo_detailUnMois_tarifUneDuree[data-duree-tarif="'+typeTarif+'"]').show(); 67 } 68 69 return false; 70 }); 71 })(jQuery); 72} 73 74function initNavigationMois_packDivDatesTarifs(){ 75 (function($){ 76 $('.tarifsAvecDispo_choixMoisNext a').bind('click', function(){ 77 // On décale l'affichage des mois seulement si le mois actuellement sélectionné n'est pas le premier 78 if (!$('.tarifsAvecDispo_listeMois li:visible').first().is('.active')) { 79 $('.tarifsAvecDispo_listeMois li:visible').first().hide(); 80 $('.tarifsAvecDispo_listeMois li:visible').last().next().show(); 81 // On masque la flèche suivante si on est arrivé au dernier mois 82 $('.tarifsAvecDispo_choixMoisPrev').css('visibility', 'visible'); 83 } 84 // On sélectionne le mois suivant 85 var liMoisActifNext = $('.tarifsAvecDispo_listeMois li.active').next(); 86 selectionneMois_packDivDatesTarifs(liMoisActifNext); 87 }); 88 $('.tarifsAvecDispo_choixMoisPrev a').bind('click', function(){ 89 // On décale l'affichage des mois seulement si le mois actuellement sélectionné n'est pas le dernier 90 if (!$('.tarifsAvecDispo_listeMois li:visible').last().is('.active')) { 91 // On décale l'affichage des mois 92 $('.tarifsAvecDispo_listeMois li:visible').last().hide(); 93 $('.tarifsAvecDispo_listeMois li:visible').first().prev().show(); 94 // On masque la flèche précédente si on est arrivé au premier mois 95 $('.tarifsAvecDispo_choixMoisNext').css('visibility', 'visible'); 96 } 97 // On sélectionne le mois suivant 98 var liMoisPrev = $('.tarifsAvecDispo_listeMois li.active').prev(); 99 selectionneMois_packDivDatesTarifs(liMoisPrev); 100 }); 101 })(jQuery); 102} 103 104function initSelectionMois_packDivDatesTarifs(){ 105 (function($){ 106 $('.tarifsAvecDispo_listeMois li').bind('click', function(){ 107 selectionneMois_packDivDatesTarifs($(this)); 108 }); 109 })(jQuery); 110} 111 112function selectionneMois_packDivDatesTarifs(liMois){ 113 (function($){ 114 // fiche 243238
115 if(liMois.hasClass('active') && liMois.is(':first-child, :last-child')) { 116 //console.log('fiche.js selectionneMois_packDivDatesTarifs return false'); 117 return false; 118 } 119 120 $('.tarifsAvecDispo_listeMois li').removeClass('active'); 121 122 liMois.addClass('active'); 123 124 // Il faut penser à vérifier que le li est visible, si ce n'est pas le cas on le rend visible ainsi que ses voisins 125 if (liMois.not(':visible')) { 126 $('.tarifsAvecDispo_listeMois li').hide(); 127 liMois.show(); 128 if (liMois.prev().length > 0) { // fiche 243238 : ajout condition sur length 129// if (liMois.prev().is(':first-child')) { 130// $('.tarifsAvecDispo_choixMoisPrev').css('visibility', 'hidden'); 131// } else { 132// $('.tarifsAvecDispo_choixMoisPrev').css('visibility', 'visible'); 133// } 134 liMois.prev().show(); 135 } 136 // fiche 243238 : Antoine - je mets ça ici 137 if (liMois.is(':first-child')) { 138 $('.tarifsAvecDispo_choixMoisPrev').css('visibility', 'hidden'); 139 } else { 140 $('.tarifsAvecDispo_choixMoisPrev').css('visibility', 'visible'); 141 } 142 if (liMois.next().length > 0) { // fiche 243238 : ajout condition sur length 143// if (liMois.next().is(':last-child')) { 144// $('.tarifsAvecDispo_choixMoisNext').css('visibility', 'hidden'); 145// } else { 146// $('.tarifsAvecDispo_choixMoisNext').css('visibility', 'visible'); 147// } 148 liMois.next().show(); 149 } 150 // fiche 243238 : Antoine - je mets ça ici 151 if (liMois.is(':last-child')) { 152 $('.tarifsAvecDispo_choixMoisNext').css('visibility', 'hidden'); 153 } else { 154 $('.tarifsAvecDispo_choixMoisNext').css('visibility', 'visible'); 155 } 156 } 157 158 var moisAnnee = liMois.attr('data-moisAnnee'); 159 160 $('.tarifsAvecDispo_detailUnMois').hide(); 161 $('.tarifsAvecDispo_detailUnMois[data-moisAnnee="'+moisAnnee+'"]').show(); 162 checkAfficheBoutonWeekEnd_packDivDatesTarifs(); 163 checkAfficheBoutonMidWeek_packDivDatesTarifs(); 164 })(jQuery); 165} 166 167function initSelectionPeriode_packDivDatesTarifs(){ 168 (function($){ 169 $('.tarifsAvecDispo_detailUnMois_tarifUneDuree td.libre').bind('click', function(){ 170 $('.tarifsAvecDispo_detailUnMois_tarifUneDuree td').removeClass('select'); 171 $(this).addClass('select'); 172 173 setInputDates_packDivDatesTarifs($(this).attr('data-deb'), $(this).attr('data-nbj')); 174 lanceCalculPrixSejour(); 175 }); 176 177 $('.tarifsAvecDispo_detailUnMois_tarifUneDuree td.partiellementDispo').bind('click', function(){ 178 if (typeof(ouvreDatePicker_partiellementDispo_foncAvant)=='function') { 179 ouvreDatePicker_partiellementDispo_foncAvant(); 180 } 181 var dateDebAvant = $('#div_choixDates_packDivDatesTarifs .inpt_moteurDatesDateDeb').val();; 182 var dateFinAvant = $('#div_choixDates_packDivDatesTarifs .inpt_moteurDatesDateFin').val(); 183 184 setInputDates_packDivDatesTarifs($(this).attr('data-deb'), $(this).attr('data-nbj'), true); 185 ouvreDatePickerDateDeb_packDivDatesTarifs(); 186 // On ne laisse pas les dates dans les champs pour éviter de perturber l'internaute 187 $('#div_choixDates_packDivDatesTarifs .inpt_moteurDatesDateDeb').val(dateDebAvant); 188 $('#div_choixDates_packDivDatesTarifs .inpt_moteurDatesDateFin').val(dateFinAvant); 189 return false; 190 }); 191 })(jQuery); 192} 193 194function setInputDates_packDivDatesTarifs(dateDeb, duree, invisible){ 195 (function($){ 196 var objDate = new OBJDate(dateDeb); 197 objDate.ajoutJour(duree); 198 var dateFin = objDate.toString(); 199 200 var objDateDeb = new Date(); 201 objDateDeb.setFullYear(dateDeb.substr(6, 4), dateDeb.substr(3, 2)-1, dateDeb.substr(0, 2)); 202 // fiche 235579 203 objDateDeb.setHours(0); objDateDeb.setMinutes(0); objDateDeb.setSeconds(0); 204 var objDateFin = new Date(); 205 objDateFin.setFullYear(dateFin.substr(6, 4), dateFin.substr(3, 2)-1, dateFin.substr(0, 2)); 206 207 if (invisible) { 208 $('#div_choixDates_packDivDatesTarifs .inpt_moteurDatesDateDeb').attr('data-dateposition', dateDeb); 209 $('#div_choixDates_packDivDatesTarifs .inpt_moteurDatesDateFin').attr('data-dateposition', dateFin); 210 } else { 211 $('#div_choixDates_packDivDatesTarifs .inpt_moteurDatesDateDeb').val(dateDeb); 212 $('#div_choixDates_packDivDatesTarifs .inpt_moteurDatesDateFin').val(dateFin); 213 } 214 215 if(window.setInputDates_packDivDatesTarifs_foncQdFini){ 216 setInputDates_packDivDatesTarifs_foncQdFini(); 217 } 218 219 })(jQuery); 220} 221
222function lanceCalculPrixSejour(avecSelectionChambres){ 223 (function($){ 224 var dateDeb = $('#div_choixDates_packDivDatesTarifs .inpt_moteurDatesDateDeb').val(); 225 var dateFin = $('#div_choixDates_packDivDatesTarifs .inpt_moteurDatesDateFin').val(); 226 if ($('#div_choixModeResaGEGS').length>0) { 227 var modeResa = $('.inpt_modeVte:checked').val(); 228 } 229 230 if (dateDeb && dateFin) { 231 var tabData = {type: 'verifDates', dateDeb: dateDeb, dateFin: dateFin, avecQTipFD : $('#sp_infoBulleAideFraisDossiers').length, modeResa: modeResa}; 232 modeCalculPrixSurFiche = true; 233 if (avecSelectionChambres===true) { 234 ajaxVerifDates(tabData, affectSelectionChambres_fiche); 235 } else { 236 ajaxVerifDates(tabData); 237 } 238 } 239 })(jQuery); 240} 241 242function checkAfficheBoutonWeekEnd_packDivDatesTarifs(){ 243 (function($){ 244 var btnWeekEnd = $('.tarifsAvecDispo_choixDuree').find('li[data-duree-tarif="week-end"]'); 245 var divMoisSelect = $('.tarifsAvecDispo_detailUnMois:visible'); 246 var tableDureeWeekEnd = divMoisSelect.find('table.tarifsAvecDispo_detailUnMois_tarifUneDuree[data-duree-tarif="week-end"]'); 247 if (tableDureeWeekEnd.find('td').not('.indisponible').length>0) { 248 btnWeekEnd.removeClass('indisponible').attr("title",""); 249 } else { 250 btnWeekEnd.addClass('indisponible').attr("title",btnWeekEnd.attr("data-titlepasTarif")); 251 if (btnWeekEnd.is('.active')) { 252 $('.tarifsAvecDispo_choixDuree li[data-duree-tarif="semaine"] span').trigger('click'); 253 } 254 } 255 })(jQuery); 256} 257 258function checkAfficheBoutonMidWeek_packDivDatesTarifs(){ 259 (function($){ 260 var btnMidWeek = $('.tarifsAvecDispo_choixDuree').find('li[data-duree-tarif="mid-week"]'); 261 var divMoisSelect = $('.tarifsAvecDispo_detailUnMois:visible'); 262 var tableDureeMidWeek = divMoisSelect.find('table.tarifsAvecDispo_detailUnMois_tarifUneDuree[data-duree-tarif="mid-week"]'); 263 if (tableDureeMidWeek.find('td').not('.indisponible').length>0) { 264 btnMidWeek.removeClass('indisponible').attr("title",""); 265 } else { 266 btnMidWeek.addClass('indisponible').attr("title",btnMidWeek.attr("data-titlepasTarif")); 267 if (btnMidWeek.is('.active')) { 268 $('.tarifsAvecDispo_choixDuree li[data-duree-tarif="semaine"] span').trigger('click'); 269 } 270 } 271 })(jQuery); 272} 273 274function initCalendrierDatesFiche_packDivDatesTarifs(){ 275 (function($){ 276// if (jQuery('#inpt_choixDates_packDivDatesTarifs_NEW').length>0) { 277// initDatePickers_datesSejour(); 278// return; 279// } 280 var tabParam = new Array(); 281 tabParam.ident = jQuery('#div_choixDates_packDivDatesTarifs').attr('data-ident'); 282 tabParam.instance = jQuery('#div_choixDates_packDivDatesTarifs').attr('data-instance'); 283 tabParam.exercice = jQuery('#div_choixDates_packDivDatesTarifs').attr('data-exercice'); 284 tabParam.modeFicheV8 = true; 285 286 afficherMasquerCalendrier(tabParam); 287 })(jQuery); 288} 289 290function majDivTarifAPartirDe(tabRetour){ 291 (function ($) { 292 // On regarde s'il faut actualier la page 293 if ($('#div_choixDates_packDivDatesTarifs') && $('#div_choixDates_packDivDatesTarifs').attr('data-impweb')==='N' && !tabRetour.htmlTarifFicheApartirDe && $('#widgetGNGF').length == 0) { 294 if (tabRetour.planVente && $('#div_choixDates_packDivDatesTarifs').attr('data-planvente') !== tabRetour.planVente) { 295 // Actualiser la page 296 var tabInfosActualisation = {deb: $('#inpt_resaDateDebCal').val(), fin: $('#inpt_resaDateFinCal').val()}; 297 actualisePageFiche(tabInfosActualisation); 298 return; 299 } 300 } 301 $('#div_msgErreurRetourVerifDates').html(''); // fiche 246872 302 if (tabRetour.msgErreurCalculPrix) { 303 $('.tarifFicheApartirDe').hide(); 304 // TODO : afficher ce message et garder les prix? 305 if ($('#div_msgErreurRetourVerifDates').length>0) { 306 $('#div_msgErreurRetourVerifDates').replaceWith(tabRetour.msgErreurCalculPrix); 307 } else { 308 $('.tarifFicheApartirDe').before(tabRetour.msgErreurCalculPrix); 309 } 310 } else if (tabRetour.htmlTarifFicheApartirDe) { 311 $('#div_msgErreurRetourVerifDates').hide(); 312 $('.tarifFicheApartirDe').html(tabRetour.htmlTarifFicheApartirDe); 313 $('.tarifFicheApartirDe').show(); 314 315 if(tabRetour.prixChambres){
316 tabRetour.prixChambres.forEach(function(chambre){ // on met à jour le prix dans la div de la chambre concernée. 317 var div = $('.div_tarifUneChambre_infosTarifs[data-num_idch="'+chambre['numChambre']+'"]'); 318 div.find('.sp_prixSejour_prix').html(chambre['prixAdu']); 319 div.find('.sp_lblApresPrix').hide(); 320 }); 321 } 322 323 // HL@1969205 | On a des problèmes de chargement de lib => safeguard sur la fonction qtip implémenté => je remets 324 // On peut avoir des qtips sur le nouveau HTML, on doit donc rappeler la fonction qui initialise 325 setEventForQtip(); 326 } else { 327 $('.tarifFicheApartirDe').hide(); 328 } 329 330 if (tabRetour.msgInfoDemandeParMail) { 331 if ($('#div_msgInfoDemandeParMail').length>0) { 332 $('#div_msgInfoDemandeParMail').replaceWith(tabRetour.msgInfoDemandeParMail); 333 } else { 334 $('.tarifFicheApartirDe').after(tabRetour.msgInfoDemandeParMail); 335 } 336 } else { 337 $('#div_msgInfoDemandeParMail').hide(); 338 } 339 340 if (tabRetour.htmlBoutonReserver) { 341 if($('.divWrapperBoutonReserverContact').length>0){ 342 $('.divWrapperBoutonReserverContact').html(tabRetour.htmlBoutonReserver); 343 } 344 else if($('.div_btnResa').length>0){ 345 $('.div_btnResa').html(tabRetour.htmlBoutonReserver); 346 } 347 else{ 348 $('#btResa').html(tabRetour.htmlBoutonReserver); 349 } 350// $('.div_btnResa').html(tabRetour.htmlBoutonReserver); 351 majHrefBoutonReserver(); 352 initEventClickBoutonReserver_packDivDatesTarifs(); 353 } 354 355 if (tabRetour.location) { 356 // Mise à jour du prix dans le champ caché pour le tag Criteo 357 var prixLocation = tabRetour.location.replace(' €', ''); 358 $('#a_btnReserver_packDivDatesTarifs').attr('data-prix', prixLocation); 359 } 360 361 if (tabRetour.changeMsgBtnReserver) { 362 var titleDemandeResa = $('#a_btnReserver_packDivDatesTarifs').attr('data-titleDemandeResa'); 363 $('#a_btnReserver_packDivDatesTarifs').attr('title', titleDemandeResa); 364 $('#a_btnReserver_packDivDatesTarifs .sp_lblReserver').each(function(){ 365 var lblDemandeResa = $(this).attr('data-lblDemandeResa'); 366 $(this).text(lblDemandeResa); 367 $('#a_btnReserver_packDivDatesTarifs').addClass('demandeDeResa'); 368 }); 369 var lienResa = $('#a_btnReserver_packDivDatesTarifs').attr('data-lienResa'); 370 lienResa += '&forceLink=1'; 371 $('#a_btnReserver_packDivDatesTarifs').attr('data-lienResa', lienResa); 372 } 373 })(jQuery); 374} 375 376function majDivChambres_packDivDatesTarifs(tabRetour, avecFondQdFini){ 377 if (tabRetour.htmlDivChambres) { 378 for(var numIdCh in tabRetour.htmlDivChambres){ 379 var div = jQuery('.div_tarifUneChambre_infosTarifs[data-num_idch="'+numIdCh+'"]'); 380 if(div.length === 0){ 381 continue; 382 } 383 var html = tabRetour.htmlDivChambres[numIdCh]; 384 div.replaceWith(html); 385 var dateDeb = jQuery('.inpt_moteurDatesDateDeb').val(); 386 changeMoisCalendrierPHP(jQuery('.divWrapperInfosChambre_packDivDatesTarifs[data-num_idch="'+numIdCh+'"]'),dateDeb); 387 jQuery('.div_tarifUneChambre_lancerResa').removeClass('sansDates'); 388 jQuery('.div_tarifUneChambre_selectNbPers[data-numIdch="'+numIdCh+'"]').removeClass('disabled'); 389 jQuery('.divWrapperInfosChambre_packDivDatesTarifs[data-num_idch="'+numIdCh+'"]').removeClass('indisponible'); 390 jQuery('.div_tarifUneChambre_selectNbPers[data-numIdch="'+numIdCh+'"] .select_nbPers').removeAttr('disabled'); 391 jQuery('.div_tarifUneChambre_selectNbPers[data-numIdch="'+numIdCh+'"] .select_nbPers').next('.ui-selectmenu-button').removeClass('ui-selectmenu-disabled'); 392 jQuery('.div_tarifUneChambre_selectNbPers[data-numIdch="'+numIdCh+'"] .select_nbPers').next('.ui-selectmenu-button').removeClass('ui-state-disabled'); 393 if(jQuery('.div_tarifUneChambre_infosTarifs[data-num_idch="'+numIdCh+'"]').hasClass('indisponible')){ 394 jQuery('.divWrapperInfosChambre_packDivDatesTarifs[data-num_idch="'+numIdCh+'"]').addClass('indisponible'); 395 jQuery('.div_tarifUneChambre_selectNbPers[data-numIdch="'+numIdCh+'"]').addClass('disabled'); 396 jQuery('.div_tarifUneChambre_selectNbPers[data-numIdch="'+numIdCh+'"] .select_nbPers').attr('disabled',''); 397 jQuery('.div_tarifUneChambre_selectNbPers[data-numIdch="'+numIdCh+'"] .select_nbPers').next('.ui-selectmenu-button').addClass('ui-selectmenu-disabled'); 398 jQuery('.div_tarifUneChambre_selectNbPers[data-numIdch="'+numIdCh+'"] .select_nbPers').next('.ui-selectmenu-button').addClass('ui-state-disabled'); 399 } 400 } 401// jQuery('#div_fiche_bloc_tarif_chmb_packDivDatesTarifs').replaceWith(tabRetour.htmlDivChambres); 402 init_detailChambreAfficheTarifs(); 403 init_detailChambreAfficheDispo(); 404 jQuery(".a_lblConnaitredispos").text(jQuery(".a_lblConnaitredispos").data("lblavecdates")); 405 // Fonction définie dans le look 406 if(avecFondQdFini!==false && window.majDivChambres_packDivDatesTarifs_foncQdFini){ 407 majDivChambres_packDivDatesTarifs_foncQdFini(); 408 } 409 } 410 411 if (tabRetour.htmlDatesSejoursAlternatifs) { 412 jQuery('.divWrapperInfosChambre_packDivDatesTarifs').each(function(){
413 var numIdch = jQuery(this).data('num_idch'); 414 415 if (jQuery(this).find('.div_sejoursAlternatifs').length > 0) { 416 jQuery(this).find('.div_sejoursAlternatifs').remove(); 417 } 418 if (tabRetour.htmlDatesSejoursAlternatifs[numIdch] !== '') { 419 // Afficher "div_sejoursAlternatifs" et masquer "div_tarifUneChambre_lancerResa" 420 jQuery(this).find('.div_tarifUneChambre_lancerResa').hide(); 421 jQuery(this).append(tabRetour.htmlDatesSejoursAlternatifs[numIdch]); 422 } else { 423 // Effacer "div_sejoursAlternatifs" s'il est présent et affiche "div_tarifUneChambre_lancerResa" 424 jQuery(this).find('.div_tarifUneChambre_lancerResa').show(); 425 } 426 }); 427 } 428} 429 430function majHrefBoutonReserver(sansPlanning){ 431 (function($){ 432 if ($('#a_btnReserver_packDivDatesTarifs').attr('data-accesResa')=='O' || sansPlanning) { 433 var lienResa = $('#a_btnReserver_packDivDatesTarifs').attr('data-lienResa'); 434 $('#a_btnReserver_packDivDatesTarifs').attr('href', lienResa); 435 $('#a_btnReserver_packDivDatesTarifs').attr('target', $('#a_btnReserver_packDivDatesTarifs').attr('data-target')); 436 if (typeof(waDecorateLink)=="function") { 437 lienResa = waDecorateLink(lienResa); 438 } 439 $('#a_btnReserver_packDivDatesTarifs').attr('href', lienResa); 440 } 441 })(jQuery); 442} 443 444function verifDatePickerFiche() { 445 var ok = true; 446 447 (function ($) { 448 449 if (dateDebEtFin_VideOuDefault()) { 450 ouvreDatePickerDateDeb_packDivDatesTarifs(); 451 ok = false; 452 } 453 })(jQuery); 454 455 return ok; 456} 457 458function initEventClickBoutonReserver_packDivDatesTarifs(){ 459 (function($){ 460 $('#a_btnReserver_packDivDatesTarifs').unbind('click'); 461 $('#a_btnReserver_packDivDatesTarifs').bind('click', function(){ 462 // On vérifie que les champs de dates sont bien remplis avant d'aller en résa 463 if(!verifDatePickerFiche()) { 464 return false; 465 } 466 majHrefBoutonReserver(true); 467 // Appels au trackEvent avec dataLayer.push 468 var tabParamsGTM = $(this).attr('data-paramsTrackEvent'); 469 var listeParams = eval('('+tabParamsGTM+')'); 470 if(window.dataLayer){ 471 dataLayer.push({ 472 'Label_Event': listeParams.label, 473 'Categorie_Event': listeParams.categorie, 474 'event': listeParams.action 475 }); 476 477 var prix = $(this).attr('data-prix'); 478 var TransactionId = listeParams.prefixe+listeParams.label; 479 dataLayer.push({ 480 'Transaction_Id': TransactionId, 481 'Product_Id': listeParams.ident, 482 'Price': prix, 483 'event': 'Criteo_Contact' 484 }); 485 // Pas de GTM, il faut déterminer si on est en GA ou en UA 486 } else if (window.ga) { 487 ga('send', 'event', listeParams.categorie, listeParams.action, listeParams.label); 488 } else if (typeof(_gaq)!='undefined') { 489 _gaq.push(['_trackEvent', listeParams.categorie, listeParams.action, listeParams.label]); 490 } 491 }); 492 })(jQuery); 493} 494 495function initEventClickBoutonContactProp_packDivDatesTarifs(){ 496 (function($){ 497 $('#a_btnContactProp_packDivDatesTarifs').click(function(){ 498 if(!verifDatePickerFiche()) { 499 return false; 500 } 501 // Le code suivant suivant n'est pas toujours exécuté car quand les dates sont bien remplies, le html du bouton est parfois réactualisé et du coup on ne passe pas ici. 502 // on passe par un 2ème bouton qui lui contient la classe du type StatMe 503 $('#a_btnContactProp_forStatMe').trigger('click'); 504 }); 505 506 $('#a_btnContactProp_forStatMe').click(function(){ 507 var valDateDeb = getValInputDateDebFiche(); 508 sendThisToProp($(this).data('ident'), '800', '600', $(this).data('titre'), 'N', 'N',valDateDeb , $('#moteur_datePickerDeb').data('duree')); 509 510 // Appels au trackEvent avec dataLayer.push 511 if(window.dataLayer){ 512 var tabParamsGTM = $(this).attr('data-paramsTrackEvent'); 513 var listeParams = eval('('+tabParamsGTM+')'); 514 dataLayer.push({ 515 'Label_Event': listeParams.label, 516 'Categorie_Event': listeParams.categorie, 517 'event': listeParams.event 518 }); 519 } 520 }); 521 })(jQuery); 522} 523 524function initEventQTipInfoCalculTaxeSejour(){ 525 (function($){ 526 if($('.btnDetailCalculTaxeSejour').length > 0){ 527 var text = $('.detailCalculTaxeSejour').html(); 528 $('.btnDetailCalculTaxeSejour').qtip({ 529 content: text 530 }); 531 } 532 })(jQuery); 533} 534 535function ouvreDatePickerDateDeb_packDivDatesTarifs(){ 536 if(jQuery('#div_choixDates').length > 0){ 537 if(jQuery('#div_choixDates #inpt_resaDateDeb').length>0){ 538 jQuery('#div_choixDates #inpt_resaDateDeb').trigger('click'); 539 } 540 else if(jQuery('#div_choixDates #inpt_resaDateDebCal').length>0){ 541 jQuery('#div_choixDates #inpt_resaDateDebCal').trigger('click'); 542 } 543 }else{ 544 if(jQuery('#div_choixDates_packDivDatesTarifs #inpt_resaDateDeb').length>0){ 545 jQuery('#div_choixDates_packDivDatesTarifs #inpt_resaDateDeb').trigger('click'); 546 } 547 else if(jQuery('#div_choixDates_packDivDatesTarifs #inpt_resaDateDebCal').length>0){ 548 jQuery('#div_choixDates_packDivDatesTarifs #inpt_resaDateDebCal').trigger('click'); 549 } 550 } 551 if(window.ouvreDatePickerDateDeb_packDivDatesTarifs_foncQdFini){ 552 ouvreDatePickerDateDeb_packDivDatesTarifs_foncQdFini(); 553 } 554} 555 556function majTarifsSelectionne(dateDeb, dateFin){ 557 (function($){ 558 // Récupération du mois et de l'année de dateDeb puis déclencher le clic sur le bouton correspondant, on aura déjà le bon mois d'affiché 559 var objDateDeb = new OBJDate(dateDeb); 560 var objDateFin = new OBJDate(dateFin); 561 var moisAnnee = objDateDeb.getMois()+'-'+objDateDeb.getAnnee(); 562 var nbj = objDateDeb.getNbJourEcartWithOBJDate(objDateFin); 563 564 var liMoisASelect = $('.tarifsAvecDispo_listeMois li[data-moisannee="'+moisAnnee+'"]'); 565 var divMoisSelect = $('.tarifsAvecDispo_detailUnMois[data-moisannee="'+moisAnnee+'"]'); 566 selectionneMois_packDivDatesTarifs(liMoisASelect); 567 568 $('.tarifsAvecDispo_detailUnMois_tarifUneDuree td').removeClass('select'); 569 if (objDateDeb.getJourSemaine()==6 && nbj==7) { 570 $('.tarifsAvecDispo_choixDuree li[data-duree-tarif="semaine"] span').trigger('click'); 571 divMoisSelect.find('.tarifsAvecDispo_detailUnMois_tarifUneDuree[data-duree-tarif="semaine"] td[data-deb="'+dateDeb+'"]').addClass('select'); 572 } else if (objDateDeb.getJourSemaine()==5 && nbj==2) { 573 $('.tarifsAvecDispo_choixDuree li[data-duree-tarif="week-end"] span').trigger('click'); 574 divMoisSelect.find('.tarifsAvecDispo_detailUnMois_tarifUneDuree[data-duree-tarif="week-end"] td[data-deb="'+dateDeb+'"]').addClass('select'); 575 } else if (objDateDeb.getJourSemaine()==1 && nbj==7) { 576 $('.tarifsAvecDispo_choixDuree li[data-duree-tarif="mid-week"] span').trigger('click'); 577 divMoisSelect.find('.tarifsAvecDispo_detailUnMois_tarifUneDuree[data-duree-tarif="mid-week"] td[data-deb="'+dateDeb+'"]').addClass('select'); 578 } 579 })(jQuery); 580} 581 582function init_detailChambreAfficheTarifs(){ 583 (function ($) { 584 $(".a_btVoirPrixChambre").click(function () { 585 var numChambre = $(this).attr("data-chambre"); 586 if ($(this).hasClass("closed")) { 587 $('.div_tarifUneChambre_tarifs[data-chambre="' + numChambre + '"]').show(); 588 $(this).removeClass("closed").addClass("opened"); 589 } 590 else { 591 $('.div_tarifUneChambre_tarifs[data-chambre="' + numChambre + '"]').hide(); 592 $(this).addClass("closed").removeClass("opened"); 593 } 594 }); 595 596 })(jQuery); 597} 598
599function click_btnResaUneChambre(){ 600 (function ($) { 601 var href = $("#a_btnReserver_packDivDatesTarifs").attr("href"); 602 window.open(href,'_blank'); 603 })(jQuery); 604} 605 606function init_detailChambreAfficheDispo(){ 607 (function ($) { 608 var avecPlanning = true; 609 if ($('.a_btVoirDispoChambre').attr('data-planning') == 'false') { 610 avecPlanning = false; 611 } 612 $(".a_btVoirDispoChambre").click(function () { 613 $('#div_fiche_bloc_tarif_chmb_packDivDatesTarifs').attr('data-numidchselect',''); 614 if (avecPlanning) { 615 ouvreDatePickerDateDeb_packDivDatesTarifs(); 616 } 617 else { 618 alert("Pour connaitre les disponibilités veuillez contacter le propriétaire."); 619 } 620 return false; 621 }); 622 $('.div_tarifUneChambre_lancerResa > *').unbind('click'); 623 if ($('.div_tarifUneChambre_lancerResa.sansDates').length>0 && avecPlanning) { 624 $('.div_tarifUneChambre_lancerResa.sansDates > *').bind('click', function(){ 625 $('#div_fiche_bloc_tarif_chmb_packDivDatesTarifs').attr('data-numidchselect',$(this).parents('.div_tarifUneChambre').data('num_idch')); 626 ouvreDatePickerDateDeb_packDivDatesTarifs(); 627 return false; 628 }); 629 } 630 })(jQuery); 631} 632 633function init_detailChambreSelectNbPers(){ 634 (function($){ 635 if ($('.div_tarifUneChambre_selectNbPers').length==0) { 636 return; 637 } 638 $('.div_tarifUneChambre_selectNbPers').find('.select_nbPers').bind('change selectmenuchange', function(){ 639 var numIdch = $(this).attr('data-numIdch'); 640 var div = $(this).parents('.div_tarifUneChambre_selectNbPers '); 641 if (!verifNbAdultes(numIdch)) { 642 if ($(this).is('.select_nbEnfants') || $(this).is('.select_nbBebes')) { 643 $(this).val(0); 644 } else if ($(this).is('.select_nbAdultes')) { 645 div.find('.select_nbEnfants').val(0); 646 div.find('.select_nbBebes').val(0); 647 } 648 } 649 majListesSelect_packDivTarifs(div); 650 majTarifsFiche_packDivTarifs(); 651 }); 652 })(jQuery); 653} 654 655function verifNbAdultes(numIdch){ 656 var verif = false; 657 658 (function($){ 659 if ($('.select_nbAdultes[data-numIdch="'+numIdch+'"]').val()==0 && ($('.select_nbEnfants[data-numIdch="'+numIdch+'"]').val()>0 || $('.select_nbBebes[data-numIdch="'+numIdch+'"]').val()>0)) { 660 $('.div_tarifUneChambre_saisirAdultes[data-numIdch="'+numIdch+'"]').show(); 661 verif = false; 662 } else { 663 $('.div_tarifUneChambre_saisirAdultes[data-numIdch="'+numIdch+'"]').hide(); 664 verif = true; 665 } 666 })(jQuery); 667 return verif; 668} 669 670function majListesSelect_packDivTarifs(div){ 671 (function($){ 672 var capacite = div.data('capacite'); 673 var nbAdultes = parseInt(div.find('.select_nbAdultes').val()); 674 var nbEnfantsMax = Math.min(capacite - nbAdultes, div.find('.div_selectNbEnfants').data('nbenfantsmax')); 675 var nbEnfants = parseInt(div.find('.select_nbEnfants').val()); 676 if (nbEnfants > nbEnfantsMax) { 677 div.find('.select_nbEnfants').val(0); 678 nbEnfants = 0; 679 } 680 var nbAdultesMax = capacite - nbEnfants; 681 682 var elemListeEnfants = div.find('.select_nbEnfants'); 683 var valeurDernierElementListeEnfants = div.find('.select_nbEnfants').find('option:last-child').val(); 684 if (valeurDernierElementListeEnfants<nbEnfantsMax) { 685 var i = parseInt(valeurDernierElementListeEnfants); 686 while (i < nbEnfantsMax) { 687 i++; 688 elemListeEnfants.append("<option value='"+(i)+"'>"+(i)+"</option>"); 689 } 690 } else { 691 while (elemListeEnfants.find('option:last-child').val() > nbEnfantsMax) { 692 elemListeEnfants.find('option:last-child').remove(); 693 } 694 } 695 696 div.find('.select_nbEnfants').children().each(function(){ 697 if ($(this).val()>nbEnfantsMax) { 698 $(this).hide(); 699 } else { 700 $(this).show(); 701 } 702 }); 703 if (nbAdultes>0) { 704 div.find('.select_nbAdultes').children().each(function(){ 705 if ($(this).val()>nbAdultesMax) { 706 $(this).hide(); 707 } else { 708 $(this).show(); 709 } 710 }); 711 } 712 713 // si on utilise jquery ui selectmenu 329513 714 if(div.find('.select_nbAdultes').is(':hidden')){ 715 div.find('.select_nbAdultes').selectmenu('refresh'); 716 } 717 if(div.find('.select_nbEnfants').is(':hidden')){ 718 div.find('.select_nbEnfants').selectmenu('refresh'); 719 } 720 if(div.find('.select_nbBebes').is(':hidden')){ 721 div.find('.select_nbBebes').selectmenu('refresh'); 722 } 723 })(jQuery); 724} 725 726function majTarifsFiche_packDivTarifs(){ 727 (function($){ 728 // Pour être sûr d'avoir le bon dossier en session (en cas d'onglets multiples) je refais la sélection des dates qui va réinitialiser le dosser en session 729 lanceCalculPrixSejour(true); 730 // TODO : récupérer les personnes sélectionnées 731// var tabPersSelect = getTabPersSelect_packDivTarifs(); 732// // On sérialise et on utilise la fonction de foncResa.js qui permet de sélectionner les chambres 733// affectSelectionChambres(tabPersSelect); 734 })(jQuery); 735} 736
737function affectSelectionChambres_fiche(){ 738 var tabPersSelect = getTabPersSelect_packDivTarifs(); 739 // On sérialise et on utilise la fonction de foncResa.js qui permet de sélectionner les chambres 740 affectSelectionChambres(tabPersSelect); 741} 742 743function getTabPersSelect_packDivTarifs(){ 744 var tabPersSelect = []; 745 (function($){ 746 if ($('.div_tarifUneChambre_selectNbPers').length==0) { 747 return; 748 } 749 $('.div_tarifUneChambre_selectNbPers').each(function(){ 750 var tabSelect = {}; 751 tabSelect.numeroChambre = $(this).attr('data-numeroChambre'); 752 tabSelect.numIdch = $(this).attr('data-numIdch');; 753 tabSelect.nbAdultes = $(this).find('.select_nbAdultes').val(); 754 tabSelect.nbEnfants = $(this).find('.select_nbEnfants').val(); 755 tabSelect.nbBebes = $(this).find('.select_nbBebes').val(); 756 tabPersSelect.push(tabSelect); 757 }); 758 })(jQuery); 759 return tabPersSelect; 760} 761 762function reinitDatepickers_packDivTarifs(){ 763 (function($){ 764 if ($('#inpt_resaDateDeb').length > 0) { 765 var dateDebDefault = $('#inpt_resaDateDeb').attr('data-lblDefautArrivee'); 766 $('#inpt_resaDateDeb').val(dateDebDefault); 767 } else if ($('#inpt_resaDateDebCal').length > 0) { 768 var dateDebDefault = $('#inpt_resaDateDebCal').attr('data-lblDefautArrivee'); 769 $('#inpt_resaDateDebCal').val(dateDebDefault); 770 } 771 772 if ($('#inpt_resaDateFin').length > 0) { 773 var dateFinDefault = $('#inpt_resaDateFin').attr('data-lblDefautDepart'); 774 $('#inpt_resaDateFin').val(dateFinDefault); 775 } else if ($('#inpt_resaDateFinCal').length > 0) { 776 var dateFinDefault = $('#inpt_resaDateFinCal').attr('data-lblDefautDepart'); 777 $('#inpt_resaDateFinCal').val(dateFinDefault); 778 } 779 })(jQuery); 780} 781 782function initBtDescPlusMoins(){ 783 (function($){ 784 if($(".a_VoirPlusDescEnvir").length>0){ 785 $(".a_VoirPlusDescEnvir").toggle( 786 function(){ 787 $(".descEnvirSecond").show(); 788 $(".descEnvirFirstSuite").hide(); 789 $(this).text($(this).attr("data-lblLireMoins")); 790 }, 791 function(){ 792 $(".descEnvirSecond").hide(); 793 $(".descEnvirFirstSuite").show(); 794 $(this).text($(this).attr("data-lblLirePlus")); 795 } 796 ) 797 } 798 799 if($('.div_descriptionComplete[data-afficheplus="true"]').length>0){ 800 var objDiv = $('.div_descriptionComplete[data-afficheplus="true"]'); 801 var objDivContent = $('.div_descriptionComplete[data-afficheplus="true"]').children('.div_descriptionCompleteContent'); 802 if($(objDivContent).outerHeight() > $(objDiv).outerHeight()){ 803 $(objDiv).addClass('reduced'); 804 $(objDiv).next('.div_descriptionComplete_btnPlus').show(); 805 $(objDiv).css("max-height",$(objDivContent).outerHeight()); 806 $('.div_descriptionComplete_btnPlus a').off('click'); 807 $('.div_descriptionComplete_btnPlus a').click(function(){ 808 if($(objDiv).hasClass('reduced')){ 809 $(objDiv).removeClass('reduced'); 810 var $elem = jQuery(this); 811 $(this).fadeOut( 500, function() { 812 $(this).text($(this).data('lblmoins')); 813 $(this).fadeIn(500); 814 }); 815 addEventGa('affichageDescription','affiche',$(this).data('labelevent')); 816 } 817 else{ 818 $(objDiv).addClass('reduced'); 819 $(this).fadeOut( 500, function() { 820 $(this).text($(this).data('lblplus')); 821 $(this).fadeIn(500); 822 }); 823 addEventGa('affichageDescription','masque',$(this).data('labelevent')); 824 } 825 }) 826 } else { 827 $('.div_descriptionComplete.reduced').removeClass('reduced'); 828 } 829 } 830 })(jQuery); 831} 832 833function afficheFormSignalPlanningLDPasAJour(ref, dest){ 834 (function($){ 835 $.ajax({ 836 type: 'POST', 837 url : '/lib_2/ajax/gereFiche.php', 838 data: {action: 'getHTML_formSignalPlanningLDPasAJour', ref: ref, dest: dest}, 839 datatype: 'json', 840 beforeSend: function(){ 841 842 }, 843 success: function(result){ 844 var tabRetour = XMLToArray(result); 845 afficheDivAvecTransparence(tabRetour.html, 800, 600, null, tabRetour.titre); 846 initFormSignalPlanningLDPasAJour(); 847 } 848 }); 849 })(jQuery); 850} 851 852function initFormSignalPlanningLDPasAJour(){ 853 (function($){ 854 var langue = initLangueForDatePicker(); 855 $.datepicker.setDefaults($.datepicker.regional[langue]); 856 $("#div_formSignalPlanningLDPasAJour .datepicker").datepicker({minDate: 0, dateFormat: 'dd/mm/yy', firstDay: 1}); 857 858 $( "#inpt_formSignalDateDeb" ).datepicker( "option", "onSelect", function(selectedDate){ 859 var dateDebut = new OBJDate(selectedDate);
860 // on fait en sorte de ne pas choisir une date de fin inférieure à la date de début 861 $("#inpt_formSignalDateFin").datepicker("option", "minDate", dateDebut.toString()); 862 $('#inpt_formSignalDateFin').datepicker("setDate", dateDebut.toString()); 863 delete dateDebut; 864 setTimeout(function() {$('#inpt_formSignalDateFin').focus();}, 0); 865 }); 866 // au clic sur calendrier d'arrivée, on vérifie que la durée mini est respectée, sinon on informe l'internaute 867 $( "#inpt_formSignalDateFin").datepicker( "option", "onSelect", function(selectedDate){ 868 var dateFin = new OBJDate(selectedDate); 869 $("#inpt_formSignalDateDeb").datepicker("option", "maxDate", dateFin.toString()); 870 delete dateFin; 871 }); 872 873 initActionBtnReloadCaptcha(); 874 })(jQuery); 875} 876 877function verifEtEnvoiMailSignalPlanningLDPasAJour(){ 878 (function($){ 879 var langue = $("body").attr("data-langue"); 880 var tabMessages = getTabMessagesValidationFormulaireByLangue(langue); 881 var email = new LiveValidation("inpt_formSignalEmail", {validMessage: tabMessages.valid, onlyOnSubmit: true}); 882 addValidateOnLiveValidationEmail(email, langue, true); 883 884 var dateDeb = new LiveValidation("inpt_formSignalDateDeb", {validMessage: tabMessages.valid, onlyOnSubmit: true}); 885 dateDeb.add(Validate.Presence, {failureMessage: tabMessages.obligatoire}); 886 dateDeb.add(Validate.Format, {pattern: /^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$/, failureMessage: tabMessages.dates}); 887 var dateFin = new LiveValidation("inpt_formSignalDateFin", {validMessage: tabMessages.valid, onlyOnSubmit: true}); 888 dateFin.add(Validate.Presence, {failureMessage: tabMessages.obligatoire}); 889 dateFin.add(Validate.Format, {pattern: /^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$/, failureMessage: tabMessages.dates}); 890 891 var tabAValider = new Array(email, dateDeb, dateFin); 892 893 if ($('#captcha').length>0) { 894 tabAValider.push(getLiveValidationCaptcha()); 895 } 896 897 LiveValidation.massValidate(tabAValider); 898 899 if ($(".LV_invalid").length == 0) { 900 envoiMailSignalPlanningLDPasAJour(); 901 } 902 })(jQuery); 903} 904 905function envoiMailSignalPlanningLDPasAJour(){ 906 (function($){ 907 var ref = $('#inpt_formSignalRef').val(); 908 var dest = $('#inpt_formSignalDest').val(); 909 var dateDebut = $('#inpt_formSignalDateDeb').val(); 910 var dateFin = $('#inpt_formSignalDateFin').val(); 911 var mail = $('#inpt_formSignalEmail').val(); 912 var message = $('#inpt_formSignalMessage').val(); 913 var captcha = ''; 914 if ($('#captcha').length>0) { 915 captcha = $('#captcha').val(); 916 } 917 918 $.ajax({ 919 type: 'POST', 920 url : '/lib_2/ajax/envoiMail.php', 921 data: {typeMail: 'mailSignalPlanningLDPasAJour', ref: ref, dest: dest, dateDebut: dateDebut, dateFin: dateFin, mail: mail, message: message, captcha: captcha}, 922 dataType: 'json', 923 beforeSend: function(){ 924 $('#div_formSignalPlanningLDPasAJour .div_messageErreurSaisie').hide(); 925 $('#form_signalPlanningLDPasAJour *').attr('disabled', 'disabled'); 926 $('#div_formSignalPlanningLDPasAJour_validation').hide(); 927 }, 928 success: function(result){ 929 if (result.code=='OK') { 930 $('#div_formSignalPlanningLDPasAJour .div_messageRetour.OK').show(); 931 } else { 932 $('#div_formSignalPlanningLDPasAJour .div_messageRetour.KO').show(); 933 $('#form_signalPlanningLDPasAJour *').attr('disabled', false); 934 $('#div_formSignalPlanningLDPasAJour_validation').show(); 935 } 936 } 937 }); 938 })(jQuery); 939} 940 941function initAvisClientAfnor(){ 942 (function($){ 943 if($(".a_afficheDetailCertification").length>0){ 944 $(".a_afficheDetailCertification").click(function(){ 945 var struct = $(this).data("structure"); 946 $('.div_avisClientCertificationAccroche[data-structure="'+struct+'"]').hide(); 947 $('.div_avisClientCertificationDetail[data-structure="'+struct+'"]').show(); 948 }) 949 } 950 if($(".a_masqueDetailCertification").length>0){ 951 $(".a_masqueDetailCertification").click(function(){ 952 var struct = $(this).data("structure"); 953 $('.div_avisClientCertificationAccroche[data-structure="'+struct+'"]').show(); 954 $('.div_avisClientCertificationDetail[data-structure="'+struct+'"]').hide(); 955 }) 956 } 957 958 if($(window).width() <= 750){ 959 $(".btn_ouvre_avisAfnorPopin").fancybox({ 960 maxWidth : 634, 961 fitToView : false, 962 width : '100%', 963 height : '100%', 964 autoSize : false, 965 closeClick : false, 966 openEffect : 'fade', 967 closeEffect : 'fade', 968 openSpeed: 500, 969 closeSpeed: 500, 970 wrapCSS: 'fancyboxAfnor', 971 scrolling : 'yes', 972 helpers : { 973 title: null 974 } 975 }); 976 } 977 else{ 978 $(".btn_ouvre_avisAfnorPopin").fancybox({ 979 maxWidth : 634, 980 fitToView : false, 981 width : '85%', 982 autoSize : true, 983 closeClick : false, 984 openEffect : 'fade', 985 closeEffect : 'fade', 986 openSpeed: 500, 987 closeSpeed: 500, 988 wrapCSS: 'fancyboxAfnor', 989 scrolling : 'no', 990 helpers : { 991 title: null 992 } 993 }); 994 } 995 996 })(jQuery); 997} 998 999function actualisePageFiche(tabInfos) { 1000 var paramsUrl = getVarsFromUrl() || {}; 1001 var url = location.pathname; 1002 url += '?'; 1003 var sejourIdentique = false;
1004 for (var prop in paramsUrl) { 1005 if (prop && prop != 'deb' && prop != 'nbj' && prop != 'exe' && prop != 'reload'){ 1006 url += prop+'='+paramsUrl[prop]+'&'; 1007 } else if (prop=='deb' && tabInfos.deb==paramsUrl['deb'] && ((tabInfos.fin && tabInfos.fin==paramsUrl['fin']) || tabInfos.nbj==paramsUrl['nbj'])) { 1008 sejourIdentique = true; 1009 } 1010 } 1011 // On essaye d'actualiser la page alors qu'on a les mêmes paramètres donc on ne le fait pas sinon on risque d'avoir une boucle infinie 1012 if (sejourIdentique) { 1013 return false; 1014 } 1015 if (tabInfos.deb) { 1016 url += '&deb='+tabInfos.deb; 1017 } 1018 if (tabInfos.fin) { 1019 url += '&fin='+tabInfos.fin; 1020 } 1021 if (tabInfos.nbj) { 1022 url += '&nbj='+tabInfos.nbj; 1023 } 1024 if (tabInfos.exe) { 1025 url += '&exe='+tabInfos.exe; 1026 } 1027 url += '&reload=true'; 1028 1029 location.href = url; 1030} 1031 1032function initSejoursAlternatifs(){ 1033 (function($){ 1034 $('.a_listeTarifsParJourArriveeSansDateDefinie').click(function(){ 1035 ouvreDatePickerDateDeb_packDivDatesTarifs(); 1036 }); 1037 })(jQuery); 1038} 1039 1040function ouvrirPhotos3DimensionsMosaique() { 1041 jQuery('.containerPhotosMosaique').addClass('ouvert'); 1042 jQuery('body').addClass('overflowHidden'); 1043 jQuery('.ensemblePhotosBouton3Dimensions').attr('data-etat', 'mosaique'); 1044 metAJourEvenementsClavierAffichagePhoto(); 1045} 1046 1047function ouvrirPhotos3DimensionsDiaporama(positionInitiale = 0) { 1048 jQuery('.ensemblePhotosSlider').addClass('ouvert'); 1049 jQuery('.ensemblePhotosCliquer .unePhoto[data-position="' + positionInitiale + '"]').addClass('active'); 1050 mettreAJourActive(positionInitiale, jQuery('.ensemblePhotosSlider .ensemblePhotosCliquer .unePhoto').length, false); 1051 jQuery('.flechesSlider').focus(); 1052 jQuery('body').addClass('overflowHidden'); 1053 jQuery('.ensemblePhotosBouton3Dimensions').attr('data-etat', 'diaporama'); 1054 metAJourEvenementsClavierAffichagePhoto(); 1055} 1056 1057function fermerPhotos3DimensionsMosaique() { 1058 jQuery('.containerPhotosMosaique').removeClass('ouvert'); 1059 jQuery('body').removeClass('overflowHidden'); 1060 jQuery('.ensemblePhotosBouton3Dimensions').attr('data-etat', 'fermer'); 1061 metAJourEvenementsClavierAffichagePhoto(); 1062} 1063 1064function fermerPhotos3DimensionsDiaporama() { 1065 jQuery('.ensemblePhotosSlider').removeClass('ouvert'); 1066 jQuery('.ensemblePhotosCliquer .unePhoto.active').removeClass('active'); 1067 if (jQuery('.ensemblePhotosBouton3Dimensions').attr('data-avecMosaique') === 'true') { 1068 jQuery('.ensemblePhotosBouton3Dimensions').attr('data-etat', 'mosaique'); 1069 } else { 1070 jQuery('body').removeClass('overflowHidden'); 1071 jQuery('.ensemblePhotosBouton3Dimensions').attr('data-etat', 'fermer'); 1072 } 1073 metAJourEvenementsClavierAffichagePhoto(); 1074} 1075 1076function metAJourEvenementsClavierAffichagePhoto() { 1077 jQuery(window).off('keydown'); 1078 switch (jQuery('.ensemblePhotosBouton3Dimensions').attr('data-etat')) { 1079 case 'mosaique' : 1080 jQuery(window).on('keydown', function (event) { 1081 if (event.key === 'Escape') { 1082 fermerPhotos3DimensionsMosaique(); 1083 } 1084 }); 1085 break; 1086 case 'diaporama' : 1087 jQuery(window).on('keydown', function (event) { 1088 var nbPhotos = parseInt(jQuery('.ensemblePhotosBouton3Dimensions').attr('data-nbphoto')); 1089 if (event.key === 'ArrowRight') { 1090 deplacerSlider('droite', nbPhotos); 1091 } else if (event.key === 'ArrowLeft') { 1092 deplacerSlider('gauche', nbPhotos); 1093 } else if (event.key === 'Escape') { 1094 fermerPhotos3DimensionsDiaporama(); 1095 } 1096 }); 1097 break; 1098 } 1099} 1100 1101function deplacerSlider(sensDefiler, nbPhotos) { 1102 var active = parseInt(jQuery('.ensemblePhotosCliquer .unePhoto.active').attr('data-position')); 1103 if (sensDefiler == 'gauche') { 1104 active--; 1105 } else if (sensDefiler == 'droite') { 1106 active++; 1107 } 1108 mettreAJourActive(active, nbPhotos, true); 1109} 1110 1111function mettreAJourActive(newActive = 1, nbPhotos = 0, dejaInitialise = false) { 1112 jQuery('button.flechesSlider').removeClass('inactif'); 1113 if (newActive <= 1 || nbPhotos === 1) { 1114 jQuery('button.flechesSlider.gauche').addClass('inactif'); 1115 } 1116 if (newActive >= nbPhotos || nbPhotos === 1) { 1117 jQuery('button.flechesSlider.droite').addClass('inactif'); 1118 } 1119 if (dejaInitialise && (newActive < 1 || newActive > nbPhotos)) { 1120 return; 1121 } 1122 jQuery('.ensemblePhotosCliquer .unePhoto.active').removeClass('active'); 1123 jQuery('.ensemblePhotosCliquer .unePhoto[data-position="' + newActive + '"]').addClass('active'); 1124 for (var i = 1; i <= nbPhotos; i++) { 1125 var photoADeplacer = jQuery('.ensemblePhotosSlider .ensemblePhotosCliquer .unePhoto[data-position="' + i + '"]'); 1126 indiceDePosition = i - newActive; 1127 photoADeplacer.css('transform', 'translateX(' + 100 * indiceDePosition + '%'); 1128 } 1129} 1130 1131function ouvreCarrouselPhotosChambre(elementClique) {} 1132 1133function fermeCarrouselPhotosChambre(elementClique) {}
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.