-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript.js
95 lines (91 loc) · 1.81 KB
/
script.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
let alphabet = [
"A",
"B",
"C",
"D",
"E",
"F",
"G",
"H",
"I",
"J",
"K",
"L",
"M",
"N",
"O",
"P",
"Q",
"R",
"S",
"T",
"U",
"V",
"W",
"X",
"Y",
"Z"
];
let input,
output = "";
const inputField = document.getElementById("inputField");
const outputField = document.getElementById("outputField");
function encode() {
input = inputField.value;
input = input.split("");
output = "";
input.forEach(encodeForeach);
outputField.value = output;
}
function encodeForeach(item, index) {
let isLowercase = false;
if (item === item.toLowerCase()) {
isLowercase = true;
}
let position = alphabet.indexOf(item.toUpperCase());
if (position != -1) {
position += 13;
if (position >= alphabet.length) {
position -= alphabet.length;
}
item = alphabet[position];
}
if (isLowercase) {
item = item.toLowerCase();
}
output += item;
}
const selectField = function(element) {
element.select();
element.setSelectionRange(0, 99999);
};
const deselectField = function() {
document.activeElement.selectionStart = document.activeElement.selectionEnd;
};
const copyValue = function(element) {
// copy to clipboard
selectField(outputField);
document.execCommand("copy");
deselectField();
showTooltip(element, "Copied!");
};
const switchFields = function() {
// switch output and input text
input = inputField.value;
output = outputField.value;
inputField.value = output;
outputField.value = input;
};
const cleanFields = function() {
// wipe all field values
inputField.value = "";
outputField.value = "";
};
const showTooltip = function(element, message) {
// shows the tooltip
element.setAttribute("data-tooltip", message);
};
const hideTooltip = function(element) {
// hides the tooltip
element.removeAttribute("data-tooltip");
};