// =====================================================
// Data — uker, temaer, og metadata
// =====================================================

const COURSE = {
  code: 'SMF2290',
  name: 'Etikk, bærekraft og samfunnsansvar',
  semester: 'Vår 2026',
  lecturer: 'Martina Ortová',
  exam: {
    date: '2026-06-01',
    time: '09:00',
    duration_hours: 4,
    platform: 'Inspera Assessment',
    location: 'Campus Gjøvik',
    aids: 'Kode E'
  }
};

const WEEKS = [
  { id: 2,  title: 'Introduksjon',                       theme: 'baerekraft', file: 'uke02-03-04.md', section: '#uke-2--introduksjon' },
  { id: 3,  title: 'Etikk 1',                            theme: 'etikk',      file: 'uke02-03-04.md', section: '#uke-3--etikk-1-diskusjons-uke' },
  { id: 4,  title: 'Etikk 2',                            theme: 'etikk',      file: 'uke02-03-04.md', section: '#uke-4--etikk-2' },
  { id: 5,  title: 'Etikk 3',                            theme: 'etikk',      file: 'uke05-06.md',    section: '#uke-5--etikk-3' },
  { id: 6,  title: 'Institusjon & Stakeholder',           theme: 'samfunn',    file: 'uke05-06.md',    section: '#uke-6--institusjon-og-stakeholder' },
  { id: 7,  title: 'Stakeholder & Historisk linje',       theme: 'samfunn',    file: 'uke07-08.md',    section: '#uke-7--stakeholder-historisk-linje-og-fn' },
  { id: 8,  title: 'Carroll, CSR & CSV',                  theme: 'samfunn',    file: 'uke07-08.md',    section: '#uke-8--carrolls-pyramide-csr-vs-csv-og-eksternaliteter-kap-8' },
  { id: 10, title: 'Sosial pilar',                       theme: 'samfunn',    file: 'uke10-11.md',    section: '#uke-10--den-sosiale-delen-av-csr' },
  { id: 11, title: 'Sirkulær økonomi & ESG',             theme: 'baerekraft', file: 'uke10-11.md',    section: '#uke-11--planetens-talegrenser-sirkulær-økonomi-og-esg-investeringer' },
  { id: 12, title: 'Verktøykasse',                       theme: 'verktoy',    file: 'uke12-16.md',    section: '#uke-12--verktøykasse-for-etikk-samfunnsansvar-og-bærekraft' },
  { id: 16, title: 'Implementering',                     theme: 'verktoy',    file: 'uke12-16.md',    section: '#uke-16--implementering' },
  { id: 17, title: 'Eksamen & oppsummering',             theme: 'all',        file: 'uke17-eksamen.md', section: '' }
];

const THEMES = {
  etikk: {
    id: 'etikk',
    label: 'Etikk',
    title: 'Etikk',
    eyebrow: 'Oppgave I',
    color: 'var(--theme-etikk)',
    weeks: [3, 4, 5],
    intro: 'Etikk er systematisk refleksjon over hva som er rett og galt i omgang mellom mennesker — et fag du lærer gjennom studier og trening i å anvende prinsipper og begreper.',
    keyConcepts: [
      { term: 'Moral vs Etikk',     def: 'Moral = personlige/felles oppfatninger av rett og galt, læres i samhandling. Etikk = systematisk refleksjon over moral, læres som fag.' },
      { term: 'Normativ etikk',     def: 'Hva man bør gjøre — søker normer og prinsipper. Inkluderer konsekvensetikk, pliktetikk og dydsetikk.' },
      { term: 'Deskriptiv etikk',   def: 'Hva folk faktisk mener er rett og galt — beskrivelse av moralpraksis.' },
      { term: 'Etisk dilemma',      def: 'Situasjon hvor du må velge mellom alternativer som alle har gode etiske argumenter for seg — ingen er åpenbart riktige.' },
      { term: 'De 6 etiske prinsipper', def: 'Likhet, Autonomi, Velgjørenhet, Ikke-skade, Rettferdighet, Føre-var.' },
      { term: 'Konsekvensetikk (Mill)', def: 'Handlinger bedømmes ut fra konsekvensene. Utilitarisme: mest mulig lykke for flest mulig.' },
      { term: 'Pliktetikk (Kant)',   def: 'Handlinger bedømmes ut fra plikt og prinsipp, ikke konsekvenser. Det kategoriske imperativ.' },
      { term: 'Dydsetikk (Aristoteles)', def: 'Fokus på karakter og dyder. Hva slags person ønsker du å være? Den gylne middelvei.' },
      { term: 'Diskursetikk',        def: 'Etikk gjennom dialog og argumentasjon mellom likeverdige parter — Habermas.' },
      { term: 'Kvalnes Navigasjonshjul', def: '6-perspektiv-verktøy for etisk beslutning: Juss, Identitet, Etikk, Økonomi, Omdømme, Moral.' }
    ]
  },
  baerekraft: {
    id: 'baerekraft',
    label: 'Bærekraft',
    title: 'Bærekraft',
    eyebrow: 'Oppgave II',
    color: 'var(--theme-baerekraft)',
    weeks: [2, 11, 16],
    intro: 'Bærekraftig utvikling er utvikling som imøtekommer dagens behov uten å ødelegge mulighetene for at kommende generasjoner skal få dekket sine behov (Brundtland 1987).',
    keyConcepts: [
      { term: 'Brundtland-definisjonen (1987)', def: '«Utvikling som tilfredsstiller dagens behov uten å ødelegge fremtidige generasjoners muligheter for å tilfredsstille sine behov.»' },
      { term: 'Triple Bottom Line (Elkington 1994)', def: 'People, Planet, Profit — bedrifter skal måles på sosiale, miljømessige og økonomiske resultater samtidig.' },
      { term: 'De tre pilarene', def: 'Sosial (mennesker), Miljø (planet), Økonomi (profit). Snitt = bærekraft.' },
      { term: 'Svak vs Sterk bærekraft', def: 'Svak: natur kan erstattes av kapital. Sterk: naturkapital er kritisk og kan ikke erstattes.' },
      { term: 'Planetens tålegrenser', def: 'Stockholm Resilience Centre 2009 — 9 grenser som regulerer planetens stabilitet. Flere er allerede overskredet.' },
      { term: 'Sirkulær økonomi', def: 'Lukket loop: råmaterialer → bærekraftig design → produksjon → distribusjon → bruk/gjenbruk → innsamling → resirkulering.' },
      { term: '10R-rammeverket (Kirchher)', def: 'Refuse, Rethink, Reduce, Reuse, Repair, Refurbish, Remanufacture, Repurpose, Recycle, Recover.' },
      { term: 'Smultringmodellen (Raworth 2017)', def: 'Sosialt fundament (innside) og økologisk tak (utside). Trygt og rettferdig rom mellom dem.' },
      { term: 'FN 17 bærekraftsmål (SDG)', def: 'Vedtatt 2015. 169 delmål. Felles globalt rammeverk for utvikling fram til 2030.' },
      { term: 'Motvekst (Degrowth)', def: 'Bevegelse som utfordrer uendelig økonomisk vekst. 4 pilarer: ressursbevissthet, rettferdighet, lokalisering, livskvalitet.' }
    ]
  },
  samfunn: {
    id: 'samfunn',
    label: 'Samfunnsansvar',
    title: 'Samfunnsansvar',
    eyebrow: 'Oppgave III',
    color: 'var(--theme-samfunn)',
    weeks: [6, 7, 8, 10],
    intro: 'CSR — Corporate Social Responsibility — er det ansvaret selskaper påtar seg for miljø, samfunn og mennesker som påvirkes av virksomheten, utover det som er lovpålagt.',
    keyConcepts: [
      { term: 'CSR (Corporate Social Responsibility)', def: 'Ansvar selskaper påtar seg for miljø, samfunn og mennesker — utover det lovpålagte.' },
      { term: 'CSV (Creating Shared Value)', def: 'Porter & Kramer 2006. Integrert i strategi — kobler samfunnsforbedring til økonomisk verdiskaping.' },
      { term: 'CSR vs CSV', def: 'CSR drives ofte eksternt og er "ved siden av" kjernevirksomheten. CSV er strategi som skaper felles verdi.' },
      { term: 'Carrolls pyramide (1991)', def: '4 nivåer nedenfra: Økonomisk (vær lønnsom), Juridisk (adlyd loven), Etisk (vær etisk), Filantropisk (vær god bedriftsborger).' },
      { term: 'Friedman (1970)', def: '"The social responsibility of business is to increase its profits." Bedriftens eneste ansvar er å maksimere aksjonærverdi innenfor lovens rammer.' },
      { term: 'Stakeholder-teori (Freeman 1984)', def: 'God ledelse balanserer hensynet til alle som påvirkes av eller påvirker virksomheten — ikke bare aksjonærer.' },
      { term: 'Mitchells modell (1997)', def: '3 attributter: Makt, Legitimitet, Hastverk. Gir 7 typer interessenter (avgjørende = alle 3).' },
      { term: 'Institusjonell teori', def: 'Forklarer hvorfor organisasjoner blir like — press fra lover, normer og kulturelle koder.' },
      { term: 'Isomorfisme', def: 'Prosessen der organisasjoner blir mer like hverandre over tid pga press fra institusjonene.' },
      { term: 'Eksternaliteter', def: 'Kostnader eller fordeler som påvirker tredjeparter — uten å fanges av markedstransaksjonene. Kan være positive eller negative.' },
      { term: 'Sosial søyle (intern/ekstern)', def: 'Intern: obligatorisk sosialpolitikk + avtalt + frivillig (CSR). Ekstern: filantropi, Cause Related Marketing.' }
    ]
  },
  verktoy: {
    id: 'verktoy',
    label: 'Verktøy & implementering',
    title: 'Verktøy',
    eyebrow: 'Oppgave IV · Case',
    color: 'var(--theme-verktoy)',
    weeks: [12, 16],
    intro: 'For å gå fra teori til praksis trenger bedrifter konkrete verktøy: kodekser, standarder, rapportering, og en strukturert implementeringsprosess fra planlegging til oppfølging.',
    keyConcepts: [
      { term: 'Obligatoriske vs frivillige verktøy', def: 'Obligatorisk: lover, regulering, rapporteringskrav (CSRD, Åpenhetsloven). Frivillig: ISO, GRI, miljømerker.' },
      { term: 'Code of Conduct', def: 'Etisk kodeks — interne retningslinjer for atferd. Eksempel: Telenors Code of Conduct.' },
      { term: 'ISO 26000', def: 'Internasjonal standard for samfunnsansvar. Veiledende, ikke sertifiserbar.' },
      { term: 'ISO 14001 / 9001', def: '14001: miljøledelse. 9001: kvalitetsledelse. Begge er sertifiserbare.' },
      { term: 'GRI (Global Reporting Initiative)', def: 'Globalt rammeverk for bærekraftsrapportering. Standardiserer hva og hvordan man rapporterer.' },
      { term: 'CSRD', def: 'EUs Corporate Sustainability Reporting Directive. Krav om bærekraftsrapportering fra 2024/2025/2026 avhengig av størrelse.' },
      { term: 'Dobbel vesentlighet', def: 'CSRD-prinsipp: rapporter både hvordan virksomheten påvirker omgivelsene (impact) og hvordan bærekraft påvirker virksomheten (financial).' },
      { term: 'Green Deal', def: 'EUs strategi for å gjøre Europa klimanøytralt innen 2050. Bred politikkpakke som CSRD og taksonomien er del av.' },
      { term: 'EUs taksonomi', def: 'Klassifiseringssystem for hvilke økonomiske aktiviteter som er miljømessig bærekraftige.' },
      { term: 'Åpenhetsloven (2022)', def: 'Norsk lov: virksomheter må gjennomføre aktsomhetsvurderinger og rapportere om menneskerettigheter og arbeidsforhold.' },
      { term: '5 implementeringssteg', def: 'Planlegging → Interessentdialog → Rapportering → Verifikasjon → Oppfølging.' },
      { term: 'SRI (Social Responsible Investments)', def: 'Investeringsstrategi som integrerer etiske, miljømessige og sosiale betraktninger. Mål: avkastning + samfunnsansvar.' }
    ]
  }
};

// Fast-track — kondensert læringsspor, gjentakelsesfritt, etter eksamensstruktur
const FASTTRACK = [
  { id: 1, theme: 'etikk',      tag: 'Oppgave I',        title: 'Etikk — grunnmuren',                 mins: 8,  desc: 'Moral vs. etikk vs. jus, dilemma-typene, og de seks prinsippene som er verktøykassen.' },
  { id: 2, theme: 'etikk',      tag: 'Oppgave I',        title: 'Etikk — teorier & verktøy',          mins: 9,  desc: 'De tre teoriene (Mill · Kant · Aristoteles), Kants imperativ og Kvalnes-hjulet.' },
  { id: 3, theme: 'baerekraft', tag: 'Oppgave II',       title: 'Bærekraft',                          mins: 10, desc: 'Brundtland, Triple Bottom Line, tålegrenser, smultring, sirkulær økonomi og degrowth.' },
  { id: 4, theme: 'samfunn',    tag: 'Oppgave III',      title: 'Samfunnsansvar',                     mins: 12, desc: 'CSR vs. CSV, Carrolls pyramide, Friedman↔Freeman, Mitchell, eksternaliteter, sosial pilar.' },
  { id: 5, theme: 'verktoy',    tag: 'Oppgave IV · Case', title: 'Verktøy, implementering & case',    mins: 10, desc: 'Standarder, CSRD & dobbel vesentlighet, de fem stegene + ferdig case-oppskrift.' }
];

// Mapping from theme to color name
const THEME_COLORS = {
  etikk: { color: '#D89AA2', soft: '#4A2027', bg: '#2A1A1D' },
  baerekraft: { color: '#9CC089', soft: '#2D4029', bg: '#1A2419' },
  samfunn: { color: '#E6B777', soft: '#5A3D17', bg: '#2A2014' },
  verktoy: { color: '#A2BDD9', soft: '#1F3149', bg: '#161E2A' },
  all: { color: '#E07B5F', soft: '#5A2317', bg: '#2A1A14' }
};

function themeOf(weekId) {
  const w = WEEKS.find(x => x.id === weekId);
  return w ? w.theme : 'all';
}

function getTheme(id) {
  return THEMES[id];
}

// Countdown
function daysToExam() {
  const exam = new Date('2026-06-01T09:00:00');
  const now = new Date();
  const diffMs = exam - now;
  if (diffMs <= 0) return { days: 0, hours: 0, label: 'I dag!' };
  const days = Math.floor(diffMs / (1000 * 60 * 60 * 24));
  const hours = Math.floor((diffMs / (1000 * 60 * 60)) % 24);
  return { days, hours, label: days === 0 ? `${hours}t` : days === 1 ? '1 dag' : `${days} dager` };
}

function getFastTrack(id) {
  return FASTTRACK.find(m => m.id === id);
}

window.SMF = window.SMF || {};
SMF.COURSE = COURSE;
SMF.WEEKS = WEEKS;
SMF.FASTTRACK = FASTTRACK;
SMF.getFastTrack = getFastTrack;
SMF.THEMES = THEMES;
SMF.THEME_COLORS = THEME_COLORS;
SMF.themeOf = themeOf;
SMF.getTheme = getTheme;
SMF.daysToExam = daysToExam;
