-
Notifications
You must be signed in to change notification settings - Fork 0
/
scripts.js
73 lines (57 loc) · 2.08 KB
/
scripts.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
var audios = {}; //stores audio objects so you don't have to load them again.
$(document).ready(function() {
var goodWords = readWordsFromFilepath ("https://raw.githubusercontent.com/kelukelugames/pronounceenglishwords/master/goodwords.txt");
goodWords = shuffleArray(goodWords);
var badWords = readWordsFromFilepath("https://raw.githubusercontent.com/kelukelugames/pronounceenglishwords/master/badwords.txt");
var table = document.getElementById("wordsTable");
var header = table.createTHead();
var firstRow = header.insertRow(0);
var firstRowCell1 = firstRow.insertCell(0);
var firstRowCell2 = firstRow.insertCell(1);
firstRowCell1.innerHTML = "Finished " + "<img src='soundicon.png'>";
firstRowCell2.innerHTML = "In Progress " + "<img src='soundicon.png'>";
var maxArrayLength = Math.max(goodWords.length, badWords.length)
for (var i = 0; i < maxArrayLength; i++) {
var row = table.insertRow(i + 1);
var cell1 = row.insertCell(0);
cell1.classList.add("good");
var cell2 = row.insertCell(1);
cell2.classList.add("bad");
cell1.innerHTML = (i < goodWords.length) ? createHTML(goodWords[i]) : "";
cell2.innerHTML = (i < badWords.length) ? createHTML(badWords[i]) : "";
}
});
function createHTML(word) {
return "<div " + "onClick='playSound(\"" + word + "\")'>" +
word +
"</div>";
}
function playSound(word) {
if (audios.hasOwnProperty(word)) {
audios[word].play();
} else {
var link = getAudioLink(word);
var audio = new Audio(link);
audio.play();
audios[words] = audio;
}
}
function getAudioLink(word) {
return "https://ssl.gstatic.com/dictionary/static/sounds/de/0/" + word + ".mp3";
}
function readWordsFromFilepath(filepath) {
var request = new XMLHttpRequest();
request.open("GET", filepath, false);
request.send(null);
var returnValue = request.responseText.trim().split("\n");
return returnValue;
}
function shuffleArray(words) {
for (var i = 1; i < words.length; i++) {
var temp = words[i];
var swapIndex = Math.floor(Math.random() * (i + 1));
words[i] = words[swapIndex];
words[swapIndex] = temp;
}
return words;
}