PageSourceSearch

https://www.rougemare.com/wp-content/themes/shapely-child/js/module-reservation_fix.js

js rougemare.com collected 2026-10-07 16:46:36 UTC 5,426 bytes, 119 lines download raw bytes

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.