Samøvelse
Samøvelser gir virksomheter mulighet til å trene på koordinering, kommunikasjon og samhandling mellom flere interne og eksterne aktører. Øvelsene bidrar til å styrke den samlede håndteringsevnen når en hendelse krever innsats på tvers av organisatoriske grenser.
Fra individuelle planer til felles innsats
Reelle hendelser håndteres sjelden av én virksomhet alene. Samøvelser tester hvordan ulike organisasjoner, funksjoner og fagmiljøer samarbeider, deler informasjon og koordinerer tiltak under krevende forhold. Gjennom realistiske scenarioer får deltakerne erfaring med felles situasjonsforståelse, samordning av beslutninger og håndtering av grensesnitt mellom aktører med ulike roller og ansvarsområder.
Øvelsen kan omfatte
- samhandling mellom virksomheter, avdelinger og samarbeidspartnere
- koordinering mellom beredskapsledelser og operative funksjoner
- varsling, eskalering og mobilisering på tvers av organisasjoner
- etablering og deling av felles situasjonsbilde
- informasjonsdeling og kommunikasjonslinjer mellom aktører
- krisekommunikasjon og mediehåndtering
- samvirke med nødetater, myndigheter og andre eksterne ressurser
- håndtering av avhengigheter, grenseflater og felles utfordringer
- testing av planer, avtaler og samarbeidsrutiner
- evaluering av samhandling og identifisering av forbedringstiltak
Hva får virksomheten?
Virksomheten får verifisert hvordan samarbeid, kommunikasjon og koordinering fungerer i praksis når flere aktører må håndtere samme hendelse. Øvelsen bidrar til å styrke relasjoner, avklare roller og ansvar, samt identifisere forbedringsområder i samvirket mellom involverte parter. Resultatet er bedre beredskap, økt samhandlingsevne og større trygghet ved reelle hendelser.
← Tilbake til Beredskap, kurs og øvelser
Kontakt oss
Send inn skjemaet under, så tar vi kontakt med deg. (function () { var form = document.getElementById('kontaktskjema'); if (!form) return; // --- Utfylt-markering --- function updateFilled(el) { if (!el || el.type === 'checkbox' || el.type === 'radio' || el.type === 'hidden') return; var v = (el.value || '').toString(); var valid = typeof el.checkValidity === 'function' ? el.checkValidity() : true; if (v.trim() !== '' && valid) el.classList.add('is-filled'); else el.classList.remove('is-filled'); } function updateFieldsetFilled(fs) { if (!fs) return; var inputs = fs.querySelectorAll('input[type=checkbox], input[type=radio]'); var any = false; for (var i = 0; i < inputs.length; i++) { if (inputs[i].checked) { any = true; break; } } if (any) fs.classList.add('is-filled'); else fs.classList.remove('is-filled'); } function updateCheckFilled(cb) { var wrap = cb.closest('.form-check'); if (!wrap) return; if (cb.checked) wrap.classList.add('is-filled'); else wrap.classList.remove('is-filled'); } var fields = form.querySelectorAll('input, select, textarea'); for (var i = 0; i < fields.length; i++) { (function (f) { // Søkefeltet er ikke et skjemafelt som skal merkes som utfylt – // den grønne tilstanden styres kun av om et firma er valgt fra dropdownen. if (f.id === 'firmasoek') return; if (f.type === 'radio' || f.type === 'checkbox') { f.addEventListener('change', function () { var fs = f.closest('fieldset'); if (fs) updateFieldsetFilled(fs); if (!fs) updateCheckFilled(f); // lone checkbox (personvern) }); } else { f.addEventListener('input', function () { updateFilled(f); }); f.addEventListener('change', function () { updateFilled(f); }); } })(fields[i]); } // --- Navnesøk mot Brønnøysundregistrene via internt API --- var sokInput = document.getElementById('firmasoek'); var sokBoks = document.querySelector('.firma-soek'); var sokClear = document.getElementById('firmasoek-clear'); var dropdown = document.getElementById('firmasoek-dropdown'); var firmaStatus = document.getElementById('firma-status'); var orgnrInput = document.getElementById('orgnr'); var firmanavnInput = document.getElementById('firmanavn'); var adresseInput = document.getElementById('adresse'); var postnrInput = document.getElementById('postnr'); var stedInput = document.getElementById('kommune'); var firmaFelter = document.getElementById('firmafelter'); var kontaktFelter = document.getElementById('kontaktfelter'); var firmaSoekBlokk = document.getElementById('firmasoek-blokk'); var privatpersonCheck = document.getElementById('privatperson'); var henvendelsestype = document.getElementById('henvendelsestype'); var kontaktpersonInput = document.getElementById('kontaktperson'); var telefonInput = document.getElementById('telefon'); var epostInput = document.getElementById('epost'); var meldingInput = document.getElementById('melding'); var autoFilled = {}; // husker hva vi sist auto-fylte, så vi ikke overskriver manuelle endringer var debounceTimer = null; var aktivIndeks = -1; var sisteTreff = []; function setStatus(text, color) { if (!firmaStatus) return; firmaStatus.textContent = text || ''; firmaStatus.style.color = color || ''; } function maybeAutoFill(el, nyVerdi) { if (!el || !nyVerdi) return; var current = (el.value || '').toString(); if (current === '' || current === autoFilled[el.id]) { el.value = nyVerdi; autoFilled[el.id] = nyVerdi; updateFilled(el); } } function maybeAutoSelect(sel, nyVerdi) { if (!sel || !nyVerdi) return; var current = (sel.value || '').toString(); if (current === '' || current === autoFilled[sel.id]) { sel.value = nyVerdi; autoFilled[sel.id] = nyVerdi; updateFilled(sel); } } function escapeHtml(s) { return (s || '').replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"'); } function highlight(text, term) { var safe = escapeHtml(text); if (!term) return safe; var safeTerm = escapeHtml(term); var lower = safe.toLowerCase(); var termLower = safeTerm.toLowerCase(); var idx = lower.indexOf(termLower); if (idx < 0) return safe; return safe.substring(0, idx) + '' + safe.substring(idx, idx + safeTerm.length) + '' + safe.substring(idx + safeTerm.length); } function skjulDropdown() { dropdown.hidden = true; dropdown.innerHTML = ''; aktivIndeks = -1; } function visDropdown() { if (!sisteTreff.length) { skjulDropdown(); return; } dropdown.hidden = false; } function settAktiv(nyIdx) { var items = dropdown.querySelectorAll('li[data-idx]'); if (!items.length) return; if (nyIdx < 0) nyIdx=items.length - 1; if (nyIdx>= items.length) nyIdx = 0; for (var i = 0; i < items.length; i++) items[i].classList.remove('active'); items[nyIdx].classList.add('active'); items[nyIdx].scrollIntoView({ block: 'nearest' }); aktivIndeks = nyIdx; } function settFormDisabled(disabled) { var alle = form.querySelectorAll('input, select, textarea, button'); for (var i = 0; i < alle.length; i++) { var f = alle[i]; if (f.id === 'firmasoek' || f.id === 'firmasoek-clear' || f.id === 'privatperson') continue; if (f.type === 'hidden') continue; f.disabled = disabled; } } function rensFyltFraForrigeValg() { // Tøm felter som ble auto-fylt av forrige valg, slik at nytt valg kan fylle dem ['firmanavn', 'adresse', 'postnr', 'kommune'].forEach(function (id) { var el = document.getElementById(id); if (!el) return; if (el.value && el.value === autoFilled[id]) { el.value = ''; delete autoFilled[id]; updateFilled(el); } }); if (orgnrInput) { orgnrInput.value = ''; } } function velgFirma(enhet) { if (!enhet) return; settFormDisabled(false); rensFyltFraForrigeValg(); if (orgnrInput) orgnrInput.value = enhet.orgnr || ''; if (enhet.navn) maybeAutoFill(firmanavnInput, enhet.navn); var a = enhet.forretningsadresse; if (a) { if (a.linjer && a.linjer.length) maybeAutoFill(adresseInput, a.linjer.join(', ')); if (a.postnummer) maybeAutoFill(postnrInput, a.postnummer); // Fyll «Sted» automatisk med poststed (evt. kommune som reserve) var sted = a.poststed || a.kommune; if (sted) { // Normaliser til pen kapitalisering (Brreg leverer ofte STORE BOKSTAVER) sted = sted.toString().toLowerCase().replace(/(^|[\s\-])([a-zæøå])/g, function (m, p1, p2) { return p1 + p2.toUpperCase(); }); maybeAutoFill(stedInput, sted); } } if (firmaFelter) firmaFelter.hidden = false; if (kontaktFelter) kontaktFelter.hidden = false; sokInput.value = enhet.navn || ''; sokInput.setAttribute('readonly', 'readonly'); sokInput.blur(); if (sokBoks) sokBoks.classList.add('valgt'); if (sokClear) sokClear.hidden = false; setStatus('Valgt: ' + enhet.navn + ' · orgnr. ' + enhet.orgnr + (a && a.poststed ? ' · ' + a.poststed : ''), '#00a870'); skjulDropdown(); sisteTreff = []; } function fjernValg() { rensFyltFraForrigeValg(); if (firmaFelter) firmaFelter.hidden = true; // Skjul kontaktfeltene igjen bare hvis vi IKKE er i privatperson-modus if (kontaktFelter && !(privatpersonCheck && privatpersonCheck.checked)) { kontaktFelter.hidden = true; } sokInput.value = ''; sokInput.removeAttribute('readonly'); if (sokBoks) sokBoks.classList.remove('valgt'); if (sokClear) sokClear.hidden = true; sisteTreff = []; skjulDropdown(); settFormDisabled(true); setStatus('Velg et firma så fyller vi ut firmanavn, adresse og orgnr automatisk.', ''); sokInput.focus(); } function renderDropdown(treff, term) { dropdown.innerHTML = ''; sisteTreff = treff || []; if (!sisteTreff.length) { var empty = document.createElement('li'); empty.className = 'empty'; empty.textContent = 'Ingen treff. Skriv inn firmanavnet manuelt hvis du ikke finner det.'; dropdown.appendChild(empty); dropdown.hidden = false; return; } for (var i = 0; i < sisteTreff.length; i++) { (function (idx, e) { var li = document.createElement('li'); li.setAttribute('data-idx', String(idx)); li.setAttribute('role', 'option'); var dato = e.stiftelsesdato || e.registrertDato; var aar = dato ? (', stiftet ' + dato.substring(0, 4)) : ''; var poststed = (e.forretningsadresse && e.forretningsadresse.poststed) ? e.forretningsadresse.poststed : ''; li.innerHTML = '' + highlight(e.navn, term) + '' + ' orgnr. ' + escapeHtml(e.orgnr) + '' + '' + escapeHtml(e.organisasjonsform || '') + aar + (poststed ? ' · ' + escapeHtml(poststed) : '') + ''; li.addEventListener('mousedown', function (ev) { ev.preventDefault(); // hindre blur før click velgFirma(e); }); dropdown.appendChild(li); })(i, sisteTreff[i]); } dropdown.hidden = false; } function soek(term) { setStatus('Søker…', '#666'); fetch('~/API/BrregSoek?navn=' + encodeURIComponent(term), { headers: { 'Accept': 'application/json' } }) .then(function (r) { return r.json(); }) .then(function (data) { var treff = (data && data.treff) ? data.treff : []; renderDropdown(treff, term); setStatus(treff.length ? (treff.length + ' treff – velg ett for å fylle ut skjemaet') : 'Ingen treff', treff.length ? '' : '#6b7280'); }) .catch(function () { setStatus('Kunne ikke søke nå – prøv igjen senere.', '#b00'); }); } if (sokInput) { sokInput.addEventListener('input', function () { if (sokInput.hasAttribute('readonly')) return; var term = (sokInput.value || '').trim(); if (debounceTimer) clearTimeout(debounceTimer); if (term.length < 2) { skjulDropdown(); setStatus('Velg et firma så fyller vi ut firmanavn, adresse og orgnr automatisk.', ''); return; } debounceTimer=setTimeout(function () { soek(term); }, 300); }); sokInput.addEventListener('focus', function () { if (sokInput.hasAttribute('readonly')) return; if (sisteTreff.length) visDropdown(); }); sokInput.addEventListener('blur', function () { setTimeout(skjulDropdown, 200); }); sokInput.addEventListener('keydown', function (e) { if (sokInput.hasAttribute('readonly')) return; if (dropdown.hidden) return; if (e.key === 'ArrowDown') { e.preventDefault(); settAktiv(aktivIndeks + 1); } else if (e.key === 'ArrowUp') { e.preventDefault(); settAktiv(aktivIndeks - 1); } else if (e.key === 'Enter') { var idx=aktivIndeks>= 0 ? aktivIndeks : 0; if (sisteTreff[idx]) { e.preventDefault(); velgFirma(sisteTreff[idx]); } } else if (e.key === 'Escape') { skjulDropdown(); } }); } if (sokClear) { sokClear.addEventListener('click', fjernValg); } // --- Privatperson / bedrift-veksling --- var firmaPakrevdFelter = [firmanavnInput, adresseInput, postnrInput, stedInput]; function settPrivatperson(erPrivat) { if (henvendelsestype) henvendelsestype.value = erPrivat ? 'Privatperson' : 'Bedrift'; if (erPrivat) { // Skjul alt som har med firma å gjøre if (firmaSoekBlokk) firmaSoekBlokk.hidden = true; if (firmaFelter) firmaFelter.hidden = true; // Fjern «required» og tøm firma-feltene så de ikke blokkerer innsending firmaPakrevdFelter.forEach(function (el) { if (!el) return; el.removeAttribute('required'); el.value = ''; el.disabled = true; updateFilled(el); }); if (orgnrInput) orgnrInput.value = ''; autoFilled = {}; // Vis og aktiver kontaktfeltene + melding for privatperson if (kontaktFelter) kontaktFelter.hidden = false; [kontaktpersonInput, telefonInput, epostInput, meldingInput].forEach(function (el) { if (el) el.disabled = false; }); // Personvern-samtykke må fortsatt kunne krysses av var pv = document.getElementById('personvern'); if (pv) pv.disabled = false; var sendBtn = form.querySelector('button[type=submit]'); if (sendBtn) sendBtn.disabled = false; } else { // Tilbake til bedrift-flyt if (firmaSoekBlokk) firmaSoekBlokk.hidden = false; // Sett «required» tilbake på firma-feltene firmaPakrevdFelter.forEach(function (el) { if (el) el.setAttribute('required', 'required'); }); // Nullstill firmasøk og skjul felter til firma velges på nytt fjernValg(); } } if (privatpersonCheck) { privatpersonCheck.addEventListener('change', function () { settPrivatperson(privatpersonCheck.checked); }); } // Initialtilstand: alt bortsett fra søkefeltet er disablet til et firma er valgt. settFormDisabled(true); })();