(function (root, factory) { if (typeof exports === "object") { module.exports = factory(root); } else if (typeof define === "function" && define.amd) { define([], factory(root)); } else { root.LazyLoadProvector = factory(root); } }) (typeof global !== "undefined" ? global : this.window || this.global, function (root) { "use strict"; const defaults = { src: "data-src", srcset: "data-srcset", selector: ".lazyloadProvector" }; /** * Merge two or more objects. Returns a new object. * @private * @param {Boolean} deep If true, do a deep (or recursive) merge [optional] * @param {Object} objects The objects to merge together * @returns {Object} Merged values of defaults and options */ const extend = function () { let extended = {}; let deep = false; let i = 0; let length = arguments.length; /* Check if a deep merge */ if (Object.prototype.toString.call(arguments[0]) === "[object Boolean]") { deep = arguments[0]; i++; } /* Merge the object into the extended object */ let merge = function (obj) { for (let prop in obj) { if (Object.prototype.hasOwnProperty.call(obj, prop)) { /* If deep merge and property is an object, merge properties */ if (deep && Object.prototype.toString.call(obj[prop]) === "[object Object]") { extended[prop] = extend(true, extended[prop], obj[prop]); } else { extended[prop] = obj[prop]; } } } }; /* Loop through each object and conduct a merge */ for (; i < length; i++) { let obj = arguments[i]; merge(obj); } return extended; }; function LazyLoadProvector(images, options) { this.settings = extend(defaults, options || {}); this.images = images || document.querySelectorAll(this.settings.selector); this.observer = null; this.init(); } LazyLoadProvector.prototype = { init: function() { /* Without observers load everything and bail out early. */ if (!root.IntersectionObserver) { this.loadImages(); return; } let self = this; let observerConfig = { root: null, rootMargin: "0px", threshold: [0] }; this.observer = new IntersectionObserver(function(entries) { entries.forEach(function (entry) { if (entry.intersectionRatio > 0) { self.observer.unobserve(entry.target); let src = entry.target.getAttribute(self.settings.src); let srcset = entry.target.getAttribute(self.settings.srcset); if ("img" === entry.target.tagName.toLowerCase()) { if (src) { entry.target.src = src; } if (srcset) { entry.target.srcset = srcset; } } else { entry.target.style.backgroundImage = "url(" + src + ")"; } } }); }, observerConfig); this.images.forEach(function (image) { self.observer.observe(image); }); }, loadAndDestroy: function () { if (!this.settings) { return; } this.loadImages(); this.destroy(); }, loadImages: function () { if (!this.settings) { return; } let self = this; this.images.forEach(function (image) { let src = image.getAttribute(self.settings.src); let srcset = image.getAttribute(self.settings.srcset); if ("img" === image.tagName.toLowerCase()) { if (src) { image.src = src; } if (srcset) { image.srcset = srcset; } } else { image.style.backgroundImage = "url(" + src + ")"; } }); }, destroy: function () { if (!this.settings) { return; } this.observer.disconnect(); this.settings = null; } }; root.lazyloadProvector = function(images, options) { return new LazyLoadProvector(images, options); }; if (root.jQuery) { const $ = root.jQuery; $.fn.lazyloadProvector = function (options) { options = options || {}; options.attribute = options.attribute || "data-src"; new LazyLoadProvector($.makeArray(this), options); return this; }; } return LazyLoadProvector; }); var provector_array = []; var provector_arraytitel = []; var provector_arraydes = []; var provector_arraydate = []; document.write ('
');provector_array.push("56732"); provector_arraytitel.push("Life on board: The raised aft"); provector_arraydes.push(""); provector_arraydate.push("11-05-2020 07:50:54"); document.write ('
Life on board: The raised aft
'); provector_array.push("56730"); provector_arraytitel.push("Life on board: Cooking"); provector_arraydes.push(""); provector_arraydate.push("11-05-2020 07:48:56"); document.write ('
Life on board: Cooking
'); provector_array.push("56418"); provector_arraytitel.push("Life on board: The aft"); provector_arraydes.push(""); provector_arraydate.push("24-04-2020 08:04:55"); document.write ('
Life on board: The aft
'); provector_array.push("56416"); provector_arraytitel.push("Life on board: The midship"); provector_arraydes.push(""); provector_arraydate.push("24-04-2020 08:00:09"); document.write ('
Life on board: The midship
'); provector_array.push("56371"); provector_arraytitel.push("Life on board: The foreship "); provector_arraydes.push(""); provector_arraydate.push("20-04-2020 14:00:17"); document.write ('
Life on board: The foreship
'); provector_array.push("56117"); provector_arraytitel.push("Toilet and hygiene conditions aboard a Viking ship"); provector_arraydes.push(""); provector_arraydate.push("27-03-2020 12:17:54"); document.write ('
Toilet and hygiene conditions aboard a Viking ship
'); document.write ('
');document.write ('') var provectorv0="" var provectorv1="" function provectorshowonlyclass(v,provectortypenval) { if (provectortypenval==0) { provectorv0=v; } else if (provectortypenval==1) { provectorv1=v; } if (provectorv0==='' && provectorv1==='') { var divsToHide = document.getElementsByClassName('provector_item'); //divsToHide is an array for(var i = 0; i < divsToHide.length; i++){ divsToHide[i].style.display = "inline-block"; } return } var divsToHide = document.getElementsByClassName('provector_item'); //divsToHide is an array for(var i = 0; i < divsToHide.length; i++){ divsToHide[i].style.display = "none"; } var divsToHide = document.getElementsByClassName(v); //divsToHide is an array for(var i = 0; i < divsToHide.length; i++){ showit=false; if (provectortypenval==0) { if (provectorv1.length==0 || (provectorv1.length>0 && divsToHide[i].classList.contains(provectorv1))) { divsToHide[i].style.display = "inline-block"; } } else if (provectortypenval==1) { if (provectorv0.length==0 || (provectorv0.length>0 && divsToHide[i].classList.contains(provectorv0))) { divsToHide[i].style.display = "inline-block"; } } //alert(divsToHide[i].className) } // var divsToHide = document.getElementsByClassName(provectorv1); //divsToHide is an array // for(var i = 0; i < divsToHide.length; i++){ // divsToHide[i].style.display = "inline-block"; // } } function setplayertest(event,p,v,changeurl,d,dato) { if(event.keyCode==32 || event.keyCode==13) { setplayer(p,v,changeurl,d,dato) } } function setplayer(p,v,changeurl,d,dato,g) { if (p===null) { return; } document.getElementById('provector_player').innerHTML='
' //location.hash="pid"+p document.getElementById('ProvectorIframeID_'+p).focus() nexturl=window.location.href; if (nexturl.indexOf("provid")>0) { nexturl=nexturl.substring(0,nexturl.indexOf("provid")-1) } if (nexturl.indexOf("?")>0) { nexturl=nexturl+"&provid="+p } else { nexturl=nexturl+"?provid="+p } if (changeurl=='1') { var stateObj = { foo: p }; history.pushState(stateObj, "Video "+p, nexturl); var provector_item_scroll = document.getElementById('provector_player'); window.scrollTo(provector_item_scroll.offsetLeft,provector_item_scroll.offsetTop); document.title = "Video - "+v; } var provector_share_html = encodeURIComponent("https://provector.dk/share/?katid=3294&pid=12&provid="+p+"&url="+nexturl); document.getElementById('provector_titel').innerHTML=v; document.getElementById('provector_description').innerHTML=d; document.getElementById('provector_date').innerHTML=dato; } var provector_url = new URL(window.location.href); var provid = provector_url.searchParams.get("provid"); if (!provid) { setplayer(56732,'Life on board: The raised aft','','','11-05-2020') } else { setplayer(provid,provector_arraytitel[provector_array.indexOf(provid)],'1',provector_arraydes[provector_array.indexOf(provid)],provector_arraydate[provector_array.indexOf(provid)]) } window.addEventListener('popstate', function(e){ provector_url=new URL(document.location) var provid = provector_url.searchParams.get("provid"); setplayer(provid,provector_arraytitel[provector_array.indexOf(provid)],'',provector_arraydes[provector_array.indexOf(provid)],provector_arraydate[provector_array.indexOf(provid)]) }); function provectorshowembedkode() { document.getElementById('provector_showembedkodeid').style.display='none'; document.getElementById('provector_embedkodeid').style.display=''; document.getElementById('provector_embedkodeid').focus(); document.getElementById('provector_embedkodeid').select(); } lazyloadProvector();