-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcw-trainer.html
133 lines (133 loc) · 8.16 KB
/
cw-trainer.html
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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1, interactive-widget=resizes-content"/>
<title>CW Trainer</title>
<link rel="manifest" href="manifest.json" />
<link rel="icon" type="image/x-icon" href="cw-trainer.ico">
<script src="morseplayer.js"></script>
<script src="cw-trainer.js"></script>
<link rel="stylesheet" href="cw-trainer.css">
</head>
<body>
<div id="zonetrainer">
<div id="toaster"></div>
<div class="overlay" id="overlayloading">
<div id="loadingzone">Loading...</div>
</div>
<div id="csmorse" class="overlay">
<span id="morseclosebtn" class="bulle" title="close">X</span>
<div id="morsecscnt"></div>
</div>
<div id="zonemain">
<table>
<tr>
<td colspan="2">
<h2 id="cwtitle">CW Trainer</h2><a href="#" id="selfdl" title="save CW Trainer for offline use">💾</a>
</td>
<td>
<label for="sellesson">Lesson : </label>
<input type="button" id="prevlesson" value="<"><select id="sellesson">
<option value='1'>1 - K, M</option><option value='2'>2 - U</option><option value='3'>3 - R</option><option value='4'>4 - E</option><option value='5'>5 - S</option><option value='6'>6 - N</option><option value='7'>7 - A</option><option value='8'>8 - P</option><option value='9'>9 - T</option><option value='10'>10 - L</option><option value='11'>11 - W</option><option value='12'>12 - I</option><option value='13'>13 - .</option><option value='14'>14 - J</option><option value='15'>15 - Z</option><option value='16'>16 - =</option><option value='17'>17 - F</option><option value='18'>18 - O</option><option value='19'>19 - Y</option><option value='20'>20 - ,</option><option value='21'>21 - V</option><option value='22'>22 - G</option><option value='23'>23 - 5</option><option value='24'>24 - /</option><option value='25'>25 - Q</option><option value='26'>26 - 9</option><option value='27'>27 - 2</option><option value='28'>28 - H</option><option value='29'>29 - 3</option><option value='30'>30 - 8</option><option value='31'>31 - B</option><option value='32'>32 - ?</option><option value='33'>33 - 4</option><option value='34'>34 - 7</option><option value='35'>35 - C</option><option value='36'>36 - 1</option><option value='37'>37 - D</option><option value='38'>38 - 6</option><option value='39'>39 - 0</option><option value='40'>40 - X</option>
<option value='41'>Letters</option>
<option value='42'>Numbers</option>
<option value='43'>Symbols</option>
<option value='44'>Custom Set</option>
<option value='45'>Prosigns</option>
<option value='46'>QSO</option>
<option value='47'>Free Text</option>
</select><input type="button" id="nxtlesson" value=">">
</td>
</tr>
</table>
<table class="zonecontrols" cellspacing="0">
<tr>
<td>
<label for="selwpm" title="Word Per Minute">WPM</label>
</td>
<td class="rightborder">
<input type="number" id="selwpm" title="Word Per Minute">
</td>
<td>
<div id="chkweightlastletterswrapper" class="checkbox-wrapper" title="more likely to hear letters of the last 3 lessons">
<input class="switch" type="checkbox" id="chkweightlastletters">
<label for="chkweightlastletters">
<span class="switch-x-toggletext" style="width: 170px;">
<span class="switch-x-unchecked"><span class="switch-x-hiddenlabel">Unchecked: </span>last letters emphasis</span>
<span class="switch-x-checked"><span class="switch-x-hiddenlabel">Checked: </span>last letters emphasis</span>
</span>
</label>
</div>
<div id="speechvoices" title="voice used for spelling the played letter"><label>voice : </label><select id="selvoices"></select></div>
</td>
</tr>
<tr>
<td>
<label for="seleffwpm" title="Effective Word Per Minute (Farnsworth)">Eff. WPM</label>
</td>
<td class="rightborder">
<input type="number" id="seleffwpm" title="Effective Word Per Minute (Farnsworth)" class="small">
</td>
<td>
<div id="chkfreelistenwrapper" class="checkbox-wrapper" title=""no stress mode" : text entered will simply be played">
<input class="switch" type="checkbox" id="chkfreelisten">
<label for="chkfreelisten">
<span class="switch-x-toggletext" style="width: 130px;">
<span class="switch-x-unchecked"><span class="switch-x-hiddenlabel">Unchecked: </span>free listen mode</span>
<span class="switch-x-checked"><span class="switch-x-hiddenlabel">Checked: </span>free listen mode</span>
</span>
</label>
</div>
<div id="chkwrandwrapper" class="checkbox-wrapper" title="wrong symbols will have more probability to occur (same if you take too much time to answer !)">
<input class="switch" type="checkbox" id="chkwrand">
<label for="chkwrand">
<span class="switch-x-toggletext" style="width: 160px;">
<span class="switch-x-unchecked"><span class="switch-x-hiddenlabel">Unchecked: </span>focus on mistakes</span>
<span class="switch-x-checked"><span class="switch-x-hiddenlabel">Checked: </span>focus on mistakes</span>
</span>
</label>
</div>
</td>
</tr>
</table>
<div id="zonemodes">
<a id="cheatsheet" href="#"><span class="bulle" title="display morse code">?</span>morse cheatsheet</a>
<a href="#" name="modes" data-mode="koch" title="Koch mode : choose a length and a number of groups then try to write as many symbols as possible">Koch</a>
<a href="#" name="modes" data-mode="simple" title="simple mode : just type the symbol you heard">Simple</a>
<a href="#" name="modes" data-mode="learn" title="learn mode : type the letter to hear it">Learn</a>
</div>
<div id="zonefree" style="display:none">
<input type="text" id="iptfree" maxlength="1" autocomplete="off" spellcheck="false" autocorrect="off">
<div id="zoneresultfree"></div>
</div>
<div id="zonekoch">
<label for="selews" title="extra space between words (seconds)">Extra word space : </label>
<input type="number" step="0.1" id="selews" title="extra space between words (seconds)"><small title="seconds"> (s)</small>
<div id="zonewords">
<label for="grplen">Words length : </label>
<select id="grplen">
<option value="-1">random</option><option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option><option value="6">6</option><option value="7">7</option><option value="8">8</option>
</select>
<label for="groupsnb">Groups : </label>
<input type="number" id="groupsnb" min="1" max="250">
</div>
<morse-player id="cwplayer" downloadbutton="true"></morse-player>
<textarea id="cwtext" rows="4" cols="43" autocomplete="off" spellcheck="false" autocorrect="off"></textarea><br>
<input type="button" value="submit" id="cwsbm">
<span id="zonedkb"><input type="checkbox" id="disablekb"><label for="disablekb">disable keyboard</label></span><br>
</div>
<div id="zonelearn" style="display:none">
<input type="text" id="iptlearn" maxlength="1" autocomplete="off" spellcheck="false" autocorrect="off">
<div id="iptlearnmorse"></div>
</div>
</div>
<div id="zoneresult" style="display:none;">
<div id="zonerestext"></div>
<input type="button" value="retry" id="retrybtn">
<input type="button" value="next lesson !" id="retrynxt">
</div>
</div>
<div id="keyboard"></div>
</body>
</html>