PageSourceSearch

https://www.skjaak.kommune.no/script/js/basefunksjoner.js?v=20210408

js skjaak.kommune.no collected 2026-09-24 10:02:59 UTC 13,536 bytes, 370 lines download raw bytes

1if (!acos) var acos = {};
2
3acos.$h = function (element, evt, handler) {
4    element = acos.$e(element);
5    if (element.addEventListener) {
6        //Opera og Firefox
7        element.addEventListener(evt, handler, false);
8        return true;
9    } else if (element.attachEvent) {
10        //IE                
11        return element.attachEvent("on" + evt, handler);
12    } else {
13        //Default 
14        var onEvt = "on" + evt;
15        var gEventer = elem;
16        if ((typeof elem[onEvt]) != 'function') {
17            elem[onEvt] = handler;
18        } else {
19            elem[onEvt] = function () {
20                gEventer();
21                handler();
22            }
23        }
24    }
25};
26
27acos.$e = function (obj) {
28    if (typeof (obj) == "string") {
29        obj = document.getElementById(obj);
30    }
31    return obj;
32};
33
34acos.$gea = function (e) {
35    e = e || window.event;
36    return e;
37};
38
39acos.$ce = function (e, preventDefault) {
40    e = acos.$gea(e);
41
42    e.cancelBubble = true;
43    e.returnValue = false;
44
45    if (e.stopPropagation) e.stopPropagation();
46    if (e.preventDefault && preventDefault) e.preventDefault();
47};
48
49acos.settDefaultKnappVedReturn = function (e, elemID) {
50    e = acos.$gea(e);
51
52    var code = e.keyCode || e.which;
53
54    if (code == 13) {
55        var elem = document.getElementById(elemID);
56
57        if (!elem) {
58            var elms = document.getElementsByName(elemID);
59            if (!elms) return true;
60
61            for (var i = 0; i < elms.length; i++) {
62                if (elms[i].click) {
63                    elem = elms[i];
64                }
65            }
66        }
67
68        if (elem && elem.click) {
69            acos.$ce(e, true);
70            elem.click();
71        }
72    }
73};
74
75function KlikkKnappVedReturn(evnt, buttonid) {
76    acos.settDefaultKnappVedReturn(evnt, buttonid);
77}
78//Deprecated
79function setSize(size) {
80    var args = new Array();
81    args[0] = document.body.style.fontSize;
82    args[1] = size;
83
84    document.body.style.fontSize = size;
85}
86
87function addEvent(obj, evType, fn) {
88    if (obj != null) {
89        if (obj.addEventListener) {
90            obj.addEventListener(evType, fn, false);
91            return true;
92        } else if (obj.attachEvent) {
93            var r = obj.attachEvent("on" + evType, fn);
94            return r;
95        }
96    }
97
98    return false;
99}
100
101function setHeight(target, source) {
102    source = acos.$e(source);
103    target = acos.$e(target);
104
105    if (source != null) {
106        source.style.height = "";
107
108        var divHeight = ((source.offsetHeight) + 'px');
109        target.style.height = divHeight;
110        source.style.height = divHeight;
111    }
112}
113
114function setMaxHeight(x, y) {
115    if (x != null && y != null) {
116        x.style.height = "";
117        y.style.height = "";
118
119        var height = getMax(x.offsetHeight, y.offsetHeight);
120
121        x.style.height = height + "px";
122        y.style.height = height + "px";
123    }
124}
125
126function getMax(a, b) {
127    if (a > b)
128        return a;
129
130    return b;
131}
132
133function escapeHTML(str) {
134    var div = document.createElement('div');
135    var text = document.createTextNode(str);
136    div.appendChild(text);
137    return div.innerHTML;
138}
139
140function setPopup(ev) {
141    var elem = (ev.srcElement) ? ev.srcElement : this;
142    window.open(elem.oldHref, "", "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,copyhistory=yes,Width=640,Height=480");
143    return false;
144}
145
146function GetUrlParam(paramName) {
147    var reParam = new RegExp('(?:[\?&]|&amp;)' + paramName + '=([^&]+)', 'i');
148    var match = window.location.search.match(reParam);
149    return (match && match.length > 1) ? match[1] : '';
150}
151
152
153acos.leggTilTarget = function () {
154    var elems = document.getElementsByTagName("a")
155    for (var i = 0; i < elems.length; i++) {
156        if (elems[i].href && elems[i].href != "") {
157            if (elems[i].className.indexOf("popup") > 0) {
158                elems[i].oldHref = elems[i].href;
159                elems[i].href = "#target:"
160                if (document.all) {
161                    elems[i].href += elems[i].innerText;
162                }
163                else {
164                    elems[i].href += elems[i].textContent;
165                }
166                acos.$h(elems[i], "click", setPopup);
167            }
168            else if (elems[i].className.indexOf("blank") > 0) {
169                elems[i].target = "_blank";
170            }
171        }
172    }
173};
174
175acos.$h(window, "load", acos.leggTilTarget);
176
177/* kall til sjekk av cookie for skriftstørrelse i load */
178acos.$h(window, "load", checkCookieSkriftstorrelse);
179
180/* cookie-kode fra w3schools */
181function setCookie(c_name, value, expiredays) {
182    var exdate = new Date();
183    exdate.setDate(exdate.getDate() + expiredays);
184    document.cookie = c_name + "=" + escape(value) +
185        ((expiredays == null) ? "" : ";expires=" + exdate.toUTCString());
186}
187
188function getCookie(c_name) {
189    if (document.cookie.length > 0) {
190        c_start = document.cookie.indexOf(c_name + "=");
191        if (c_start != -1) {
192            c_start = c_start + c_name.length + 1;
193            c_end = document.cookie.indexOf(";", c_start);
194            if (c_end == -1) c_end = document.cookie.length;
195            return unescape(document.cookie.substring(c_start, c_end));
196        }
197    }
198    return "";
199}
200
201function settSkriftstorrelseLiten() {
202    setCookie('acos.basefunksjoner.skriftstorrelse', 'aSkriftLiten', 1);
203    setSize('');
204}
205
206function settSkriftstorrelseNormal() {
207    setCookie('acos.basefunksjoner.skriftstorrelse', 'aSkriftNormal', 1);
208    setSize('1.3em');
209}
210
211function settSkriftstorrelseStor() {
212    setCookie('acos.basefunksjoner.skriftstorrelse', 'aSkriftStor', 1);
213    setSize('1.9em');
214}
215
216function checkCookieSkriftstorrelse() {
217    var skriftstorrelse = getCookie('acos.basefunksjoner.skriftstorrelse');
218    if (skriftstorrelse != null) {
219        if (skriftstorrelse == "aSkriftLiten")
220            settSkriftstorrelseLiten();
221        if (skriftstorrelse == "aSkriftNormal")
222            settSkriftstorrelseNormal();
223        if (skriftstorrelse == "aSkriftStor")
224            settSkriftstorrelseStor();
225    } else {
226        setSize('');
227    }
228
229}
230
231
232/* toggler mellom forskjellige størrelser */
233function changeSize() {
234    var skriftstorrelse = getCookie('acos.basefunksjoner.skriftstorrelse');
235    if (skriftstorrelse != null && skriftstorrelse != "") {
236        if (skriftstorrelse == "aSkriftLiten")
237            settSkriftstorrelseNormal();
238        if (skriftstorrelse == "aSkriftNormal")
239            settSkriftstorrelseStor();
240        if (skriftstorrelse == "aSkriftStor")
241            settSkriftstorrelseLiten();
242    } else {
243        settSkriftstorrelseStor();
244    }
245}
246
247function isFirebugPresentWarning(id) {
248    if (window.console && window.console.firebug) {
249        document.getElementById(id).innerHTML = "<span style='color:white;background-color:red'>Du må deaktivere firebug og oppfriske siden for å sende inn kontaktskjemaet.</span>";
250    }
251}
252
253function printPage() {
254    window.location = window.location + "&print=1";
255}
256
257
258function isVisible(e) {
259    return !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length);
260}
261
262function emphasizeBrokenLinks() {
263
264    if (typeof brokenlinkitems !== 'undefined' && brokenlinkitems.length > 0) {
265
266        let ul = document.createElement("ul");
267        ul.style.cssText = "list-style-type: none; padding-left: 20px; margin-top: 0;";
268        for (let i = 0; i < brokenlinkitems.length; i++) {
269            let currentId = brokenlinkitems[i];
270            let linkSelector = `a[data-id="${currentId}"]`;
271
272            let anchor = document.querySelector(linkSelector);
273            if (anchor !== null) {
274                let indicator = "";
275                if (!isVisible(anchor)) {
276                    indicator = "*";
277                }
278                let li = document.createElement("li");
279                var a = document.createElement("a");
280                a.setAttribute("href", anchor.getAttribute("href"));
281                a.innerHTML = anchor.innerHTML + indicator;
282
283                li.appendChild(a);
284                ul.appendChild(li);
285            }
286
287        }
288
289        let cssStyle = "position:fixed; background-color:#fff; bottom:50px; right:50px;"
290            + "outline: 4px solid red!important; outline - offset: 0px!important;"
291            + "z-index: 9999!important; padding-right: 20px; max-height: 450px; overflow: scroll;";
292
293        let div = document.createElement("div");
294        div.style.cssText = cssStyle;
295        let header = document.createElement("div");
296        header.innerText = "Brutte lenker på siden";
297        header.style.cssText = "padding-left: 10px;"
298        let legend = document.createElement("div");
299        legend.style.cssText = "font-size: 12px; font-weight: bold; padding-left: 10px;"
300        legend.innerText = "* skjult i meny eller lignende";
301
302        div.appendChild(header);
303        div.appendChild(legend);
304        div.appendChild(ul);
305        document.body.appendChild(div);
306
307        for (var i = 0; i < brokenlinkitems.length; i++) {
308            let currentId = brokenlinkitems[i];
309            let linkSelector = `a[data-id="${currentId}"]`;
310
311            let anchor = document.querySelector(linkSelector);
312            if (anchor !== null) {
313                anchor.style.cssText = "outline: 4px solid red !important; outline-offset: 5px !important; z-index: 9999 !important;";
314            }
315        }
316
317    }
318}
319
320document.addEventListener('DOMContentLoaded', function () {
321    emphasizeBrokenLinks();
322}, false);
323
324/*! Image Map Resizer (imageMapResizer.min.js ) - v1.0.10 - 2019-04-10
325 *  Desc: Resize HTML imageMap to scaled image.
326 *  Copyright: (c) 2019 David J. Bradshaw - [email protected]
327 *  License: MIT
328 */
329
330!function () { "use strict"; function r() { function e() { var r = { width: u.width / u.naturalWi
330dth, height: u.height / u.naturalHeight }, a = { width: parseInt(window.getComputedStyle(u, null).getPropertyValue("padding-left"), 10), height: parseInt(window.getComputedStyle(u, null).getPropertyValue("padding-top"), 10) }; i.forEach(function (e, t) { var n = 0; o[t].coords = e.split(",").map(function (e) { var t = 1 == (n = 1 - n) ? "width" : "height"; return a[t] + Math.floor(Number(e) * r[t]) }).join(",") }) } function t(e) { return e.coords.replace(/ *, */g, ",").replace(/ +/g, ",") } function n() { clearTimeout(d), d = setTimeout(e, 250) } function r(e) { return document.querySelector('img[usemap="' + e + '"]') } var a = this, o = null, i = null, u = null, d = null; "function" != typeof a._resize ? (o = a.getElementsByTagName("area"), i = Array.prototype.map.call(o, t), u = r("#" + a.name) || r(a.name), a._resize = e, u.addEventListener("load", e, !1), window.addEventListener("focus", e, !1), window.addEventListener("resize", n, !1), window.addEventListener("readystatechange", e, !1), document.addEventListener("fullscreenchange", e, !1), u.width === u.naturalWidth && u.height === u.naturalHeight || e()) : a._resize() } function e() { function t(e) { e && (!function (e) { if (!e.tagName) throw new TypeError("Object is not a valid DOM element"); if ("MAP" !== e.tagName.toUpperCase()) throw new TypeError("Expected <MAP> tag, found <" + e.tagName + ">.") }(e), r.call(e), n.push(e)) } var n; return function (e) { switch (n = [], typeof e) { case "undefined": case "string": Array.prototype.forEach.call(document.querySelectorAll(e || "map"), t); break; case "object": t(e); break; default: throw new TypeError("Unexpected data type (" + typeof e + ").") }return n } } "function" == typeof define && define.amd ? define([], e) : "object" == typeof module && "object" == typeof module.exports ? module.exports = e() : window.imageMapResize = e(), "jQuery" in window && (window.jQuery.fn.imageMapResize = function () { return this.filter("map").each(r).end() }) }();
331
332document.addEventListener('DOMContentLoaded', function () {
333    imageMapResize('.image-map-coordinates');
334});
335
336
337/*
338 * requestSubmit() polyfill
339 * https://github.com/javan/form-request-submit-polyfill/
340 * © 2019 Javan Makhmali
341 * License: MIT
342 */
343
344(function (prototype) {
345    if (typeof prototype.requestSubmit == "function") return
346
347    prototype.requestSubmit = function (submitter) {
348        if (submitter) {
349            validateSubmitter(submitter, this)
350            submitter.click()
351        } else {
352            submitter = document.createElement("input")
353            submitter.type = "submit"
354            submitter.hidden = true
355            this.appendChild(submitter)
356            submitter.click()
357            this.removeChild(submitter)
358        }
359    }
360
361    function validateSubmitter(submitter, form) {
362        submitter instanceof HTMLElement || raise(TypeError, "parameter 1 is not of type 'HTMLElement'")
363        submitter.type == "submit" || raise(TypeError, "The specified element is not a submit button")
364        submitter.form == form || raise(DOMException, "The specified element is not owned by this form element", "NotFoundError")
365    }
366
367    function raise(errorConstructor, message, name) {
368        throw new errorConstructor("Failed to execute 'requestSubmit' on 'HTMLFormElement': " + message + ".", name)
369    }
370})(HTMLFormElement.prototype);

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.