-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.js
More file actions
91 lines (77 loc) · 3 KB
/
main.js
File metadata and controls
91 lines (77 loc) · 3 KB
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
function isNumeric(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
}
// Decode block
var rt = {};
rt['%E0']='%D0%B0';rt['%E1']='%D0%B1';rt['%E2']='%D0%B2';rt['%E3']='%D0%B3';rt['%E4']='%D0%B4';
rt['%E5']='%D0%B5';rt['%B8']='%D1%91';rt['%E6']='%D0%B6';rt['%E7']='%D0%B7';rt['%E8']='%D0%B8';
rt['%E9']='%D0%B9';rt['%EA']='%D0%BA';rt['%EB']='%D0%BB';rt['%EC']='%D0%BC';rt['%ED']='%D0%BD';
rt['%EE']='%D0%BE';rt['%EF']='%D0%BF';rt['%F0']='%D1%80';rt['%F1']='%D1%81';rt['%F2']='%D1%82';
rt['%F3']='%D1%83';rt['%F4']='%D1%84';rt['%F5']='%D1%85';rt['%F6']='%D1%86';rt['%F7']='%D1%87';
rt['%F8']='%D1%88';rt['%F9']='%D1%89';rt['%FC']='%D1%8C';rt['%FB']='%D1%8B';rt['%FA']='%D1%8A';
rt['%FD']='%D1%8D';rt['%FE']='%D1%8E';rt['%FF']='%D1%8F';rt['%C0']='%D0%90';rt['%C1']='%D0%91';
rt['%C2']='%D0%92';rt['%C3']='%D0%93';rt['%C4']='%D0%94';rt['%C5']='%D0%95';rt['%A8']='%D0%81';
rt['%C6']='%D0%96';rt['%C7']='%D0%97';rt['%C8']='%D0%98';rt['%C9']='%D0%99';rt['%CA']='%D0%9A';
rt['%CB']='%D0%9B';rt['%CC']='%D0%9C';rt['%CD']='%D0%9D';rt['%CE']='%D0%9E';rt['%CF']='%D0%9F';
rt['%D0']='%D0%A0';rt['%D1']='%D0%A1';rt['%D2']='%D0%A2';rt['%D3']='%D0%A3';rt['%D4']='%D0%A4';
rt['%D5']='%D0%A5';rt['%D6']='%D0%A6';rt['%D7']='%D0%A7';rt['%D8']='%D0%A8';rt['%D9']='%D0%A9';
rt['%DC']='%D0%AC';rt['%DB']='%D0%AB';rt['%DA']='%D0%AA';rt['%DD']='%D0%AD';rt['%DE']='%D0%AE';
rt['%DF']='%D0%AF';
function convert_from_cp1251(str) {
var ret='';
var l=str.length;
var i=0;
while (i<l) {
var f=0;
for (keyVar in rt) {
if (str.substring(i,i+3)==keyVar) {ret+=rt[keyVar];i+=3;f=1;}
}
if (!f) {ret+=str.substring(i,i+1);i++;}
}
try {ret=decodeURIComponent((ret + '').replace(/\+/g, '%20'));}
catch (e) {}
return ret;
}
// Decode off
var mass = [];
var unzipOptions = {};
var get = unzipRequest(location.search.slice(1));
function unzipRequest(str) {
function unzipHeader(header) {
header = header.split(',');
for (var i = 0; i < header.length; i++) {
header[i] = header[i].split(':');
/* check and transformation types */
if (isNumeric(header[i][1])) {header[i][1] = Number(header[i][1])}
else if (header[i][1] === 'true') {header[i][1] = true}
else if (header[i][1] === 'false') {header[i][1] = false};
unzipOptions[header[i][0]] = header[i][1];
};
};
function unzipPhrase(phrase) {
if (phrase.search('_') >= 0) {
phrase = phrase.replace(/_/g, ' ');
};
if (phrase.search('`') >= 0) {
phrase = phrase.replace(/`/g, '\'');
};
if (phrase.search('%') >= 0) {
if (convert_from_cp1251(phrase).search('%') < 0) {
phrase = convert_from_cp1251(phrase);
} else {
phrase = unescape(phrase).replace(/&#\d+;/ig, ''); //cleaning from trash-symbols. Delete for debug. TODO: rebase in client's side.
};
}
return phrase;
};
if (str[0] == '{') {
unzipHeader(str.slice(1, str.search('}')));
str = str.slice(str.search('}')+1);
};
str = str.split('|');
for (var i = 0; i < str.length; i++) {
str[i] = str[i].split(':');
mass.push({text: unzipPhrase(str[i][0]), weight: Number(str[i][1])});
};
return str;
};