"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