PageSourceSearch

https://ansahotels.com/kualalumpur/modules/simple_popup_blocks/js/simple_popup_blocks.js?v=8.6.10

js ansahotels.com collected 2026-10-07 23:10:44 UTC 8,763 bytes, 288 lines download raw bytes

1(function ($, Drupal) {
2
3  'use strict'
4
5  $(document).ready(function () {
6    // Global variables
7    var popup_settings = drupalSettings.simple_popup_blocks.settings,
8      _html = document.documentElement
9
10    $.each(popup_settings, function (index, values) {
11
12      // Declaring variable inside foreach - so it will not global.
13      var modal_class = '',
14        block_id = values.identifier,
15        visit_counts_arr = values.visit_counts.split(','),
16        allow_cookie = true,
17        read_cookie = '',
18        cookie_val = 1,
19        match = 0,
20        css_identity = '',
21        spb_popup_id = '',
22        modal_close_class = '',
23        modal_minimize_class = '',
24        modal_minimized_class = '',
25        layout_class = '',
26        class_exists = false,
27        delays = '',
28        browser_close_trigger = true
29      // Always show popup, so prevent from creating cookie
30      if (visit_counts_arr.length == 1 && visit_counts_arr[0] == 0) {
31        allow_cookie = false
32      }
33      // Creating cookie
34      if (allow_cookie == true) {
35        read_cookie = readCookie('spb_' + block_id)
36        if (read_cookie) {
37          cookie_val = +read_cookie + 1
38          createCookie('spb_' + block_id, cookie_val, 100)
39        }
40        else {
41          createCookie('spb_' + block_id, cookie_val, 100)
42        }
43      }
44      // Match cookie
45      cookie_val = cookie_val.toString()
46      match = $.inArray(cookie_val, visit_counts_arr)
47      // Set css selector
48      css_identity = '.'
49      if (values.css_selector == 1) {
50        css_identity = '#'
51      }
52
53      // Assign dynamic css classes
54      spb_popup_id = 'spb-' + block_id
55      modal_class = block_id + '-modal'
56      modal_close_class = block_id + '-modal-close'
57      modal_minimize_class = block_id + '-modal-minimize'
58      modal_minimized_class = block_id + '-modal-minimized'
59      layout_class = '.' + modal_class + ' .spb-popup-main-wrapper'
60      // Wrap arround elements
61      $(css_identity + block_id).
62        wrap($('<div class="' + modal_class + '"></div>'))
63      // Hide the popup initially
64      $('.' + modal_class).hide()
65      // Skip the popup based on visit counts settings
66      if (match == -1 && allow_cookie == true) {
67        return true
68      }      
69      // Wrap remaining elements
70      $(css_identity + block_id).
71        wrap($('<div class="spb-popup-main-wrapper"></div>'))
72      $('.' + modal_class).
73        wrap('<div id="' + spb_popup_id +
74          '" class="simple-popup-blocks-global"></div>')
75      $(css_identity + block_id).
76        before($('<div class="spb-controls"></div>'))        
77
78      // Skip code for non popup pages.
79      class_exists = $('#' + spb_popup_id).
80        hasClass('simple-popup-blocks-global')
81      if (!class_exists) {
82        return true
83      }
84      // Minimize button wrap
85      if (values.minimize === "1") {
86        $("#"+spb_popup_id + " .spb-controls").
87          prepend($('<span class="' + modal_minimize_class +
88            ' spb_minimize">-</span>'))
89        $('.' + modal_class).
90          before($('<span class="' + modal_minimized_class +
91            ' spb_minimized"></span>'))
92      }
93      // Close button wrap
94      if (values.close == 1) {
95        $("#"+spb_popup_id + " .spb-controls").
96          prepend($('<span class="' + modal_close_class +
97            ' spb_close">&times;</span>'))
98      }
99      // Overlay
100      if (values.overlay == 1) {
101        $('.' + modal_class).addClass('spb_overlay')
102      }
103      // Inject layout class.
104      switch (values.layout) {
105        // Top left.
106        case '0':
107          $(layout_class).addClass('spb_top_left')
108          $(layout_class).css({
109            'width': values.width,
110          })
111          break
112        // Top right.
113        case '1':
114          $(layout_class).addClass('spb_top_right')
115          $(layout_class).css({
116            'width': values.width,
117          })
118          break
119        // Bottom left.
120        case '2':
121          $(layout_class).addClass('spb_bottom_left')
122          $(layout_class).css({
123            'width': values.width,
124          })
125          break
126        // Bottom right.
127        case '3':
128          $(layout_class).addClass('spb_bottom_right')
129          $(layout_class).css({
130            'width': values.width,
131          })
132          break
133        // Center.
134        case '4':
135          $(layout_class).addClass('spb_center')
136          $(layout_class).css({
137            'width': values.width,
138          })
139          break
140        // Top Center.
141        case '5':
142          $(layout_class).addClass('spb_top_center')
143          $(layout_class).css({})
144          break
145        // Top bar.
146        case '6':
147          $(layout_class).addClass('spb_top_bar')
148          $(layout_class).css({})
149          break
150        // Right bar.
151        case '7':
152          $(layout_class).addClass('spb_bottom_bar')
153          $(layout_class).css({})
154          break
155        // Bottom bar.
156        case '8':
157          $(layout_class).addClass('spb_left_bar')
158          $(layout_class).css({
159            'width': values.width,
160          })
161          break
162        // Right bar.
163        case '9':
164          $(layout_class).addClass('spb_right_bar')
165          $(layout_class).css({
166            'width': values.width,
167          })
168          break
169      }
170      // Automatic trigger with delay
171      if (values.trigger_method == 0 && values.delay > 0) {
172        delays = values.delay * 1000
173        $('.' + modal_class).delay(delays).fadeIn('slow')
174        if (values.overlay == 1) {
175          setTimeout(stopTheScroll, delays)
176        }
177      }
178      // Automatic trigger without delay
179      else if (values.trigger_method == 0) {
180        $('.' + modal_class).show()
181        $(css_identity + block_id).show()
182        if (values.overlay == 1) {
183          stopTheScroll()
184        }
185      }
186      // Manual trigger
187      else if (values.trigger_method == 1) {
188        $(values.trigger_selector).click(function () {
189          $('.' + modal_class).show()
190          $(css_identity + block_id).show()
191          if (values.overlay == 1) {
192            stopTheScroll()
193          }
194          return false;
195        })
196      }
197      // Browser close trigger
198      else if (values.trigger_method == 2) {
199        $(_html).mouseleave(function (e) {
200          // Trigger only when mouse leave on top view port
201          if (e.clientY > 20) { return }
202          // Trigger only once per page
203          if (!browser_close_trigger) { return }
204          browser_close_trigger = false
205          $('.' + modal_class).show()
206          $(css_identity + block_id).show()
207          if (values.overlay == 1) {
208            stopTheScroll()
209          }
210        })
211      }
212      // Trigger for close button click
213      $('.' + modal_close_class).click(function () {
214        $('.' + modal_class).hide()
215        startTheScroll()
216      })
217      // Trigger for minimize button click
218      $('.' + modal_minimize_class).click(function () {
219        $('.' + modal_class).hide()
220        startTheScroll()
221        $('.' + modal_minimized_class).show()
222      })
223      // Trigger for minimized button click
224      $('.' + modal_minimized_class).click(function () {
225        $('.' + modal_class).show()
226        $(css_identity + block_id).show()
227        if (values.overlay == 1) {
228          stopTheScroll()
229        }
230        $('.' + modal_minimized_class).hide()
231      })
232      // Trigger for ESC button click
233      if (values.escape == 1) {
234        $(document).keyup(function (e) {
235          if (e.keyCode == 27) { // Escape key maps to keycode `27`.
236            $('.' + modal_class).hide()
237            startTheScroll()
238            $('.' + modal_minimized_class).show()
239          }
240        })
241      }
242    }) // Foreach end.
243  }) // document.ready end.
244
245  // Remove the scrolling while overlay active
246  function stopTheScroll () {
247    $('body').css({
248      'overflow': 'hidden',
249    })
250  }
251
252  // Enable the scrolling while overlay inactive
253  function startTheScroll () {
254    $('body').css({
255      'overflow': '',
256    })
257  }
258
259  // Creating cookie
260  function createCookie (name, value, days) {
261    if (days) {
262      var date = new Date()
263      date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000))
264      var expires = '; expires=' + date.toGMTString()
265    }
266    else {
267      var expires = ''
268    }
269    document.cookie = name + '=' + value + expires + '; path=/'
270  }
271
272  // Reading cookie
273  function readCookie (name) {
274    var nameEQ = name + '='
275    var ca = document.cookie.split(';')
276    for (var i = 0; i < ca.length; i++) {
277      var c = ca[i]
278      while (c.charAt(0) == ' ') {
279        c = c.substring(1, c.length)
280      }
281      if (c.indexOf(nameEQ) == 0) {
282        return c.substring(nameEQ.length, c.length)
283      }
284    }
285    return null
286  }  
287
288})(jQuery, Drupal)

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.