$(document).ready(function() { var offset = -70; // Setter class .chosen ved klikk på hovedmeny + viser og skjuler .kapittel $(".uitbtn").not('.eksternlenke').on("click", function(e) { $(".uitbtn").each(function() { $(this).removeClass("chosen").addClass("dimmed"); }); $(this).addClass("chosen"); var target = $(this).attr("href"); $(target).fadeIn(350); $(".kapittel").not(target).hide(); e.preventDefault(); $('html, body').animate({scrollTop: $(target).offset().top + offset},1000); // Oppdaterer url til riktig hash window.location.hash = $.attr(this, 'href').substr(1); }); // Scroller til aktuelt underkapittel ved klikk på tabs $(".nav-link").on("click", function(e) { var number = $(this).attr('href'); setTimeout(function(){ $('html, body').animate({scrollTop: $(number).offset().top - 130},1000); }, 300 ); }); var hash = window.location.hash; var offset2 = -100; // modaler åpnes basert på #mod-xxxxxx if (hash.indexOf('mod') !== -1) { // hvis hash inneholder 'mod' $(hash).modal('show'); // vis modal med matchende hash } if (hash.indexOf('engelsk') !== -1) { // hvis hash inneholder 'engelsk' $(hash).modal('show'); // vis modal med matchende hash } // øverste kapittelnivå basert på #kapittel_xxxxxx åpnes + hovedknapp settes til chosen if (hash.match('#')) { $(hash).show(); // viser øverste id (kapittelnivå basert på hash i url $('[href=' + hash + ']').addClass('chosen'); // matcher hash i url med href i hovedknappene } // pills-nivåene åpnes basert på #v-pills-xxxxxx + hovedknapp settes til chosen if (hash.match('#')) { $('.nav-pills a[href="#' + hash.split('#')[1] + '"]').parents('div').show(); // viser parent div til aktuell tab $('.nav-pills a[href="#' + hash.split('#')[1] + '"]').tab('show'); // setter valgt tab aktiv $('.nav-pills a[href="#' + hash.split('#')[1] + '"]').closest('.tab-pane').addClass('active show').show().removeAttr('style'); // setter nærmeste .tab-pane aktiv og viser denne var knappverdi2 = $('.nav-pills a[href="#' + hash.split('#')[1] + '"]').closest('.tab-content').attr('data-parent'); // finner nærmeste .tab-content og henter verdi fra attributtet data-parent over til variabelen knappverdi2 $('[id=' + knappverdi2 + ']').addClass('chosen'); // matcher hentet verdi fra data-parent til matchende id for hovedknappene og setter class chosen var knappverdi3 = $('.nav-pills a[href="#' + hash.split('#')[1] + '"]').closest('a').attr('data-parent'); // finner nærmeste a og henter verdi fra attributtet data-parent over til variabelen knappverdi $('[id=' + knappverdi3 + ']').addClass('active show'); // matcher hentet verdi fra data-parent til matchende id for hovedknappene og setter class active show //$(window).scrollTop(0); } // accordion-nivåene åpnes basert på #collapse------ + hovedknapp settes til chosen if (hash.match('#')) { openval = hash.split('#')[1]; $('#' + openval).addClass('show'); // åpner den relavante accordion-en $('#' + openval).parents('div').show(); // viser parent div til aktuell tab $('#' + openval).closest('.tab-pane').addClass('active show').show().removeAttr('style'); // setter nærmeste .tab-pane aktiv og viser denne var knappverdi2 = $('#' + openval).closest('.tab-content').attr('data-parent'); // finner nærmeste .tab-content og henter verdi fra attributtet data-parent over til variabelen knappverdi2 $('[id=' + knappverdi2 + ']').addClass('chosen'); // matcher hentet verdi fra data-parent til matchende id for hovedknappene og setter class chosen var knappverdi3 = $('#' + openval).closest('.tab-pane').attr('id'); // finner nærmeste .tab-pane og henter verdi fra id over til variabelen knappverdi $('.nav-tabs a[href="#' + knappverdi3 + '"]').tab('show'); // fyrer aktuell tab fra knappverdi3 } // modaler åpnes basert på #modal-xxxxxx (modaler som ligger i nederste nivå, under pills-menyer) if (hash.indexOf('modal-') !== -1) { // hvis hash inneholder 'modal-' $(hash).modal('toggle'); // vis modal med matchende hash // rutine for oppslag til riktig sted i hierarkiet ved treff på ekstern url til modal var modalverdi = $(hash).attr('data-parent'); $('.nav-pills a[href="#' + modalverdi + '"]').parents('div').show(); // viser parent div til aktuell tab $('.nav-pills a[href="#' + modalverdi + '"]').tab('show'); // setter valgt tab aktiv $('.nav-pills a[href="#' + modalverdi + '"]').closest('.tab-pane').addClass('active show').show().removeAttr('style'); // setter nærmeste .tab-pane aktiv og viser denne var knappverdi2 = $('.nav-pills a[href="#' + modalverdi + '"]').closest('.tab-content').attr('data-parent'); // finner nærmeste .tab-content og henter verdi fra attributtet data-parent over til variabelen knappverdi2 $('[id=' + knappverdi2 + ']').addClass('chosen'); // matcher hentet verdi fra data-parent til matchende id for hovedknappene og setter class chosen var knappverdi3 = $('.nav-pills a[href="#' + modalverdi + '"]').closest('a').attr('data-parent'); // finner nærmeste a og henter verdi fra attributtet data-parent over til variabelen knappverdi $('[id=' + knappverdi3 + ']').addClass('active show'); // matcher hentet verdi fra data-parent til matchende id for hovedknappene og setter class active show $('html, body').animate({ scrollTop: $("#content-start").offset().top + offset2 }, 'slow'); } // collapse åpnes basert på #collapse_xxxxxx if (hash.indexOf('collapse_') !== -1) { // hvis hash inneholder 'collapse_' var collapsemodal = $(hash).closest('.modal').attr('id'); var collapsemodalfire = '#' + collapsemodal; $(collapsemodalfire).modal('show'); // var fire = $('button').closest('.modal').addClass('show'); // $('body').addClass('using-mouse modal-open'); // $(document.body).append('
'); } // collapse åpnes basert på #collapsexxxxxx if (hash.indexOf('collapse') !== -1) { // hvis hash inneholder 'collapse' // Check if there's a hash in the URL var hash = window.location.hash; // If there's a hash, find the nearest parent pills-tab and show the corresponding tab-pane if (hash) { // Remove the '#' character from the hash var tabId = hash.substring(1); // Find the closest .tab-pane with id starting with "innhold_" and show it var closestTabPane = $('#' + tabId).closest('.tab-pane[id^="innhold_"]'); closestTabPane.addClass('active show'); // Find the corresponding .nav-link based on data-parent attribute var dataParentValue = $('#' + tabId).closest('[id^="accordion"]').attr('data-parent'); $('#' + dataParentValue).addClass('active'); // Find the corresponding nav nav-tabs var correspondingUlId = $('#' + dataParentValue).attr('data-parent'); $('#' + correspondingUlId).addClass('active'); // Find the corresponding nav nav-tabs var correspondingUl = $('[data-parent="' + tabId + '"]').closest('.nav.nav-tabs'); // Find the corresponding button based on data-parent attribute in the nav-item var correspondingButtonId = $('[data-parent="' + tabId + '"]').closest('li.nav-item').attr('data-parent'); $('#' + correspondingButtonId).addClass('chosen'); } } // de ulike tabs-nivåene åpnes basert på #innhold_xxxxxx + hovedknapp settes til chosen if (hash.match('#')) { $('.nav-tabs a[href="#' + hash.split('#')[1] + '"]').tab('show'); // viser aktuell tab $('.nav-tabs a[href="#' + hash.split('#')[1] + '"]').closest('div').show(); // viser parent div til aktuell tab var knappverdi = $('.nav-tabs a[href="#' + hash.split('#')[1] + '"]').closest('li').attr('data-parent'); // finner nærmeste li og henter verdi fra attributtet data-parent over til variabelen knappverdi $('[id=' + knappverdi + ']').addClass('chosen'); // matcher hentet verdi fra data-parent til matchende id for hovedknappene og setter class chosen var tabsverdi = $('.nav-tabs a[href="#' + hash.split('#')[1] + '"]').closest('a').attr('href'); $('html, body').animate({scrollTop: $(tabsverdi).offset().top - 130},1000); } // tvinger refresh på interne lenker $('.introlenker a, .sidelenke').not('.introlenker p a').click(function() { var urlintern = $(this).attr('href'); window.location.href = urlintern; location.reload(); e.preventDefault(); }) // tvinger refresh på interne lenker $('li a, a.sidelenke, .kapittel p a, .tab-pane li a, .internal p a, .hf a, h3 p a').not('[target="_blank"], a[href^="mailto:", .coronapills p a]').click(function() { var urlintern = $(this).attr('href'); window.location.href = urlintern; location.reload(); e.preventDefault(); }) // tvinger refresh ved navigering fra en hash-adresse til en annen $(window).not('button').on('hashchange', function() { window.location.reload(true); $('html, body').animate({ scrollTop: $("#content-start").offset().top + offset2 }, 'slow'); }); }); // Setter url target for modaler + fjerner url ved lukking $('[data-toggle="modal"]').click(function(){ window.location.hash = $(this).data('target'); }); function revertToOriginalURL() { var original = window.location.href.substr(0, window.location.href.indexOf('#')) history.replaceState({}, document.title, original); } $('.modal').on('hidden.bs.modal', function () { revertToOriginalURL(); }); $('.innholdet').css('min-height', '1200px'); $('.tab-pane').css('min-height', '800px'); // Aktiverer pushstate + url-oppdatering på tabs og pills // $('.nav-tabs, .nav-pills').stickyTabs(); setTimeout( function() { $('.nav-tabs a, .nav-pills a').on('shown.bs.tab', function (e) { if(history.pushState) { history.pushState(null, null, e.target.hash); } else { window.location.hash = e.target.hash; } }) $('[data-target]').click(function() { window.history.pushState( null, null, $(this).data('target') ); }); }, 2000); // Lukker modaler vha back-button function closeModalOnBackButton() { $(document).ready(function() { window.onpopstate = function(event) { $('.modal').modal('hide'); }; }); } closeModalOnBackButton(); // Bootstrap responsive tables $('table').wrap(''); $('table').addClass('table table-hover');