-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript3.js
101 lines (84 loc) · 3.35 KB
/
script3.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
// jshint esversion:6
// Løsningsforslag - Eksamen H17 - Tom Jarle Christiansen V18
// Globale variabler
const passordliste = ['Passord001', 'Passord002', 'Passord003', 'Passord004', 'Passord005', 'Passord006', 'Passord007', 'Passord008', 'Passord009', 'Passord010'];
const stemmer = [0, 0, 0 ,0 ,0 ,0 ,0 ,0 ,0];
const stemmer2013 = [[4.3, 0], [15.6, 0], [28.2, 0], [6.7, 0], [2.8, 0], [3.8, 0], [4.2, 0], [23.0, 0], [5.0, 0], [3.7, 0]];
const partier = ['PP', 'FrP', 'Høyre', 'KrF', 'Venstre', 'AP', 'MDG', 'SV', 'Rødt'];
// Leser inn elementer
const regBtn = document.querySelector('#registreringsKnapp');
const stemmeDiv = document.querySelector('#stemme');
const passord = document.querySelector('#passordElement');
const opptellingBtn = document.querySelector('#opptellingsKnapp');
// Lyttere
regBtn.addEventListener('click', sjekkPassord);
opptellingBtn.addEventListener('click', opptelling);
// Funksjoner
function sjekkPassord(){
if (passordliste.indexOf(passord.value) != -1) {
console.log('Success!');
passordliste.splice(passordliste.indexOf(passord.value), 1);
regBtn.disabled = true;
lagStemmeBoks();
}
else {
console.log('Feil passord!');
passord.value = '';
}
}
// Lager select-boks for stemming.
function lagStemmeBoks() {
let partierSelector = `
<h2>Vennligst avgi din stemme</h2>
<select id="valgSelector">
`;
for (const parti of partier) {
partierSelector += `
<option value="${partier.indexOf(parti)}">${parti}</option>
`;
}
partierSelector += `
</select>
<input id="stemmeKnapp" type="button" value="Stem!">
`;
stemmeDiv.innerHTML = partierSelector;
const stemmeBtn = document.querySelector('#stemmeKnapp');
stemmeBtn.addEventListener('click', stemming);
}
function stemming() {
const valgboks = document.querySelector('#valgSelector');
const stemmeIndeks = valgboks.options[valgboks.selectedIndex].value;
stemmeDiv.innerHTML = `
<br>
<h1>Ønsker du virkelig å stemme på ${partier[stemmeIndeks]}?</h1>
<input type="button" id="bekreftBtn" value="Bekreft">
<input type="button" id="avbrytBtn" value="Avbryt">
`;
const bekreftKnapp = document.querySelector('#bekreftBtn');
const avbrytKnapp = document.querySelector('#avbrytBtn');
// Lar bruker stemme på nytt ved avbrudd.
avbrytKnapp.addEventListener('click', lagStemmeBoks);
// Anonym funksjon som registrerer stemmen når bruker bekrefter
bekreftKnapp.addEventListener('click', function(){
console.log(stemmeIndeks);
stemmer[stemmeIndeks] += 1;
stemmeDiv.innerHTML = '';
regBtn.disabled = false;
passord.value = '';
});
}
function opptelling(){
let sum = 0;
let tekst = "";
// Beregner totalt antall stemmer for å regne ut prosent.
for (const stemme of stemmer) {
sum += stemme;
}
// Generer opptellingsutskriften og oppdaterer tabellen
for (const parti of partier) {
indeks = partier.indexOf(parti);
stemmer2013[indeks][1] = (stemmer[indeks] / sum) * 100;
tekst += `${parti}: ${(stemmer[indeks]/sum) * 100} % - (Forskjell fra forrige valg er ${stemmer2013[indeks][1] - stemmer2013[indeks][0]} %)<br>`;
}
stemmeDiv.innerHTML = tekst;
}