File size: 2,029 Bytes
4a08ba7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
/* Grammar Keyboard */

// Parse the keyboard text file for the selected language (uses the same XMLHttpRequest function in translate03.js)
async function get_grammar(keyboard_file) {

  if (!keyboard_file) { // ensure file exists
    alert("Error: No file is listed for the language");
    return;
  }

  var chars = await get(keyboard_file);
  chars = chars.split(",");

  return chars;
}


var orthography = [];

// Make keyboard depending on selected/uploaded grammar
async function make_keyboard(language_keyboard) {

  document.getElementById("load").style.display = "none";

  orthography = await get_grammar(language_keyboard);
  document.getElementById("keyboard").style.display = "inline-block";
  var keyboard = document.getElementById("keyboard");

  for (letter in orthography) {

    var key = document.createElement("div");
    key.id = letter;
    key.innerHTML = orthography[letter];
    key.onclick = temp_keyboard;
    key.className = "kb";

    keyboard.appendChild(key);
    }

    document.getElementById("msg1").style.display = "flex";
  }


// Update input textarea upon letter button clicks (within user interface)
function temp_keyboard() {
  letter = this.id;
  wchar = orthography[letter];
  //document.getElementById("in1").value = document.getElementById("in1").value + wchar;
  my_textarea = document.getElementById("in1");
  my_value = wchar;

  // Add text at cursor position (support for most but not all browsers - Chrome is recommended)
  if (my_textarea.selectionStart || my_textarea.selectionStart == '0') {
    var start = my_textarea.selectionStart;
    var end = my_textarea.selectionEnd;
    my_textarea.value = my_textarea.value.substring(0, start)
      + my_value
      + my_textarea.value.substring(end, my_textarea.value.length);
    my_textarea.selectionStart = start + my_value.length;
    my_textarea.selectionEnd = start + my_value.length;
  }
  else {
    my_textarea.value += my_value; // simply adds character to end of text if cursor position feature is not supported
  }
}