<!DOCTYPE html>

<html lang="no">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Gale Ordtak</title>

    <style>

        body {

            font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;

            background-color: #2b2d42;

            color: #edf2f4;

            display: flex;

            flex-direction: column;

            align-items: center;

            justify-content: center;

            min-height: 100vh;

            margin: 0;

            padding: 20px;

            box-sizing: border-box;

        }

        #wrapper {

            max-width: 700px;

            width: 100%;

            display: flex;

            flex-direction: column;

            align-items: center;

        }

        h1 {

            font-size: 1.1rem;

            color: #8d99ae;

            text-transform: uppercase;

            letter-spacing: 2px;

            margin-bottom: 40px;

            text-align: center;

            font-weight: 600;

        }

        .snakkeboble {

            background-color: #edf2f4;

            color: #2b2d42;

            padding: 50px 40px;

            border-radius: 24px;

            position: relative;

            box-shadow: 0 15px 30px rgba(0,0,0,0.2);

            margin-bottom: 60px;

            width: 100%;

            box-sizing: border-box;

        }

        .snakkeboble::after {

            content: '';

            position: absolute;

            bottom: -25px;

            left: 50px;

            border-width: 25px 25px 0 0;

            border-style: solid;

            border-color: #edf2f4 transparent transparent transparent;

        }

        #resultat {

            font-size: 2.2rem;

            font-weight: 800;

            line-height: 1.3;

            margin: 0 0 30px 0;

            text-align: left;

        }

        #kilde {

            font-size: 1rem;

            color: #777;

            font-style: italic;

            text-align: right;

            border-top: 2px solid #dde3e8;

            padding-top: 15px;

            margin: 0;

        }

        button {

            background-color: #ef233c;

            color: white;

            border: none;

            padding: 18px 40px;

            font-size: 1.2rem;

            font-weight: bold;

            border-radius: 50px;

            cursor: pointer;

            box-shadow: 0 8px 20px rgba(239, 35, 60, 0.3);

            transition: all 0.2s ease;

        }

        button:hover {

            background-color: #d90429;

            transform: translateY(-3px);

            box-shadow: 0 12px 25px rgba(239, 35, 60, 0.4);

        }

        button:active {

            transform: translateY(1px);

        }

    </style>

</head>

<body>

    <div id="wrapper">

        <h1>Dagens (noe forvirrede) visdomsord</h1>

       

        <div class="snakkeboble">

            <p id="resultat">Laster inn livsvisdom...</p>

            <p id="kilde">- Venter på kilde</p>

        </div>

        <button onclick="genererOrdtak()">Generer nytt ordtak</button>

    </div>

    <script>

        // Tabell 1: Starten (200 subjekter)

        const starter = [

            // De første 100

            "Tomme tønner", "Brent barn", "En blind høne", "Gammel kjærlighet",

            "Små gryter", "Krake", "Hastverk", "Morgenstund", "Nød", "Eplet",

            "En god latter", "Rom", "Blod", "Sult", "Kjærlighet", "Like barn",

            "Lediggang", "Veien til helvete", "En fugl i hånden", "Den siste dråpen",

            "Gode råd", "Hovmod", "Alderdommen", "Et eple om dagen", "Ærlighet",

            "Taushet", "Forbuden frukt", "Øvelse", "Et smil", "Sannheten",

            "Jommen", "Nissen", "Katta", "Fanden", "Mye skrik",

            "En svale", "Smaken", "Skaden", "Tiden", "Utseendet",

            "Mye", "Gresset", "Penger", "Den enes død", "Kjerringa",

            "Troll", "Øyet", "Skomakerens barn", "Bukken", "Gammel vane",

            "En god nabo", "Den som sover", "Kunnskap", "Fremtiden", "Fortiden",

            "Svigermor", "Den kloke", "Dumheten", "Lykken", "Ulykken",

            "Ryktet", "Vinden", "Havet", "En trofast hund", "Sjefen",

            "Politikeren", "Kongen", "Helten", "Skurken", "Vårherre",

            "Djevelen", "Et rent hjerte", "Den som ler sist", "Gammel moro", "Nye koster",

            "Tomme løfter", "En krone spart", "Tørsten", "En god bok", "Et skikkelig måltid",

            "Vennskap", "Fienden", "Et vennlig ord", "Sola", "Månen",

            "Stjernene i natt", "Regnet", "Snøen", "Isen", "Våren",

            "Vinteren", "Høsten", "Sommeren", "Ja, vi elsker", "Nordmannen",

            "Ibsen", "Den som venter", "Livet", "Håpet", "Katta i sekken",

            // 100 nye tillegg

            "Kjært barn", "Løgnen", "Tålmodighet", "En god samvittighet", "Dårlig vær",

            "Mannen i gata", "Tomme ord", "Bygdedyret", "Skatteetaten", "Døden",

            "En gammel rev", "Hevnen", "Tilgivelsen", "Den som tier", "Små barn",

            "Et godt ord", "Sultne ulver", "Nordavinden", "Troll i ord", "Den blinde",

            "Mors mat", "Gammel ost", "En skitten løgn", "En dråpe i havet", "Prikken over i-en",

            "Nåla i høystakken", "Sauen", "Klær", "Gull og grønne skoger", "Tordenvær",

            "Dårlig samvittighet", "Ungdommen nå til dags", "En ekte nordmann", "Vett", "Forstanden",

            "Galskapen", "En vis mann", "Kjærlighetssorg", "Ekteskapet", "Skilsmissen",

            "Nabokjerringa", "Gjesten", "Kaviar", "Smulene", "Sjelen",

            "Kroppen", "Sykdom", "Helsen", "Vane", "Uvane",

            "Ulven", "Elgen", "Myggen", "Et loppebitt", "Bestefar",

            "Bestemor", "Livets høst", "Ungdommens kilde", "Et kyss", "Sjalusien",

            "Sorgen", "Smerte", "Fattigdom", "Rikdom", "Misunnelse",

            "En reddhare", "Fjellvettreglene", "Norsk tipping", "Politiet", "Klokkeren",

            "Oksen", "Fattigmann", "Rikmann", "En dåre", "Et vakkert ansikt",

            "Skatter og avgifter", "Flua", "De voksne", "Gleden", "En krone",

            "Latskap", "Stolthet", "Kaffe", "Presten", "Gud og hvermann",

            "En storm i vannglass", "Kong Salomo", "Jørgen Hattemaker", "Et halvt brød", "Fisken",

            "Speilet", "Bjørnen", "Grådighet", "Livets skole", "Gode venner"

        ];

        // Tabell 2: Slutten (200 handlinger - parallell med tabell 1)

        const slutter = [

            // De første 100

            "ramler mest.", "skyr ilden.", "finner også korn.", "ruster ikke.",

            "har også ører.", "søker make.", "er lastverk.", "har gull i munn.",

            "lærer naken kvinne å spinne.", "faller ikke langt fra stammen.",

            "forlenger livet.", "ble ikke bygget på én dag.", "er tykkere enn vann.",

            "er den beste kokk.", "gjør blind.", "leker best.", "er roten til alt ondt.",

            "er brolagt med gode forsetter.", "er bedre enn ti på taket.",

            "får begeret til å renne over.", "er dyre.", "står for fall.",

            "kommer ikke alene.", "holder doktoren borte.", "varer lengst.",

            "er gull.", "smaker best.", "gjør mester.", "koster ingenting.", "svir mest.",

            "sa jeg smør.", "følger med på lasset.", "har ni liv.", "leser Bibelen.", "gir lite ull.",

            "gjør ingen sommer.", "er som baken.", "er allerede skjedd.", "leger alle sår.", "bedrar ofte.",

            "vil alltid ha mer.", "er alltid grønnere på den andre siden.", "vokser ikke på trær.", "er den annens brød.", "går mot strømmen.",

            "sprekker i solen.", "blir sjelden mett før magen.", "går oftest barbent.", "passer best på havresekken.", "er vond å vende.",

            "er bedre enn en bror langt borte.", "synder ikke.", "er makt.", "er et ubeskrevet blad.", "innhenter deg alltid.",

            "vet alltid best.", "gir seg mens leken er god.", "kjenner ingen grenser.", "står den kjekke bi.", "kommer sjelden alene.",

            "går foran sveltet.", "snur kappen etter vinden.", "gir og tar.", "går sine egne veier.", "har alltid siste ord.",

            "lover mer enn han kan holde.", "befaler over alt.", "får jenta til slutt.", "får som fortjent.", "ser alt vi gjør.",

            "skjuler seg i detaljene.", "banker i brystet.", "ler best.", "blir som ny.", "feier best.",

            "koster flesk.", "er en krone tjent.", "slukkes best med øl.", "er en trofast venn.", "gjør magen mett.",

            "krever pleie.", "lurer i sivet.", "varmer i kulda.", "skinner for alle.", "lyser i mørket.",

            "viser vei i natten.", "vasker bort alle spor.", "dekker over skitten.", "smelter om våren.", "vekker liv i alt.",

            "legger landet øde.", "farger skogen rød.", "varer dessverre ikke evig.", "dette landet som det stiger frem.", "er født med ski på beina.",

            "har alltid rett.", "får sjelden noe godt.", "er en reise, ikke et mål.", "er lysegrønt.", "klorer seg fast.",

            // 100 nye tillegg

            "har mange navn.", "har korte bein.", "er en dyd.", "er den beste hodepute.", "finnes ikke, bare dårlige klær.",

            "får alltid regninga.", "fyller ingen mager.", "sover aldri.", "glemmer ingenting.", "er den store utjevneren.",

            "går ikke i saksen to ganger.", "er søt.", "sitter langt inne.", "samtykker.", "gir store bekymringer.",

            "finner et godt sted.", "jakter best.", "biter i kinnene.", "blir det ofte.", "leder den blinde.",

            "smaker alltid best.", "lukter lang vei.", "vaskes sjelden ren.", "utgjør ingen forskjell.", "gjør verket komplett.",

            "er vanskelig å finne.", "følger alltid flokken.", "skaper folk.", "finnes bare i eventyrene.", "renser luften.",

            "gnager i sjelen.", "eier ikke respekt.", "klager alltid på været.", "kan ikke kjøpes for penger.", "kommer med alderen.",

            "tar overhånd.", "tier når en dåre taler.", "går over med tiden.", "er et lotteri.", "er en dyr affære.",

            "følger med i kikkerten.", "er som fisken, stinker etter tre dager.", "er forbeholdt eliten.", "er også brød.", "finner fred til slutt.",

            "forfaller med årene.", "tapper deg for krefter.", "er din største rikdom.", "blir til natur.", "sprer seg som ugress.",

            "hyler mot månen.", "er skogens konge.", "stikker hardest om kvelden.", "merkes knapt.", "sover i stolen.",

            "strikker i ett kjør.", "kommer brått på.", "er en myte.", "kan si mer enn tusen ord.", "ødelegger alt.",

            "er kjærlighetens pris.", "er midlertidig.", "er ingen skam.", "kjøper ikke lykke.", "er en farlig gift.",

            "hopper ved minste lyd.", "bør følges av alle.", "gir drømmen liv.", "banker alltid på døren.", "ringer med bjellene.",

            "ser rødt.", "må snu på skillingen.", "teller pengene sine.", "tror han vet alt.", "åpner mange dører.",

            "øker hvert år.", "irriterer vettet av folk.", "skjønner ingenting.", "deles best med andre.", "er fortjent.",

            "lønner seg sjelden.", "står for fall.", "er livets vann.", "preker for døve ører.", "vet hvordan det går.",

            "blåser fort over.", "fikk sin dronning.", "må nøye seg med smulene.", "er bedre enn ingenting.", "stinker fra hodet.",

            "lyver aldri.", "sover vintersøvnen.", "blinder vettet.", "lærer deg leksa.", "er gull verdt."

        ];

        // Tabell 3: Attributeringer / Kilder (Utvidet til nesten 50)

        const kilder = [

            "- Nesten et ordtak",

            "- Muligens fra et dikt",

            "- Sitat fra noen, sikkert",

            "- Gammelt jungelord",

            "- Norsk folketro, antakeligvis",

            "- Hørt sent på puben",

            "- Stod på en slitt kaffekopp",

            "- Sagt av en sliten småbarnsfar",

            "- Fra en ukjent og forvirret filosof",

            "- Visdom fra internett",

            "- Stjålet fra en brodert pute",

            "- Fritt etter hukommelsen",

            "- Ukjent opphavsmann (heldigvis)",

            "- Sagt av en gretten gammel gubbe",

            "- Stjålet fra et julekort",

            "- Utdrag fra en veldig tvilsom russesang",

            "- Skrevet på dodøren på en brun pub",

            "- Fra en ukjent Tinder-profil",

            "- Sitat fra en selverklært livscoach",

            "- Fra en passiv-aggressiv lapp i borettslaget",

            "- Generert av en ganske sliten AI",

            "- Hørt på bussen til Tveita",

            "- Skrevet i stein (og pusset bort igjen)",

            "- En onkel på Facebook mente dette",

            "- Hvisket i vinden",

            "- Fra hytteboka til familien Hansen",

            "- Norsk ordtak fra året 2077",

            "- Et eldgammelt, og feil, viking-tips",

            "- Fra en glemt revy-vise",

            "- Garantert feilsitert fra Ibsen",

            "- Fra en veldig sær barnebok",

            "- Sagt under en usedvanlig klein julebord-tale",

            "- Et foreldet kjerringråd",

            "- Sitat fra en stresset overlege",

            "- Hørt i heiskøen i Hemsedal",

            "- Dyp visdom rett fra kommentarfeltet",

            "- Fra baksiden av en melkekartong i 1998",

            "- Funnet på en post-it lapp under sofaen",

            "- Sitat fra en veldig skuffet lærer",

            "- Fra et foreldremøte som sporet helt av",

            "- Ord for natten (og dagen derpå)",

            "- Sagt av noen som glemte hva de snakket om",

            "- Fra et utdrikningslag som gikk galt",

            "- Hentet fra det mørkeste dypet av internett",

            "- Fra en klam motivasjonsplakat på et kontor",

            "- Fra visdommens uoppdagede kilde"

        ];

        // "Minne"-lister (Timeout-funksjon)

        let brukteStarter = [];

        let brukteSlutter = [];

        const maxMinne = 30; // Husker nå de 30 siste trekkene

        function genererOrdtak() {

            let tilfeldigStart;

            let tilfeldigSlutt;

            // 1. Trekk en start som IKKE finnes i minnet

            do {

                tilfeldigStart = Math.floor(Math.random() * starter.length);

            } while (brukteStarter.includes(tilfeldigStart));

            // 2. Trekk en slutt som IKKE finnes i minnet, og som IKKE utgjør et korrekt ordtak

            do {

                tilfeldigSlutt = Math.floor(Math.random() * slutter.length);

            } while (brukteSlutter.includes(tilfeldigSlutt) || tilfeldigStart === tilfeldigSlutt);

            // 3. Legg de nye tallene til i minnet

            brukteStarter.push(tilfeldigStart);

            brukteSlutter.push(tilfeldigSlutt);

            // 4. Hvis minnet blir større enn maxMinne, slett det eldste elementet

            if (brukteStarter.length > maxMinne) brukteStarter.shift();

            if (brukteSlutter.length > maxMinne) brukteSlutter.shift();

            // Trekk en tilfeldig kilde/attributering

            const tilfeldigKilde = Math.floor(Math.random() * kilder.length);

            // Sett sammen tekstene

            const nyttOrdtak = starter[tilfeldigStart] + " " + slutter[tilfeldigSlutt];

            const nyKilde = kilder[tilfeldigKilde];

           

            // Oppdater HTML

            document.getElementById("resultat").innerText = nyttOrdtak;

            document.getElementById("kilde").innerText = nyKilde;

        }

        // Kjør funksjonen automatisk ved oppstart

        genererOrdtak();

    </script>

</body>

</html>