"use strict"; /************************************************************************** Display cookie consent banner **************************************************************************/ function display_cookie_consent_banner() { document.getElementById("cookie_consent_banner").style.position="fixed"; document.getElementById("cookie_consent_banner").style.width='100%'; document.getElementById("cookie_consent_banner").style.bottom=0; document.getElementById("cookie_consent_banner").style.left=0; document.getElementById("cookie_consent_banner").style.margin=0; document.getElementById("cookie_consent_banner").style.textAlign="center"; document.getElementById("cookie_consent_banner").style.padding="20px"; document.getElementById("cookie_consent_banner").innerHTML = `
Giv samtykke til følgende cookies

Essentielle Indstillinger Statistik Marketing `; if (get_cookie('cookie_consent_essential')!=true) { document.getElementById("cookie_consent_banner").style.backgroundColor="red"; } else { document.getElementById("cookie_consent_banner").style.backgroundColor="green"; if (get_cookie("cookie_consent_settings")==true) document.getElementById('cookie_consent_settings').checked = "checked"; if (get_cookie("cookie_consent_statistics")==true) document.getElementById('cookie_consent_statistics').checked = "checked"; if (get_cookie("cookie_consent_marketing")==true) document.getElementById('cookie_consent_marketing').checked = "checked"; } } /************************************************************************** Cookie consent set **************************************************************************/ function set_cookie_consent(all_cookies) { if (typeof all_cookies !== 'undefined') { if (all_cookies="all") { document.getElementById('cookie_consent_settings').checked=true; document.getElementById('cookie_consent_statistics').checked=true; document.getElementById('cookie_consent_marketing').checked=true; } } if (document.getElementById('cookie_consent_essential').checked==true) set_cookie('cookie_consent_essential',true,99*365*24*60*60*1000); else delete_cookie('cookie_consent_settings'); if (document.getElementById('cookie_consent_settings').checked==true) set_cookie('cookie_consent_settings',true,99*365*24*60*60*1000); else delete_cookie('cookie_consent_settings'); if (document.getElementById('cookie_consent_statistics').checked==true) set_cookie('cookie_consent_statistics',true,99*365*24*60*60*1000); else delete_cookie('cookie_consent_statistics'); if (document.getElementById('cookie_consent_marketing').checked==true) set_cookie('cookie_consent_marketing',true,99*365*24*60*60*1000); else delete_cookie('cookie_consent_marketing'); // Gem info om, at vi har spurgt til cookie_consent: set_cookie('cookie_consent',true,99*365*24*60*60*1000); let cookie_consent_banner = document.getElementById('cookie_consent_banner'); cookie_consent_banner.innerHTML=""; cookie_consent_banner.style=null; } /************************************************************************** Cookie set **************************************************************************/ function set_cookie(name, value, days) { /* alert("name:"+name); let cookie_cat=-1; switch (name) { case 'show_vat': cookie_cat=1; default: cookie_cat = -1; } alert ("cookie_cat: "+cookie_cat); */ const date = new Date(); date.setTime(date.getTime() + (days*24*60*60*1000)); const expires = "expires=" + date.toUTCString(); //document.cookie = name+"="+value+"; " + expires + "; path=/; Secure; SameSite=Strict"; document.cookie = name+"="+value+"; " + expires + "; path=/;"; } /************************************************************************** Cookie get **************************************************************************/ function get_cookie(name) { let nameEQ = name + "="; let cookies_array = document.cookie.split(';'); for(let i=0; i { if (show_vat==true) vat_field.innerText="inkl. moms"; else vat_field.innerText="eks. moms"; }); const price_fields = document.getElementsByName("price"); price_fields.forEach((price_field) => { if (show_vat==true) { price_field.innerText=price_field.dataset.priceIncVat; } else { price_field.innerText=price_field.dataset.priceExVat; } }); //slet gammel cookie: delete_cookie("show_vat"); //opret ny cookie: set_cookie("show_vat", String(show_vat),999999); } /************************************************************************** Vælg visningssortering **************************************************************************/ function change_items_sortby() { // 1. Hent den valgte værdi fra dropdown'en (f.eks. 'oprettet_nyeste') const sortSelect = document.getElementById('sortby'); const newSortValue = sortSelect.value; // 2. Opret et URL-objekt baseret på den aktuelle URL i browseren // Dette gør det nemt at manipulere URL'ens dele. const currentUrl = new URL(window.location.href); // 3. Få adgang til URL'ens query-parametre (alt efter '?') const params = currentUrl.searchParams; // 4. Sæt 'sortering'-parameteren til den nye værdi. // - Hvis 'sortering' findes, bliver værdien opdateret. // - Hvis 'sortering' IKKE findes, bliver den tilføjet til URL'en. // Andre parametre (som f.eks. 'kategori') bevares automatisk. params.set('sortering', newSortValue); // 5. Omdiriger browseren til den nye URL // currentUrl.href indeholder nu den opdaterede URL. window.location.href = currentUrl.href; } /*function change_items_sortby() { //slet gammel cookie: delete_cookie("items_sortby"); //opret ny cookie: set_cookie("items_sortby", document.getElementById('sortby').value,999999); let sort_order_found = false; let current_path = window.location.href.split('/'); let current_page = current_path[current_path.length-1]; let parameters_array = current_page.split('?'); let parameters = ''; if (parameters_array.length>2) parameters = parameters_array[1].split('&'); let all_parameters = ''; let i = 0; while (i!=parameters.length) { if (i==0) // filnavn.php ;//all_parameters = parameters[i]; else { if (i==1) // ?første all_parameters = all_parameters+"?"; else //&næste all_parameters = all_parameters+"&"; } if (parameters[i].split('=')[0]=="sortering") { all_parameters = all_parameters+"sortering="+document.getElementById('sortby').value; sort_order_found = true; } else all_parameters = all_parameters+parameters[i]; //alert (parameters[i]+ "\n"+all_parameters); i++; if (sort_order_found == false) { if (i==1) all_parameters = all_parameters+'?'; if (i>1) all_parameters = all_parameters+'&'; all_parameters = all_parameters+"sortering="+document.getElementById('sortby').value; } } //window.location.href ='/'+all_parameters; alert('/'+current_page+all_parameters); } */ /************************************************************************** Lav en infobox og et overlay, så den kan klikkes væk **************************************************************************/ function create_infobox() { let overlay = document.createElement("div"); overlay.id= "overlay"; let infobox = document.createElement("div"); infobox.id= "infobox"; document.body.appendChild(overlay); document.getElementById("overlay").appendChild(infobox); overlay.addEventListener("click", () => { overlay.remove(); infobox.remove(); }); return true; } /************************************************************************** Gør add_to_cart buttons klikbare **************************************************************************/ function add_to_cart_buttons_clickable() { const buttons = document.getElementsByName("add_to_cart"); buttons.forEach((button) => { button.addEventListener("click", function () { add_to_cart(this);}); }); } /************************************************************************** Gør remove_from_cart buttons klikbare **************************************************************************/ function remove_from_cart_buttons_clickable() { const buttons = document.getElementsByName("remove_from_cart"); buttons.forEach((button) => { button.addEventListener("click", function () { remove_from_cart(this);}); }); } /************************************************************************** Læg i cart **************************************************************************/ function add_to_cart(button) { button.innerText="Lagt i kurv"; create_infobox(); let inventory_id = button.id; const xhr = new XMLHttpRequest(); xhr.withCredentials = true; let url = "/cart.php?cmd=add_to_cart&inventory_id="+inventory_id+"&quantity=1"; xhr.open('GET', url, true); xhr.onload = function() { if (this.status === 200) { const responseData = JSON.parse(this.responseText); let response = ""; if (responseData.add_to_cart=="success") response = button.value + " er lagt i din kurv"; else response = button.value + " kunne ikke lægges i din kurv. "+responseData.errorText; response = response+"

Fortsæt med at handle eller gå til kassen

"; infobox.innerHTML = response; } else { alert('Error:', this.statusText); } }; xhr.onerror = function() { console.error('Network Error'); }; xhr.send(); } /************************************************************************** Fjern fra cart **************************************************************************/ function remove_from_cart(button) { create_infobox(); let inventory_id = button.id; const xhr = new XMLHttpRequest(); xhr.withCredentials = true; let url = "/cart.php?cmd=remove_from_cart&inventory_id="+inventory_id; xhr.open('GET', url, true); xhr.onload = function() { if (this.status === 200) { const responseData = JSON.parse(this.responseText); let response = ""; if (responseData.remove_from_cart=="success") { document.getElementById("container_"+button.id).remove(); if (document.getElementById('cart_sum')!=null) { let cart_sum = 0; let i =0; let number_of_cart_lines = document.getElementsByName('line_sum').length; while (i!=number_of_cart_lines) { cart_sum = cart_sum + parseInt(document.getElementsByName('line_sum')[i].innerText); i++; } document.getElementById('cart_sum').innerText=cart_sum; } // Slut på opdatering af cart_sum response = button.value + " er fjernet fra din kurv"; } else response = button.value + " kunne ikke fjernes fra din kurv. "+responseData.errorText; response = response+"

Fortsæt med at handle eller gå til kassen

"; infobox.innerHTML = response; } else { infobox.innerHTML = this.statusText; } }; xhr.onerror = function() { console.error('Network Error'); }; xhr.send(); } /************************************************************************** Luk infobox **************************************************************************/ function close_infobox() { let overlay = document.getElementById("overlay"); let infobox = document.getElementById("infobox"); overlay.addEventListener("click", () => { overlay.remove(); infobox.remove(); }); } /************************************************************************** Vis/skjul menu **************************************************************************/ function toggle_menu() { if (document.getElementById('navigation').style.display=='none'||document.getElementById('navigation').style.display=='') { document.getElementById('navigation').style.display='block'; //document.getElementById('searchbar').style.display='block'; document.getElementById('menuopenclose').src='close.svg'; document.getElementById('navigation').style.display='flex'; } else { document.getElementById('navigation').style.display='none'; //document.getElementById('searchbar').style.display='none'; document.getElementById('menuopenclose').src='hamburger.svg'; } } /************************************************************************** Baggrundsfarve i menu**************************************************************************/ function change_color(element_id) { let i = 0; while (i != document.getElementsByName('navigation').length) { if (document.getElementsByName('navigation')[i].id==element_id) { document.getElementsByName('navigation')[i].style.backgroundColor='B7DB8E'; } else { document.getElementsByName('navigation')[i].style.backgroundColor='E7F2D9'; i++; } } } /************************************************************************** Vis/skjul CVR-box **************************************************************************/ function display_company_identifier_box() { if (document.getElementById('company')!=null) { if (document.getElementById('company').checked==true) { document.getElementById('company_identifier_box').style.display='block'; } else { document.getElementById('company_identifier_box').style.display='none'; } } } function update_price_summary() { let vat_rate = 0.25; let subtotal_price = 0; let subtotal_price_inc_vat = 0; let items = document.getElementsByName('price_line'); for(let i = 0;i