1/* Cookies set inside object */ 2var cookieHelper = { 3 /* Cookies */ 4 create: function (name, value, days) { 5 if (days) { 6 var date = new Date(); 7 date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); 8 var expires = "; expires=" + date.toGMTString(); 9 } 10 else var expires = ""; 11 12 document.cookie = name + "=" + value + expires + "; path=/"; 13 }, 14 15 read: function (name) { 16 var nameEQ = name + "="; 17 var ca = document.cookie.split(';'); 18 for (var i = 0; i < ca.length; i++) { 19 var c = ca[i]; 20 while (c.charAt(0) == ' ') c = c.substring(1, c.length); 21 if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length); 22 } 23 return null; 24 }, 25 26 erase: function (name) { 27 // createCookie(name, "", -1); 28 document.cookie = name + '=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;'; 29 } 30} 31 32 33jQuery(document).ready(function () { 34 jQuery('#cookie-law-info-again').click(function () { 35 jQuery('#mbr-myModal').css('display', 'block'); 36 jQuery('#cookie-law-info-again').css('display', 'none'); 37 }); 38 jQuery('#ee_mb_cookie_close_btn').click(function () { 39 jQuery('#ee_mb_cookie_msg').slideUp(); 40 /* Set cookie */ 41 cookieHelper.create('accepted', true); 42 jQuery('#cookie-law-info-again').css('display', 'block'); 43 }); 44 jQuery('#ee_mb_cookie_accept').click(function () { 45 jQuery('#ee_mb_cookie_msg').slideUp(); 46 cookieHelper.create('accepted', true); 47 jQuery('#cookie-law-info-again').css('display', 'block'); 48 }); 49 50 jQuery('#ee_mb_settings_button').click(function () { 51 jQuery('#mbr-myModal').css('display', 'block'); 52 jQuery('#cookie-law-info-again').css('display', 'none'); 53 }); 54 55 jQuery('.mbr-myModal-close').click(function () { 56 jQuery('#mbr-myModal').css('display', 'none'); 57 jQuery('#cookie-law-info-again').css('display', 'block'); 58 }); 59 60 jQuery('#ee_mb_cookie_accept_btn').click(function () { 61 jQuery('#ee_mb_cookie_msg').slideUp(); 62 cookieHelper.create('accepted', true); 63 jQuery('#cookie-law-info-again').css('display', 'block'); 64 }); 65 jQuery('#ee_mb_cookie_denied_btn').click(function () { 66 jQuery('#ee_mb_cookie_msg').slideUp(); 67 cookieHelper.create('accepted', false); 68 jQuery('#cookie-law-info-again').css('display', 'block'); 69 }); 70}); 71 72if ("undefined" == typeof jQuery) throw new Error("Bootstrap's JavaScript requires jQuery"); +function (t) { "use strict"; var e = t.fn.jquery.split(" ")[0].split("."); if (e[0] < 2 && e[1] < 9 || 1 == e[0] && 9 == e[1] && e[2] < 1 || e[0] > 3) throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4") }(jQuery), +function (t) { "use strict"; function e(e) { var n = e.attr("data-target"); n || (n = e.attr("href"), n = n && /#[A-Za-z]/.test(n) && n.replace(/.*(?=#[^\s]*$)/, "")); var a = "#" !== n ? t(document).find(n) : null; return a && a.length ? a : e.parent() } function n(n) { n && 3 === n.which || (t(i).remove(), t(o).each(function () { var a = t(this), i = e(a), o = { relatedTarget: this }; i.hasClass("open") && (n && "click" == n.type && /input|textarea/i.test(n.target.tagName) && t.contains(i[0], n.target) || (i.trigger(n = t.Event("hide.bs.dropdown", o)), n.isDefaultPrevented() || (a.attr("aria-expanded", "false"), i.removeClass("open").trigger(t.Event("hidden.bs.dropdown", o))))) })) } function a(e) { return this.each(function () { var n = t(this), a = n.data("bs.dropdown"); a || n.data("bs.dropdown", a = new s(this)), "string" == typeof e && a[e].call(n) }) } var i = ".dropdown-backdrop", o = '[data-toggle="dropdown"]', s = function (e) { t(e).on("click.bs.dropdown", this.toggle) }; s.VERSION = "3.4.1", s.prototype.toggle = function (a) { var i = t(this); if (!i.is(".disabled, :disabled")) { var o = e(i), s = o.hasClass("open"); if (n(), !s) { "ontouchstart" in document.documentElement && !o.closest(".
72navbar-nav").length && t(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(t(this)).on("click", n); var r = { relatedTarget: this }; if (o.trigger(a = t.Event("show.bs.dropdown", r)), a.isDefaultPrevented()) return; i.trigger("focus").attr("aria-expanded", "true"), o.toggleClass("open").trigger(t.Event("shown.bs.dropdown", r)) } return !1 } }, s.prototype.keydown = function (n) { if (/(38|40|27|32)/.test(n.which) && !/input|textarea/i.test(n.target.tagName)) { var a = t(this); if (n.preventDefault(), n.stopPropagation(), !a.is(".disabled, :disabled")) { var i = e(a), s = i.hasClass("open"); if (!s && 27 != n.which || s && 27 == n.which) return 27 == n.which && i.find(o).trigger("focus"), a.trigger("click"); var r = " li:not(.disabled):visible a", l = i.find(".dropdown-menu" + r); if (l.length) { var d = l.index(n.target); 38 == n.which && d > 0 && d--, 40 == n.which && d < l.length - 1 && d++, ~d || (d = 0), l.eq(d).trigger("focus") } } } }; var r = t.fn.dropdown; t.fn.dropdown = a, t.fn.dropdown.Constructor = s, t.fn.dropdown.noConflict = function () { return t.fn.dropdown = r, this }, t(document).on("click.bs.dropdown.data-api", n).on("click.bs.dropdown.data-api", ".dropdown form", function (t) { t.stopPropagation() }).on("click.bs.dropdown.data-api", o, s.prototype.toggle).on("keydown.bs.dropdown.data-api", o, s.prototype.keydown).on("keydown.bs.dropdown.data-api", ".dropdown-menu", s.prototype.keydown) }(jQuery), +function (t) { "use strict"; function e(e) { var n, a = e.attr("data-target") || (n = e.attr("href")) && n.replace(/.*(?=#[^\s]+$)/, ""); return t(document).find(a) } function n(e) { return this.each(function () { var n = t(this), i = n.data("bs.collapse"), o = t.extend({}, a.DEFAULTS, n.data(), "object" == typeof e && e); !i && o.toggle && /show|hide/.test(e) && (o.toggle = !1), i || n.data("bs.collapse", i = new a(this, o)), "string" == typeof e && i[e]() }) } var a = function (e, n) { this.$element = t(e), this.options = t.extend({}, a.DEFAULTS, n), this.$trigger = t('[data-toggle="collapse"][href="#' + e.id + '"],[data-toggle="collapse"][data-target="#' + e.id + '"]'), this.transitioning = null, this.options.parent ? this.$parent = this.getParent() : this.addAriaAndCollapsedClass(this.$element, this.$trigger), this.options.toggle && this.toggle() }; a.VERSION = "3.4.1", a.TRANSITION_DURATION = 350, a.DEFAULTS = { toggle: !0 }, a.prototype.dimension = function () { var t = this.$element.hasClass("width"); return t ? "width" : "height" }, a.prototype.show = function () { if (!this.transitioning && !this.$element.hasClass("in")) { var e, i = this.$parent && this.$parent.children(".panel").children(".in, .collapsing"); if (!(i && i.length && (e = i.data("bs.collapse"), e && e.transitioning))) { var o = t.Event("show.bs.collapse"); if (this.$element.trigger(o), !o.isDefaultPrevented()) { i && i.length && (n.call(i, "hide"), e || i.data("bs.collapse", null)); var s = this.dimension(); this.$element.removeClass("collapse").addClass("collapsing")[s](0).attr("aria-expanded", !0), this.$trigger.removeClass("collapsed").attr("aria-expanded", !0), this.transitioning = 1; var r = function () { this.$element.removeClass("collapsing").addClass("collapse in")[s](""), this.transitioning = 0, this.$element.trigger("shown.bs.collapse") }; if (!t.support.transition) return r.call(this); var l = t.camelCase(["scroll", s].join("-")); this.$element.one("bsTransitionEnd", t.proxy(r, this)).emulateTransitionEnd(a.TRANSITION_DURATION)[s](this.$element[0][l]) } } } }, a.prototype.hide = function () { if (!this.transitioning && this.$element.hasClass("in")) { var e = t.Event("hide.bs.collapse"); if (this.$element.trigger(e), !e.isDefaultPrevented()) { var n = this.dimension(); this.$element[n](this.$element[n]())[0].offsetHeight, this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded", !1), this.$trigger.addClass("collapsed").attr("aria-expanded", !1), this.transitioning = 1; var i = function () { this.transitioning = 0, this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse") }; return t.support.transition ? void this.$element[n](0).one("bsTransitionEnd", t.proxy(i, this)).emulateTransitionEnd(a.TRANSITION_DURATION) : i.call(this) } } }, a.prototype.toggle = function () { this[this.$element.hasClass("in") ? "hide" : "show"]() }, a.prototype.getParent = function () { return t(document).find(this.options.parent).find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]').each(t.proxy(function (n, a) { var i = t(a); this.addAriaAndCollapsedClass(e(i), i) }, this)).end() }, a.prototype.addAriaAndCollapsedClass = function (t, e) { var n = t.hasClass("in"); t.attr("aria-expanded", n), e.toggleClass("collapsed", !n).attr("aria-expanded", n) }; var i = t.fn.collapse; t.fn.collapse = n, t.fn.collapse.Constructor = a, t.fn.collapse.noConflict = function () { return t.fn.collapse = i, this }, t(document).on("click.bs.collapse.data-api", '[data-toggle="collapse"]', function (a) { var i = t(this); i.attr("data-target") || a.preventDefault(); var o = e(i), s = o.data("bs.collapse"), r = s ? "toggle" : i.data(); n.call(o, r) }) }(jQuery); 73jQuery(function () { 74 /* If cookie hasnt reveioly been accepted, show banner */ 75 if (!cookieHelper.read('accepted')) { 76 jQuery('#ee_mb_cookie_msg').slideDown(); 77 } else { 78 jQuery('#cookie-law-info-again').css('display', 'block'); 79 } 80}); 81 82 83(function ($) { 84 85 /*@ Common start */ 86 var ee_common = { 87 getModelCID: function getModelCID() { 88 return ee_common.$element.data('model-cid'); 89 }, 90 getElementSettings: function ($element, setting) { 91 92 var elementSettings = {}, 93 modelCID = $element.data('model-cid'); 94 95 if (elementorFrontend.isEditMode() && modelCID) { 96 var settings = elementorFrontend.config.elements.data[modelCID], 97 settingsKeys = elementorFrontend.config.elements.keys[settings.attributes.widgetType || settings.attributes.elType]; 98 jQuery.each(settings.getActiveControls(), function (controlKey) { 99 if (settingsKeys) { 100 if (-1 !== settingsKeys.indexOf(controlKey)) { 101 elementSettings[controlKey] = settings.attributes[controlKey]; 102 } 103 } 104 }); 105 } else { 106 elementSettings = $element.data('settings') || {}; 107 } 108 109 return ee_common.getItems(elementSettings, setting); 110 }, 111 getItems: function (items, itemKey) { 112 if (itemKey) { 113 var keyStack = itemKey.split('.'), 114 currentKey = keyStack.splice(0, 1); 115 116 if (!keyStack.length) { 117 return items[currentKey]; 118 } 119 120 if (!items[currentKey]) { 121 return; 122 } 123 124 return ee_common.getItems(items[currentKey], keyStack.join('.')); 125 } 126 127 return items; 128 }, 129 showLoading: function (current) { 130 current.find('.elementor_extensions_loading_overlay').show(); 131 }, 132 hideLoading: function (current) { 133 current.find('.elementor_extensions_loading_overlay').hide(); 134 }, 135 equalheight: function (t) { 136 var e, i = 0, 137 r = 0, 138 h = new Array; 139 jQuery(t).each(function () { 140 if (e = jQuery(this), jQuery(e).height("auto"), topPostion = e.position().top, r != topPostion) { 141 for (currentDiv = 0; currentDiv < h.length; currentDiv++) h[currentDiv].height(i); 142 h.length = 0, r = topPostion, i = e.height(), h.push(e) 143 } else h.push(e), i = i < e.height() ? e.height() : i; 144 for (currentDiv = 0; currentDiv < h.length; currentDiv++) h[currentDiv].height(i) 145 }) 146 }, 147 findObjectByKey: function (array, key, value) { 148 for (var i = 0; i < array.length; i++) { 149 if (array[i][key] === value) { 150 return array[i]; 151 } 152 } 153 return null; 154 }, 155 debounce: function (threshold, callback) { 156 var timeout; 157 158 return function debounced($event) { 159 function delayed() { 160 callback.call(this, $event); 161 timeout = null; 162 } 163 164 if (timeout) { 165 clearTimeout(timeout); 166 } 167 168 timeout = setTimeout(delayed, threshold); 169 }; 170 }, 171 getObjectNextKey: function (object, key) { 172 var keys = Object.keys(object), 173 idIndex = keys.indexOf(key), 174 nextIndex = idIndex += 1;
175 176 if (nextIndex >= keys.length) { 177 return false; 178 } 179 180 var nextKey = keys[nextIndex]; 181 182 return nextKey; 183 }, 184 getObjectPrevKey: function (object, key) { 185 var keys = Object.keys(object), 186 idIndex = keys.indexOf(key), 187 prevIndex = idIndex -= 1; 188 189 if (0 > idIndex) { 190 return false; 191 } 192 193 var prevKey = keys[prevIndex]; 194 195 return prevKey; 196 }, 197 getObjectFirstKey: function (object) { 198 return Object.keys(object)[0]; 199 }, 200 getObjectLastKey: function (object) { 201 return Object.keys(object)[Object.keys(object).length - 1]; 202 }, 203 renderMap: function (data_address) { 204 // Get the user defined values 205 var address = data_address; 206 var radius = 2 * 1000; 207 208 // get the selected type 209 selectedTypes = ['school']; 210 211 var geocoder = new google.maps.Geocoder(); 212 var selLocLat = 0; 213 var selLocLng = 0; 214 215 geocoder.geocode({ 216 'address': address 217 }, function (results, status) { 218 219 if (status === 'OK') { 220 221 selLocLat = results[0].geometry.location.lat(); 222 selLocLng = results[0].geometry.location.lng(); 223 224 var pyrmont = new google.maps.LatLng(selLocLat, selLocLng); 225 226 map = new google.maps.Map(document.getElementById('ee-mb-map'), { 227 center: pyrmont, 228 zoom: 14 229 }); 230 231 var request = { 232 location: pyrmont, 233 radius: radius, 234 types: selectedTypes 235 }; 236 237 infowindow = new google.maps.InfoWindow(); 238 239 var service = new google.maps.places.PlacesService(map); 240 service.nearbySearch(request, ee_common.mapCallback); 241 } else { 242 alert('Geocode was not successful for the following reason: ' + status); 243 } 244 }); 245 }, 246 mapCallback: function (results, status) { 247 248 if (status == google.maps.places.PlacesServiceStatus.OK) { 249 for (var i = 0; i < results.length; i++) { 250 ee_common.createMarker(results[i], results[i].icon); 251 } 252 } 253 }, 254 createMarker: function (place, icon) { 255 var placeLoc = place.geometry.location; 256 257 var marker = new google.maps.Marker({ 258 map: map, 259 position: place.geometry.location, 260 icon: { 261 url: icon, 262 scaledSize: new google.maps.Size(40, 40) // pixels 263 }, 264 animation: google.maps.Animation.DROP 265 }); 266 267 google.maps.event.addListener(marker, 'click', function () { 268 infowindow.setContent(place.name + '<br>' + place.vicinity); 269 infowindow.open(map, this); 270 }); 271 } 272 } 273 274 /*@ Inline Attribute Equal Height */ 275 var matchHeight = function () { 276 function init() { 277 eventListeners(); 278 matchHeight(); 279 } 280 281 function eventListeners() { 282 $(window).on('resize', function () { 283 matchHeight(); 284 }); 285 } 286 287 function matchHeight() { 288 var groupName = $('[data-match-height]'); 289 var groupHeights = []; 290 291 groupName.css('min-height', 'auto'); 292 293 groupName.each(function () { 294 groupHeights.push($(this).outerHeight()); 295 }); 296 297 var maxHeight = Math.max.apply(null, groupHeights); 298 groupName.css('min-height', maxHeight); 299 }; 300 301 return { 302 init: init 303 }; 304 }(); 305 306 $(document).ready(function () {
307 matchHeight.init(); 308 }); 309 310 /*@ A to Z Listing */ 311 var ee_atoz = { 312 313 atoz_fun: function ($scope, $) { 314 315 ee_atoz.atoz_fun.elementSettings = ee_common.getElementSettings($scope); 316 317 var $listing_wrapper = $scope.find('.az-listing-container'); 318 319 ee_atoz.atoz_fun.init = function () { 320 $listing_wrapper.find('.categories a').on('click', function () { 321 ee_common.showLoading($scope); 322 $listing_wrapper.find('.categories li').removeClass('active'); 323 jQuery(this).parent('li').toggleClass('active'); 324 325 var cat_data = jQuery(this).data('setting'); 326 var widget_settings = $scope.data('settings'); 327 jQuery.ajax({ 328 url: ElementorExtensionsFrontendConfig.ajaxurl, 329 type: 'POST', 330 data: { 331 'action': 'getPostsByCategory', 332 'cat_data': cat_data, 333 'widget_settings': widget_settings 334 }, 335 success: function (data) { 336 jQuery('#listings').html(data); 337 ee_common.hideLoading($scope); 338 } 339 }); 340 }); 341 342 /*@ Smooth scrolling on click */ 343 344 $scope.find("ul.alphabets a").click(function (e) { 345 e.preventDefault(); 346 var hash_id = jQuery(this).attr('href'); 347 if (jQuery(hash_id).length) { 348 jQuery('html, body').animate({ 349 scrollTop: jQuery(hash_id).offset().top 350 }, 500); 351 } 352 }); 353 354 if (window.location.hash) { 355 jQuery(window.location.hash).trigger('click'); 356 } 357 }; 358 359 ee_atoz.atoz_fun.init(); 360 } 361 } 362 363 $(window).on('elementor/frontend/init', function () { 364 elementorFrontend.hooks.addAction('frontend/element_ready/ee-mb-atoz-listing.default', ee_atoz.atoz_fun); 365 }); 366 367 /*@ Anchor Scroll */ 368 var ee_anchor = { 369 370 anchor_scroll_fun: function ($scope, $) { 371 372 ee_anchor.anchor_scroll_fun.elementSettings = ee_common.getElementSettings($scope); 373 374 var $anchor_scroll = $scope.find('.anchor-scroll'); 375 376 ee_anchor.anchor_scroll_fun.init = function () { 377 378 $anchor_scroll.anchorScroll({ 379 scrollSpeed: 800, 380 offsetTop: 0, 381 scrollStart: function () { 382 $anchor_scroll.find(".fill-bg").fadeIn("slow"); 383 $anchor_scroll.find(".popup").text("Scrolling..."); 384 }, 385 scrollEnd: function () { 386 $anchor_scroll.find(".fill-bg").delay(1000).fadeOut("slow"); 387 $anchor_scroll.find(".popup").text("Done!"); 388 } 389 }); 390 391 }; 392 393 ee_anchor.anchor_scroll_fun.init(); 394 } 395 } 396 397 $(window).on('elementor/frontend/init', function () { 398 elementorFrontend.hooks.addAction('frontend/element_ready/ee-mb-anchor-scroll.default', ee_anchor.anchor_scroll_fun); 399 }); 400 401 /*@ Document Library */ 402 var ee_document_library = { 403 404 document_library_fun: function ($scope, $) { 405 406 var ee_dl_settings = ee_common.getElementSettings($scope), 407 $document_library = $scope.find('.document_library_wrapper '), 408 is_sortable = ee_dl_settings.is_header_sortable, 409 dl_tbl = $document_library.find('> table'), 410 order_filename_asc = ee_dl_settings.order_filename_asc; 411 412 ee_document_library.document_library_fun.init = function () { 413 if (is_sortable === 'yes') { 414 415 var sort_list = (order_filename_asc === 'yes') ? [[0, 0]] : ''; 416 dl_tbl.tablesorter({ 417 sortList: sort_list 418 }); 419 } 420 }; 421 ee_document_library.document_library_fun.init(); 422 } 423 } 424 425 $(window).on('elementor/frontend/init', function () { 426 elementorFrontend.hooks.addAction('frontend/element_ready/ee-mb-document-library.default', ee_document_library.document_library_fun); 427 });
428 429 /*@ Flipbox */ 430 var ee_mb_flipbox_with_slider = { 431 onInit: function ($scope, $) { 432 433 var carousel_elem = $scope.find('.elementor-slides').eq(0); 434 if (carousel_elem.length > 0) { 435 436 var elementSettings = ee_common.getElementSettings($scope); 437 if (elementSettings) { 438 var slickOptions = { 439 slidesToShow: 1, 440 slidesToScroll: 1, 441 autoplay: 'yes' === elementSettings.autoplay, 442 autoplaySpeed: elementSettings.autoplay_speed, 443 infinite: 'yes' === elementSettings.infinite, 444 pauseOnHover: 'yes' === elementSettings.pause_on_hover, 445 speed: elementSettings.speed, 446 arrows: -1 !== ['arrows', 'both'].indexOf(elementSettings.navigation), 447 dots: -1 !== ['dots', 'both'].indexOf(elementSettings.navigation), 448 rtl: 'rtl' === elementSettings.direction, 449 fade: 'fade' === elementSettings.transition, 450 }; 451 452 } 453 carousel_elem.slick(slickOptions); 454 455 var slideContent = '.elementor-slide-content', 456 animation = elementSettings.content_animation, 457 animated = 'animated'; 458 459 carousel_elem.on({ 460 beforeChange: function beforeChange() { 461 var $sliderContent = carousel_elem.find(slideContent); 462 $sliderContent.removeClass(animated + ' ' + animation).hide(); 463 }, 464 afterChange: function afterChange(event, slick, currentSlide) { 465 var $currentSlide = jQuery(slick.$slides.get(currentSlide)).find(slideContent); 466 $currentSlide.show().addClass(animated + ' ' + animation); 467 } 468 }); 469 470 /*@ On click of icon box flip the box */ 471 var frontbox = $scope.find('.ee_mb_flipbox_container .ee_mb_flipbox_front'), 472 back_slider = $scope.find('.ee_mb_flipbox_container .elementor-slides-wrapper'), 473 flip_container = $scope.find('.ee_mb_flipbox_container'); 474 475 $scope.find('.ee_mb_flipbox_container .ee_mb_flipbox_front ul li').on('click', function () { 476 /*@ Activate slider as per the frontbox icon index */ 477 var li_index = $(this).index(); 478 carousel_elem.slick('slickGoTo', li_index, true); 479 480 /*@ Assign slider height to container */ 481 var slider_height = back_slider.height(); 482 flip_container.height(slider_height); 483 484 /*@ Flip the frontbox to back-side */ 485 frontbox.css({ 486 '-webkit-transform': 'rotateX(-180deg)', 487 '-moz-transform': 'rotateX(-180deg)', 488 '-ms-transform': 'rotateX(-180deg)', 489 '-o-transform': 'rotateX(-180deg)', 490 'transform': 'rotateX(-180deg)' 491 }); 492 493 /*@ Flip the slider to front-side */ 494 back_slider.css({ 495 '-webkit-transform': 'rotateX(0deg)', 496 '-moz-transform': 'rotateX(0deg)', 497 '-ms-transform': 'rotateX(0deg)', 498 '-o-transform': 'rotateX(0deg)', 499 'transform': 'rotateX(0deg)', 500 'overflow': 'visible' 501 }); 502 503 /*@ Add remove active class for maintaining active height to container on resize window */ 504 frontbox.removeClass('active'); 505 back_slider.addClass('active'); 506 }); 507 508 $scope.find('.ee_mb_flipbox_container .ee_mb_flip_back').on('click', function () { 509 510 /*@ Assign front height to container */ 511 flip_container.attr('style', ''); 512 var front_height = frontbox.height(); 513 flip_container.height(front_height); 514 515 /*@ Flip frontbox to front-side */ 516 frontbox.css({
517 '-webkit-transform': 'rotateX(0deg)', 518 '-moz-transform': 'rotateX(0deg)', 519 '-ms-transform': 'rotateX(0deg)', 520 '-o-transform': 'rotateX(0deg)', 521 'transform': 'rotateX(0deg)' 522 }); 523 524 /*@ Flip the slider to back-side */ 525 back_slider.css({ 526 '-webkit-transform': 'rotateX(180deg)', 527 '-moz-transform': 'rotateX(180deg)', 528 '-ms-transform': 'rotateX(180deg)', 529 '-o-transform': 'rotateX(180deg)', 530 'transform': 'rotateX(180deg)', 531 'overflow': 'hidden' 532 }); 533 534 /*@ Add remove active class for maintaining active height to container on resize window */ 535 frontbox.addClass('active'); 536 back_slider.removeClass('active'); 537 }); 538 539 /*@ On resize assign height of active front or back to the flip container */ 540 jQuery(window).resize(function () { 541 542 flip_container.attr('style', ''); 543 if (frontbox.hasClass('active')) { 544 var front_height = frontbox.height(); 545 flip_container.height(front_height); 546 } else { 547 var slider_height = back_slider.height(); 548 flip_container.height(slider_height); 549 } 550 }); 551 552 } 553 } 554 }; 555 556 $(window).on('elementor/frontend/init', function () { 557 elementorFrontend.hooks.addAction('frontend/element_ready/ee-mb-flipbox.default', ee_mb_flipbox_with_slider.onInit); 558 }); 559 560 /*@ Imagebox Repeater */ 561 var ee_mb_imagebox_repeater = { 562 563 onInit: function ($scope, $) { 564 565 var carousel_elem = $scope.find('.elementor-image-carousel').eq(0); 566 567 if (carousel_elem.length > 0) { 568 569 var elementSettings = ee_common.getElementSettings($scope); 570 571 if (elementSettings) { 572 var slidesToShow = +elementSettings.slides_to_show || 3, 573 isSingleSlide = 1 === slidesToShow, 574 defaultLGDevicesSlidesCount = isSingleSlide ? 1 : 2, 575 breakpoints = elementorFrontend.config.breakpoints; 576 577 var slickOptions = { 578 slidesToShow: slidesToShow, 579 autoplay: 'yes' === elementSettings.autoplay, 580 autoplaySpeed: elementSettings.autoplay_speed, 581 infinite: 'yes' === elementSettings.infinite, 582 pauseOnHover: 'yes' === elementSettings.pause_on_hover, 583 speed: elementSettings.speed, 584 arrows: -1 !== ['arrows', 'both'].indexOf(elementSettings.navigation), 585 dots: -1 !== ['dots', 'both'].indexOf(elementSettings.navigation), 586 rtl: 'rtl' === elementSettings.direction, 587 responsive: [{ 588 breakpoint: breakpoints.lg, 589 settings: { 590 slidesToShow: +elementSettings.slides_to_show_tablet || defaultLGDevicesSlidesCount, 591 slidesToScroll: +elementSettings.slides_to_scroll_tablet || defaultLGDevicesSlidesCount 592 } 593 }, { 594 breakpoint: breakpoints.md, 595 settings: { 596 slidesToShow: +elementSettings.slides_to_show_mobile || 1, 597 slidesToScroll: +elementSettings.slides_to_scroll_mobile || 1 598 } 599 }] 600 }; 601 602 if (isSingleSlide) { 603 slickOptions.fade = 'fade' === elementSettings.effect; 604 } else { 605 slickOptions.slidesToScroll = +elementSettings.slides_to_scroll || defaultLGDevicesSlidesCount; 606 } 607 } 608 carousel_elem.slick(slickOptions); 609 } 610 } 611 }; 612 613 $(window).on('elementor/frontend/init', function () { 614 elementorFrontend.hooks.addAction('frontend/element_ready/ee-mb-imagebox-repeater.default', ee_mb_imagebox_repeater.onInit); 615 });
616 617 /*@ Multipoint map */ 618 var ee_mb_google_map = { 619 620 EeMbGoogleMap: function ($scope, $) { 621 622 ee_mb_google_map.EeMbGoogleMap.elementSettings = ee_common.getElementSettings($scope); 623 624 var $map = $scope.find('.ee-mb-google-map'); 625 626 if (!$map.length) return; 627 628 var $pins = $map.find('.ee-mb-google-map__pin'), 629 $navigation = $scope.find('.ee-mb-google-map__navigation'), 630 settings = ee_mb_google_map.EeMbGoogleMap.elementSettings, 631 gmapArgs = { 632 center: [48.8583736, 2.2922873], 633 634 mapTypeId: google.maps.MapTypeId[settings.map_type], 635 scrollwheel: 'yes' === settings.scrollwheel, 636 clickableIcons: 'yes' === settings.clickable_icons, 637 disableDoubleClickZoom: 'yes' !== settings.doubleclick_zoom, 638 keyboardShortcuts: 'yes' === settings.keyboard_shortcuts, 639 draggable: (!elementorFrontend.isEditMode() && 'yes' === settings.draggable), 640 641 fullscreenControl: 'yes' === settings.fullscreen_control, 642 mapTypeControl: 'yes' === settings.map_type_control, 643 rotateControl: 'yes' === settings.rotate_control, 644 scaleControl: 'yes' === settings.scale_control, 645 streetViewControl: 'yes' === settings.streetview_control, 646 zoomControl: 'yes' === settings.zoom_control, 647 }, 648 polygonArgs = { 649 default: { 650 strokeColor: (settings.polygon_stroke_color) ? settings.polygon_stroke_color : '#FF0000', 651 strokeWeight: (settings.polygon_stroke_weight) ? settings.polygon_stroke_weight.size : 2, 652 strokeOpacity: (settings.polygon_stroke_opacity) ? settings.polygon_stroke_opacity.size : 0.8, 653 fillColor: (settings.polygon_fill_color) ? settings.polygon_fill_color : '#FF0000', 654 fillOpacity: (settings.polygon_fill_opacity) ? settings.polygon_fill_opacity.size : 0.35, 655 }, 656 hover: { 657 strokeColor: (settings.polygon_stroke_color_hover) ? settings.polygon_stroke_color_hover : '#FF0000', 658 strokeWeight: (settings.polygon_stroke_weight_hover) ? settings.polygon_stroke_weight_hover.size : 2, 659 strokeOpacity: (settings.polygon_stroke_opacity_hover) ? settings.polygon_stroke_opacity_hover.size : 0.8, 660 fillColor: (settings.polygon_fill_color_hover) ? settings.polygon_fill_color_hover : '#FF0000', 661 fillOpacity: (settings.polygon_fill_opacity_hover) ? settings.polygon_fill_opacity_hover.size : 0.35, 662 } 663 }, 664 markers = [], 665 paths = [], 666 instance = null; 667 668 ee_mb_google_map.EeMbGoogleMap.init = function () { 669 670 var mapStyle = settings.map_style_json; 671 672 if ('api' === settings.map_style_type && settings.map_style_api) { 673 var jsonParse = JSON.parse(settings.map_style_api); 674 675 if (jsonParse) { 676 mapStyle = JSON.parse(settings.map_style_api).json; 677 } 678 } 679 680 var map_color = $map.data('map-color'); 681 682 if (map_color == '00' && undefined !== map_color) { 683 gmapArgs.styles = [ 684 { elementType: 'geometry', stylers: [{ color: settings.map_geometry }] }, 685 { elementType: 'labels.text.stroke', stylers: [{ color: settings.label_text_stroke }] }, 686 { elementType: 'labels.text.fill', stylers: [{ color: settings.label_text_fill }] }, 687 { 688 featureType: 'administrative.locality', 689 elementType: 'labels.text.fill', 690 stylers: [{ color: settings.administrative_locality }] 691 }, 692 { 693 featureType: 'poi', 694 elementType: 'geometry', 695 stylers: [{ color: settings.map_poi_color }] 696 }, 697 { 698 featureType: 'poi', 699 elementType: 'labels.text.fill', 700 stylers: [{ color: settings.map_poi_fill }] 701 }, 702 { 703 featureType: 'poi.park', 704 elementType: 'geometry.fill', 705 stylers: [{ color: settings.map_park_color }] 706 }, 707 { 708 featureType: 'poi.park', 709 elementType: 'labels.text.fill', 710 stylers: [{ color: settings.map_park_fill }] 711 }, 712 { 713 featureType: 'water', 714 elementType: 'geometry', 715 stylers: [{ color: settings.water_color }] 716 }, 717 { 718 featureType: 'water', 719 elementType: 'labels.text.fill', 720 stylers: [{ color: settings.water_text_fill }] 721 }, 722 { 723 featureType: 'water', 724 elementType: 'labels.text.stroke', 725 stylers: [{ color: settings.water_text_stroke }] 726 }, 727 { 728 featureType: 'road', 729 elementType: 'geometry', 730 stylers: [{ color: settings.road_color }] 731 }, 732 { 733 featureType: 'road', 734 elementType: 'geometry.stroke', 735 stylers: [{ color: settings.road_stroke }] 736 }, 737 { 738 featureType: 'road.highway', 739 elementType: 'geometry', 740 stylers: [{ color: settings.highway_color }] 741 }, 742 { 743 featureType: 'road.highway', 744 elementType: 'geometry.stroke', 745 stylers: [{ color: settings.highway_stroke }] 746 }, 747 { 748 featureType: 'road.highway', 749 elementType: 'labels.text.fill', 750 stylers: [{ color: settings.highway_text_fill }] 751 }, 752 { 753 featureType: 'transit', 754 elementType: 'geometry', 755 stylers: [{ color: settings.transit }] 756 }, 757 { 758 featureType: 'transit.station', 759 elementType: 'labels.text.fill', 760 stylers: [{ color: settings.transit_text_fill }] 761 }, 762 ]; 763 } 764 765 if ('' !== $.trim(mapStyle) && undefined !== mapStyle) { 766 gmapArgs.styles = ee_mb_google_map.EeMbGoogleMap.parseStyles(mapStyle); 767 } 768 769 if ('yes' !== settings.fit) { 770 if ('undefined' !== typeof settings.zoom) { 771 gmapArgs.zoom = settings.zoom.size; 772 } 773 774 if ($map.data('lat') && $map.data('lng')) { 775 gmapArgs.center = [$map.data('lat'), $map.data('lng')]; 776 } 777 } 778 779 instance = $map.gmap3(gmapArgs); 780 781 ee_mb_google_map.EeMbGoogleMap.addPins(); 782 783 if ('yes' === settings.popups) 784 ee_mb_google_map.EeMbGoogleMap.addInfoWindows(); 785 786 if ('yes' === settings.route && $pins.length > 1) 787 ee_mb_google_map.EeMbGoogleMap.addRoute(); 788 789 if ('yes' === settings.polygon) 790 ee_mb_google_map.EeMbGoogleMap.addPolygon(); 791 792 if ('yes' === settings.navigation) 793 ee_mb_google_map.EeMbGoogleMap.navigation(); 794 795 /* Init events */ 796 ee_mb_google_map.EeMbGoogleMap.events(); 797 798 /* Center to fit or custom */ 799 ee_mb_google_map.EeMbGoogleMap.center(); 800 }; 801 802 ee_mb_google_map.EeMbGoogleMap.events = function () { 803 $map._resize(ee_mb_google_map.EeMbGoogleMap.onResize); 804 }; 805 806 ee_mb_google_map.EeMbGoogleMap.onResize = function () { 807 ee_mb_google_map.EeMbGoogleMap.center(); 808 }; 809 810 ee_mb_google_map.EeMbGoogleMap.center = function () { 811 if ('yes' === settings.fit) { 812 instance.wait(2000).fit(); 813 } else { 814 instance.get(0).setCenter(new google.maps.LatLng(gmapArgs.center[0], gmapArgs.center[1])); 815 } 816 }; 817 818 ee_mb_google_map.EeMbGoogleMap.parseStyles = function (style) { 819 820 try { 821 var json = JSON.parse(style); 822 823 if (json && typeof json === "object") { return json; } 824 } 825 catch (e) { 826 alert('Invalid JSON'); 827 } 828 829 return false; 830 }; 831 832 ee_mb_google_map.EeMbGoogleMap.addPolygon = function () { 833 834 if ($pins.length <= 1) 835 return; 836 837 instance 838 .polygon({ 839 strokeColor: polygonArgs.default.strokeColor, 840 strokeWeight: polygonArgs.default.strokeWeight, 841 strokeOpacity: polygonArgs.default.strokeOpacity, 842 fillColor: polygonArgs.default.fillColor, 843 fillOpacity: polygonArgs.default.fillOpacity, 844 paths: paths, 845 }) 846 .on({ 847 mouseover: function (polygon, event) { 848 polygon.setOptions({ 849 strokeColor: polygonArgs.hover.strokeColor, 850 strokeWeight: polygonArgs.hover.strokeWeight, 851 strokeOpacity: polygonArgs.hover.strokeOpacity,
852 fillColor: polygonArgs.hover.fillColor, 853 fillOpacity: polygonArgs.hover.fillOpacity, 854 }); 855 }, 856 mouseout: function (polygon, event) { 857 polygon.setOptions({ 858 strokeColor: polygonArgs.default.strokeColor, 859 strokeWeight: polygonArgs.default.strokeWeight, 860 strokeOpacity: polygonArgs.default.strokeOpacity, 861 fillColor: polygonArgs.default.fillColor, 862 fillOpacity: polygonArgs.default.fillOpacity, 863 }); 864 } 865 }); 866 }; 867 868 ee_mb_google_map.EeMbGoogleMap.addPins = function () { 869 if (!$pins.length) 870 return; 871 872 $pins.each(function () { 873 var marker = {}, 874 pin = { 875 id: $(this).data('id'), 876 input: $(this).data('input'), 877 lat: $(this).data('lat'), 878 lng: $(this).data('lng'), 879 trigger: $(this).data('trigger'), 880 icon: $(this).data('icon'), 881 label: $(this).data('label'), 882 label_color: $(this).data('label-color'), 883 content: $(this).html(), 884 }; 885 886 if (!pin.lat || !pin.lng) { 887 return; 888 } 889 890 marker.id = pin.id; 891 marker.trigger = pin.trigger; 892 marker.position = [pin.lat, pin.lng]; 893 894 paths.push(marker.position); 895 896 if (pin.icon) { 897 var iconSize = (settings.pin_size) ? settings.pin_size.size : 50, 898 iconPosition = ee_mb_google_map.EeMbGoogleMap.getIconPosition(iconSize); 899 900 marker.icon = { 901 url: pin.icon, 902 scaledSize: new google.maps.Size(iconSize, iconSize), 903 origin: new google.maps.Point(0, 0), 904 anchor: new google.maps.Point(iconPosition[0], iconPosition[1]), 905 }; 906 907 if (pin.label) { 908 marker.icon.labelOrigin = new google.maps.Point(iconPosition[0], (iconPosition[1] + 10)); 909 } 910 911 } else { 912 913 if (pin.label) { 914 915 marker.icon = { 916 url: "http://maps.gstatic.com/mapfiles/api-3/images/spotlight-poi2.png", 917 labelOrigin: new google.maps.Point(15, 55), 918 size: new google.maps.Size(30, 45), 919 anchor: new google.maps.Point(16, 32) 920 }; 921 } 922 } 923 924 if (pin.label) { 925 926 var markerLabel = pin.label; 927 var maplabelcolor = (pin.label_color) ? pin.label_color : '#FF0000'; 928 929 marker.label = { 930 text: markerLabel, 931 color: maplabelcolor, 932 fontSize: "20px", 933 fontWeight: "bold" 934 }; 935 } 936 937 938 if (pin.content && settings.popups) 939 marker.content = pin.content; 940 941 markers.push(marker); 942 }); 943 944 instance.marker(markers); 945 }; 946 947 ee_mb_google_map.EeMbGoogleMap.getIconPosition = function (size) { 948 var horiz = 25, 949 vert = 50; 950 951 switch (settings.pin_position_horizontal) { 952 case 'left': 953 horiz = size; 954 break; 955 case 'center': 956 horiz = size / 2; 957 break; 958 case 'right': 959 horiz = 0; 960 break; 961 default: 962 horiz = size / 2; 963 } 964 965 switch (settings.pin_position_vertical) { 966 case 'top': 967 vert = size; 968 break; 969 case 'middle': 970 vert = size / 2; 971 break; 972 case 'bottom': 973 vert = 0; 974 break; 975 default: 976 vert = size; 977 } 978 979 return [horiz, vert]; 980 }; 981 982 ee_mb_google_map.EeMbGoogleMap.addInfoWindows = function () { 983 if (!$pins.length) 984 return; 985 986 instance 987 .infowindow(markers) 988 .then(function (infowindow) { 989 990 var map = this.get(0), 991 marker = this.get(1);
992 993 marker.forEach(function (pin, index) { 994 995 if ('auto' === pin.trigger) { 996 infowindow[index].open(map, pin); 997 998 pin.addListener('click', function () { 999 infowindow[index].open(map, pin); 1000 }); 1001 } else if ('mouseover' === pin.trigger) { 1002 pin.addListener('mouseover', function () { 1003 infowindow[index].open(map, pin); 1004 }); 1005 pin.addListener('mouseout', function () { 1006 infowindow[index].close(map, pin); 1007 }); 1008 } else if ('click' === pin.trigger) { 1009 pin.addListener('click', function () { 1010 infowindow[index].open(map, pin); 1011 }); 1012 } 1013 }) 1014 }); 1015 }; 1016 1017 ee_mb_google_map.EeMbGoogleMap.addRoute = function () { 1018 1019 if ($pins.length <= 1) 1020 return; 1021 1022 var points = markers.slice(), 1023 origin = ee_mb_google_map.EeMbGoogleMap.getMarkerDataForRoutes(markers[0]), 1024 destination = ee_mb_google_map.EeMbGoogleMap.getMarkerDataForRoutes(markers[markers.length - 1]), 1025 waypoints = (markers.length >= 3) ? ee_mb_google_map.EeMbGoogleMap.getWaypoints(points) : null; 1026 1027 instance 1028 .route({ 1029 origin: origin, 1030 destination: destination, 1031 waypoints: waypoints, 1032 travelMode: google.maps.DirectionsTravelMode.DRIVING 1033 }) 1034 .directionsrenderer(function (results) { 1035 if (results) { 1036 return { 1037 suppressMarkers: 'yes' !== settings.route_markers, 1038 directions: results, 1039 } 1040 } 1041 }); 1042 }; 1043 1044 ee_mb_google_map.EeMbGoogleMap.getWaypoints = function (points) { 1045 var waypoints = []; 1046 1047 /* Remove first and last markers */ 1048 points.shift(); 1049 points.pop(); 1050 1051 points.forEach(function (point, index) { 1052 waypoints.push({ 1053 location: ee_mb_google_map.EeMbGoogleMap.getMarkerDataForRoutes(point), 1054 stopover: true, 1055 }); 1056 }); 1057 1058 return waypoints; 1059 }; 1060 1061 ee_mb_google_map.EeMbGoogleMap.getMarkerDataForRoutes = function (marker) { 1062 return new google.maps.LatLng(marker.position[0], marker.position[1]); 1063 }; 1064 1065 ee_mb_google_map.EeMbGoogleMap.navigation = function () { 1066 var $items = $navigation.find('.ee-mb-google-map__navigation__item'), 1067 $all = $items.filter('.ee-mb-google-map__navigation__item--all'); 1068 1069 $all.addClass('ee--is-active'); 1070 1071 $items.on('click', function (e) { 1072 e.preventDefault(); 1073 e.stopPropagation(); 1074 1075 $items.removeClass('ee--is-active'); 1076 $(this).addClass('ee--is-active'); 1077 1078 var marker = ee_common.findObjectByKey(markers, 'id', $(this).data('id')); 1079 1080 if (marker) { 1081 instance.get(0).setCenter(new google.maps.LatLng(marker.position[0], marker.position[1])); 1082 instance.get(0).setZoom(18); 1083 } else { 1084 instance.fit(); 1085 } 1086 }); 1087 }; 1088 1089 ee_mb_google_map.EeMbGoogleMap.init(); 1090 }, 1091 }; 1092 1093 $(window).on('elementor/frontend/init', function () { 1094 elementorFrontend.hooks.addAction('frontend/element_ready/ee-mb-google-map.default', ee_mb_google_map.EeMbGoogleMap); 1095 });
1096 1097 /*@ Navigation Menu */ 1098 var ee_nav_menu = { 1099 1100 ee_navigation_menu_fun: function ($scope, $) { 1101 1102 ee_nav_menu.ee_navigation_menu_fun.elementSettings = ee_common.getElementSettings($scope); 1103 var $scroll_hamburger = $scope.find('.scroll_hamburger'), 1104 windowWidth = jQuery(window).width(), 1105 menuSetting = ee_nav_menu.ee_navigation_menu_fun.elementSettings; 1106 1107 ee_nav_menu.ee_navigation_menu_fun.init = function () { 1108 1109 if (ee_nav_menu.ee_navigation_menu_fun.elementSettings.layout == 'scroll_hamburger') { 1110 if ($scroll_hamburger.length > 0) { 1111 1112 var sticky_menu = $scroll_hamburger.parents('section'); 1113 sticky_menu.parent().append('<div class="hamburger_icon_wrapper">' + 1114 '<div class="arrow_for_scroll">' + 1115 '<i class="fa fa-bars"></i>' + 1116 '</div>' + 1117 '</div>'); 1118 1119 var toggleed = false; 1120 $('.arrow_for_scroll').click(function (e) { 1121 e.preventDefault(); 1122 if (sticky_menu.is(':visible')) { 1123 sticky_menu.stop().slideUp(); 1124 } else { 1125 sticky_menu.stop().slideDown(); 1126 } 1127 toggleed = true; 1128 setTimeout(function () { 1129 toggleed = false; 1130 }, 500); 1131 }); 1132 1133 $(window).bind('scroll', function () { 1134 if ($(window).width() > 900) { 1135 if (!toggleed) { 1136 if ($(window).scrollTop() > 50) { 1137 $('.arrow_for_scroll').fadeIn(); 1138 sticky_menu.slideUp(); 1139 if (!jQuery(document).find('.elementor-location-header').hasClass('hamburger_fixed_header')) { 1140 jQuery(document).find('.elementor-location-header').next().css('padding-top', jQuery('.elementor-location-header').outerHeight()); 1141 jQuery(document).find('.elementor-location-header').addClass('hamburger_fixed_header'); 1142 } 1143 } else { 1144 $('.arrow_for_scroll').fadeOut(); 1145 sticky_menu.slideDown(); 1146 if (jQuery(document).find('.elementor-location-header').hasClass('hamburger_fixed_header')) { 1147 jQuery(document).find('.elementor-location-header').next().css('padding-top', '0px'); 1148 jQuery(document).find('.elementor-location-header').removeClass('hamburger_fixed_header'); 1149 } 1150 } 1151 } 1152 } 1153 }); 1154 } else { 1155 jQuery(document).find('.hamburger_icon_wrapper').remove(); 1156 } 1157 } else { 1158 if (jQuery(document).find('.scroll_hamburger').length == 0) { 1159 jQuery(document).find('.hamburger_icon_wrapper').remove(); 1160 } 1161 } 1162 1163 var forEach = function (t, o, r) { if ("[object Object]" === Object.prototype.toString.call(t)) for (var c in t) Object.prototype.hasOwnProperty.call(t, c) && o.call(r, t[c], c, t); else for (var e = 0, l = t.length; l > e; e++)o.call(r, t[e], e, t) }; 1164 1165 var hamburgers = document.querySelectorAll(".hamburger"); 1166 if (hamburgers.length > 0) {
1167 forEach(hamburgers, function (hamburger) { 1168 hamburger.addEventListener("click", function () { 1169 this.classList.toggle("is-active"); 1170 }, false); 1171 }); 1172 } 1173 1174 /*@ If outside click then close the hamburger & sidebar */ 1175 jQuery(document).click(function (e) { 1176 if (!jQuery(e.target).is('.hamburger')) { 1177 jQuery(document).find('.sidebar').fadeOut('slow'); 1178 jQuery(document).find('.hamburger').removeClass('is-active'); 1179 } 1180 1181 // if(windowWidth <= 1024){ 1182 // if (!jQuery(e.target).is('.ee-mb-megamenu-wrapper .menu-item .elementor-item') && !jQuery(e.target).is('.ee-mb-megamenu-wrapper .btn_menu_back')) { 1183 // jQuery(document).find('.ee-mb-megamenu-wrapper .ee-mb-nav-shortcode').hide(); 1184 // jQuery(document).find('.ee-mb-megamenu-wrapper .menu-item').removeClass('uparrow'); 1185 // } 1186 // } 1187 }); 1188 1189 jQuery(document).on('click', '.hamburger', function (e) { 1190 jQuery(this).siblings('.ee-mb-sidebar-menu-wrapper').find(".sidebar").toggle("slide"); 1191 e.preventDefault(); 1192 return false; 1193 }); 1194 1195 // if(windowWidth <= 1024){ 1196 // jQuery(document).on('click', '.ee-mb-megamenu-wrapper .menu-item', function() { 1197 // jQuery(document).find('.ee-mb-megamenu-wrapper .ee-mb-nav-shortcode').hide(); 1198 1199 // if (jQuery(this).hasClass('uparrow')) { 1200 // jQuery(this).removeClass('uparrow'); 1201 // jQuery(this).find('.ee-mb-nav-shortcode').slideUp('slow'); 1202 // } else { 1203 // jQuery(this).addClass('uparrow'); 1204 // jQuery(this).find('.ee-mb-nav-shortcode').slideDown('slow'); 1205 // } 1206 1207 // }); 1208 // } 1209 1210 /*@ Megamenu start */ 1211 ee_nav_menu.supportTabs($scope); 1212 ee_nav_menu.megaMenu(menuSetting); 1213 1214 // $(window).on('resize', function(){ 1215 // ee_nav_menu.megaMenu(menuSetting); 1216 // }); 1217 }; 1218 1219 ee_nav_menu.ee_navigation_menu_fun.init(); 1220 }, 1221 calculateTopHeight: function (menuSetting) { 1222 /*@ Start:: Calculate top height start */ 1223 let megaMenuTopSpacing = (menuSetting.megamenu_top_spacing) ? menuSetting.megamenu_top_spacing.size : 0, 1224 menuFromTop = 0, 1225 adminBar = jQuery('#wpadminbar').length, 1226 adminBarHeight = 0, 1227 isCookie = jQuery('#ee_mb_cookie_msg').length, 1228 cookieHeight = 0; 1229 1230 /*@ If admin bar then add height */ 1231 if (adminBar > 0) { 1232 adminBarHeight = jQuery('#wpadminbar').outerHeight(); 1233 } 1234 1235 if (isCookie > 0 && !jQuery('#ee_mb_cookie_msg').hasClass('cookie_position') && jQuery('#ee_mb_cookie_msg').is(':visible')) { 1236 cookieHeight = jQuery('#ee_mb_cookie_msg').outerHeight(); 1237 } 1238 1239 /*@ Calculate height of each sections before the nav menu */ 1240 jQuery(document).find('.elementor-location-header').find('.elementor-top-section').each(function () { 1241 1242 menuFromTop += jQuery(this).outerHeight(); 1243 1244 if (jQuery(this).find('#templateMainNav').length > 0) { 1245 return false; 1246 } 1247 }); 1248 1249 if (!megaMenuTopSpacing) { 1250 jQuery(document).find('#mainNavigation > .ee-mb-nav-shortcode').css({ 'top': menuFromTop + adminBarHeight + cookieHeight }); 1251 } else { 1252 jQuery(document).find('#mainNavigation > .ee-mb-nav-shortcode').css({ 'top': megaMenuTopSpacing + adminBarHeight + cookieHeight });
1253 } 1254 1255 /*@ End:: Calculate top height */ 1256 }, 1257 megaMenu: function (menuSetting) { 1258 if ((menuSetting.dropdown === 'tablet' && jQuery(window).width() <= 1024) || (menuSetting.dropdown === 'mobile' && jQuery(window).width() <= 768)) { 1259 1260 /*@ Megamenu for mobile */ 1261 1262 $("#templateMainNav").find('.ee-mb-nav-shortcode').each(function () { 1263 if ($(this).find('.backButton').length <= 0) { 1264 $('<div class="backButton"><span class="fa fa-chevron-left backIcon"></span> Back</div>').insertBefore($(this).find('.elementor-container:first')); 1265 } 1266 }); 1267 1268 $(document).find('#mainNavigation').html($('#templateMainNav').html()); 1269 1270 $("#mainNavigation").attr("class", $("#templateMainNav").attr("class")); 1271 1272 if ($(document).find('.ee-mb-megamenu-wrapper').length > 0) { 1273 1274 jQuery(document).find('.ee-mb-megamenu-wrapper > ul > li:not(.menu-item-has-children)').on('click touchstart', function (e) { 1275 1276 let menuAnchor = $(this).find('a').attr('href'), 1277 liIndex = jQuery(this).index(); 1278 1279 if (menuAnchor === '#' || menuAnchor === '') { 1280 e.preventDefault(); 1281 } 1282 1283 if (jQuery(document).find('#mainNavigation .ee-mb-nav-shortcode').eq(liIndex).find('div').length > 0) { 1284 1285 let menuFromTop = jQuery('body > .elementor-location-header .elementor-top-section').outerHeight(); 1286 1287 jQuery(document).find('#mainNavigation .ee-mb-nav-shortcode').eq(liIndex).css({ 'opacity': 1, 'visibility': 'visible', 'left': '40px' }); 1288 1289 jQuery(document).find('#mainNavigation').css({ 'display': 'flex', 'left': 0 }).animate({ "right": "-1000px" }, "slow"); 1290 } 1291 }); 1292 1293 /*@ Close modal start */ 1294 jQuery(document).find('#mainNavigation .backButton').on('click touchstart', function (e) { 1295 1296 jQuery(document).find('#mainNavigation').css({ 'right': '-1000px', 'left': '100%', 'display': 'none' }).animate({ "right": "-1000px" }, "slow"); 1297 1298 jQuery(document).find('#mainNavigation .ee-mb-nav-shortcode').css({ 'opacity': 0, 'visibility': 'hidden' }); 1299 1300 e.preventDefault(); 1301 }); 1302 1303 $(document).keydown(function (event) { 1304 if (event.keyCode == 27) { 1305 jQuery(document).find('#mainNavigation').css({ 'opacity': 0, 'visibility': 'hidden' }); 1306 1307 jQuery(document).find('#mainNavigation .ee-mb-nav-shortcode').css({ 'opacity': 0, 'visibility': 'hidden', 'right': '-1000px' }); 1308 } 1309 }); 1310 /*@ Close modal end */ 1311 } 1312 } else { 1313 1314 $(document).find('#mainNavigation').html($('#templateMainNav').html()); 1315 1316 $(document).find('#mainNavigation').hide(); 1317 1318 if ($(document).find('.ee-mb-megamenu-wrapper').length > 0) { 1319 1320 1321 jQuery(document).find('.ee-mb-megamenu-wrapper > ul > .menu-item').mouseenter(function () { 1322 let liIndex = jQuery(this).index(); 1323 $(document).find('#mainNavigation').show(); 1324 1325 /*@ If menu sticky then support it */ 1326 if (jQuery('.elementor-sticky').length > 0) { 1327 jQuery(document).find('#mainNavigation .ee-mb-nav-shortcode').css({ 'position': 'fixed' }); 1328 } 1329 1330 jQuery(document).find('#mainNavigation .ee-mb-nav-shortcode').css({ 'opacity': 0, 'visibility': 'hidden' }); 1331 1332 jQuery(document).find('#mainNavigation .ee-mb-nav-shortcode').eq(liIndex).css({ 'opacity': 1, 'visibility': 'visible' }); 1333 1334 ee_nav_menu.calculateTopHeight(menuSetting); 1335 }); 1336 1337 jQuery(document).find('#mainNavigation').mouseleave(function () { 1338 1339 $(document).find('#mainNavigation').hide(); 1340 1341 jQuery(document).find('#mainNavigation .ee-mb-nav-shortcode').css({ 'opacity': 0, 'visibility': 'hidden' }); 1342 1343 ee_nav_menu.calculateTopHeight(menuSetting); 1344 }); 1345 } 1346 } 1347 }, 1348 supportTabs: function ($scope) { 1349 let navMenu = jQuery(document).find('.ee-mb-nav-shortcode'); 1350 /*@ If tabs found in mega menu then proceed */ 1351 if (navMenu.find('.elementor-tabs').length > 0) { 1352 1353 /*@ By default activate first tab */ 1354 let allTabContent = navMenu.find('.elementor-tabs-content-wrapper'), 1355 allTabTitle = navMenu.find('.elementor-tabs-wrapper'); 1356 1357 allTabContent.each(function () { 1358 jQuery(this).find('.elementor-tab-content').first().show(); 1359 }); 1360 1361 allTabTitle.each(function () { 1362 jQuery(this).find('.elementor-tab-title').first().addClass('elementor-active'); 1363 }); 1364 1365 // allTabContent.first().show(); 1366 // allTabTitle.first().toggleClass('elementor-active'); 1367 1368 /*@ On click of tabs hide/show individual tabs content and tab title */ 1369 jQuery(document).on('click', '.ee-mb-nav-shortcode .elementor-tab-title', function (e) { 1370 e.preventDefault(); 1371
1372 let $this = jQuery(this), 1373 index = $this.attr('data-tab'), 1374 tabContent = $this.parent().siblings('.elementor-tabs-content-wrapper').find('.elementor-tab-content'); 1375 1376 // Remove all active class and add to current only 1377 $this.siblings().removeClass('elementor-active'); 1378 $this.addClass('elementor-active'); 1379 1380 // Hide/Show content 1381 tabContent.each(function () { 1382 jQuery(this).hide(); 1383 if (jQuery(this).attr('data-tab') === index) { 1384 jQuery(this).show(); 1385 } 1386 }); 1387 }); 1388 } 1389 } 1390 } 1391 1392 $(window).on('elementor/frontend/init', function () { 1393 elementorFrontend.hooks.addAction('frontend/element_ready/nav-menu.default', ee_nav_menu.ee_navigation_menu_fun); 1394 }); 1395 1396 /*@ Event Slider */ 1397 var ee_mb_event_slider = { 1398 1399 onInit: function ($scope, $) { 1400 1401 var carousel_elem = $scope.find('.elementor-image-carousel').eq(0); 1402 1403 if (carousel_elem.length > 0) { 1404 1405 var elementSettings = ee_common.getElementSettings($scope); 1406 1407 if (elementSettings) { 1408 var slidesToShow = +elementSettings.slides_to_show || 3, 1409 slideRows = +elementSettings.slides_rows || 1, 1410 isSingleSlide = 1 === slidesToShow, 1411 defaultLGDevicesSlidesCount = isSingleSlide ? 1 : 2, 1412 breakpoints = elementorFrontend.config.breakpoints; 1413 1414 var slickOptions = { 1415 slidesToShow: slidesToShow, 1416 rows: slideRows, 1417 autoplay: 'yes' === elementSettings.autoplay, 1418 autoplaySpeed: elementSettings.autoplay_speed, 1419 infinite: 'yes' === elementSettings.infinite, 1420 pauseOnHover: 'yes' === elementSettings.pause_on_hover, 1421 speed: elementSettings.speed, 1422 arrows: -1 !== ['arrows', 'both'].indexOf(elementSettings.navigation), 1423 dots: -1 !== ['dots', 'both'].indexOf(elementSettings.navigation), 1424 rtl: 'rtl' === elementSettings.direction, 1425 responsive: [{ 1426 breakpoint: breakpoints.lg, 1427 settings: { 1428 slidesToShow: +elementSettings.slides_to_show_tablet || defaultLGDevicesSlidesCount, 1429 slidesToScroll: +elementSettings.slides_to_scroll_tablet || defaultLGDevicesSlidesCount, 1430 } 1431 }, { 1432 breakpoint: breakpoints.md, 1433 settings: { 1434 slidesToShow: +elementSettings.slides_to_show_mobile || 1, 1435 slidesToScroll: +elementSettings.slides_to_scroll_mobile || 1, 1436 } 1437 }] 1438 }; 1439 1440 if (isSingleSlide) { 1441 slickOptions.fade = 'fade' === elementSettings.effect; 1442 } else { 1443 slickOptions.slidesToScroll = +elementSettings.slides_to_scroll || defaultLGDevicesSlidesCount; 1444 } 1445 } 1446 carousel_elem.slick(slickOptions); 1447 1448 1449 carousel_elem.on('setPosition', function () { 1450 ee_common.equalheight('.elementor-widget-event-slider .slick-track > .slick-slide.es_event_slider'); 1451 }); 1452 1453 } 1454 } 1455 }; 1456 1457 $(window).on('elementor/frontend/init', function () { 1458 elementorFrontend.hooks.addAction('frontend/element_ready/ee-mb-event-slider.default', ee_mb_event_slider.onInit); 1459 }); 1460 1461 jQuery(window).load(function () { 1462 ee_common.equalheight('.elementor-widget-event-slider .slick-track > .slick-slide.es_event_slider'); 1463 });
1464 1465 jQuery(window).resize(function () { 1466 ee_common.equalheight('.elementor-widget-event-slider .slick-track > .slick-slide.es_event_slider'); 1467 }); 1468 1469 /*@ Google Map */ 1470 var ee_mb_map = { 1471 1472 ee_mb_map_fun: function ($scope, $) { 1473 1474 ee_mb_map.ee_mb_map_fun.init = function () { 1475 var elementSettings = ee_common.getElementSettings($scope); 1476 1477 if (!elementSettings.address) { 1478 return false; 1479 } 1480 1481 var maptype = elementSettings.map_type; 1482 1483 if (maptype == 'ROADMAP') { 1484 1485 var styledMapType = new google.maps.StyledMapType( 1486 [ 1487 { elementType: 'geometry', stylers: [{ color: elementSettings.map_geometry }] }, 1488 { elementType: 'labels.text.stroke', stylers: [{ color: elementSettings.label_text_stroke }] }, 1489 { elementType: 'labels.text.fill', stylers: [{ color: elementSettings.label_text_fill }] }, 1490 { 1491 featureType: 'administrative.locality', 1492 elementType: 'labels.text.fill', 1493 stylers: [{ color: elementSettings.administrative_locality }] 1494 }, 1495 { 1496 featureType: 'poi', 1497 elementType: 'geometry', 1498 stylers: [{ color: elementSettings.map_poi_color }] 1499 }, 1500 { 1501 featureType: 'poi', 1502 elementType: 'labels.text.fill', 1503 stylers: [{ color: elementSettings.map_poi_fill }] 1504 }, 1505 { 1506 featureType: 'poi.park', 1507 elementType: 'geometry.fill', 1508 stylers: [{ color: elementSettings.map_park_color }] 1509 }, 1510 { 1511 featureType: 'poi.park', 1512 elementType: 'labels.text.fill', 1513 stylers: [{ color: elementSettings.map_park_fill }] 1514 }, 1515 { 1516 featureType: 'water', 1517 elementType: 'geometry', 1518 stylers: [{ color: elementSettings.water_color }] 1519 }, 1520 { 1521 featureType: 'water', 1522 elementType: 'labels.text.fill', 1523 stylers: [{ color: elementSettings.water_text_fill }] 1524 }, 1525 { 1526 featureType: 'water', 1527 elementType: 'labels.text.stroke', 1528 stylers: [{ color: elementSettings.water_text_stroke }] 1529 }, 1530 { 1531 featureType: 'road', 1532 elementType: 'geometry', 1533 stylers: [{ color: elementSettings.road_color }] 1534 }, 1535 { 1536 featureType: 'road', 1537 elementType: 'geometry.stroke', 1538 stylers: [{ color: elementSettings.road_stroke }] 1539 }, 1540 { 1541 featureType: 'road.highway', 1542 elementType: 'geometry', 1543 stylers: [{ color: elementSettings.highway_color }] 1544 }, 1545 { 1546 featureType: 'road.highway', 1547 elementType: 'geometry.stroke', 1548 stylers: [{ color: elementSettings.highway_stroke }] 1549 }, 1550 { 1551 featureType: 'road.highway', 1552 elementType: 'labels.text.fill', 1553 stylers: [{ color: elementSettings.highway_text_fill }] 1554 }, 1555 { 1556 featureType: 'transit', 1557 elementType: 'geometry', 1558 stylers: [{ color: elementSettings.transit }] 1559 }, 1560 { 1561 featureType: 'transit.station', 1562 elementType: 'labels.text.fill', 1563 stylers: [{ color: elementSettings.transit_text_fill }] 1564 }, 1565 ], 1566 { name: 'Styled Map' } 1567 ); 1568 } 1569 1570 var gstrh = 'cooperative'; 1571 var scrollval = true; 1572 var defscroll = elementSettings.prevent_scroll; 1573 if (defscroll == 'yes') {
1574 gstrh = 'none'; 1575 scrollval = false; 1576 } 1577 1578 var map = new google.maps.Map(document.getElementById('map'), { 1579 zoom: (elementSettings.zoom.size) ? elementSettings.zoom.size : 10, 1580 mapTypeId: google.maps.MapTypeId[maptype], 1581 scrollwheel: scrollval, 1582 gestureHandling: gstrh, 1583 zoomControl: scrollval 1584 }); 1585 1586 var geocoder = new google.maps.Geocoder(); 1587 ee_mb_map.geocodeAddress(geocoder, map, elementSettings); 1588 1589 /* Associate the styled map with the MapTypeId and set it to display. */ 1590 if (maptype == 'ROADMAP') { 1591 map.mapTypes.set('styled_map', styledMapType); 1592 map.setMapTypeId('styled_map'); 1593 } 1594 1595 }; 1596 1597 ee_mb_map.ee_mb_map_fun.init(); 1598 }, 1599 geocodeAddress: function (geocoder, resultsMap, elementSettings) { 1600 var address = elementSettings.address; 1601 geocoder.geocode({ 'address': address }, function (results, status) { 1602 if (status === 'OK') { 1603 resultsMap.setCenter(results[0].geometry.location); 1604 var markerLabel = (elementSettings.map_markerlabel) ? elementSettings.map_markerlabel : ''; 1605 var maplabelcolor = (elementSettings.map_markerlabel_color) ? elementSettings.map_markerlabel_color : ''; 1606 if (markerLabel == "" || markerLabel.length == 0) { markerLabel = ' '; } 1607 if (maplabelcolor == "" || maplabelcolor.length == 0) { maplabelcolor = '#ff0000'; } 1608 1609 var marker = new google.maps.Marker({ 1610 map: resultsMap, 1611 position: results[0].geometry.location, 1612 icon: { 1613 url: "//maps.gstatic.com/mapfiles/api-3/images/spotlight-poi2.png", 1614 labelOrigin: new google.maps.Point(15, 55), 1615 size: new google.maps.Size(30, 45), 1616 anchor: new google.maps.Point(16, 32) 1617 }, 1618 label: { 1619 text: markerLabel, 1620 color: maplabelcolor, 1621 fontSize: "20px", 1622 fontWeight: "bold" 1623 } 1624 }); 1625 } else { 1626 console.log('Geocode was not successful for the following reason: ' + status); 1627 } 1628 }); 1629 } 1630 } 1631 1632 $(window).on('elementor/frontend/init', function () { 1633 elementorFrontend.hooks.addAction('frontend/element_ready/ee-mb-map.default', ee_mb_map.ee_mb_map_fun); 1634 }); 1635 1636 /*@ Google Calendar */ 1637 var ee_mb_gcal = { 1638 ee_mb_gcal_fun: function ($scope, $) { 1639 1640 ee_mb_gcal.ee_mb_gcal_fun.init = function () { 1641 1642 var elementSettings = ee_common.getElementSettings($scope), 1643 gcal = $scope.find('.ee-mb-google-calendar'), 1644 cal_uid = gcal.data('cal-uid'), 1645 cal_api_key = gcal.data('cal-api-key'), 1646 cal_layout = elementSettings.cal_layout_type, 1647 cal_id = elementSettings.cal_id, 1648 eventsdata = [], 1649 i = 0; 1650 1651 if (!cal_api_key && !cal_id) { 1652 return false; 1653 } 1654 1655 if (cal_layout == 'grid') { 1656 1657 var calendarEl = document.getElementById('calendar-' + cal_uid); 1658 1659 var calendar = new FullCalendar.Calendar(calendarEl, { 1660 plugins: ['interaction', 'dayGrid', 'timeGrid', 'list', 'googleCalendar'], 1661 header: { 1662 left: 'prev,next today', 1663 center: 'title', 1664 right: 'month,agendaWeek,agendaDay' 1665 }, 1666 googleCalendarApiKey: cal_api_key, 1667 events: { 1668 googleCalendarId: cal_id 1669 }, 1670 eventRender: function (event, element) { 1671 if (eventsdata.length == 0) { 1672 eventsdata.push(event.title); 1673 i++; 1674 } else { 1675 var tmp = eventsdata.indexOf(event.title); 1676 if (tmp == -1) { 1677 eventsdata.push(event.title); 1678 i++; 1679 } 1680 } 1681 1682 if (typeof element !== 'undefined') { 1683 element.addClass("custom-event-" + eventsdata.indexOf(event.title)); 1684 } 1685 }, 1686 }); 1687 1688 calendar.render(); 1689 1690 } else { 1691 1692 var calendarEl = document.getElementById('calendar-' + cal_uid); 1693 1694 var calendar = new FullCalendar.Calendar(calendarEl, { 1695 plugins: ['interaction', 'dayGrid', 'timeGrid', 'list', 'googleCalendar'], 1696 defaultView: 'listWeek', 1697 views: { 1698 listDay: { buttonText: 'list day' }, 1699 listWeek: { buttonText: 'list week' }, 1700 listMonth: { buttonText: 'list month' } 1701 }, 1702 header: { 1703 left: 'title',
1704 center: '', 1705 right: 'listDay,listWeek,listMonth' 1706 }, 1707 googleCalendarApiKey: cal_api_key, 1708 events: { 1709 googleCalendarId: cal_id 1710 } 1711 }); 1712 1713 calendar.render(); 1714 } 1715 } 1716 ee_mb_gcal.ee_mb_gcal_fun.init(); 1717 } 1718 } 1719 $(window).on('elementor/frontend/init', function () { 1720 elementorFrontend.hooks.addAction('frontend/element_ready/ee-mb-google-calendar.default', ee_mb_gcal.ee_mb_gcal_fun); 1721 }); 1722 1723 /*@ Member */ 1724 var ee_mb_member = { 1725 1726 ee_mb_member_fun: function ($scope, $) { 1727 1728 ee_mb_member.ee_mb_member_fun.init = function () { 1729 var elementSettings = ee_common.getElementSettings($scope); 1730 1731 jQuery('.ee_mb_drp_member').on('change', function () { 1732 1733 var sorting_by = $scope.find('#drp_sorting').val(), 1734 industry = $scope.find('#drp_industrial_sector').val(), 1735 status = $scope.find('#drp_status').val() 1736 params = { sortby: sorting_by, statusby: status, industry: industry }, 1737 new_url = jQuery.param(params); 1738 1739 window.location.search = new_url; 1740 }); 1741 1742 var sortby = 'sortby', 1743 filterby = 'statusby', 1744 url = window.location.href 1745 1746 if (url.indexOf('?' + sortby + '=') != -1 || url.indexOf('?' + filterby + '=') != -1) { 1747 jQuery('html, body').animate({ 1748 scrollTop: jQuery('#members_wrapper').offset().top - 40 1749 }, 1200); 1750 } 1751 } 1752 1753 ee_mb_member.ee_mb_member_fun.init(); 1754 } 1755 } 1756 $(window).on('elementor/frontend/init', function () { 1757 elementorFrontend.hooks.addAction('frontend/element_ready/ee-mb-member.default', ee_mb_member.ee_mb_member_fun); 1758 }); 1759 1760 /*@ Events */ 1761 var ee_mb_events = { 1762 1763 ee_mb_events_fun: function ($scope, $) { 1764 1765 ee_mb_events.ee_mb_events_fun.init = function () { 1766 1767 var elementSettings = ee_common.getElementSettings($scope), 1768 ajaxurl = ElementorExtensionsFrontendConfig.ajaxurl; 1769 1770 jQuery(document).on('click', '.myeventon_summary_eventlist_wrapper .summary_filter a', function (e) { 1771 e.preventDefault(); 1772 var current = jQuery(this); 1773 ee_common.showLoading($scope); 1774 var data_month = jQuery(this).attr('data-month'); 1775 var data_year = jQuery(this).attr('data-year'); 1776 1777 var sumarry_wrapper = current.parents('.myeventon_summary_eventlist_wrapper'), 1778 sumarry_filter = sumarry_wrapper.find('> .summary_filter'), 1779 enable_event_detail = sumarry_filter.data('event-detail'), 1780 disable_event_link = sumarry_filter.data('disable-link'), 1781 event_date_layout = sumarry_filter.data('date-layout'), 1782 event_limit = sumarry_filter.data('event-limit'), 1783 event_offset = sumarry_filter.data('event-offset'), 1784 hide_past_events = sumarry_filter.data('hide-past-events'); 1785 1786 var d = new Date(); 1787 1788 if (!data_year) { 1789 var data_year = sumarry_wrapper.find('.summary_filter > .year_filter_wrapper a.current').attr('data-year'); 1790 } else { 1791 sumarry_wrapper.find('> .summary_filter > .year_filter_wrapper a').removeClass('current'); 1792 } 1793 1794 if (!data_month) { 1795 var data_month = sumarry_wrapper.find('.summary_filter > .month_filter_wrapper > a.current').attr('data-month'); 1796 } else { 1797 sumarry_wrapper.find('> .summary_filter > .month_filter_wrapper a').removeClass('current'); 1798 } 1799 1800 jQuery(this).addClass('current'); 1801 1802 jQuery.ajax({ 1803 url: ajaxurl, 1804 data: { 1805 'action': 'getSummaryListAjax', 1806 'month': data_month, 1807 'year': data_year, 1808 'event_date_layout': event_date_layout, 1809 'cat': '', 1810 'limit': event_limit, 1811 'offset': event_offset, 1812 'enable_event_detail': enable_event_detail, 1813 'disable_link': disable_event_link, 1814 'hide_past_events': hide_past_events, 1815 }, 1816 method: 'POST', 1817 success: function (data) { 1818 sumarry_wrapper.find('.summaryEventList').html(data).append('<div class="elementor_extensions_loading_overlay"><div class="elementor_extensions_loader"></div></div>'); 1819 ee_common.hideLoading($scope); 1820 }, 1821 error: function (errorThrown) { 1822 console.log(errorThrown); 1823 ee_common.hideLoading($scope); 1824 } 1825 }); 1826 }); 1827 1828 /*@Next Prev button click*/ 1829 jQuery(document).on('click', '#summary_prev,#summary_next', function () { 1830 var current = jQuery(this); 1831 ee_common.showLoading($scope); 1832 1833 var sumarry_wrapper = current.parents('.myeventon_summary_eventlist_wrapper'), 1834 sumarry_filter = sumarry_wrapper.find('> .summary_filter'), 1835 event_limit = sumarry_filter.data('event-limit'), 1836 event_offset = sumarry_filter.data('event-offset') 1837 month_year = current.data('date'), 1838 event_date_layout = current.data('date-layout'), 1839 enable_event_detail = current.data('event-detail'), 1840 disable_event_link = current.data('disable-link'), 1841 hide_past_events = current.data('hide-past-events'), 1842 splited = month_year.split('-'); 1843 1844 jQuery.ajax({ 1845 url: ajaxurl, 1846 data: { 1847 'action': 'getSummaryListAjax', 1848 'month_year': month_year, 1849 'event_date_layout': event_date_layout, 1850 'enable_event_detail': enable_event_detail, 1851 'disable_link': disable_event_link, 1852 'hide_past_events': hide_past_events, 1853 'limit': event_limit, 1854 'offset': event_offset, 1855 }, 1856 method: 'POST', 1857 success: function (data) { 1858 jQuery('.myeventon_summary_eventlist_wrapper > .summary_filter a').removeClass('current'); 1859 jQuery('.myeventon_summary_eventlist_wrapper > .summary_filter > .year_filter_wrapper a[data-year="' + splited[0] + '"]').addClass('current'); 1860 jQuery('.myeventon_summary_eventlist_wrapper > .summary_filter > .month_filter_wrapper a[data-month="' + splited[1] + '"]').addClass('current'); 1861 current.parents('.summaryEventList').html(data).append('<div class="elementor_extensions_loading_overlay"><div class="elementor_extensions_loader"></div></div>'); 1862 ee_common.hideLoading($scope); 1863 }, 1864 error: function (errorThrown) { 1865 console.log(errorThrown); 1866 ee_common.hideLoading($scope); 1867 } 1868 }); 1869 }); 1870 1871 /*@Show more button click*/ 1872 jQuery(document).on('click', '.myeventon_summary_eventlist_wrapper .summaryEventList .show_more_events', function () { 1873 var current = jQuery(this); 1874 ee_common.showLoading($scope); 1875 1876 var sumarry_wrapper = current.parents('.myeventon_summary_eventlist_wrapper'), 1877 sumarry_filter = sumarry_wrapper.find('> .summary_filter'), 1878 data_year = sumarry_wrapper.find('.summary_filter > .year_filter_wrapper a.current').attr('data-year'), 1879 data_month = sumarry_wrapper.find('.summary_filter > .month_filter_wrapper > a.current').attr('data-month'), 1880 event_date_layout = sumarry_filter.data('date-layout'), 1881 enable_event_detail = sumarry_filter.data('event-detail'), 1882 disable_event_link = sumarry_filter.data('disable-link'), 1883 hide_past_events = sumarry_filter.data('hide-past-events'),
1884 event_offset = parseInt(jQuery(document).find('#hd_offset').val()), 1885 event_limit = sumarry_filter.data('event-limit'), 1886 show_future_events = sumarry_filter.data('future-events'); 1887 1888 /*@ Determine first click */ 1889 if (current.hasClass('clicked')) { 1890 event_offset = parseInt(jQuery(document).find('#hd_limit_offset').val()); 1891 } else { 1892 current.addClass('clicked'); 1893 event_offset = event_limit + event_offset; 1894 } 1895 1896 jQuery.ajax({ 1897 url: ajaxurl, 1898 data: { 1899 'action': 'getSummaryListAjax', 1900 'month': data_month, 1901 'year': data_year, 1902 'limit': '-1', 1903 'offset': event_offset, 1904 'event_date_layout': event_date_layout, 1905 'enable_event_detail': enable_event_detail, 1906 'disable_link': disable_event_link, 1907 'hide_past_events': hide_past_events, 1908 'show_future_events': (show_future_events) ? show_future_events : '', 1909 }, 1910 method: 'POST', 1911 success: function (data) { 1912 current.parents('.summaryEventList').html(data).append('<div class="elementor_extensions_loading_overlay"><div class="elementor_extensions_loader"></div></div>'); 1913 jQuery(document).find('#hd_offset').val(event_offset); 1914 ee_common.hideLoading($scope); 1915 }, 1916 error: function (errorThrown) { 1917 console.log(errorThrown); 1918 ee_common.hideLoading($scope); 1919 } 1920 }); 1921 }); 1922 1923 /*@ Calendar view*/ 1924 var calendar_wrapper_div = jQuery("div.myeventon_calendar"); 1925 if (calendar_wrapper_div.length > 0) { 1926 calendar_wrapper_div.each(function () { 1927 var calendar_id = jQuery(this).attr('data-id'); 1928 var event_list = jQuery(this).data('caldata'); 1929 var disable_link = jQuery(this).data('disable-link'); 1930 1931 var calendarEl = document.getElementById('calendar-' + calendar_id); 1932 1933 var calendar = new FullCalendar.Calendar(calendarEl, { 1934 plugins: ['interaction', 'dayGrid', 'timeGrid', 'list'], 1935 header: { 1936 left: 'prev,next today', 1937 center: 'title', 1938 right: 'dayGridMonth,timeGridWeek,timeGridDay,listMonth' 1939 }, 1940 events: event_list, 1941 eventRender: function (event, element) { 1942 if (typeof element !== 'undefined') { 1943 element.addClass("custom-event"); 1944 } 1945 }, 1946 eventClick: function (arg) { 1947 var clicked_date = arg.event.start; 1948 clicked_date = moment(clicked_date).format("YYYY-MM-DD"); 1949 1950 var current = jQuery(arg.el); 1951 jQuery.ajax({ 1952 url: ajaxurl, 1953 data: { 1954 'action': 'getEventListByDay', 1955 'date': clicked_date, 1956 'disable_link': disable_link 1957 }, 1958 method: 'POST', 1959 success: function (data) { 1960 current.parents('.myeventon_calendar').siblings('.myeventon_calendar_summaryview').html(data); 1961 }, 1962 error: function (errorThrown) { 1963 } 1964 }); 1965 }, 1966 dayClick: function (arg) { 1967 var clicked_date = arg.event.start; 1968 clicked_date = moment(clicked_date).format("YYYY-MM-DD"); 1969 1970 var current = jQuery(arg.el); 1971 jQuery.ajax({ 1972 url: ajaxurl, 1973 data: { 1974 'action': 'getEventListByDay', 1975 'date': clicked_date, 1976 'disable_link': disable_link, 1977 }, 1978 method: 'POST', 1979 success: function (data) { 1980 current.parents('.myeventon_calendar').siblings('.myeventon_calendar_summaryview').html(data); 1981 }, 1982 error: function (errorThrown) { 1983 } 1984 }); 1985 } 1986 }); 1987 1988 calendar.render(); 1989 }); 1990 } 1991 1992 /*@ Display - Hide summary description no click of event label */ 1993 jQuery(document).on('click', '.myeventon_calendar_summaryview li,.summaryEventList li', function (e) { 1994 jQuery(this).next('.summary_cal_description').slideToggle(); 1995 e.preventDefault(); 1996 }); 1997 } 1998 ee_mb_events.ee_mb_events_fun.init(); 1999 } 2000 } 2001 $(window).on('elementor/frontend/init', function () { 2002 elementorFrontend.hooks.addAction('frontend/element_ready/ee-mb-events.default', ee_mb_events.ee_mb_events_fun); 2003 });
2004 2005 /*@ Property Search */ 2006 var ee_mb_property_search = { 2007 2008 ee_mb_property_search_fun: function ($scope, $) { 2009 2010 ee_mb_property_search.ee_mb_property_search_fun.init = function () { 2011 2012 if (typeof google === 'object' && typeof google.maps === 'object') { 2013 function ee_mb_property_search_box_autocomplete() { 2014 2015 var elementSettings = ee_common.getElementSettings($scope), 2016 input = document.getElementById('ee_mb_property_txt'), 2017 data_setting = $scope.find('.ee_mb_homepage_searchbox_form').data('settings'); 2018 2019 if (input) { 2020 var options = { 2021 types: ['geocode'] 2022 }; 2023 2024 if (data_setting.country_restriction) { 2025 options.componentRestrictions = { country: data_setting.country_restriction }; 2026 } 2027 2028 var autocomplete = new google.maps.places.Autocomplete(input, options); 2029 2030 /** 2031 * Get lat long and add it into the hidden text boxes 2032 */ 2033 google.maps.event.addDomListener(input, 'keydown', function (event) { 2034 if (event.keyCode === 13) { 2035 event.preventDefault(); 2036 } else { 2037 google.maps.event.addListener(autocomplete, 'place_changed', function () { 2038 var place = autocomplete.getPlace(); 2039 2040 var lat = place.geometry.location.lat(); 2041 var lng = place.geometry.location.lng(); 2042 2043 document.getElementById("ee_mb_property_lat").value = lat; 2044 document.getElementById("ee_mb_property_long").value = lng; 2045 }); 2046 } 2047 }); 2048 } 2049 } 2050 2051 google.maps.event.addDomListener(window, 'load', ee_mb_property_search_box_autocomplete); 2052 } 2053 2054 } 2055 ee_mb_property_search.ee_mb_property_search_fun.init(); 2056 } 2057 } 2058 2059 $(window).on('elementor/frontend/init', function () { 2060 elementorFrontend.hooks.addAction('frontend/element_ready/ee-mb-property-search.default', ee_mb_property_search.ee_mb_property_search_fun); 2061 }); 2062 2063 var ee_mb_properties = { 2064 2065 fun: function ($scope, $) { 2066 2067 elementSettings = ee_common.getElementSettings($scope); 2068 2069 var $listing_wrapper = $scope.find('.ee_mb_property_listing_wrapper'); 2070 var $data_setting = $scope.find('.ee_mb_property_search_page_outer_wrapper').data('settings'); 2071 2072 ee_mb_properties.fun.init = function () { 2073 ee_mb_properties.fun.addPropertyPageClassInBody(); 2074 ee_mb_properties.fun.get(); 2075 ee_mb_properties.fun.getviews(); 2076 ee_mb_properties.fun.addPromiximityRangeSlider(); 2077 ee_mb_properties.fun.changeEvents(); 2078 if (typeof google === 'object' && typeof google.maps === 'object') { 2079 google.maps.event.addDomListener(window, 'load', ee_mb_properties.fun.addAutocompleteLocation()); 2080 } 2081 }; 2082 2083 ee_mb_properties.fun.get = function () { 2084 ee_mb_properties.fun.showLoading(); 2085 var ajaxurl = ElementorExtensionsFrontendConfig.ajaxurl, 2086 view = ee_mb_properties.fun.getUrlParameter('view'), 2087 property_type = ee_mb_properties.fun.getUrlParameter('property_type'); 2088 2089 jQuery('#ee_mb_property_listing').html(''); 2090 jQuery('#property_pagination').html(''); 2091 jQuery('#search_result').text(''); 2092 2093 2094 jQuery.ajax({ 2095 url: ajaxurl, 2096 data: { 2097 'action': 'eeMbPropertySearchAjax', 2098 'location': ee_mb_properties.fun.getUrlParameter('location'),
2099 'radius': ee_mb_properties.fun.getUrlParameter('radius'), 2100 'lat': ee_mb_properties.fun.getUrlParameter('lat'), 2101 'long': ee_mb_properties.fun.getUrlParameter('long'), 2102 'max': ee_mb_properties.fun.getUrlParameter('max'), 2103 'min': ee_mb_properties.fun.getUrlParameter('min'), 2104 'room': ee_mb_properties.fun.getUrlParameter('room'), 2105 'property_type': (property_type) ? property_type : elementSettings.default_property_type, 2106 'view': view, 2107 'price_sort': ee_mb_properties.fun.getUrlParameter('price_sort'), 2108 'paged': ee_mb_properties.fun.getUrlParameter('pagination'), 2109 'default_sort': elementSettings.default_sort, 2110 'post_per_page': elementSettings.post_per_page, 2111 'area': ee_mb_properties.fun.getUrlParameter('area'), 2112 'sqft': ee_mb_properties.fun.getUrlParameter('sqft'), 2113 }, 2114 method: 'POST', 2115 success: function (data) { 2116 2117 if (data.results || data.results == '0') { 2118 jQuery('#search_result').html(data.results); 2119 } 2120 2121 if (data.results && data.results !== '0') { 2122 if (view == 'map') { 2123 2124 jQuery('#ee_mb_property_listing').html('<div id="propertymap"></div>'); 2125 2126 var locations = data.map_properties; 2127 2128 var map = new google.maps.Map(document.getElementById('propertymap'), { 2129 zoom: 10, 2130 center: new google.maps.LatLng(locations[0][1], locations[0][2]), 2131 mapTypeId: google.maps.MapTypeId.ROADMAP 2132 }); 2133 2134 var infowindow = new google.maps.InfoWindow(); 2135 var marker, i, content = ""; 2136 2137 for (i = 0; i < locations.length; i++) { 2138 var latlng = new google.maps.LatLng(locations[i][1], locations[i][2]); 2139 marker = new google.maps.Marker({ 2140 position: latlng, 2141 map: map, 2142 icon: ElementorExtensionsFrontendConfig.ee_mb_path + "assets/img/map-pin.png" 2143 }); 2144 2145 var property_img = locations[i][6], 2146 title = locations[i][0], 2147 price = locations[i][3], 2148 bedrooms = locations[i][4], 2149 type = locations[i][5], 2150 listed_on = locations[i][7], 2151 prop_url = locations[i][8]; 2152 2153 content = "<div class='map_info_wrapper'><a href=" + prop_url + "><div class='img_wrapper'><img src=" + property_img + "></div>" + 2154 "<div class='property_content_wrap'>" + 2155 "<div class='property_title'>" + 2156 "<span>" + title + "</span>" + 2157 "</div>" + 2158 2159 "<div class='property_price'>" + 2160 "<span>" + price + "</span>" + 2161 "</div>" + 2162 2163 "<div class='property_bed_type'>" + 2164 "<span>" + bedrooms + " beds</span>" + 2165 "<ul><li>" + type + "</li></ul>" + 2166 "</div>" + 2167 2168 "<div class='property_listed_date'>" + 2169 "<span>Listed on " + listed_on + "</span>" + 2170 "</div>" + 2171 "<div class='btn_visit_marker'><span>View more</span></div>" 2172 "</div></a></div>"; 2173 2174 google.maps.event.addListener(marker, 'click', (function (marker, content, i) { 2175 return function () { 2176 infowindow.setContent(content); 2177 infowindow.open(map, marker); 2178 } 2179 })(marker, content, i)); 2180 } 2181 2182 } else { 2183 jQuery.each(data.property, function (index, value) { 2184 jQuery('#ee_mb_property_listing').append(value); 2185 }); 2186 jQuery('#property_pagination').html(data.next_pagination); 2187 } 2188 } 2189 2190 ee_mb_properties.fun.hideLoading(); 2191 }, 2192 error: function (errorThrown) { } 2193 }); 2194 }; 2195 2196 ee_mb_properties.fun.addPropertyPageClassInBody = function () { 2197 jQuery(document).find('body').addClass('property-search-page'); 2198 }; 2199 2200 ee_mb_properties.fun.addPromiximityRangeSlider = function () { 2201 var slider = document.getElementById("promiximity_range"); 2202 2203 if (slider) { 2204 var output = document.getElementById("txt_miles"); 2205 output.innerHTML = slider.value + ' miles'; /* Display the default slider value */ 2206
2207 /* Update the current slider value (each time you drag the slider handle) */ 2208 slider.oninput = function () { 2209 output.innerHTML = this.value + ' miles'; 2210 } 2211 } 2212 }; 2213 2214 ee_mb_properties.fun.addAutocompleteLocation = function () { 2215 2216 var input = document.getElementById('ee_mb_property_txt'); 2217 2218 if (input) { 2219 var options = { 2220 types: ['geocode'] 2221 }; 2222 2223 if ($data_setting.country_restriction) { 2224 options.componentRestrictions = { country: $data_setting.country_restriction }; 2225 } 2226 2227 var autocomplete = new google.maps.places.Autocomplete(input, options); 2228 2229 /** 2230 * Get lat long and add it into the hidden text boxes 2231 */ 2232 google.maps.event.addListener(autocomplete, 'place_changed', function () { 2233 var place = autocomplete.getPlace(); 2234 2235 var current_add = jQuery('#ee_mb_property_txt').val(); 2236 2237 var lat = place.geometry.location.lat(); 2238 var lng = place.geometry.location.lng(); 2239 2240 document.getElementById("ee_mb_property_lat").value = lat; 2241 document.getElementById("ee_mb_property_long").value = lng; 2242 2243 var newurl = ee_mb_properties.fun.replaceUrlParam('location', encodeURIComponent(current_add)); 2244 history.pushState(null, null, newurl); 2245 2246 var newurl = ee_mb_properties.fun.replaceUrlParam('lat', lat); 2247 history.pushState(null, null, newurl); 2248 2249 var newurl = ee_mb_properties.fun.replaceUrlParam('long', lng); 2250 history.pushState(null, null, newurl); 2251 }); 2252 } 2253 }; 2254 2255 ee_mb_properties.fun.getUrlParameter = function (name) { 2256 name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]'); 2257 var regex = new RegExp('[\\?&]' + name + '=([^&#]*)'); 2258 var results = regex.exec(location.search); 2259 return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' ')); 2260 }; 2261 2262 ee_mb_properties.fun.changeEvents = function () { 2263 jQuery("#drp_min_price").on('change', function () { 2264 var newurl = ee_mb_properties.fun.replaceUrlParam('min', jQuery(this).val()); 2265 history.pushState(null, null, newurl); 2266 ee_mb_properties.fun.get(); 2267 }); 2268 2269 jQuery("#drp_max_price").on('change', function () { 2270 var newurl = ee_mb_properties.fun.replaceUrlParam('max', jQuery(this).val()); 2271 history.pushState(null, null, newurl); 2272 ee_mb_properties.fun.get(); 2273 }); 2274 2275 jQuery("#drp_bedrooms").on('change', function () { 2276 var newurl = ee_mb_properties.fun.replaceUrlParam('room', jQuery(this).val()); 2277 history.pushState(null, null, newurl); 2278 ee_mb_properties.fun.get(); 2279 }); 2280 2281 jQuery("#drp_property_type").on('change', function () { 2282 var newurl = ee_mb_properties.fun.replaceUrlParam('property_type', jQuery(this).val()); 2283 history.pushState(null, null, newurl); 2284 ee_mb_properties.fun.get(); 2285 }); 2286 2287 jQuery("#promiximity_range").on('change', function () { 2288 var newurl = ee_mb_properties.fun.replaceUrlParam('radius', jQuery(this).val()); 2289 history.pushState(null, null, newurl); 2290 ee_mb_properties.fun.get(); 2291 }); 2292 2293 jQuery("#price_sort").on('change', function () { 2294 var newurl = ee_mb_properties.fun.replaceUrlParam('price_sort', jQuery(this).val()); 2295 history.pushState(null, null, newurl); 2296 ee_mb_properties.fun.get(); 2297 }); 2298 2299 jQuery("#btn_property_search").on('click', function () { 2300 var areaUrl = ee_mb_properties.fun.replaceUrlParam('area', jQuery('#area').val()); 2301 history.pushState(null, null, areaUrl); 2302 var sqftUrl = ee_mb_properties.fun.replaceUrlParam('sqft', jQuery('#sqft').val()); 2303 history.pushState(null, null, sqftUrl); 2304 ee_mb_properties.fun.get(); 2305 }); 2306 2307 jQuery(document).on('click', '.page-numbers', function (e) { 2308 e.preventDefault(); 2309 var pagination_link = jQuery(this).attr('href'); 2310 paged = pagination_link.split('?'); 2311 paged = paged[1].split('='); 2312 var newurl = ee_mb_properties.fun.replaceUrlParam('pagination', paged[1]); 2313 history.pushState(null, null, newurl); 2314 ee_mb_properties.fun.get(); 2315 }); 2316 }; 2317 2318 ee_mb_properties.fun.replaceUrlParam = function (paramName, paramValue) { 2319 var url = window.location.href; 2320 if (paramValue == null) { 2321 paramValue = ''; 2322 } 2323 var pattern = new RegExp('\\b(' + paramName + '=).*?(&|#|$)'); 2324 if (url.search(pattern) >= 0) { 2325 return url.replace(pattern, '$1' + paramValue + '$2'); 2326 } 2327 url = url.replace(/[?#]$/, ''); 2328 return url + (url.indexOf('?') > 0 ? '&' : '?') + paramName + '=' + paramValue; 2329 }; 2330 2331 ee_mb_properties.fun.showLoading = function () { 2332 jQuery(document).find('.elementor_ee_mb_loading_overlay.property_search').show(); 2333 }; 2334 2335 ee_mb_properties.fun.hideLoading = function () { 2336 jQuery(document).find('.elementor_ee_mb_loading_overlay.property_search').hide(); 2337 }; 2338 2339 ee_mb_properties.fun.getviews = function () { 2340 jQuery('#btn_view_group li').on('click', function () { 2341 var view = jQuery(this).data('view'); 2342 2343 if (view == 'list') { 2344 jQuery('#ee_mb_property_listing').removeClass('grid'); 2345 jQuery('#ee_mb_property_listing').removeClass('map'); 2346 jQuery('#ee_mb_property_listing').addClass('list'); 2347 } else if (view == 'grid') { 2348 jQuery('#ee_mb_property_listing').addClass('grid'); 2349 jQuery('#ee_mb_property_listing').removeClass('list'); 2350 jQuery('#ee_mb_property_listing').removeClass('map'); 2351 } else if (view == 'map') { 2352 jQuery('#ee_mb_property_listing').removeClass('grid'); 2353 jQuery('#ee_mb_property_listing').removeClass('list'); 2354 jQuery('#ee_mb_property_listing').addClass('map'); 2355 } 2356 2357 jQuery('#btn_view_group li').removeClass('active'); 2358 jQuery(this).addClass('active'); 2359 var newurl = ee_mb_properties.fun.replaceUrlParam('view', view); 2360 history.pushState(null, null, newurl); 2361 ee_mb_properties.fun.get(); 2362 }); 2363 }; 2364 2365 ee_mb_properties.fun.init(); 2366 } 2367 } 2368 2369 $(window).on('elementor/frontend/init', function () { 2370 elementorFrontend.hooks.addAction('frontend/element_ready/ee-mb-properties.default', ee_mb_properties.fun); 2371 });
2372 2373 /*@ Property School Checker Map */ 2374 var ee_mb_property_school_checker_map = 2375 { 2376 ee_mb_property_school_checker_map_fun: function ($scope, $) { 2377 var settings = $scope.find('#ee-mb-school-checker-map-wrapper').data('settings'); 2378 2379 ee_mb_property_school_checker_map.ee_mb_property_school_checker_map_fun.init = function () { 2380 2381 if (typeof google === 'object' && typeof google.maps === 'object') { 2382 if (settings && settings['addresses'] && settings['addresses']['address']) { 2383 address = settings['addresses']['address']; 2384 } 2385 2386 if (address) { 2387 ee_common.renderMap(address); 2388 } 2389 } 2390 } 2391 2392 ee_mb_property_school_checker_map.ee_mb_property_school_checker_map_fun.init(); 2393 } 2394 } 2395 2396 $(window).on('elementor/frontend/init', function () { 2397 elementorFrontend.hooks.addAction('frontend/element_ready/ee-mb-property-school-checker-map.default', ee_mb_property_school_checker_map.ee_mb_property_school_checker_map_fun); 2398 }); 2399 2400 /*@ Property slider */ 2401 var ee_mb_property_slider = 2402 { 2403 ee_mb_property_slider_fun: function ($scope, $) { 2404 let $slides_counter = $scope.find('.slider-for > div.slider_item').length; 2405 2406 ee_mb_property_slider.ee_mb_property_slider_fun.init = function () { 2407 /*@ Slick slider*/ 2408 2409 if ($slides_counter > 0) { 2410 var slideCount = $scope.find('.slideCount'); 2411 $scope.find('.slider-for,.slider-nav').on('init reInit afterChange', function (event, slick, currentSlide, nextSlide) { 2412 //currentSlide is undefined on init -- set it to 0 in this case (currentSlide is 0 based) 2413 var slider_caption = $scope.find('.slick-current').attr('data-image-caption'); 2414 if (slider_caption) { 2415 $scope.find('#slider_caption_text').text(slider_caption); 2416 } 2417 var i = (currentSlide ? currentSlide : 0) + 1; 2418 $scope.find('.slideCount').html('<span class="slideCountItem">' + i + '</span> ' + 'of' + ' <span class="slideCountAll">' + slick.slideCount + '</span>'); 2419 }); 2420 2421 $scope.find('.slider-for').slick({ 2422 slidesToShow: 1, 2423 slidesToScroll: 1, 2424 arrows: true, 2425 fade: true, 2426 asNavFor: '.slider-nav', 2427 slide: '.slider_item', 2428 adaptiveHeight: true, 2429 }); 2430 2431 $scope.find('.slider-nav').slick({ 2432 slidesToShow: 5, //(slides_counter > 5) ? (6 - 1) : (slides_counter == 1) ? 1 : (slides_counter - 1), 2433 slidesToScroll: 1, 2434 asNavFor: '.slider-for', 2435 dots: false, 2436 arrows: true, 2437 centerMode: false, 2438 focusOnSelect: true, 2439 }); 2440 2441 $scope.find("#btn_enlarge").on('click', function () { 2442 var photos = new Array(); 2443 $scope.find(".slider_item").each(function () { 2444 href = jQuery(this).children('img').attr("src"); 2445 photos.push({ 2446 'src': href, 2447 }) 2448 }); 2449 2450 jQuery.fancybox.open(photos, { 2451 loop: true, 2452 hash: "test" 2453 }); 2454 }); 2455 } 2456 } 2457 2458 ee_mb_property_slider.ee_mb_property_slider_fun.init(); 2459 } 2460 } 2461 2462 $(window).on('elementor/frontend/init', function () { 2463 elementorFrontend.hooks.addAction('frontend/element_ready/ee-mb-property-slider.default', ee_mb_property_slider.ee_mb_property_slider_fun); 2464 });
2465 2466 /*@ Property Agent */ 2467 var ee_mb_property_agent = 2468 { 2469 ee_mb_property_agent_fun: function ($scope, $) { 2470 var settings = $scope.find('.agent_form').data('settings'), 2471 elementSettings = ee_common.getElementSettings($scope); 2472 2473 ee_mb_property_agent.ee_mb_property_agent_fun.init = function () { 2474 if (settings) { 2475 var agent_email = ''; 2476 if (settings['agent_email']) { 2477 agent_email = settings['agent_email']; 2478 } 2479 2480 jQuery(document).on('click', '#btn_send_agent', function (e) { 2481 e.preventDefault(); 2482 ee_common.showLoading($scope); 2483 var ajaxurl = ElementorExtensionsFrontendConfig.ajaxurl; 2484 jQuery.ajax({ 2485 url: ajaxurl, 2486 data: { 2487 'action': 'eeMbAgentMailSendAjax', 2488 'name': document.getElementById('name').value, 2489 'email': document.getElementById('email').value, 2490 'message': document.getElementById('message').value, 2491 'phone': document.getElementById('telephone').value, 2492 'property_link': document.getElementById('property_link').value, 2493 'sendto': agent_email, 2494 }, 2495 method: 'POST', 2496 success: function (data) { 2497 if (data.success) { 2498 jQuery(document).find('.form_error').text(''); 2499 jQuery(document).find('.form_success').remove(); 2500 jQuery('#btn_send_agent').after('<span class="form_success">' + elementSettings.form_success_msg + '</span>'); 2501 jQuery('#agent_contact_form').trigger("reset"); 2502 } else { 2503 jQuery(document).find('.form_error').remove(); 2504 jQuery.each(data.error, function (index, value) { 2505 jQuery('#' + index).after('<span class="form_error">' + value + '</span>'); 2506 }); 2507 } 2508 ee_common.hideLoading($scope); 2509 }, 2510 error: function () { 2511 alert('Something went wrong, please contact administrator'); 2512 ee_common.hideLoading($scope); 2513 } 2514 }); 2515 }); 2516 } 2517 } 2518 2519 ee_mb_property_agent.ee_mb_property_agent_fun.init(); 2520 } 2521 } 2522 2523 $(window).on('elementor/frontend/init', function () { 2524 elementorFrontend.hooks.addAction('frontend/element_ready/ee-mb-property-agent.default', ee_mb_property_agent.ee_mb_property_agent_fun); 2525 }); 2526 2527 /*@ Scroll navigation */ 2528 var eeMbScrollNavigation = function ($scope, $) { 2529 var $target = $scope.find('.ee-mb-scroll-navigation'), 2530 instance = null, 2531 settings = $target.data('settings'); 2532 2533 instance = new ee_mb_scroll_navigation($target, settings); 2534 instance.init(); 2535 }; 2536 2537 window.ee_mb_scroll_navigation = function ($selector, settings) { 2538 var self = this, 2539 $window = $(window), 2540 $document = $(document), 2541 $instance = $selector, 2542 $htmlBody = $('html, body'), 2543 $itemsList = $('.ee-mb-scroll-navigation__item', $instance), 2544 sectionList = [], 2545 defaultSettings = { 2546 speed: 500, 2547 blockSpeed: 500, 2548 offset: 200, 2549 sectionSwitch: false 2550 }, 2551 settings = $.extend({}, defaultSettings, settings), 2552 sections = {}, 2553 currentSection = null, 2554 isScrolling = false, 2555 isSwipe = false, 2556 hash = window.location.hash.slice(1), 2557 timeout = null, 2558 timeStamp = 0, 2559 platform = navigator.platform; 2560 2561 jQuery.extend(jQuery.easing, { 2562 easeInOutCirc: function (x, t, b, c, d) { 2563 if ((t /= d / 2) < 1) return -c / 2 * (Math.sqrt(1 - t * t) - 1) + b; 2564 return c / 2 * (Math.sqrt(1 - (t -= 2) * t) + 1) + b; 2565 } 2566 }); 2567 2568 self.init = function () { 2569 self.setSectionsData(); 2570 2571 $itemsList.on('click.ee_mb_scroll_navigation', self.onAnchorChange); 2572 2573 $window.on('scroll.ee_mb_scroll_navigation', self.onScroll); 2574 $window.on('resize.ee_mb_scroll_navigation orientationchange.ee_mb_scroll_navigation', ee_common.debounce(50, self.onResize)); 2575 $window.on('load', function () { self.setSectionsData(); }); 2576 $instance.parents('.elementor-column').css('min-height', 'auto'); 2577 $document.keydown(function (event) { 2578 2579 if (38 == event.keyCode) { 2580 self.directionSwitch(event, 'up'); 2581 } 2582 2583 if (40 == event.keyCode) { 2584 self.directionSwitch(event, 'down'); 2585 } 2586 }); 2587 2588 if (settings.sectionSwitch) {
2589 if ('onwheel' in window) { 2590 } 2591 $document.on('mousewheel.ee_mb_scroll_navigation DOMMouseScroll.ee_mb_scroll_navigation', self.onWheel); 2592 } 2593 2594 if (hash && sections.hasOwnProperty(hash)) { 2595 $itemsList.addClass('invert'); 2596 } 2597 2598 for (var section in sections) { 2599 var $section = sections[section].selector; 2600 2601 elementorFrontend.waypoint($section, function (direction) { 2602 var $this = $(this), 2603 sectionId = $this.attr('id'); 2604 2605 if ('down' === direction && !isScrolling && !isSwipe) { 2606 window.history.pushState(null, null, '#' + sectionId); 2607 currentSection = sectionId; 2608 $itemsList.removeClass('active'); 2609 $('[data-anchor=' + sectionId + ']', $instance).addClass('active'); 2610 2611 $itemsList.removeClass('invert'); 2612 2613 if (sections[sectionId].invert) { 2614 $itemsList.addClass('invert'); 2615 } 2616 } 2617 }, { 2618 offset: '95%', 2619 triggerOnce: false 2620 }); 2621 2622 elementorFrontend.waypoint($section, function (direction) { 2623 var $this = $(this), 2624 sectionId = $this.attr('id'); 2625 2626 if ('up' === direction && !isScrolling && !isSwipe) { 2627 window.history.pushState(null, null, '#' + sectionId); 2628 currentSection = sectionId; 2629 $itemsList.removeClass('active'); 2630 $('[data-anchor=' + sectionId + ']', $instance).addClass('active'); 2631 2632 $itemsList.removeClass('invert'); 2633 2634 if (sections[sectionId].invert) { 2635 $itemsList.addClass('invert'); 2636 } 2637 } 2638 }, { 2639 offset: '0%', 2640 triggerOnce: false 2641 }); 2642 } 2643 }; 2644 2645 self.onAnchorChange = function (event) { 2646 var $this = $(this), 2647 sectionId = $this.data('anchor'), 2648 offset = null; 2649 2650 if (!sections.hasOwnProperty(sectionId)) { 2651 return false; 2652 } 2653 2654 offset = sections[sectionId].offset - settings.offset; 2655 2656 if (!isScrolling) { 2657 isScrolling = true; 2658 window.history.pushState(null, null, '#' + sectionId); 2659 currentSection = sectionId; 2660 2661 $itemsList.removeClass('active'); 2662 $this.addClass('active'); 2663 2664 $itemsList.removeClass('invert'); 2665 2666 if (sections[sectionId].invert) { 2667 $itemsList.addClass('invert'); 2668 } 2669 2670 $htmlBody.stop().clearQueue().animate({ 'scrollTop': offset }, settings.speed, 'easeInOutCirc', function () { 2671 isScrolling = false; 2672 }); 2673 } 2674 }; 2675 2676 self.directionSwitch = function (event, direction) { 2677 var direction = direction || 'up', 2678 sectionId, 2679 nextItem = $('[data-anchor=' + currentSection + ']', $instance).next(), 2680 prevItem = $('[data-anchor=' + currentSection + ']', $instance).prev(); 2681 2682 if (isScrolling) { 2683 return false; 2684 } 2685 2686 if ('up' === direction) { 2687 if (prevItem[0]) { 2688 prevItem.trigger('click.ee_mb_scroll_navigation'); 2689 } 2690 } 2691 2692 if ('down' === direction) { 2693 if (nextItem[0]) { 2694 nextItem.trigger('click.ee_mb_scroll_navigation'); 2695 } 2696 } 2697 }; 2698 2699 self.onScroll = function (event) { 2700 if (isScrolling || isSwipe) { 2701 event.preventDefault(); 2702 } 2703 }; 2704 2705 self.onWheel = function (event) { 2706 2707 if (isScrolling || isSwipe) { 2708 event.preventDefault(); 2709 return false; 2710 } 2711 2712 var $target = $(event.target), 2713 $section = $target.closest('.elementor-top-section'), 2714 sectionId = $section.attr('id'), 2715 offset = 0, 2716 newSectionId = false, 2717 prevSectionId = false, 2718 nextSectionId = false, 2719 delta = event.originalEvent.wheelDelta || -event.originalEvent.detail, 2720 direction = (0 < delta) ? 'up' : 'down', 2721 windowScrollTop = $window.scrollTop(); 2722 2723 if (self.beforeCheck()) { 2724 sectionId = ee_common.getObjectFirstKey(sections); 2725 } 2726 2727 if (self.afterCheck()) { 2728 sectionId = ee_common.getObjectLastKey(sections); 2729 } 2730 2731 if (sectionId && sections.hasOwnProperty(sectionId)) { 2732 2733 prevSectionId = ee_common.getObjectPrevKey(sections, sectionId); 2734 nextSectionId = ee_common.getObjectNextKey(sections, sectionId); 2735 2736 if ('up' === direction) { 2737 if (!nextSectionId && sections[sectionId].offset < windowScrollTop) { 2738 newSectionId = sectionId; 2739 } else { 2740 newSectionId = prevSectionId; 2741 } 2742 } 2743 2744 if ('down' === direction) { 2745 if (!prevSectionId && sections[sectionId].offset > windowScrollTop + 5) { 2746 newSectionId = sectionId; 2747 } else { 2748 newSectionId = nextSectionId; 2749 } 2750 } 2751 2752 if (newSectionId) { 2753 2754 if (event.timeStamp - timeStamp > 10 && 'MacIntel' == platform) { 2755 timeStamp = event.timeStamp; 2756 event.preventDefault(); 2757 return false; 2758 } 2759 2760 event.preventDefault(); 2761 2762 offset = sections[newSectionId].offset - settings.offset; 2763 window.history.pushState(null, null, '#' + newSectionId); 2764 currentSection = newSectionId; 2765 2766 $itemsList.removeClass('active'); 2767 $('[data-anchor=' + newSectionId + ']', $instance).addClass('active'); 2768 2769 $itemsList.removeClass('invert'); 2770 2771 if (sections[newSectionId].invert) { 2772 $itemsList.addClass('invert'); 2773 } 2774 2775 isScrolling = true; 2776 self.scrollStop(); 2777 $htmlBody.animate({ 'scrollTop': offset }, settings.blockSpeed, 'easeInOutCirc', function () { 2778 isScrolling = false; 2779 }); 2780 } 2781 } 2782 2783 }; 2784 2785 self.setSectionsData = function () { 2786 $itemsList.each(function () { 2787 var $this = $(this), 2788 sectionId = $this.data('anchor'), 2789 sectionInvert = 'yes' === $this.data('invert') ? true : false, 2790 $section = $('#' + sectionId); 2791 2792 $section.addClass('ee-mb-scroll-navigation-section'); 2793 $section.attr({ 'touch-action': 'none' }); 2794 2795 if ($section[0]) { 2796 sections[sectionId] = { 2797 selector: $section, 2798 offset: Math.round($section.offset().top), 2799 height: $section.outerHeight(), 2800 invert: sectionInvert 2801 }; 2802 } 2803 }); 2804 }; 2805 2806 self.beforeCheck = function (event) { 2807 var windowScrollTop = $window.scrollTop(), 2808 firstSectionId = ee_common.getObjectFirstKey(sections), 2809 offset = sections[firstSectionId].offset, 2810 topBorder = windowScrollTop + $window.outerHeight(); 2811
2812 if (topBorder > offset) { 2813 return false; 2814 } 2815 2816 return true; 2817 }; 2818 2819 self.afterCheck = function (event) { 2820 var windowScrollTop = $window.scrollTop(), 2821 lastSectionId = ee_common.getObjectLastKey(sections), 2822 offset = sections[lastSectionId].offset, 2823 bottomBorder = sections[lastSectionId].offset + sections[lastSectionId].height; 2824 2825 if (windowScrollTop < bottomBorder) { 2826 return false; 2827 } 2828 2829 return true; 2830 }; 2831 2832 self.onResize = function (event) { 2833 self.setSectionsData(); 2834 }; 2835 2836 self.scrollStop = function () { 2837 $htmlBody.stop(true); 2838 }; 2839 2840 self.mobileAndTabletcheck = function () { 2841 var check = false; 2842 2843 (function (a) { if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0, 4))) check = true; })(navigator.userAgent || navigator.vendor || window.opera); 2844 2845 return check; 2846 }; 2847 2848 } 2849 2850 $(window).on('elementor/frontend/init', function () { 2851 elementorFrontend.hooks.addAction('frontend/element_ready/ee-mb-scroll-navigation.default', eeMbScrollNavigation); 2852 }); 2853 2854 /*@ Table */ 2855 var ee_mb_table = { 2856 ee_table: function ($scope, $) { 2857 2858 ee_mb_table.ee_table.elementSettings = ee_common.getElementSettings($scope); 2859 2860 var $table = $scope.find('table.ele-site-table'), 2861 sortableInstance = $table.data('tablesorter'); 2862 2863 ee_mb_table.ee_table.init = function () { 2864 2865 if ('scrollable' == ee_mb_table.ee_table.elementSettings.scrollable) { 2866 $scope.css('overflow-x', 'auto'); 2867 } 2868 2869 if ('yes' == ee_mb_table.ee_table.elementSettings.sortable) { 2870 $table.tablesorter({ 2871 cssHeader: 'ele-site-table__sort', 2872 cssAsc: 'ele-site-table__sort--up', 2873 cssDesc: 'ele-site-table__sort--down', 2874 }); 2875 } else { 2876 $table.removeData('tablesorter'); 2877 } 2878 }; 2879
2880 ee_mb_table.ee_table.init(); 2881 } 2882 } 2883 2884 $(window).on('elementor/frontend/init', function () { 2885 elementorFrontend.hooks.addAction('frontend/element_ready/ee-mb-table.default', ee_mb_table.ee_table); 2886 }); 2887 2888 /*@ Testimonial Swiper */ 2889 var ee_testimonial_swiper = { 2890 getDefaultSettings: function getDefaultSettings() { 2891 return { 2892 selectors: { 2893 mainSwiper: '.elementor-main-swiper', 2894 swiperSlide: '.swiper-slide' 2895 }, 2896 slidesPerView: { 2897 desktop: 3, 2898 tablet: 2, 2899 mobile: 1 2900 } 2901 }; 2902 }, 2903 ee_testi_fun: function ($scope, $) { 2904 2905 var elementSettings = ee_common.getElementSettings($scope); 2906 2907 if ('progress' === elementSettings.pagination) { 2908 elementSettings.pagination = 'progressbar'; 2909 } 2910 2911 var swiperOptions = { 2912 grabCursor: true, 2913 initialSlide: 1, 2914 slidesPerView: (elementSettings.slides_per_view) ? elementSettings.slides_per_view : 1, 2915 slidesPerGroup: (elementSettings.slides_to_scroll) ? elementSettings.slides_to_scroll : 1, 2916 spaceBetween: (elementSettings.space_between.size) ? elementSettings.space_between.size : 10, 2917 loop: 'yes' === elementSettings.loop, 2918 speed: elementSettings.speed, 2919 effect: "slide", 2920 }; 2921 2922 if (elementSettings.show_arrows) { 2923 swiperOptions.navigation = { 2924 prevEl: '.elementor-swiper-button-prev', 2925 nextEl: '.elementor-swiper-button-next' 2926 }; 2927 } 2928 2929 if (elementSettings.pagination) { 2930 swiperOptions.pagination = { 2931 el: '.swiper-pagination', 2932 type: elementSettings.pagination, 2933 clickable: true 2934 }; 2935 } 2936 2937 if (elementSettings.autoplay) { 2938 swiperOptions.autoplay = { 2939 delay: elementSettings.autoplay_speed, 2940 disableOnInteraction: !!elementSettings.pause_on_interaction 2941 }; 2942 } 2943 2944 swiperOptions.breakpoints = { 2945 767: { 2946 slidesPerGroup: (elementSettings.slides_to_scroll_mobile) ? elementSettings.slides_to_scroll_mobile : 1, 2947 slidesPerView: (elementSettings.slides_per_view_mobile) ? elementSettings.slides_per_view_mobile : 1, 2948 spaceBetween: (elementSettings.space_between_mobile.size) ? elementSettings.space_between_mobile.size : 10, 2949 }, 2950 1024: { 2951 slidesPerGroup: (elementSettings.slides_to_scroll_tablet) ? elementSettings.slides_to_scroll_tablet : 1, 2952 slidesPerView: (elementSettings.slides_per_view_tablet) ? elementSettings.slides_per_view_tablet : 1, 2953 spaceBetween: (elementSettings.space_between_tablet.size) ? elementSettings.space_between_tablet.size : 10, 2954 } 2955 }; 2956 2957 var $slider_wrapper = $scope.find('.elementor-main-swiper'); 2958 2959 ee_testimonial_swiper.ee_testi_fun.init = function () { 2960 new Swiper($slider_wrapper, swiperOptions); 2961 }; 2962 2963 /*@ Change the height of image as per content */ 2964 $slider_wrapper.find('.elementor-testimonial__content').each(function () { 2965 var tallness = jQuery(this).outerHeight(); 2966 jQuery(this).siblings('.elementor-testimonial__footer').height(tallness); 2967 }); 2968 2969 jQuery(window).resize(function () { 2970 $slider_wrapper.find('.elementor-testimonial__content').each(function () { 2971 var tallness = jQuery(this).outerHeight(); 2972 jQuery(this).siblings('.elementor-testimonial__footer').height(tallness); 2973 }); 2974 }); 2975 2976 ee_testimonial_swiper.ee_testi_fun.init(); 2977 } 2978 } 2979 2980 $(window).on('elementor/frontend/init', function () { 2981 elementorFrontend.hooks.addAction('frontend/element_ready/ee-mb-testimonial-swi
2981per.default', ee_testimonial_swiper.ee_testi_fun); 2982 }); 2983 2984 /*@ The Event Calendar */ 2985 var ee_mb_the_event_calendar = { 2986 2987 ee_mb_the_events_cal_fun: function ($scope, $) { 2988 2989 ee_mb_the_event_calendar.ee_mb_the_events_cal_fun.init = function () { 2990 2991 var elementSettings = ee_common.getElementSettings($scope), 2992 ajaxurl = ElementorExtensionsFrontendConfig.ajaxurl; 2993 2994 /** 2995 * @ Start: Summary view 2996 */ 2997 jQuery(document).on('click', '.myeventon_summary_eventlist_wrapper .summary_filter a', function (e) { 2998 e.preventDefault(); 2999 var current = jQuery(this); 3000 ee_common.showLoading($scope); 3001 var data_month = jQuery(this).attr('data-month'); 3002 var data_year = jQuery(this).attr('data-year'); 3003 3004 var sumarry_wrapper = current.parents('.myeventon_summary_eventlist_wrapper'), 3005 sumarry_filter = sumarry_wrapper.find('> .summary_filter'), 3006 enable_event_detail = sumarry_filter.data('event-detail'), 3007 disable_event_link = sumarry_filter.data('disable-link'), 3008 event_date_layout = sumarry_filter.data('date-layout'), 3009 event_limit = sumarry_filter.data('event-limit'), 3010 event_offset = sumarry_filter.data('event-offset'), 3011 hide_past_events = sumarry_filter.data('hide-past-events'); 3012 3013 var d = new Date(); 3014 3015 if (!data_year) { 3016 var data_year = sumarry_wrapper.find('.summary_filter > .year_filter_wrapper a.current').attr('data-year'); 3017 } else { 3018 sumarry_wrapper.find('> .summary_filter > .year_filter_wrapper a').removeClass('current'); 3019 } 3020 3021 if (!data_month) { 3022 var data_month = sumarry_wrapper.find('.summary_filter > .month_filter_wrapper > a.current').attr('data-month'); 3023 } else { 3024 sumarry_wrapper.find('> .summary_filter > .month_filter_wrapper a').removeClass('current'); 3025 } 3026 3027 jQuery(this).addClass('current'); 3028 3029 jQuery.ajax({ 3030 url: ajaxurl, 3031 data: { 3032 'action': 'getSummaryListAjaxTec', 3033 'month': data_month, 3034 'year': data_year, 3035 'event_date_layout': event_date_layout, 3036 'cat': '', 3037 'limit': event_limit, 3038 'offset': event_offset, 3039 'enable_event_detail': enable_event_detail, 3040 'disable_link': disable_event_link, 3041 'hide_past_events': hide_past_events, 3042 'default_to_show_time': elementSettings.default_to_show_time, 3043 'default_to_show_time_formate': elementSettings.default_to_show_time_formate, 3044 'event_categories': elementSettings.event_categories, 3045 'start_date': elementSettings.start_date, 3046 }, 3047 method: 'POST', 3048 success: function (data) { 3049 sumarry_wrapper.find('.summaryEventList').html(data).append('<div class="elementor_extensions_loading_overlay"><div class="elementor_extensions_loader"></div></div>'); 3050 ee_common.hideLoading($scope); 3051 }, 3052 error: function (errorThrown) { 3053 console.log(errorThrown); 3054 ee_common.hideLoading($scope); 3055 } 3056 }); 3057 }); 3058 3059 3060 3061 3062 function onSummaryClick(e) { 3063 3064 3065 3066 var current = jQuery(this); 3067 ee_common.showLoading($scope); 3068 3069 var sumarry_wrapper = current.parents('.myeventon_summary_eventlist_wrapper'), 3070 sumarry_filter = sumarry_wrapper.find('> .summary_filter'), 3071 event_limit = sumarry_filter.data('event-limit'), 3072 event_offset = sumarry_filter.data('event-offset') 3073 month_year = current.data('date'), 3074 event_date_layout = current.data('date-layout'), 3075 enable_event_detail = current.data('event-detail'), 3076 disable_event_link = current.data('disable-link'), 3077 hide_past_events = current.data('hide-past-events'), 3078 default_to_show_time = current.data('default_to_show_time'), 3079 default_to_show_time_formate = current.data('default_to_show_time_formate'), 3080 event_categories = current.data('event_categories'), 3081 end_date = current.data('end_date'), 3082 order = current.data('order'), 3083 eventDisplay = current.data('eventDisplay'), 3084 posts_per_page = current.data('posts_per_page'), 3085 splited = month_year.split('-'); 3086 3087 if (jQuery('[data-elementor-post-type="page"] [data-settings*="' + elementSettings.event_categories + '"]').length > 0) { 3088 3089 3090 jQuery.ajax({ 3091 url: ajaxurl, 3092 data: { 3093 'action': 'getSummaryListAjaxTec', 3094 'month_year': month_year, 3095 'event_date_layout': event_date_layout, 3096 'enable_event_detail': enable_event_detail, 3097 'disable_link': disable_event_link, 3098 'hide_past_events': hide_past_events, 3099 'limit': event_limit, 3100 'offset': event_offset, 3101 'default_to_show_time': default_to_show_time, 3102 'default_to_show_time_formate': default_to_show_time_formate, 3103 'event_categories': elementSettings.event_categories, 3104 'start_date': elementSettings.start_date, 3105 'end_date': end_date, 3106 'order': order, 3107 'eventDisplay': eventDisplay, 3108 'posts_per_page': posts_per_page, 3109 'default_to_show_time': elementSettings.default_to_show_time, 3110 'default_to_show_time_formate': elementSettings.default_to_show_time_formate, 3111 }, 3112 method: 'POST', 3113 success: function (data) { 3114 3115 jQuery('.myeventon_summary_eventlist_wrapper > .summary_filter a').removeClass('current'); 3116 jQuery('.myeventon_summary_eventlist_wrapper > .summary_filter > .year_filter_wrapper a[data-year="' + splited[0] + '"]').addClass('current'); 3117 jQuery('.myeventon_summary_eventlist_wrapper > .summary_filter > .month_filter_wrapper a[data-month="' + splited[1] + '"]').addClass('current'); 3118 3119 console.log(elementSettings.event_categories); 3120 console.log(default_to_show_time_formate > 0); 3121 3122 //jQuery('.summaryEventList').html(data).append('<div class="elementor_extensions_loading_overlay"><div class="elementor_extensions_loader"></div></div>'); 3123 document.querySelector('.summaryEventList').innerHTML = ''; 3124 document.querySelector('.summaryEventList').innerHTML = data; 3125 document.querySelector('.summaryEventList').insertAdjacentHTML('beforeend', '<div class="elementor_extensions_loading_overlay"><div class="elementor_extensions_loader"></div></div>') 3126 3127 3128 ee_common.hideLoading($scope); 3129 }, 3130 error: function (errorThrown) { 3131 console.log(errorThrown); 3132 ee_common.hideLoading($scope); 3133 } 3134 }); 3135 3136 3137 } 3138 3139 } 3140 3141 3142 jQuery(document).on('click', '#summary_prev', onSummaryClick); 3143 jQuery(document).on('click', '#summary_next', onSummaryClick); 3144 3145 3146 /*@Show more button click*/ 3147 jQuery(document).on('click', '.myeventon_summary_eventlist_wrapper .summaryEventList .show_more_events', function () { 3148 var current = jQuery(this); 3149 ee_common.showLoading($scope); 3150 3151 var sumarry_wrapper = current.parents('.myeventon_summary_eventlist_wrapper'), 3152 sumarry_filter = sumarry_wrapper.find('> .summary_filter'), 3153 data_year = sumarry_wrapper.find('.summary_filter > .year_filter_wrapper a.current').attr('data-year'), 3154 data_month = sumarry_wrapper.find('.summary_filter > .month_filter_wrapper > a.current').attr('data-month'), 3155 event_date_layout = sumarry_filter.data('date-layout'), 3156 enable_event_detail = sumarry_filter.data('event-detail'), 3157 disable_event_link = sumarry_filter.data('disable-link'), 3158 hide_past_events = sumarry_filter.data('hide-past-events'),
3159 event_offset = parseInt(jQuery(document).find('#hd_offset').val()), 3160 event_limit = sumarry_filter.data('event-limit'), 3161 show_future_events = sumarry_filter.data('future-events'); 3162 3163 /*@ Determine first click */ 3164 if (current.hasClass('clicked')) { 3165 event_offset = parseInt(jQuery(document).find('#hd_limit_offset').val()); 3166 } else { 3167 current.addClass('clicked'); 3168 event_offset = event_limit + event_offset; 3169 } 3170 3171 let empty = false; 3172 if (!elementSettings.event_categories) { 3173 empty = true; 3174 } 3175 3176 if (empty || (jQuery('[data-elementor-post-type="page"] [data-settings*="' + elementSettings.event_categories + '"]').length > 0)) { 3177 3178 jQuery.ajax({ 3179 url: ajaxurl, 3180 data: { 3181 'action': 'getSummaryListAjaxTec', 3182 'month': data_month, 3183 'year': data_year, 3184 'limit': elementSettings.event_limit, 3185 'offset': event_offset, 3186 'event_date_layout': event_date_layout, 3187 'enable_event_detail': enable_event_detail, 3188 'disable_link': disable_event_link, 3189 'hide_past_events': hide_past_events, 3190 'show_future_events': (show_future_events) ? show_future_events : '', 3191 'orderby': elementSettings.orderby, 3192 'order': elementSettings.order, 3193 'query_limit': elementSettings.query_limit, 3194 'end_date': elementSettings.end_date, 3195 'custom_end_date': elementSettings.custom_end_date, 3196 'start_date': elementSettings.start_date, 3197 'custom_start_date': elementSettings.custom_start_date, 3198 'event_categories': elementSettings.event_categories, 3199 'default_to_show_time': elementSettings.default_to_show_time, 3200 'default_to_show_time_formate': elementSettings.default_to_show_time_formate, 3201 }, 3202 method: 'POST', 3203 success: function (data) { 3204 document.querySelector('.summaryEventList').innerHTML = ''; 3205 jQuery('.summaryEventList').html(data).append('<div class="elementor_extensions_loading_overlay"><div class="elementor_extensions_loader"></div></div>'); 3206 jQuery(document).find('#hd_offset').val(event_offset); 3207 ee_common.hideLoading($scope); 3208 }, 3209 error: function (errorThrown) { 3210 console.log(errorThrown); 3211 ee_common.hideLoading($scope); 3212 } 3213 }); 3214 } 3215 }); 3216 3217 /** 3218 * @ Start: Summary view 3219 */ 3220 3221 /*@ Calendar view*/ 3222 var calendar_wrapper_div = $scope.find("div.tec.myeventon_calendar"); 3223 if (calendar_wrapper_div.length > 0) { 3224 calendar_wrapper_div.each(function () { 3225 3226 var calendar_id = jQuery(this).attr('data-id'); 3227 var event_list = jQuery(this).data('caldata'); 3228 var disable_link = jQuery(this).data('disable-link'); 3229 3230 var calendarEl = document.getElementById('calendar-' + calendar_id); 3231 3232 var calendar = new FullCalendar.Calendar(calendarEl, { 3233 displayEventTime: false, 3234 plugins: ['interaction', 'dayGrid', 'timeGrid', 'list'], 3235 header: { 3236 left: 'prev,next today', 3237 center: 'title',
3238 right: 'dayGridMonth,timeGridWeek,timeGridDay,listMonth' 3239 }, 3240 events: event_list, 3241 eventRender: function (event, element) { 3242 if (typeof element !== 'undefined') { 3243 element.addClass("custom-event"); 3244 } 3245 }, 3246 eventClick: function (arg) { 3247 var clicked_date = arg.event.start; 3248 clicked_date = moment(clicked_date).format("YYYY-MM-DD"); 3249 3250 var current = jQuery(arg.el); 3251 jQuery.ajax({ 3252 url: ajaxurl, 3253 data: { 3254 'action': 'getEventListByDayTec', 3255 'date': clicked_date, 3256 'disable_link': disable_link 3257 }, 3258 method: 'POST', 3259 success: function (data) { 3260 current.parents('.myeventon_calendar').siblings('.myeventon_calendar_summaryview').html(data); 3261 }, 3262 error: function (errorThrown) { 3263 } 3264 }); 3265 }, 3266 dayClick: function (arg) { 3267 var clicked_date = arg.event.start; 3268 clicked_date = moment(clicked_date).format("YYYY-MM-DD"); 3269 3270 var current = jQuery(arg.el); 3271 jQuery.ajax({ 3272 url: ajaxurl, 3273 data: { 3274 'action': 'getEventListByDayTec', 3275 'date': clicked_date, 3276 'disable_link': disable_link, 3277 }, 3278 method: 'POST', 3279 success: function (data) { 3280 current.parents('.myeventon_calendar').siblings('.myeventon_calendar_summaryview').html(data); 3281 }, 3282 error: function (errorThrown) { 3283 } 3284 }); 3285 } 3286 }); 3287 calendar.changeView(elementSettings.default_calendar_view); 3288 calendar.render(); 3289 }); 3290 } 3291 3292 /*@ Display - Hide summary description no click of event label */ 3293 if (elementSettings.enable_event_detail === 'yes') { 3294 jQuery(document).on('click', '.myeventon_calendar_summaryview li,.summaryEventList li', function (e) { 3295 jQuery(this).next('.summary_cal_description').slideToggle(); 3296 e.preventDefault(); 3297 }); 3298 } 3299 }; 3300 ee_mb_the_event_calendar.ee_mb_the_events_cal_fun.init(); 3301 3302 } 3303 3304 } 3305 3306 $(window).on('elementor/frontend/init', function () { 3307 elementorFrontend.hooks.addAction('frontend/element_ready/ee-mb-the-events-calendar.default', ee_mb_the_event_calendar.ee_mb_the_events_cal_fun); 3308 }); 3309 3310 // Event calendar 3311 var event_calendar = { 3312 event_calendar_fun: function ($scope, $) { 3313 3314 var elementSettings = ee_common.getElementSettings($scope); 3315 3316 event_calendar.event_calendar_fun.init = function () { 3317 3318 jQuery('.categories_tribe_filter').change(function () { 3319 var categorySlug = jQuery(this).val(); 3320 elementSettings['event_categories'] = categorySlug; 3321 jQuery.ajax({ 3322 url: ElementorExtensionsFrontendConfig.ajaxurl, 3323 data: { 3324 'action': 'getEventFilterAjax', 3325 'setting': elementSettings, 3326 }, 3327 method: 'POST', 3328 success: function (data) { 3329 jQuery('.past_events_wrapper.tec-wrapper').remove(); 3330 jQuery('#filter').replaceWith(data).append('<div class="elementor_extensions_loading_overlay"><div class="elementor_extensions_loader"></div></div>'); 3331 ee_common.hideLoading($scope); 3332 }, 3333 error: function (errorThrown) { 3334 console.log(errorThrown); 3335 ee_common.hideLoading($scope); 3336 } 3337 }); 3338 }); 3339 }; 3340 3341 event_calendar.event_calendar_fun.init(); 3342 } 3343 } 3344 3345 $(window).on('elementor/frontend/init', function () { 3346 elementorFrontend.hooks.addAction('frontend/element_ready/ee-mb-the-events-calendar.default', event_calendar.event_calendar_fun); 3347 });
3348 3349})(jQuery);
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.