(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("70886"); provector_arraytitel.push("Vikingeskibenes form og funktion "); provector_arraydes.push("I filmen her, bliver du taget med på en fortællingen om vikingeskibenes betydning for vikingetidens samfund. Du vil blive klogere på vikingeskibenes forskellige former og funktioner og høre om vikingerne, som internationale handelsmænd. Endelig fortæller museets dygtige håndværkere om, hvordan Vikingeskibsmuseet arbejder med at rekonstruere vikingeskibe med vikingetidens værktøj og teknikker. "); provector_arraydate.push("02-08-2023 10:23:39"); document.write ('
Vikingeskibenes form og funktion
'); provector_array.push("56731"); provector_arraytitel.push("Livet ombord: Madlavning"); provector_arraydes.push("Mød kokkene på Havhingsten, og hør mere om hvad menuen består af og hvordan man aver mad ombord på et vikingeskib. "); provector_arraydate.push("11-05-2020 07:49:06"); document.write ('
Livet ombord: Madlavning
'); provector_array.push("56729"); provector_arraytitel.push("Livet ombord: Løftingen"); provector_arraydes.push("Hør om hvad besætningen i løftingen laver, og mød blandt andet Havhingstens skipper. "); provector_arraydate.push("11-05-2020 07:33:17"); document.write ('
Livet ombord: Løftingen
'); provector_array.push("56372"); provector_arraytitel.push("Livet ombord: Forskibet "); provector_arraydes.push("Bliv klogere på livet i forskibet. "); provector_arraydate.push("20-04-2020 14:00:41"); document.write ('
Livet ombord: Forskibet
'); provector_array.push("56370"); provector_arraytitel.push("Livet ombord: Midtskibet "); provector_arraydes.push("Blive klogere på hvordan Havhingstens mandskab, sover, spiser, går på toilettet og får tiden til at gå på de lange sommertogter. "); provector_arraydate.push("20-04-2020 13:57:38"); document.write ('
Livet ombord: Midtskibet
'); provector_array.push("56369"); provector_arraytitel.push("Livet ombord: Agterskibet "); provector_arraydes.push("Bliv klogere på hvordan livet er ombord på et vikingeskib og hvad mandskabet i de forskellige dele af skibet får tiden til at gå med. "); provector_arraydate.push("20-04-2020 13:54:21"); document.write ('
Livet ombord: Agterskibet
'); provector_array.push("56194"); provector_arraytitel.push("Uden mad og drikke duer helten ikke!"); provector_arraydes.push("Så er det blevet fredag, og Ida er klar til at fortælle jer om livet ombord på et vikingeskib.Hvordan var det mon for 1000 år siden, og hvordan gør vi i dag, når vi sejler ud på togt?Mange af jer har spurgt om, hvad man spiste på vikingeskibene, og hvordan man opbevarede maden ombord på skibene, så det er emnerne i daneb videoundervisning."); provector_arraydate.push("03-04-2020 12:34:02"); document.write ('
Uden mad og drikke duer helten ikke!
'); provector_array.push("56116"); provector_arraytitel.push("Toilet- og hygiejneforhold"); provector_arraydes.push("Vi har fået virkelig mange spændende spørgsmål fra jer derude i hjemmeskolen. Rigtig mange af jeres spørgsmål handler om toilet- og hygiejneforholdene om bord på et vikingeskib.Så det er blevet emnet for denne fredags videoundervisning, og så tager vi fat på nogle af jeres andre gode spørgsmål i næste uge."); provector_arraydate.push("27-03-2020 12:16:20"); document.write ('
Toilet- og hygiejneforhold
'); 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=3293&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(70886,'Vikingeskibenes form og funktion ','','I filmen her, bliver du taget med på en fortællingen om vikingeskibenes betydning for vikingetidens samfund. Du vil blive klogere på vikingeskibenes forskellige former og funktioner og høre om vikingerne, som internationale handelsmænd. Endelig fortæller museets dygtige håndværkere om, hvordan Vikingeskibsmuseet arbejder med at rekonstruere vikingeskibe med vikingetidens værktøj og teknikker. ','02-08-2023') } 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();