// Lazy Load $(document).ready(function () { "use strict"; $(".lazy").Lazy({ scrollDirection: "vertical", effect: "fadeIn", visibleOnly: true, onError: function (element) { console.log("error loading " + element.data("src")); }, }); }); // Tooltips $(function () { "use strict"; if (document.getElementsByClassName("title-badge")) { var tooltipTriggerList = [].slice.call( document.querySelectorAll('[data-bs-toggle="tooltip"]') ); var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) { return new bootstrap.Tooltip(tooltipTriggerEl); }); } }); // Show more/less content $(document).ready(function () { "use strict"; if (document.getElementById("description")) { var pagination_data = document.getElementById("description"); var show_more = pagination_data.getAttribute("data-show-more"); var show_less = pagination_data.getAttribute("data-show-less"); $readMoreJS.init({ target: ".description", numOfWords: 75, toggle: true, moreLink: show_more, lessLink: show_less, }); } }); // Show more/less reviews $(document).ready(function () { "use strict"; if (document.getElementById("review-title")) { var pagination_data = document.getElementById("review-title"); var show_more = pagination_data.getAttribute("data-show-more"); var show_less = pagination_data.getAttribute("data-show-less"); if ($(".review").length > 3) { $(".review:gt(2)").hide(); $(".show-more").show(); } $(".show-more").on("click", function () { "use strict"; $(".review:gt(2)").toggle(); $(this).text() === show_less ? $(this).text(show_more) : $(this).text(show_less); }); } }); // Rating Function (function (a, d) { "use strict"; a.fn.rating = function (b) { b = b || function () {}; this.each(function (d, c) { a(c) .data("rating", { callback: b, }) .bind("init.rating", a.fn.rating.init) .bind("set.rating", a.fn.rating.set) .bind("hover.rating", a.fn.rating.hover) .trigger("init.rating"); }); }; a.extend(a.fn.rating, { init: function (h) { var d = a(this), g = "", j = null, f = d.children(), c = 0, b = f.length; for (; c < b; c++) { g = g + ''; if (a(f[c]).is(":checked")) { j = a(f[c]).val(); } } f.hide(); d.append('
' + g + "
").trigger("set.rating", j); a("a", d).bind("click", a.fn.rating.click); d.trigger("hover.rating"); }, set: function (f, g) { var c = a(this), d = a("a", c), b = undefined; if (g) { d.removeClass("fullStar"); b = d.filter(function (e) { if (a(this).attr("title") == g) { return a(this); } else { return false; } }); b.addClass("fullStar").prevAll().addClass("fullStar"); } return; }, hover: function (d) { var c = a(this), b = a("a", c); b.bind("mouseenter", function (f) { a(this).addClass("tmp_fs").prevAll().addClass("tmp_fs"); a(this).nextAll().addClass("tmp_es"); }); b.bind("mouseleave", function (f) { a(this).removeClass("tmp_fs").prevAll().removeClass("tmp_fs"); a(this).nextAll().removeClass("tmp_es"); }); }, click: function (g) { g.preventDefault(); var f = a(g.target), c = f.parent().parent(), b = c.children("input"), d = f.attr("title"); var matchInput = b.filter(function (e) { if (a(this).val() == d) { return true; } else { return false; } }); matchInput.attr("checked", true); var sort_type = document.getElementsByClassName("ratings")[0].id; var rating_data = document.getElementById("rating"); var sort_type = rating_data.getAttribute("data-rating-id"); c.trigger("set.rating", matchInput.val()) .data("rating") .callback(d, g, sort_type); }, }); })(jQuery); // SimpleLightbox $(function() { "use strict"; if (document.getElementById("gallery")) { $('#gallery a').simpleLightbox(); } }); // Show progress bar using data attributes $(document).ready(function () { "use strict"; $(".progress > div").css("width", function () { return $(this).parent().data("bar-width") + "%"; }); }); // Openlayers Map Functions $(document).ready(function () { "use strict"; if (document.getElementById("map")) { var map_data = document.getElementById("map"); var map_title = map_data.getAttribute("data-title"); var map_lat = parseFloat(map_data.getAttribute("data-lat")); var map_lon = parseFloat(map_data.getAttribute("data-lon")); var map_zoom = parseFloat(map_data.getAttribute("data-zoom")); var attribution = new ol.control.Attribution({ collapsible: false }); var map = new ol.Map({ controls: ol.control.defaults({ attribution: false }).extend([attribution]) , layers: [ new ol.layer.Tile({ source: new ol.source.OSM({ url: 'https://tile.openstreetmap.org/{z}/{x}/{y}.png' , maxZoom: 18 }) }) ] , target: 'map' , view: new ol.View({ center: ol.proj.fromLonLat([map_lon, map_lat]) , maxZoom: 18 , zoom: map_zoom , }) }); map.on('click', e => { var point = map.getCoordinateFromPixel(e.pixel); var lonLat = ol.proj.toLonLat(point); console.log(lonLat); }) var layer = new ol.layer.Vector({ source: new ol.source.Vector({ features: [ new ol.Feature({ geometry: new ol.geom.Point(ol.proj.fromLonLat([map_lon, map_lat])) }) ] }) }); map.addLayer(layer); var container = document.getElementById('popup'); var content = document.getElementById('popup-content'); var overlay = new ol.Overlay({ element: container , autoPan: true , autoPanAnimation: { duration: 250 } }); map.addOverlay(overlay); content.innerHTML = map_title; overlay.setPosition(ol.proj.fromLonLat([map_lon, map_lat])); } });