1jQuery(document).ready(function () { 2 // POP-UP IFRAME MODULE DE RESERVATION 3 4 // On récupère l'url de la page pour détecter la langue 5 var url = jQuery(location).attr('href').split("/"); 6 7 // On définit la position à laquelle on veut que la frame soit créée 8 var framePosition = jQuery("body"); 9 10 var moduleReservation; 11 var moduleClass = "module-reservation-container"; 12 var moduleBtn = "reservationHotel-btn"; 13 var moduleOpenclass = "reservationHotel-open"; 14 15 var iframeContainer; 16 var iframeContainerClass = "iframeContainer"; 17 var iframeClass = "iframe-reservation"; 18 var iframeLanguage; 19 // On définit l'url de l'iframe en fonction de langue sélectionnée par l'utilisateur 20 if (url[3] != "en" || url[3] != "de" || url[3] != "zh") { 21 iframeLanguage = "fr-FR"; 22 } 23 if (url[3] == "en") { 24 iframeLanguage = "en-EN"; 25 } 26 if (url[3] == "de") { 27 iframeLanguage = "de-DE"; 28 } 29 if (url[3] == "zh") { 30 iframeLanguage = "zh-ZH"; 31 } 32 var iframeSrc = "https://be.synxis.com/?chain=5460&hotel=4173&level=hotel&locale="+iframeLanguage; 33 34 var loaderLink = "/wp-content/uploads/2017/04/loader-reservation.gif"; 35 36 var lightboxClass = "lightbox"; 37 var closeClass = "btn-reservation-close"; 38 39 jQuery("."+moduleBtn).addClass(moduleOpenclass); 40 41 jQuery("." + moduleBtn).click(function () { 42 // Si l'ecran est suffisamment grand on ouvre la fenetre iframe sinon on redirige vers le site de synxis 43 if (window.innerWidth > 50000) { 44 // On recupere les dates 45 var dateArrivee = jQuery("#date-arrivee").val(); 46 var dateDepart = jQuery("#date-depart").val(); 47 48 // On teste si les dates existents, si oui, on les récupèrent. Si non, on leur attribut une chaine de caractère vide pour passer à la suite 49 if (dateArrivee == undefined || dateDepart == undefined) { 50 dateArrivee = ""; 51 dateDepart = ""; 52 } 53 54 // Si le bouton possede la classe 'open' alors on peut ouvrir la frame 55 if (jQuery(this).hasClass(moduleOpenclass)) { 56 // On retire la classe 'open' du bouton pour éviter de créer une section à chaque clique 57 jQuery(this).removeClass(moduleOpenclass); 58 59 // On cache la barre de scroll du body 60 jQuery("body").addClass('hideScroll'); 61 62 // On ajoute la section à la position définie précédemment 63 jQuery("<section id='" + moduleClass + "'>").appendTo(framePosition); 64 moduleReservation = jQuery("#" + moduleClass); 65 66 // On ajoute une lightbox derriere la frame 67 jQuery("<div class=" + lightboxClass + ">").appendTo(moduleReservation); 68 69 // On ajoute le conteneur de l'iframe 70 jQuery("<div class='" + iframeContainerClass + "'>").appendTo(moduleReservation).hide(); 71 iframeContainer = jQuery("." + iframeContainerClass); 72 iframeContainer.show(); 73 // On ajoute un loader qui sera visible tant que l'iframe ne sera pas chargée 74 jQuery("<img src='" + loaderLink + "' alt='loader' />").appendTo(iframeContainer); 75 // On ajoute une iframe vers le site de reservation 76 // Si les dates sont renseignées 77 if (dateArrivee != "") { 78 var newSrc = "https://be.synxis.com/?Hotel=4173&Chain=5460&locale=" + iframeLanguage + "&start=availresults&arrive=" + dateArrivee + "&depart=" + dateDepart ; 79 jQuery("<iframe class=" + iframeClass + " src=" + newSrc + ">").appendTo(iframeContainer); 80 } 81 else { 82 jQuery("<iframe class=" + iframeClass + " src=" + iframeSrc + ">").appendTo(iframeContainer); 83 } 84 85 // On ajoute un bouton 'close' 86 jQuery("<div class='" + closeClass + "'>").text("X").prependTo(iframeContainer); 87 } 88 return false; 89 } 90 else 91 { 92 return true; 93 } 94 }); 95
96 function closeFrame() { 97 // On rétablit la barre de scroll du body 98 jQuery("body").removeClass('hideScroll'); 99 // On retire le module de reservation du DOM 100 moduleReservation.remove(); 101 // On ajoute la classe 'open' pour pouvoir réouvrir le module de réservation 102 jQuery("." + moduleBtn).addClass(moduleOpenclass); 103 } 104 105 // Si on clique sur le bouton 'close', on ferme la frame et on rétablit le scroll 106 jQuery("." + closeClass).live('click', function () { 107 closeFrame(); 108 }); 109 // Même chose si on clique en dehors du module 110 jQuery("." + lightboxClass).live('click', function () { 111 closeFrame(); 112 }); 113 // Même chose si on appui sur la touche 'Echap' 114 jQuery("body").live('keydown', function (e) { 115 if (e.which == 27) { 116 closeFrame(); 117 } 118 }); 119});
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.