tr8n 3.2.2 → 3.2.3
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +1 -1
- data/lib/tr8n/version.rb +1 -1
- data/tr8n.gemspec +2 -2
- metadata +41 -117
- data/app/javascript/compile.rb +0 -37
- data/app/javascript/compile.sh +0 -1
- data/app/javascript/compressors/google/COPYING +0 -202
- data/app/javascript/compressors/google/README +0 -292
- data/app/javascript/compressors/google/compiler.jar +0 -0
- data/app/javascript/config.yml +0 -66
- data/app/javascript/src/base.js +0 -35
- data/app/javascript/src/effects.js +0 -67
- data/app/javascript/src/ext/inflector.js +0 -309
- data/app/javascript/src/ext/jsDraw2D.js +0 -24
- data/app/javascript/src/ext/keyboard_1_36.js +0 -1214
- data/app/javascript/src/ext/keyboard_1_44.js +0 -1735
- data/app/javascript/src/ext/keyboard_1_49.js +0 -1796
- data/app/javascript/src/ext/md5.js +0 -209
- data/app/javascript/src/ext/shortcut.js +0 -223
- data/app/javascript/src/init.js +0 -47
- data/app/javascript/src/language.js +0 -38
- data/app/javascript/src/logger.js +0 -203
- data/app/javascript/src/prototype/effects.js +0 -65
- data/app/javascript/src/proxy.js +0 -254
- data/app/javascript/src/rules/date_rule.js +0 -37
- data/app/javascript/src/rules/gender_list_rule.js +0 -37
- data/app/javascript/src/rules/gender_rule.js +0 -87
- data/app/javascript/src/rules/language_rule.js +0 -55
- data/app/javascript/src/rules/list_rule.js +0 -37
- data/app/javascript/src/rules/numeric_rule.js +0 -95
- data/app/javascript/src/tml/label.js +0 -60
- data/app/javascript/src/tml/token.js +0 -107
- data/app/javascript/src/tokens/data_token.js +0 -45
- data/app/javascript/src/tokens/decoration_token.js +0 -82
- data/app/javascript/src/tokens/token.js +0 -121
- data/app/javascript/src/tokens/transform_token.js +0 -106
- data/app/javascript/src/translation_key.js +0 -183
- data/app/javascript/src/ui/language_case_manager.js +0 -155
- data/app/javascript/src/ui/language_selector.js +0 -126
- data/app/javascript/src/ui/lightbox.js +0 -72
- data/app/javascript/src/ui/translator.js +0 -257
- data/app/javascript/src/utils.js +0 -286
@@ -1,309 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
Copyright (c) 2010 Ryan Schuft (ryan.schuft@gmail.com)
|
3
|
-
|
4
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
5
|
-
of this software and associated documentation files (the "Software"), to deal
|
6
|
-
in the Software without restriction, including without limitation the rights
|
7
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
8
|
-
copies of the Software, and to permit persons to whom the Software is
|
9
|
-
furnished to do so, subject to the following conditions:
|
10
|
-
|
11
|
-
The above copyright notice and this permission notice shall be included in
|
12
|
-
all copies or substantial portions of the Software.
|
13
|
-
|
14
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
15
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
16
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
17
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
18
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
19
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
20
|
-
THE SOFTWARE.
|
21
|
-
*/
|
22
|
-
|
23
|
-
/*
|
24
|
-
This code is based in part on the work done in Ruby to support
|
25
|
-
infection as part of Ruby on Rails in the ActiveSupport's Inflector
|
26
|
-
and Inflections classes. It was initally ported to Javascript by
|
27
|
-
Ryan Schuft (ryan.schuft@gmail.com) in 2007.
|
28
|
-
|
29
|
-
The code is available at http://code.google.com/p/inflection-js/
|
30
|
-
|
31
|
-
The basic usage is:
|
32
|
-
1. Include this script on your web page.
|
33
|
-
2. Call functions on any String object in Javascript
|
34
|
-
|
35
|
-
Currently implemented functions:
|
36
|
-
|
37
|
-
String.pluralize(plural) == String
|
38
|
-
renders a singular English language noun into its plural form
|
39
|
-
normal results can be overridden by passing in an alternative
|
40
|
-
|
41
|
-
String.singularize(singular) == String
|
42
|
-
renders a plural English language noun into its singular form
|
43
|
-
normal results can be overridden by passing in an alterative
|
44
|
-
*/
|
45
|
-
|
46
|
-
/*
|
47
|
-
This sets up a container for some constants in its own namespace
|
48
|
-
We use the window (if available) to enable dynamic loading of this script
|
49
|
-
Window won't necessarily exist for non-browsers.
|
50
|
-
*/
|
51
|
-
if (window && !window.InflectionJS)
|
52
|
-
{
|
53
|
-
window.InflectionJS = null;
|
54
|
-
}
|
55
|
-
|
56
|
-
/*
|
57
|
-
This sets up some constants for later use
|
58
|
-
This should use the window namespace variable if available
|
59
|
-
*/
|
60
|
-
InflectionJS =
|
61
|
-
{
|
62
|
-
/*
|
63
|
-
This is a list of nouns that use the same form for both singular and plural.
|
64
|
-
This list should remain entirely in lower case to correctly match Strings.
|
65
|
-
*/
|
66
|
-
uncountable_words: [
|
67
|
-
'equipment', 'information', 'rice', 'money', 'species', 'series',
|
68
|
-
'fish', 'sheep', 'moose', 'deer', 'news'
|
69
|
-
],
|
70
|
-
|
71
|
-
/*
|
72
|
-
These rules translate from the singular form of a noun to its plural form.
|
73
|
-
*/
|
74
|
-
plural_rules: [
|
75
|
-
[new RegExp('(m)an$', 'gi'), '$1en'],
|
76
|
-
[new RegExp('(pe)rson$', 'gi'), '$1ople'],
|
77
|
-
[new RegExp('(child)$', 'gi'), '$1ren'],
|
78
|
-
[new RegExp('^(ox)$', 'gi'), '$1en'],
|
79
|
-
[new RegExp('(ax|test)is$', 'gi'), '$1es'],
|
80
|
-
[new RegExp('(octop|vir)us$', 'gi'), '$1i'],
|
81
|
-
[new RegExp('(alias|status)$', 'gi'), '$1es'],
|
82
|
-
[new RegExp('(bu)s$', 'gi'), '$1ses'],
|
83
|
-
[new RegExp('(buffal|tomat|potat)o$', 'gi'), '$1oes'],
|
84
|
-
[new RegExp('([ti])um$', 'gi'), '$1a'],
|
85
|
-
[new RegExp('sis$', 'gi'), 'ses'],
|
86
|
-
[new RegExp('(?:([^f])fe|([lr])f)$', 'gi'), '$1$2ves'],
|
87
|
-
[new RegExp('(hive)$', 'gi'), '$1s'],
|
88
|
-
[new RegExp('([^aeiouy]|qu)y$', 'gi'), '$1ies'],
|
89
|
-
[new RegExp('(x|ch|ss|sh)$', 'gi'), '$1es'],
|
90
|
-
[new RegExp('(matr|vert|ind)ix|ex$', 'gi'), '$1ices'],
|
91
|
-
[new RegExp('([m|l])ouse$', 'gi'), '$1ice'],
|
92
|
-
[new RegExp('(quiz)$', 'gi'), '$1zes'],
|
93
|
-
[new RegExp('s$', 'gi'), 's'],
|
94
|
-
[new RegExp('$', 'gi'), 's']
|
95
|
-
],
|
96
|
-
|
97
|
-
/*
|
98
|
-
These rules translate from the plural form of a noun to its singular form.
|
99
|
-
*/
|
100
|
-
singular_rules: [
|
101
|
-
[new RegExp('(m)en$', 'gi'), '$1an'],
|
102
|
-
[new RegExp('(pe)ople$', 'gi'), '$1rson'],
|
103
|
-
[new RegExp('(child)ren$', 'gi'), '$1'],
|
104
|
-
[new RegExp('([ti])a$', 'gi'), '$1um'],
|
105
|
-
[new RegExp('((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$','gi'), '$1$2sis'],
|
106
|
-
[new RegExp('(hive)s$', 'gi'), '$1'],
|
107
|
-
[new RegExp('(tive)s$', 'gi'), '$1'],
|
108
|
-
[new RegExp('(curve)s$', 'gi'), '$1'],
|
109
|
-
[new RegExp('([lr])ves$', 'gi'), '$1f'],
|
110
|
-
[new RegExp('([^fo])ves$', 'gi'), '$1fe'],
|
111
|
-
[new RegExp('([^aeiouy]|qu)ies$', 'gi'), '$1y'],
|
112
|
-
[new RegExp('(s)eries$', 'gi'), '$1eries'],
|
113
|
-
[new RegExp('(m)ovies$', 'gi'), '$1ovie'],
|
114
|
-
[new RegExp('(x|ch|ss|sh)es$', 'gi'), '$1'],
|
115
|
-
[new RegExp('([m|l])ice$', 'gi'), '$1ouse'],
|
116
|
-
[new RegExp('(bus)es$', 'gi'), '$1'],
|
117
|
-
[new RegExp('(o)es$', 'gi'), '$1'],
|
118
|
-
[new RegExp('(shoe)s$', 'gi'), '$1'],
|
119
|
-
[new RegExp('(cris|ax|test)es$', 'gi'), '$1is'],
|
120
|
-
[new RegExp('(octop|vir)i$', 'gi'), '$1us'],
|
121
|
-
[new RegExp('(alias|status)es$', 'gi'), '$1'],
|
122
|
-
[new RegExp('^(ox)en', 'gi'), '$1'],
|
123
|
-
[new RegExp('(vert|ind)ices$', 'gi'), '$1ex'],
|
124
|
-
[new RegExp('(matr)ices$', 'gi'), '$1ix'],
|
125
|
-
[new RegExp('(quiz)zes$', 'gi'), '$1'],
|
126
|
-
[new RegExp('s$', 'gi'), '']
|
127
|
-
],
|
128
|
-
|
129
|
-
/*
|
130
|
-
This is a list of words that should not be capitalized for title case
|
131
|
-
*/
|
132
|
-
non_titlecased_words: [
|
133
|
-
'and', 'or', 'nor', 'a', 'an', 'the', 'so', 'but', 'to', 'of', 'at',
|
134
|
-
'by', 'from', 'into', 'on', 'onto', 'off', 'out', 'in', 'over',
|
135
|
-
'with', 'for'
|
136
|
-
],
|
137
|
-
|
138
|
-
/*
|
139
|
-
These are regular expressions used for converting between String formats
|
140
|
-
*/
|
141
|
-
id_suffix: new RegExp('(_ids|_id)$', 'g'),
|
142
|
-
underbar: new RegExp('_', 'g'),
|
143
|
-
space_or_underbar: new RegExp('[\ _]', 'g'),
|
144
|
-
uppercase: new RegExp('([A-Z])', 'g'),
|
145
|
-
underbar_prefix: new RegExp('^_'),
|
146
|
-
|
147
|
-
/*
|
148
|
-
This is a helper method that applies rules based replacement to a String
|
149
|
-
Signature:
|
150
|
-
InflectionJS.apply_rules(str, rules, skip, override) == String
|
151
|
-
Arguments:
|
152
|
-
str - String - String to modify and return based on the passed rules
|
153
|
-
rules - Array: [RegExp, String] - Regexp to match paired with String to use for replacement
|
154
|
-
skip - Array: [String] - Strings to skip if they match
|
155
|
-
override - String (optional) - String to return as though this method succeeded (used to conform to APIs)
|
156
|
-
Returns:
|
157
|
-
String - passed String modified by passed rules
|
158
|
-
Examples:
|
159
|
-
InflectionJS.apply_rules("cows", InflectionJs.singular_rules) === 'cow'
|
160
|
-
*/
|
161
|
-
apply_rules: function(str, rules, skip, override)
|
162
|
-
{
|
163
|
-
if (override)
|
164
|
-
{
|
165
|
-
str = override;
|
166
|
-
}
|
167
|
-
else
|
168
|
-
{
|
169
|
-
var ignore = (skip.indexOf(str.toLowerCase()) > -1);
|
170
|
-
if (!ignore)
|
171
|
-
{
|
172
|
-
for (var x = 0; x < rules.length; x++)
|
173
|
-
{
|
174
|
-
if (str.match(rules[x][0]))
|
175
|
-
{
|
176
|
-
str = str.replace(rules[x][0], rules[x][1]);
|
177
|
-
break;
|
178
|
-
}
|
179
|
-
}
|
180
|
-
}
|
181
|
-
}
|
182
|
-
return str;
|
183
|
-
}
|
184
|
-
};
|
185
|
-
|
186
|
-
/*
|
187
|
-
This lets us detect if an Array contains a given element
|
188
|
-
Signature:
|
189
|
-
Array.indexOf(item, fromIndex, compareFunc) == Integer
|
190
|
-
Arguments:
|
191
|
-
item - Object - object to locate in the Array
|
192
|
-
fromIndex - Integer (optional) - starts checking from this position in the Array
|
193
|
-
compareFunc - Function (optional) - function used to compare Array item vs passed item
|
194
|
-
Returns:
|
195
|
-
Integer - index position in the Array of the passed item
|
196
|
-
Examples:
|
197
|
-
['hi','there'].indexOf("guys") === -1
|
198
|
-
['hi','there'].indexOf("hi") === 0
|
199
|
-
*/
|
200
|
-
if (!Array.prototype.indexOf)
|
201
|
-
{
|
202
|
-
Array.prototype.indexOf = function(item, fromIndex, compareFunc)
|
203
|
-
{
|
204
|
-
if (!fromIndex)
|
205
|
-
{
|
206
|
-
fromIndex = -1;
|
207
|
-
}
|
208
|
-
var index = -1;
|
209
|
-
for (var i = fromIndex; i < this.length; i++)
|
210
|
-
{
|
211
|
-
if (this[i] === item || compareFunc && compareFunc(this[i], item))
|
212
|
-
{
|
213
|
-
index = i;
|
214
|
-
break;
|
215
|
-
}
|
216
|
-
}
|
217
|
-
return index;
|
218
|
-
};
|
219
|
-
}
|
220
|
-
|
221
|
-
/*
|
222
|
-
You can override this list for all Strings or just one depending on if you
|
223
|
-
set the new values on prototype or on a given String instance.
|
224
|
-
*/
|
225
|
-
if (!String.prototype._uncountable_words)
|
226
|
-
{
|
227
|
-
String.prototype._uncountable_words = InflectionJS.uncountable_words;
|
228
|
-
}
|
229
|
-
|
230
|
-
/*
|
231
|
-
You can override this list for all Strings or just one depending on if you
|
232
|
-
set the new values on prototype or on a given String instance.
|
233
|
-
*/
|
234
|
-
if (!String.prototype._plural_rules)
|
235
|
-
{
|
236
|
-
String.prototype._plural_rules = InflectionJS.plural_rules;
|
237
|
-
}
|
238
|
-
|
239
|
-
/*
|
240
|
-
You can override this list for all Strings or just one depending on if you
|
241
|
-
set the new values on prototype or on a given String instance.
|
242
|
-
*/
|
243
|
-
if (!String.prototype._singular_rules)
|
244
|
-
{
|
245
|
-
String.prototype._singular_rules = InflectionJS.singular_rules;
|
246
|
-
}
|
247
|
-
|
248
|
-
/*
|
249
|
-
You can override this list for all Strings or just one depending on if you
|
250
|
-
set the new values on prototype or on a given String instance.
|
251
|
-
*/
|
252
|
-
if (!String.prototype._non_titlecased_words)
|
253
|
-
{
|
254
|
-
String.prototype._non_titlecased_words = InflectionJS.non_titlecased_words;
|
255
|
-
}
|
256
|
-
|
257
|
-
/*
|
258
|
-
This function adds plurilization support to every String object
|
259
|
-
Signature:
|
260
|
-
String.pluralize(plural) == String
|
261
|
-
Arguments:
|
262
|
-
plural - String (optional) - overrides normal output with said String
|
263
|
-
Returns:
|
264
|
-
String - singular English language nouns are returned in plural form
|
265
|
-
Examples:
|
266
|
-
"person".pluralize() == "people"
|
267
|
-
"octopus".pluralize() == "octopi"
|
268
|
-
"Hat".pluralize() == "Hats"
|
269
|
-
"person".pluralize("guys") == "guys"
|
270
|
-
*/
|
271
|
-
if (!String.prototype.pluralize)
|
272
|
-
{
|
273
|
-
String.prototype.pluralize = function(plural)
|
274
|
-
{
|
275
|
-
return InflectionJS.apply_rules(
|
276
|
-
this,
|
277
|
-
this._plural_rules,
|
278
|
-
this._uncountable_words,
|
279
|
-
plural
|
280
|
-
);
|
281
|
-
};
|
282
|
-
}
|
283
|
-
|
284
|
-
/*
|
285
|
-
This function adds singularization support to every String object
|
286
|
-
Signature:
|
287
|
-
String.singularize(singular) == String
|
288
|
-
Arguments:
|
289
|
-
singular - String (optional) - overrides normal output with said String
|
290
|
-
Returns:
|
291
|
-
String - plural English language nouns are returned in singular form
|
292
|
-
Examples:
|
293
|
-
"people".singularize() == "person"
|
294
|
-
"octopi".singularize() == "octopus"
|
295
|
-
"Hats".singularize() == "Hat"
|
296
|
-
"guys".singularize("person") == "person"
|
297
|
-
*/
|
298
|
-
if (!String.prototype.singularize)
|
299
|
-
{
|
300
|
-
String.prototype.singularize = function(singular)
|
301
|
-
{
|
302
|
-
return InflectionJS.apply_rules(
|
303
|
-
this,
|
304
|
-
this._singular_rules,
|
305
|
-
this._uncountable_words,
|
306
|
-
singular
|
307
|
-
);
|
308
|
-
};
|
309
|
-
}
|
@@ -1,24 +0,0 @@
|
|
1
|
-
/**********************************************************************************
|
2
|
-
*
|
3
|
-
* Project Name: jsDraw2D (Graphics Library for JavaScript)
|
4
|
-
* Version: Beta 1.1.0 (17-August-2009) (Uncompressed)
|
5
|
-
* Project Homepage: http://jsdraw2d.jsfiction.com
|
6
|
-
* Author: Sameer Burle
|
7
|
-
* Copyright 2009: jsFiction.com (http://www.jsfiction.com)
|
8
|
-
* Licensed Under: LGPL
|
9
|
-
*
|
10
|
-
* This program (library) is free software: you can redistribute it and/or modify
|
11
|
-
* it under the terms of the GNU Lesser General Public License as published by
|
12
|
-
* the Free Software Foundation, either version 3 of the License, or
|
13
|
-
* (at your option) any later version.
|
14
|
-
*
|
15
|
-
* This program is distributed in the hope that it will be useful,
|
16
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
17
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
18
|
-
* GNU Lesser General Public License for more details.
|
19
|
-
*
|
20
|
-
* You should have received a copy of the GNU General Public License
|
21
|
-
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
22
|
-
*
|
23
|
-
************************************************************************************/
|
24
|
-
function jsColor(){var c="#000000";switch(arguments.length){case 1:k(arguments[0]);break;case 3:var d=arguments[0];var f=arguments[1];var m=arguments[2];c=j(d,f,m);if(c==false){c="#000000"}break}this.setHex=k;function k(p){if(p.charAt(0)=="#"){c=p}else{if(isNaN(p)){a(p.toLowerCase())}else{c="#"+p}}var o=e(c);if(!o){c="#000000"}}this.getHex=n;function n(){return c}this.setRGB=h;function h(o,q,p){c=j(o,q,p);if(c==false){c="#000000"}}this.getRGB=l;function l(){return e(c)}this.getDarkerShade=b;function b(s){var p,r,q;var o=l();if(!isNaN(s)){p=parseInt(o[0]-s);r=parseInt(o[1]-s);q=parseInt(o[2]-s)}if(p<0){p=0}if(r<0){r=0}if(q<0){q=0}return new jsColor(p,r,q)}this.getLighterShade=g;function g(s){var p,r,q;var o=l();if(!isNaN(s)){p=parseInt(o[0]+s);r=parseInt(o[1]+s);q=parseInt(o[2]+s)}if(p>255){p=255}if(r>255){r=255}if(q>255){q=255}return new jsColor(p,r,q)}this.rgbToHex=j;function j(o,q,p){if(o<0||o>255||q<0||q>255||p<0||p>255){return false}var r=Math.round(p)+256*Math.round(q)+65536*Math.round(o);return"#"+i(r.toString(16),6)}this.hexToRgb=e;function e(r){var o,q,p;if(r.charAt(0)=="#"){r=r.substring(1,7)}o=parseInt(r.substring(0,2),16);q=parseInt(r.substring(2,4),16);p=parseInt(r.substring(4,6),16);if(o<0||o>255||q<0||q>255||p<0||p>255){return false}return new Array(o,q,p)}function a(o){switch(o){case"aqua":c="#00FFFF";break;case"black":c="#000000";break;case"blue":c="#0000FF";break;case"fuchsia":c="#FF00FF";break;case"green":c="#008000";break;case"gray":c="#808080";break;case"lime":c="#00FF00";break;case"maroon":c="#800000";break;case"navy":c="#000080";break;case"olive":c="#808000";break;case"purple":c="#800080";break;case"red":c="#FF0000";break;case"silver":c="#C0C0C0";break;case"teal":c="#008080";break;case"white":c="#FFFFFF";break;case"yellow":c="#FFFF00";break}}function i(q,o){var p=q+"";while(p.length<o){p="0"+p}return p}}function jsFont(d,e,b,c,a){this.family=null;this.weight=null;this.size=null;this.style=null;this.variant=null;if(d&&d!=""){this.family=d}if(e&&e!=""){this.weight=e}if(b&&b!=""){this.size=b}if(c&&c!=""){this.style=c}if(a&&a!=""){this.variant=a}}function jsPen(a,b){this.color=new jsColor();this.width="1px";if(arguments.length>0){this.color=a}if(arguments.length>=2){this.width=b}if(!isNaN(b)){this.width=b+"px"}}function jsPoint(a,b){this.x=0;this.y=0;if(arguments.length==2){this.x=a;this.y=b}}function jsGraphics(k){var L=new jsPoint(0,0);var F=1;var A="default";var m;if(k){m=k}else{m=document.body}var e=null;this.drawLine=G;this.drawRectangle=R;this.fillRectangle=S;this.drawCircle=g;this.drawEllipse=N;this.fillCircle=v;this.fillEllipse=I;this.fillArc=u;this.drawArc=D;this.drawPolyline=O;this.drawPolygon=n;this.fillPolygon=h;this.drawBezier=r;this.drawPolyBezier=Q;this.drawCurve=i;this.drawClosedCurve=j;this.fillClosedCurve=E;this.drawText=a;this.drawImage=f;this.clear=H;this.showGrid=C;this.hideGrid=b;this.setOrigin=z;this.getOrigin=s;this.setScale=w;this.getScale=B;this.setCoordinateSystem=K;this.getCoordinateSystem=P;this.logicalToPhysicalPoint=M;e=document.createElement("div");e.style.left="0px";e.style.top="0px";if(m.clientWidth>0&&m.clientHeight>0){e.style.width=(parseInt(m.clientWidth)-1)+"px";e.style.height=(parseInt(m.clientHeight)-1)+"px"}else{e.style.width="0px";e.style.height="0px"}e.style.zIndex=0;e.style.position="absolute";e.style.display="none";m.appendChild(e);function z(T){L=T}function s(){return L}function w(T){F=T}function B(){return F}function K(T){T=T.toLowerCase();if(T.toLowerCase()!="default"&&T.toLowerCase()!="cartecian"){A="default"}else{A=T}}function P(){return A=name}function M(T){if(A=="cartecian"){return new jsPoint(T.x*F+L.x,L.y-T.y*F)}else{return new jsPoint(T.x*F+L.x,T.y*F+L.y)}}function C(ad,an,ah){if(an==null){an=true}var am,ak,V,T;var W=false;var aj=false;e.innerHTML="";if(!ah){ah=new jsColor(200,200,200)}if(!ad){ad=Math.round(parseInt(e.style.width)/10)}else{ad=ad*F}var U=ah.getHex();if(parseInt(e.style.width)<=0||parseInt(e.style.height)<=0){return}else{e.style.display=""}am=parseInt(e.style.left);ak=parseInt(e.style.left)+parseInt(e.style.width);V=parseInt(e.style.top);T=parseInt(e.style.top)+parseInt(e.style.height);if(L.x-parseInt(e.style.left)<=parseInt(e.style.left)+e.offsetWidth-L.x){W=true}if(L.y-parseInt(e.style.top)<=parseInt(e.style.top)+e.offsetHeight-L.y){aj=true}var ac=new Array();var Y=new jsFont("arial",null,"9px");var X=ah.getDarkerShade(150);var ae=X.getHex();ac[ac.length]='<DIV style="position:absolute;overflow:hidden;z-index:-100;left:'+am+"px;top:"+V+"px;width:"+(ak-am+1)+"px;height:1px;background-color:"+U+'"></DIV>';ac[ac.length]='<DIV style="position:absolute;overflow:hidden;z-index:-100;left:'+am+"px;top:"+T+"px;width:"+(ak-am+1)+"px;height:1px;background-color:"+U+'"></DIV>';ac[ac.length]='<DIV style="position:absolute;overflow:hidden;z-index:-100;left:'+am+"px;top:"+V+"px;width:1px;height:"+(T-V+1)+"px;background-color:"+U+'"></DIV>';ac[ac.length]='<DIV style="position:absolute;overflow:hidden;z-index:-100;left:'+ak+"px;top:"+V+"px;width:1px;height:"+(T-V+1)+"px;background-color:"+U+'"></DIV>';var ab=e.offsetHeight;var al=e.offsetWidth;var ai;var af;for(var aa=(L.x-am)%ad;aa<ak;aa+=ad){if(aa==L.x&&aa>=am){if(aa>=am&&aa<=ak){ac[ac.length]='<DIV style="position:absolute;overflow:hidden;z-index:-99;left:'+aa+"px;top:"+V+"px;width:1px;height:"+ab+"px;background-color:"+ae+'"></DIV>'}}else{ac[ac.length]='<DIV style="position:absolute;overflow:hidden;z-index:-100;left:'+aa+"px;top:"+V+"px;width:1px;height:"+ab+"px;background-color:"+U+'"></DIV>'}if(an&&aa>=am&&aa<ak){if(ai&&ai.offsetLeft+ai.offsetWidth+1<aa){if(ai.offsetWidth<ak-aa){af=ag(Math.round((aa-L.x)/F),new jsPoint(aa+2,V+1+L.y),Y,X)}}else{if(!ai){af=ag(Math.round((aa-L.x)/F),new jsPoint(aa+2,V+1+L.y),Y,X)}}if(af){if(!aj){if(parseInt(af.style.top)+af.offsetHeight>T){af.style.top=T-af.offsetHeight-1}}else{if(parseInt(af.style.top)-af.offsetHeight-1>V){af.style.top=parseInt(af.style.top)-af.offsetHeight-1}if(parseInt(af.style.top)<=V){af.style.top=V+1}}af.style.visibility="visible";ai=af}af=null}}ai=null;for(var Z=(L.y-V)%ad;Z<=T;Z+=ad){if(Z==L.y){if(Z>=V&&Z<=T){ac[ac.length]='<DIV style="position:absolute;overflow:hidden;z-index:-99;left:'+am+"px;top:"+Z+"px;width:"+al+"px;height:1px;background-color:"+ae+'"></DIV>'}}else{ac[ac.length]='<DIV style="position:absolute;overflow:hidden;z-index:-100;left:'+am+"px;top:"+Z+"px;width:"+al+"px;height:1px;background-color:"+U+'"></DIV>'}if(an&&Z!=L.y&&Z>=V&&Z<T){if(ai&&ai.offsetTop+ai.offsetHeight<Z){if(ai.offsetHeight<=T-Z){if(A=="cartecian"){af=ag(Math.round((L.y-Z)/F),new jsPoint(am+2+L.x,Z),Y,X)}else{af=ag(Math.round((Z-L.y)/F),new jsPoint(am+2+L.x,Z),Y,X)}}}else{if(!ai){if(A=="cartecian"){af=ag(Math.round((L.y-Z)/F),new jsPoint(am+2+L.x,Z),Y,X)}else{af=ag(Math.round((Z-L.y)/F),new jsPoint(am+2+L.x,Z),Y,X)}}}if(af){if(!W){if(parseInt(af.style.left)+1+af.offsetWidth<ak){af.style.left=parseInt(af.style.left)+1}else{af.style.left=ak-af.offsetWidth-3}}else{if(parseInt(af.style.left)-af.offsetWidth-2>am){af.style.left=parseInt(af.style.left)-af.offsetWidth-2}else{af.style.left=parseInt(af.style.left)+1}if(parseInt(af.style.left)<=am){af.style.left=am+1}}af.style.visibility="visible";if(aj&&parseInt(af.style.top)+af.offsetHeight>L.y-af.offsetHeight&&parseInt(af.style.top)<L.y){af.style.visibility="hidden"}if(aj&&parseInt(af.style.top)>L.y&&parseInt(af.style.top)<L.y+af.offsetHeight&&parseInt(af.style.top)>L.y){af.style.visibility="hidden"}if(L.y>T&&parseInt(af.style.top)+af.offsetHeight>T-af.offsetHeight){af.style.visibility="hidden"}if(!aj&&parseInt(af.style.top)<L.y+af.offsetHeight&&parseInt(af.style.top)>L.y){af.style.visibility="hidden"}if(!aj&&parseInt(af.style.top)<L.y&&parseInt(af.style.top)+af.offsetHeight>L.y&&parseInt(af.style.top)<L.y){alert(parseInt(af.style.top));af.style.visibility="hidden"}if(L.y<V&&parseInt(af.style.top)<V+af.offsetHeight){af.style.visibility="hidden"}ai=af}af=null}}e.innerHTML=e.innerHTML+ac.join("");function ag(at,ao,ar,aq,au){var ap=document.createElement("div");ap.style.position="absolute";ap.style.left=ao.x+"px";ap.style.top=ao.y+"px";ap.style.color=aq.getHex();ap.style.zIndex=-98;ap.style.visibility="hidden";e.appendChild(ap);if(ar.family){ap.style.fontFamily=ar.family}if(ar.weight){ap.style.fontWeight=ar.weight}if(ar.size){ap.style.fontSize=ar.size}if(ar.style){ap.style.fontStyle=ar.style}if(ar.variant){ap.style.fontVariant=ar.variant}if(au){ap.align=au}ap.innerHTML=at;return ap}}function b(){e.innerHTML="";e.style.display="none"}function G(au,aa,Z){if(!au||!aa||!Z){return false}var V=m.appendChild(document.createElement("div"));if(arguments[3]!="physical"){phPoint0=M(aa);phPoint1=M(Z)}else{phPoint0=new jsPoint(aa.x,aa.y);phPoint1=new jsPoint(Z.x,Z.y)}var ap,ao,Y,W;ap=phPoint0.x;ao=phPoint1.x;Y=phPoint0.y;W=phPoint1.y;var X=au.color.getHex();if(Y==W){if(ap<=ao){V.innerHTML='<DIV style="position:absolute;overflow:hidden;left:'+ap+"px;top:"+Y+"px;width:"+(ao-ap+1)+"px;height:"+au.width+";background-color:"+X+'"></DIV>'}else{if(ap>ao){V.innerHTML='<DIV style="position:absolute;overflow:hidden;left:'+ao+"px;top:"+Y+"px;width:"+(ap-ao+1)+"px;height:"+au.width+";background-color:"+X+'"></DIV>'}}return V}if(ap==ao){if(Y<=W){V.innerHTML='<DIV style="position:absolute;overflow:hidden;left:'+ap+"px;top:"+Y+"px;width:"+au.width+";height:"+(W-Y+1)+"px;background-color:"+X+'"></DIV>'}else{if(Y>W){V.innerHTML='<DIV style="position:absolute;overflow:hidden;left:'+ap+"px;top:"+W+"px;width:"+au.width+";height:"+(Y-W+1)+"px;background-color:"+X+'"></DIV>'}}return V}var aj=new Array();var ak=new Array();var ai=Math.abs(ao-ap);var ah=Math.abs(W-Y);var al,aq;var ad=parseInt(au.width);al=Math.round(Math.sqrt((ad*ad)/((ah*ah)/(ai*ai)+1)));aq=Math.round(Math.sqrt(ad*ad-al*al));if(aq==0){aq=1}if(al==0){al=1}var U=Math.abs(W-Y)>Math.abs(ao-ap);if(U){var ar=ap;ap=Y;Y=ar;ar=ao;ao=W;W=ar}if(ap>ao){var ar=ap;ap=ao;ao=ar;ar=Y;Y=W;W=ar}var ac=ao-ap;var ab=Math.abs(W-Y);var am=ac/2;var at;var ae=Y;if(Y<W){at=1}else{at=-1}var ag,an;var T=0;var af=0;if(U){T=aq}else{af=al}for(x=ap;x<=ao;x++){if(U){if(x==ap){ag=ae;an=x}else{if(ae==ag){af=af+1}else{af=af+al;aj[aj.length]='<DIV style="position:absolute;overflow:hidden;left:'+ag+"px;top:"+an+"px;width:"+T+"px;height:"+af+"px;background-color:"+X+'"></DIV>';af=0;ag=ae;an=x}}if(x==ao){if(af!=0){af=af+al;aj[aj.length]='<DIV style="position:absolute;overflow:hidden;left:'+ag+"px;top:"+an+"px;width:"+T+"px;height:"+af+"px;background-color:"+X+'"></DIV>'}else{af=al;aj[aj.length]='<DIV style="position:absolute;overflow:hidden;left:'+ae+"px;top:"+x+"px;width:"+T+"px;height:"+af+"px;background-color:"+X+'"></DIV>'}}}else{if(x==ap){ag=x;an=ae}else{if(ae==an){T=T+1}else{T=T+aq;aj[aj.length]='<DIV style="position:absolute;overflow:hidden;left:'+ag+"px;top:"+an+"px;width:"+T+"px;height:"+af+"px;background-color:"+X+'"></DIV>';T=0;ag=x;an=ae}}if(x==ao){if(T!=0){T=T+aq;aj[aj.length]='<DIV style="position:absolute;overflow:hidden;left:'+ag+"px;top:"+an+"px;width:"+T+"px;height:"+af+"px;background-color:"+X+'"></DIV>'}else{T=aq;aj[aj.length]='<DIV style="position:absolute;overflow:hidden;left:'+x+"px;top:"+ae+"px;width:"+T+"px;height:"+af+"px;background-color:"+X+'"></DIV>'}}}am=am-ab;if(am<0){ae=ae+at;am=am+ac}}V.innerHTML=aj.join("");return V}function o(ad,ac){function W(){this.xMax=0;this.xMin=0;this.isVertex=false}var U,T,af,ae;U=ad.x;T=ac.x;af=ad.y;ae=ac.y;var V=new Array();var aa=Math.abs(ae-af)>Math.abs(T-U);if(aa){var X=U;U=af;af=X;X=T;T=ae;ae=X}if(U>T){var X=U;U=T;T=X;X=af;af=ae;ae=X}var ah=T-U;var ag=Math.abs(ae-af);var Z=ah/2;var Y;var ab=af;if(af<ae){Y=1}else{Y=-1}for(x=U;x<=T;x++){if(aa){V[x]=new W();V[x].xMin=ab;V[x].xMax=ab;if(x==U&&ab==af){V[x].isVertex=true}}else{if(!V[ab]){V[ab]=new W();V[ab].xMin=x;V[ab].xMax=x;if(x==U&&ab==af){V[ab].isVertex=true}}else{V[ab].xMax=x}}Z=Z-ag;if(Z<0){ab=ab+Y;Z=Z+ah}}return V}function R(aa,U,Z,T){if(!aa||!U||!Z||!T){return false}Z=Math.round(Z*F);T=Math.round(T*F);var V=m.appendChild(document.createElement("div"));var Y=new Array();var X=parseInt(aa.width);var W=aa.color.getHex();if(X>=T||X>=Z){return this.fillRectangle(aa.color,U,Z,T)}phPoint=M(U);Y[Y.length]='<DIV style="position:absolute;overflow:hidden;left:'+phPoint.x+"px;top:"+phPoint.y+"px;width:"+Z+"px;height:"+X+"px;background-color:"+W+'"></DIV>';Y[Y.length]='<DIV style="position:absolute;overflow:hidden;left:'+phPoint.x+"px;top:"+(phPoint.y+T-X)+"px;width:"+Z+"px;height:"+X+"px;background-color:"+W+'"></DIV>';Y[Y.length]='<DIV style="position:absolute;overflow:hidden;left:'+phPoint.x+"px;top:"+(phPoint.y+X)+"px;width:"+X+"px;height:"+(T-2*X+1)+"px;background-color:"+W+'"></DIV>';Y[Y.length]='<DIV style="position:absolute;overflow:hidden;left:'+(phPoint.x+Z-X)+"px;top:"+(phPoint.y+X)+"px;width:"+X+"px;height:"+(T-2*X+1)+"px;background-color:"+W+'"></DIV>';V.innerHTML=Y.join("");return V}function S(W,U,Y,T){if(!W||!U||!Y||!T){return false}Y=Math.round(Y*F);T=Math.round(T*F);var V=m.appendChild(document.createElement("div"));phPoint=M(U);var X=W.getHex();V.innerHTML='<DIV style="position:absolute;overflow:hidden;left:'+phPoint.x+"px;top:"+phPoint.y+"px;width:"+Y+"px;height:"+T+"px;background-color:"+X+'"></DIV>';return V}function c(am,aj,af,ae){if(!am||!aj||!af||!ae){return false}var ad=m.appendChild(document.createElement("div"));var ac=new Array();var X=parseInt(am.width);var V=am.color.getHex();var ak=Math.round(af/2);var ai=Math.round(ae/2);var ag=aj.x;var U=aj.y;var Z=0;var Y=ai;var al=ak*ak;var W=ai*ai;var ah=Y;var ab=Z;var T;var aa;while(W*Z<al*Y){Z++;if((W*Z*Z+al*(Y-0.5)*(Y-0.5)-al*W)>=0){Y--}if(Z==1&&Y!=ah){ac[ac.length]='<DIV style="position:absolute;overflow:hidden;left:'+(ag+Z)+"px;top:"+(U+Y)+"px;width:1px;height:1px;background-color:"+V+'"></DIV>';ac[ac.length]='<DIV style="position:absolute;overflow:hidden;left:'+(ag+Z)+"px;top:"+(U-Y)+"px;width:1px;height:1px;background-color:"+V+'"></DIV>'}if(Y!=ah){T=Z-ab;ac[ac.length]='<DIV style="position:absolute;overflow:hidden;left:'+(ag+ab)+"px;top:"+(U+ah-X+1)+"px;height:"+X+"px;width:"+T+"px;background-color:"+V+'"></DIV>';ac[ac.length]='<DIV style="position:absolute;overflow:hidden;left:'+(ag-ab-T+1)+"px;top:"+(U+ah-X+1)+"px;height:"+X+"px;width:"+T+"px;background-color:"+V+'"></DIV>';ac[ac.length]='<DIV style="position:absolute;overflow:hidden;left:'+(ag+ab)+"px;top:"+(U-ah)+"px;height:"+X+"px;width:"+T+"px;background-color:"+V+'"></DIV>';ac[ac.length]='<DIV style="position:absolute;overflow:hidden;left:'+(ag-ab-T+1)+"px;top:"+(U-ah)+"px;height:"+X+"px;width:"+T+"px;background-color:"+V+'"></DIV>';ah=Y;ab=Z}if(W*Z>=al*Y){T=Z-ab+1;ac[ac.length]='<DIV style="position:absolute;overflow:hidden;left:'+(ag+ab)+"px;top:"+(U+ah-X+1)+"px;height:"+X+"px;width:"+T+"px;background-color:"+V+'"></DIV>';ac[ac.length]='<DIV style="position:absolute;overflow:hidden;left:'+(ag-ab-T+1)+"px;top:"+(U+ah-X+1)+"px;height:"+X+"px;width:"+T+"px;background-color:"+V+'"></DIV>';ac[ac.length]='<DIV style="position:absolute;overflow:hidden;left:'+(ag+ab)+"px;top:"+(U-ah)+"px;height:"+X+"px;width:"+T+"px;background-color:"+V+'"></DIV>';ac[ac.length]='<DIV style="position:absolute;overflow:hidden;left:'+(ag-ab-T+1)+"px;top:"+(U-ah)+"px;height:"+X+"px;width:"+T+"px;background-color:"+V+'"></DIV>'}}ah=Y;ab=Z;while(Y!=0){Y--;if((W*(Z+0.5)*(Z+0.5)+al*Y*Y-al*W)<=0){Z++}if(Z!=ab){aa=ah-Y;ac[ac.length]='<DIV style="position:absolute;overflow:hidden;left:'+(ag+ab-X+1)+"px;top:"+(U+ah-aa+1)+"px;width:"+X+"px;height:"+aa+"px;background-color:"+V+'"></DIV>';ac[ac.length]='<DIV style="position:absolute;overflow:hidden;left:'+(ag+ab-X+1)+"px;top:"+(U-ah)+"px;width:"+X+"px;height:"+aa+"px;background-color:"+V+'"></DIV>';ac[ac.length]='<DIV style="position:absolute;overflow:hidden;left:'+(ag-ab)+"px;top:"+(U+ah-aa+1)+"px;width:"+X+"px;height:"+aa+"px;background-color:"+V+'"></DIV>';ac[ac.length]='<DIV style="position:absolute;overflow:hidden;left:'+(ag-ab)+"px;top:"+(U-ah)+"px;width:"+X+"px;height:"+aa+"px;background-color:"+V+'"></DIV>';ab=Z;ah=Y}if(Y==0){aa=ah-Y+1;ac[ac.length]='<DIV style="position:absolute;overflow:hidden;left:'+(ag+ab-X+1)+"px;top:"+(U+ah-aa+1)+"px;width:"+X+"px;height:"+aa+"px;background-color:"+V+'"></DIV>';ac[ac.length]='<DIV style="position:absolute;overflow:hidden;left:'+(ag+ab-X+1)+"px;top:"+(U-ah)+"px;width:"+X+"px;height:"+aa+"px;background-color:"+V+'"></DIV>';ac[ac.length]='<DIV style="position:absolute;overflow:hidden;left:'+(ag-ab)+"px;top:"+(U+ah-aa+1)+"px;width:"+X+"px;height:"+aa+"px;background-color:"+V+'"></DIV>';ac[ac.length]='<DIV style="position:absolute;overflow:hidden;left:'+(ag-ab)+"px;top:"+(U-ah)+"px;width:"+X+"px;height:"+aa+"px;background-color:"+V+'"></DIV>';ab=Z;ah=Y}}ad.innerHTML=ac.join("");return ad}function N(az,au,am,al){if(!az||!au||!am||!al){return false}am*=F;al*=F;var ak=m.appendChild(document.createElement("div"));var aj=new Array();phCenter=M(au);var ab=parseInt(az.width);if(ab<=1){return c(az,phCenter,am,al)}var Y=az.color.getHex();var av=Math.round(am/2);var at=Math.round(al/2);var an=phCenter.x;var V=phCenter.y;var ao=av-ab+1;var W=at-ab+1;var ay=d(phCenter,ao*2,W*2);var ad=ay[0];var X=ay[1];var ax=W;var ac=ao*ao;var ar=W*W;var af=0;var ae=at;var aw=av*av;var aa=at*at;var ah,ap;ah=1;ap=ae;var aq=ax;var U;var T;var ag=1;while(aa*af<aw*ae){af++;if((aa*af*af+aw*(ae-0.5)*(ae-0.5)-aw*aa)>=0){ae--}if(ae+1<W){if(ae!=ap){U=an-af+1;T=(af-1)+1-ad[ap];aj[aj.length]='<DIV style="position:absolute;overflow:hidden;left:'+U+"px;top:"+(V-ap)+"px;width:"+T+"px;height:"+ag+"px;background-color:"+Y+'"></DIV>';aj[aj.length]='<DIV style="position:absolute;overflow:hidden;left:'+U+"px;top:"+(V+ap)+"px;width:"+T+"px;height:"+ag+"px;background-color:"+Y+'"></DIV>';U=U+2*(af-1)+1-T;aj[aj.length]='<DIV style="position:absolute;overflow:hidden;left:'+U+"px;top:"+(V-ap)+"px;width:"+T+"px;height:"+ag+"px;background-color:"+Y+'"></DIV>';aj[aj.length]='<DIV style="position:absolute;overflow:hidden;left:'+U+"px;top:"+(V+ap)+"px;width:"+T+"px;height:"+ag+"px;background-color:"+Y+'"></DIV>';ap=ae;ah=af}if(aa*af>=aw*ae){U=an-af;T=af+1-ad[ap];aj[aj.length]='<DIV style="position:absolute;overflow:hidden;left:'+U+"px;top:"+(V-ae)+"px;width:"+T+"px;height:"+ag+"px;background-color:"+Y+'"></DIV>';aj[aj.length]='<DIV style="position:absolute;overflow:hidden;left:'+U+"px;top:"+(V+ae)+"px;width:"+T+"px;height:"+ag+"px;background-color:"+Y+'"></DIV>';U=U+2*af+1-T;aj[aj.length]='<DIV style="position:absolute;overflow:hidden;left:'+U+"px;top:"+(V-ae)+"px;width:"+T+"px;height:"+ag+"px;background-color:"+Y+'"></DIV>';aj[aj.length]='<DIV style="position:absolute;overflow:hidden;left:'+U+"px;top:"+(V+ae)+"px;width:"+T+"px;height:"+ag+"px;background-color:"+Y+'"></DIV>'}}else{if(af==1&&ae!=ap){aj[aj.length]='<DIV style="position:absolute;overflow:hidden;width:1px;height:1px;left:'+an+"px;top:"+(V+ap-1)+"px;background-color:"+Y+'"></DIV>';aj[aj.length]='<DIV style="position:absolute;overflow:hidden;width:1px;height:1px;left:'+an+"px;top:"+(V-ap)+"px;background-color:"+Y+'"></DIV>'}if(ae!=ap){aj[aj.length]='<DIV style="position:absolute;overflow:hidden;left:'+(an-af+1)+"px;top:"+(V-ap)+"px;width:"+(2*(af-1)+1)+"px;height:"+ag+"px;background-color:"+Y+'"></DIV>';aj[aj.length]='<DIV style="position:absolute;overflow:hidden;left:'+(an-af+1)+"px;top:"+(V+ap)+"px;width:"+(2*(af-1)+1)+"px;height:"+ag+"px;background-color:"+Y+'"></DIV>';ap=ae}if(ae==W||ae==0){aj[aj.length]='<DIV style="position:absolute;overflow:hidden;left:'+(an-af)+"px;top:"+(V-ae)+"px;width:"+(2*af+1)+"px;height:"+ag+"px;background-color:"+Y+'"></DIV>';aj[aj.length]='<DIV style="position:absolute;overflow:hidden;left:'+(an-af)+"px;top:"+(V+ae)+"px;width:"+(2*af+1)+"px;height:"+ag+"px;background-color:"+Y+'"></DIV>'}}}ah=af;ap=ae;ag=1;var Z=ad[ae];while(ae!=0){ae--;if((aa*(af+0.5)*(af+0.5)+aw*ae*ae-aw*aa)<=0){af++}if(ae+1<W){if(af!=ah||ad[ae]!=Z){ag=ap-ae;U=an-ah;T=ah+1-ad[ae+1];aj[aj.length]='<DIV style="position:absolute;overflow:hidden;left:'+U+"px;top:"+(V-ap)+"px;width:"+T+"px;height:"+ag+"px;background-color:"+Y+'"></DIV>';aj[aj.length]='<DIV style="position:absolute;overflow:hidden;left:'+U+"px;top:"+(V+ae+1)+"px;width:"+T+"px;height:"+ag+"px;background-color:"+Y+'"></DIV>';U=U+2*ah+1-T;aj[aj.length]='<DIV style="position:absolute;overflow:hidden;left:'+U+"px;top:"+(V-ap)+"px;width:"+T+"px;height:"+ag+"px;background-color:"+Y+'"></DIV>';aj[aj.length]='<DIV style="position:absolute;overflow:hidden;left:'+U+"px;top:"+(V+ae+1)+"px;width:"+T+"px;height:"+ag+"px;background-color:"+Y+'"></DIV>';ah=af;ap=ae;Z=ad[ae]}if(ae==0){ag=ap-ae+1;U=an-af;T=af+1-ad[ae];aj[aj.length]='<DIV style="position:absolute;overflow:hidden;left:'+U+"px;top:"+(V-ap)+"px;width:"+T+"px;height:"+ag+"px;background-color:"+Y+'"></DIV>';aj[aj.length]='<DIV style="position:absolute;overflow:hidden;left:'+U+"px;top:"+(V+ae)+"px;width:"+T+"px;height:"+ag+"px;background-color:"+Y+'"></DIV>';U=U+2*af+1-T;aj[aj.length]='<DIV style="position:absolute;overflow:hidden;left:'+U+"px;top:"+(V-ap)+"px;width:"+T+"px;height:"+ag+"px;background-color:"+Y+'"></DIV>';aj[aj.length]='<DIV style="position:absolute;overflow:hidden;left:'+U+"px;top:"+(V+ae)+"px;width:"+T+"px;height:"+ag+"px;background-color:"+Y+'"></DIV>';ah=af;ap=ae;Z=ad[ae]}}else{if(af!=ah){ag=ap-ae;aj[aj.length]='<DIV style="position:absolute;overflow:hidden;left:'+(an-ah)+"px;top:"+(V-ap)+"px;width:"+(2*ah+1)+"px;height:"+ag+"px;background-color:"+Y+'"></DIV>';aj[aj.length]='<DIV style="position:absolute;overflow:hidden;left:'+(an-ah)+"px;top:"+(V+ae+1)+"px;width:"+(2*ah+1)+"px;height:"+ag+"px;background-color:"+Y+'"></DIV>';ah=af;ap=ae;Z=ad[ae]}if(ae==W||ae==0){ag=ap-ae+1;aj[aj.length]='<DIV style="position:absolute;overflow:hidden;left:'+(an-af)+"px;top:"+(V-ap)+"px;width:"+(2*af+1)+"px;height:"+ag+"px;background-color:"+Y+'"></DIV>';aj[aj.length]='<DIV style="position:absolute;overflow:hidden;left:'+(an-af)+"px;top:"+(V+ae)+"px;width:"+(2*af+1)+"px;height:"+ag+"px;background-color:"+Y+'"></DIV>';ah=af;ap=ae;Z=ad[ae]}}}ak.innerHTML=aj.join("");return ak}function d(T,ae,X){var ac=Math.round(ae/2);var ab=Math.round(X/2);var af=T.x;var Y=T.y;xArray=new Array();xArrayI=new Array();var ad=0;var aa=ab;var U=ac*ac;var Z=ab*ab;xArray[aa]=ad;xArrayI[aa]=ad;var V;var W;while(Z*ad<U*aa){ad++;if((Z*ad*ad+U*(aa-0.5)*(aa-0.5)-U*Z)>=0){aa--}if(!xArray[aa]){xArray[aa]=ad}xArrayI[aa]=ad}while(aa!=0){aa--;if((Z*(ad+0.5)*(ad+0.5)+U*aa*aa-U*Z)<=0){ad++}xArray[aa]=ad;xArrayI[aa]=ad}return new Array(xArray,xArrayI)}function g(V,U,T){if(!V||!U||!T){return false}return N(V,U,2*T,2*T)}function v(V,U,T){if(!V||!U||!T){return false}return I(V,U,2*T,2*T)}function I(ae,ai,ad,ac){if(!ae||!ai||!ad||!ac){return false}ad*=F;ac*=F;var ab=m.appendChild(document.createElement("div"));var aa=new Array();phCenter=M(ai);var aj=Math.round(ad/2);var ah=Math.round(ac/2);var af=phCenter.x;var T=phCenter.y;var U=ae.getHex();var X=0;var W=ah;var ak=aj*aj;var V=ah*ah;var Z,ag;Z=1;ag=W;while(V*X<ak*W){X++;if((V*X*X+ak*(W-0.5)*(W-0.5)-ak*V)>=0){W--}if(X==1&&W!=ag){aa[aa.length]='<DIV style="position:absolute;overflow:hidden;width:1px;height:1px;left:'+af+"px;top:"+(T+ag-1)+"px;background-color:"+U+'"></DIV>';aa[aa.length]='<DIV style="position:absolute;overflow:hidden;width:1px;height:1px;left:'+af+"px;top:"+(T-ag)+"px;background-color:"+U+'"></DIV>'}if(W!=ag){aa[aa.length]='<DIV style="position:absolute;overflow:hidden;height:1px;left:'+(af-X+1)+"px;top:"+(T-ag)+"px;width:"+(2*X-1)+"px;background-color:"+U+'"></DIV>';aa[aa.length]='<DIV style="position:absolute;overflow:hidden;height:1px;left:'+(af-X+1)+"px;top:"+(T+ag)+"px;width:"+(2*X-1)+"px;background-color:"+U+'"></DIV>';ag=W;Z=X}if(V*X>=ak*W){aa[aa.length]='<DIV style="position:absolute;overflow:hidden;height:1px;left:'+(af-X)+"px;top:"+(T-ag)+"px;width:"+(2*X+1)+"px;background-color:"+U+'"></DIV>';aa[aa.length]='<DIV style="position:absolute;overflow:hidden;height:1px;left:'+(af-X)+"px;top:"+(T+ag)+"px;width:"+(2*X+1)+"px;background-color:"+U+'"></DIV>'}}Z=X;ag=W;var Y=1;while(W!=0){W--;if((V*(X+0.5)*(X+0.5)+ak*W*W-ak*V)<=0){X++}if(X!=Z){Y=ag-W;aa[aa.length]='<DIV style="position:absolute;overflow:hidden;left:'+(af-Z)+"px;top:"+(T-ag)+"px;width:"+(2*Z+1)+"px;height:"+Y+"px;background-color:"+U+'"></DIV>';aa[aa.length]='<DIV style="position:absolute;overflow:hidden;left:'+(af-Z)+"px;top:"+(T+W+1)+"px;width:"+(2*Z+1)+"px;height:"+Y+"px;background-color:"+U+'"></DIV>';Z=X;ag=W}if(W==0){Y=ag-W+1;aa[aa.length]='<DIV style="position:absolute;overflow:hidden;left:'+(af-Z)+"px;top:"+(T-ag)+"px;width:"+(2*X+1)+"px;height:"+Y+"px;background-color:"+U+'"></DIV>';aa[aa.length]='<DIV style="position:absolute;overflow:hidden;left:'+(af-Z)+"px;top:"+(T+W)+"px;width:"+(2*X+1)+"px;height:"+Y+"px;background-color:"+U+'"></DIV>'}}ab.innerHTML=aa.join("");return ab}function u(aE,U,T,W,af,ax){if(!aE||!U||!T||!W||af==null||ax==null){return false}T*=F;W*=F;if(ax==0){return}var aa=m.appendChild(document.createElement("div"));var aK=new Array();phCenter=M(U);var al;if(af>360){al=af%360}else{al=af}var ab;if(ax>360){ab=ax%360}else{ab=ax}var aX;aX=parseFloat(al)+parseFloat(ab);if(aX>360){aX=aX%360}if(A=="cartecian"){al=360-al;aX=360-aX;var X;X=al;al=aX;aX=X}var am,a4,ak,a3;var ad=al*Math.PI/180;var a1=ab*Math.PI/180;var aP=aX*Math.PI/180;if((al<=45&&al>=0)||(al>=135&&al<=225)||(al>=315&&al<=360)){a4=Math.round(phCenter.y+Math.sin(ad)*T/2);if(al>=90&&al<=270){am=Math.round(phCenter.x-T/2)}else{am=Math.round(phCenter.x+T/2)}}else{am=Math.round(phCenter.x+Math.cos(ad)*W/2);if(al>=0&&al<=180){a4=Math.round(phCenter.y+W/2)}else{a4=Math.round(phCenter.y-W/2)}}if((aX<=45&&aX>=0)||(aX>=135&&aX<=225)||(aX>=315&&aX<=360)){a3=Math.round(phCenter.y+Math.sin(aP)*T/2);if(aX>=90&&aX<=270){ak=Math.round(phCenter.x-T/2)}else{ak=Math.round(phCenter.x+T/2)}}else{ak=Math.round(phCenter.x+Math.cos(aP)*W/2);if(aX>=0&&aX<=180){a3=Math.round(phCenter.y+W/2)}else{a3=Math.round(phCenter.y-W/2)}}xDataArraySa=o(phCenter,new jsPoint(am,a4));xDataArrayEa=o(phCenter,new jsPoint(ak,a3));var aF=aE.getHex();var a0=Math.round(T/2);var aZ=Math.round(W/2);var aQ=phCenter.x;var aw=phCenter.y;var aO=0;var aN=aZ;var aR=a0*a0;var ay=aZ*aZ;var aJ,ap;var aU,ac,an,aS,V,ah,aA,az,Z,aM,Y,ao,aI,aT,aD,aL;var aW,av,au,at,ar,ae,aV,aB,ag,aH;var ai,aY,aG,aj;aJ=1;ap=aN;while(ay*aO<aR*aN){aO++;if((ay*aO*aO+aR*(aN-0.5)*(aN-0.5)-aR*ay)>=0){aN--}if(aO==1&&aN!=ap){aA=aw+ap-1;az=aw-ap;aW=1;av=aW;au=aW;at=aW;ar=aW;aU=aQ;if(al>=0&&al<180&&aX>=0&&aX<180){aq(true);if(aX<=al){aq(false)}}else{if(al>=180&&al<360&&aX>=180&&aX<=360){aq(false);if(aX<=al){aq(true)}}else{aq(true);aq(false)}}}else{if(aN!=ap){aA=aw+ap;az=aw-ap;aW=2*(aO-1)+1;av=aW;au=aW;at=aW;ar=aW;aU=aQ-aO+1;if(al>=0&&al<180&&aX>=0&&aX<180){aq(true);if(aX<=al){aq(false)}}else{if(al>=180&&al<360&&aX>=180&&aX<=360){aq(false);if(aX<=al){aq(true)}}else{aq(true);aq(false)}}ap=aN;aJ=aO}}if(ay*aO>=aR*aN){aA=aw+ap;az=aw-ap;aW=2*aO+1;av=aW;au=aW;at=aW;ar=aW;aU=aQ-aO;if(al>=0&&al<180&&aX>=0&&aX<180){aq(true);if(aX<=al){aq(false)}}else{if(al>=180&&al<360&&aX>=180&&aX<=360){aq(false);if(aX<=al){aq(true)}}else{aq(true);aq(false)}}}}aJ=aO;ap=aN;aH=1;aA=aw+aN;az=aw-aN;aW=2*aO+1;av=aW;au=aW;at=aW;ar=aW;aU=aQ-aO;if(al>=0&&al<180&&aX>=0&&aX<180){xDataArrayEa.pop();aC(true,true);if(aX<=al){aC(false,true)}}else{if(al>=180&&al<360&&aX>=180&&aX<=360){xDataArrayEa.pop();if(aN!=0){aC(false,true)}if(aX<=al){aC(true,true)}}else{if(al>=180&&al<360){xDataArraySa.pop()}else{xDataArrayEa.pop()}aC(true,true);if(aN!=0){aU=aQ-aO;aC(false,true)}}}while(aN!=0){aN--;if((ay*(aO+0.5)*(aO+0.5)+aR*aN*aN-aR*ay)<=0){aO++}aA=aw+aN;az=aw-aN;aW=2*aO+1;av=aW;au=aW;at=aW;ar=aW;aU=aQ-aO;if(al>=0&&al<180&&aX>=0&&aX<180){aC(true);if(aX<=al){aC(false)}}else{if(al>=180&&al<360&&aX>=180&&aX<=360){if(aN!=0){aC(false)}if(aX<=al){aC(true)}}else{aC(true);if(aN!=0){aU=aQ-aO;aC(false)}}}}aa.innerHTML=aK.join("");return aa;function aC(ba,bc){var be;var a7,a7;var bb=aW;var a9=aW;var a8=false;var bd=false;if(ba){var a6=false;var a2=false;be=aA;a7=xDataArraySa;xDataArray2=xDataArrayEa;saDvar=al;eaDvar=aX}else{var a5=false;var bf=false;be=az;xDataArray2=xDataArraySa;a7=xDataArrayEa;saDvar=360-aX;eaDvar=360-al}if(eaDvar>saDvar){if(xDataArray2[be]&&aU+aW>=xDataArray2[be].xMin&&aU<=xDataArray2[be].xMin){aM=xDataArray2[be].xMin;if(a7[be]&&aU+aW>=a7[be].xMax+1&&aU<=a7[be].xMax+1){Z=a7[be].xMax+1;bb=Z-aM}else{bb=aU+aW-aM}aU=aM;a8=true}else{if(a7[be]&&aU+aW>=a7[be].xMax+1&&aU<=a7[be].xMax+1){Z=a7[be].xMax+1;bb=Z-aU;a8=true}else{if(eaDvar>90&&saDvar<90){a8=true}}}}else{if(a7[be]&&aU+aW>=a7[be].xMax+1&&aU<=a7[be].xMax+1){Z=a7[be].xMax+1;bb=Z-aU;a8=true}else{if(eaDvar<90&&saDvar<90){a8=true}}if(xDataArray2[be]&&aU+aW>=xDataArray2[be].xMin&&aU<=xDataArray2[be].xMin){aS=xDataArray2[be].xMin;a9=aW-xDataArray2[be].xMin+aU;bd=true}else{if(eaDvar>90&&saDvar>90){aS=aU;a9=aW;bd=true}}}if(ba){if(a8){a6=true}if(bd){a2=true}av=bb;at=a9}else{if(a8){a5=true}if(bd){bf=true}au=bb;ar=a9}if(al>=0&&al<180&&aX>=0&&aX<180&&al>aX){a5=true}else{if(al>=180&&al<360&&aX>=180&&aX<360&&al>aX){a6=true}}if(!aS){aS=""}if(!aU){aU=""}if(!bc){if(ba){if(aO!=aI||ac!=aU||V!=aS||av!=ae||at!=aB){aH=aD-aN;if(aG){if(V!=null){aK[aK.length]='<DIV style="position:absolute;overflow:hidden;left:'+V+"px;top:"+(aA+1)+"px;width:"+aB+"px;height:"+aH+"px;background-color:"+aF+'"></DIV>'}}if(ai){if(ac!=null){aK[aK.length]='<DIV style="position:absolute;overflow:hidden;left:'+ac+"px;top:"+(aA+1)+"px;width:"+ae+"px;height:"+aH+"px;background-color:"+aF+'"></DIV>'}}if(ai||aG){ac=aU;ai=a6;aG=a2;aI=aO;aD=aN;ae=av;aB=at;V=aS}}}else{if(aO!=aT||an!=aU||ah!=aS||au!=aV||ar!=ag){aH=aL-aN;if(aj){if(ah!=null){aK[aK.length]='<DIV style="position:absolute;overflow:hidden;left:'+ah+"px;top:"+(az-aH)+"px;width:"+ag+"px;height:"+aH+"px;background-color:"+aF+'"></DIV>'}}if(aY){if(an!=null){aK[aK.length]='<DIV style="position:absolute;overflow:hidden;left:'+an+"px;top:"+(az-aH)+"px;width:"+aV+"px;height:"+aH+"px;background-color:"+aF+'"></DIV>'}}if(aY||aj){an=aU;aY=a5;aj=bf;aT=aO;aL=aN;aV=au;ag=ar;ah=aS}}}}if(bc){if(ba){ai=a6;aG=a2;if(ai){ac=aU}if(aG){V=aS}if(ai||aG){aD=aN;aI=aO}else{aD=0;aI=0}ae=av;aB=at}else{aY=a5;aj=bf;if(aY){an=aU}if(aj){ah=aS}if(aY||aj){aL=aN;aT=aO}else{aL=0;aT=0}aV=au;ag=ar}}if(!ba){aY=a5;aj=bf}else{ai=a6;aG=a2}if(aN==1&&!ba){aH=aL-aN+1;if(bf){aK[aK.length]='<DIV style="position:absolute;overflow:hidden;left:'+aS+"px;top:"+(az+1-aH)+"px;width:"+ar+"px;height:"+aH+"px;background-color:"+aF+'"></DIV>'}if(a5){aK[aK.length]='<DIV style="position:absolute;overflow:hidden;left:'+aU+"px;top:"+(az+1-aH)+"px;width:"+au+"px;height:"+aH+"px;background-color:"+aF+'"></DIV>'}}if(aN==0&&ba){aH=aD-aN+1;if(a2){aK[aK.length]='<DIV style="position:absolute;overflow:hidden;left:'+aS+"px;top:"+(aA)+"px;width:"+at+"px;height:"+aH+"px;background-color:"+aF+'"></DIV>'}if(a6){aK[aK.length]='<DIV style="position:absolute;overflow:hidden;left:'+aU+"px;top:"+(aA)+"px;width:"+av+"px;height:"+aH+"px;background-color:"+aF+'"></DIV>'}}}function aq(ba){var bd;var a7,a7;var bb=aW;var a9=aW;var a8=false;var bc=false;if(ba){var a6=false;var a2=false;bd=aA;a7=xDataArraySa;xDataArray2=xDataArrayEa;saDvar=al;eaDvar=aX}else{var a5=false;var be=false;bd=az;xDataArray2=xDataArraySa;a7=xDataArrayEa;saDvar=360-aX;eaDvar=360-al}if(eaDvar>saDvar){if(xDataArray2[bd]!=null&&aU+aW>=xDataArray2[bd].xMin&&aU<=xDataArray2[bd].xMin){aM=xDataArray2[bd].xMin;if(a7[bd]!=null&&aU+aW>=a7[bd].xMax+1&&aU<=a7[bd].xMax+1){Z=a7[bd].xMax+1;bb=Z-aM}else{bb=aU+aW-aM}aU=aM;a8=true}else{if(a7[bd]!=null&&aU+aW>=a7[bd].xMax+1&&aU<=a7[bd].xMax+1){Z=a7[bd].xMax+1;bb=Z-aU;a8=true}else{if(eaDvar>90&&saDvar<90){a8=true}}}}else{if(a7[bd]!=null&&aU+aW>=a7[bd].xMax+1&&aU<=a7[bd].xMax+1){Z=a7[bd].xMax+1;bb=Z-aU;a8=true}else{if(eaDvar<90&&saDvar<90){a8=true}}if(xDataArray2[bd]!=null&&aU+aW>=xDataArray2[bd].xMin&&aU<=xDataArray2[bd].xMin){aS=xDataArray2[bd].xMin;a9=aW-xDataArray2[bd].xMin+aU;bc=true}else{if(eaDvar>90&&saDvar>90){aS=aU;a9=aW;bc=true}}}if(ba){if(a8){a6=true}if(bc){a2=true}av=bb;at=a9}else{if(a8){a5=true}if(bc){be=true}au=bb;ar=a9}if(al>=0&&al<180&&aX>=0&&aX<180&&al>aX){a5=true}else{if(al>=180&&al<360&&aX>=180&&aX<360&&al>aX){a6=true}}if(aS==null){aS="X"}if(aU==null){aU="X"}if(ba){aH=1;if(a2){if(aS!="X"){aK[aK.length]='<DIV style="position:absolute;overflow:hidden;left:'+aS+"px;top:"+aA+"px;width:"+at+"px;height:"+aH+"px;background-color:"+aF+'"></DIV>'}}if(a6){if(aU!="X"){aK[aK.length]='<DIV style="position:absolute;overflow:hidden;left:'+aU+"px;top:"+aA+"px;width:"+av+"px;height:"+aH+"px;background-color:"+aF+'"></DIV>'}}}else{aH=1;if(be){if(aS!="X"){aK[aK.length]='<DIV style="position:absolute;overflow:hidden;left:'+aS+"px;top:"+(az+1-aH)+"px;width:"+ar+"px;height:"+aH+"px;background-color:"+aF+'"></DIV>'}}if(a5){if(aU!="X"){aK[aK.length]='<DIV style="position:absolute;overflow:hidden;left:'+aU+"px;top:"+(az+1-aH)+"px;width:"+au+"px;height:"+aH+"px;background-color:"+aF+'"></DIV>'}}}}}function D(aQ,a1,bd,aj,aR,bl){if(!aQ||!a1||!bd||!aj||aR==null||bl==null){return false}bd*=F;aj*=F;if(bl==0){return}var aF=m.appendChild(document.createElement("div"));var ag=new Array();phCenter=M(a1);var ao;if(aR>360){ao=aR%360}else{ao=aR}var a9;if(bl>360){a9=bl%360}else{a9=bl}var ba;ba=parseFloat(ao)+parseFloat(a9);if(ba>360){ba=ba%360}if(A=="cartecian"){ao=360-ao;ba=360-ba;var aO;aO=ao;ao=ba;ba=aO}var an,Z,am,X;var ak=ao*Math.PI/180;var a0=a9*Math.PI/180;var a5=ba*Math.PI/180;if((ao<=45&&ao>=0)||(ao>=135&&ao<=225)||(ao>=315&&ao<=360)){Z=Math.round(phCenter.y+Math.sin(ak)*bd/2);if(ao>=90&&ao<=270){an=Math.round(phCenter.x-bd/2)}else{an=Math.round(phCenter.x+bd/2)}}else{an=Math.round(phCenter.x+Math.cos(ak)*aj/2);if(ao>=0&&ao<=180){Z=Math.round(phCenter.y+aj/2)}else{Z=Math.round(phCenter.y-aj/2)}}if((ba<=45&&ba>=0)||(ba>=135&&ba<=225)||(ba>=315&&ba<=360)){X=Math.round(phCenter.y+Math.sin(a5)*bd/2);if(ba>=90&&ba<=270){am=Math.round(phCenter.x-bd/2)}else{am=Math.round(phCenter.x+bd/2)}}else{am=Math.round(phCenter.x+Math.cos(a5)*aj/2);if(ba>=0&&ba<=180){X=Math.round(phCenter.y+aj/2)}else{X=Math.round(phCenter.y-aj/2)}}xDataArraySa=o(phCenter,new jsPoint(an,Z));xDataArrayEa=o(phCenter,new jsPoint(am,X));var aT=aQ.color.getHex();var aM=Math.round(bd/2);var aK=Math.round(aj/2);var T=phCenter.x;var bg=phCenter.y;var aw=0;var av=aK;var bp=aM*aM;var bf=aK*aK;var aT=aQ.color.getHex();var a8=aM-parseInt(aQ.width)+1;var aU=aK-parseInt(aQ.width)+1;var aD=d(phCenter,a8*2,aU*2);var aP=aD[0];var ae=aD[1];aP.pop();ae.pop();var bm,bc;var a4,aJ,aV,a3,aG,aS,aN,aL,af,aY,W,bb,aX,a7,aW,a6,aZ,aH,aa,bj,ad,bk;var ac,aB,aA,az,ax,aE,al,Y,bn,V,aI,ap,ab,bo,aC,ay,at,aq;var au,ah,U,bh;bm=1;bc=av;while(bf*aw<bp*av){aw++;if((bf*aw*aw+bp*(av-0.5)*(av-0.5)-bp*bf)>=0){av--}if(aw==1&&av!=bc){aN=bg+bc-1;aL=bg-bc;ac=1;aB=ac;aA=ac;az=ac;ax=ac;a4=T;if(ao>=0&&ao<180&&ba>=0&&ba<180){ar(true);if(ba<=ao){ar(false)}}else{if(ao>=180&&ao<360&&ba>=180&&ba<=360){ar(false);if(ba<=ao){ar(true)}}else{ar(true);ar(false)}}}else{if(av!=bc){aN=bg+bc;aL=bg-bc;ac=2*(aw-1)+1;aB=ac;aA=ac;az=ac;ax=ac;a4=T-aw+1;if(ao>=0&&ao<180&&ba>=0&&ba<180){ar(true);if(ba<=ao){ar(false)}}else{if(ao>=180&&ao<360&&ba>=180&&ba<=360){ar(false);if(ba<=ao){ar(true)}}else{ar(true);ar(false)}}bc=av;bm=aw}}if(bf*aw>=bp*av){aN=bg+bc;aL=bg-bc;ac=2*aw+1;aB=ac;aA=ac;az=ac;ax=ac;a4=T-aw;if(ao>=0&&ao<180&&ba>=0&&ba<180){ar(true);if(ba<=ao){ar(false)}}else{if(ao>=180&&ao<360&&ba>=180&&ba<=360){ar(false);if(ba<=ao){ar(true)}}else{ar(true);ar(false)}}}}bm=aw;bc=av;V=1;aN=bg+av;aL=bg-av;ac=2*aw+1;aB=ac;aA=ac;az=ac;ax=ac;a4=T-aw;if(ao>=0&&ao<180&&ba>=0&&ba<180){xDataArrayEa.pop();be(true,true);if(ba<=ao){be(false,true)}}else{if(ao>=180&&ao<360&&ba>=180&&ba<=360){xDataArrayEa.pop();if(av!=0){be(false,true)}if(ba<=ao){be(true,true)}}else{if(ao>=180&&ao<360){xDataArraySa.pop()}else{xDataArrayEa.pop()}be(true,true);if(av!=0){a4=T-aw;be(false,true)}}}while(av!=0){av--;if((bf*(aw+0.5)*(aw+0.5)+bp*av*av-bp*bf)<=0){aw++}aN=bg+av;aL=bg-av;ac=2*aw+1;aB=ac;aA=ac;az=ac;ax=ac;a4=T-aw;if(ao>=0&&ao<180&&ba>=0&&ba<180){be(true);if(ba<=ao){be(false)}}else{if(ao>=180&&ao<360&&ba>=180&&ba<=360){if(av!=0){be(false)}if(ba<=ao){be(true)}}else{be(true);if(av!=0){a4=T-aw;be(false)}}}}aF.innerHTML=ag.join("");return aF;function be(bt,bv){var bx;var bq,bq;var bu=ac;var bs=ac;var br=false;var bw=false;var by;if(bt){var bi=false;var ai=false;bx=aN;bq=xDataArraySa;xDataArray2=xDataArrayEa;saDvar=ao;eaDvar=ba}else{var a2=false;var bz=false;bx=aL;xDataArray2=xDataArraySa;bq=xDataArrayEa;saDvar=360-ba;eaDvar=360-ao}if(eaDvar>saDvar){if(xDataArray2[bx]!=null&&a4+ac>=xDataArray2[bx].xMin&&a4<=xDataArray2[bx].xMin){aY=xDataArray2[bx].xMin;if(bq[bx]!=null&&a4+ac>=bq[bx].xMax+1&&a4<=bq[bx].xMax+1){af=bq[bx].xMax+1;bu=af-aY}else{bu=a4+ac-aY}a4=aY;br=true}else{if(bq[bx]!=null&&a4+ac>=bq[bx].xMax+1&&a4<=bq[bx].xMax+1){af=bq[bx].xMax+1;bu=af-a4;br=true}else{if(eaDvar>90&&saDvar<90){br=true}}}}else{if(bq[bx]!=null&&a4+ac>=bq[bx].xMax+1&&a4<=bq[bx].xMax+1){af=bq[bx].xMax+1;bu=af-a4;br=true}else{if(eaDvar<90&&saDvar<90){br=true}}if(xDataArray2[bx]!=null&&a4+ac>=xDataArray2[bx].xMin&&a4<=xDataArray2[bx].xMin){a3=xDataArray2[bx].xMin;bs=ac-xDataArray2[bx].xMin+a4;bw=true}else{if(eaDvar>90&&saDvar>90){a3=a4;bs=ac;bw=true}}}if(bt){if(br){bi=true}if(bw){ai=true}aB=bu;az=bs}else{if(br){a2=true}if(bw){bz=true}aA=bu;ax=bs}if(ao>=0&&ao<180&&ba>=0&&ba<180&&ao>ba){a2=true}else{if(ao>=180&&ao<360&&ba>=180&&ba<360&&ao>ba){bi=true}}if(bi){if(aP[aN-bg]!=null&&a4!=null){if(T+aP[aN-bg]<=a4+aB){if(aB>a4+aB-T-aP[aN-bg]){aZ=T+aP[aN-bg];aI=a4+aB-T-aP[aN-bg]}}else{aZ=null}if(a4<=T-aP[aN-bg]+1){if(aB>T-aP[aN-bg]-a4+1){aB=T-aP[aN-bg]-a4+1}}else{if(aB>=a4+aB-T-aP[aN-bg]+1){a4=null}}}}if(ai){if(aP[aN-bg]!=null&&a3!=null){if(T+aP[aN-bg]<=a3+az){if(az>a3+az-T-aP[aN-bg]){aH=T+aP[aN-bg];ab=a3+az-T-aP[aN-bg]}}else{aH=null}if(a3<=T-aP[aN-bg]+1){if(az>T-aP[aN-bg]-a3+1){az=T-aP[aN-bg]-a3+1}}else{if(az>=a3+az-T-aP[aN-bg]+1){a3=null}}}}if(a2){if(aP[aN-bg]!=null&&a4!=null){if(T+aP[aN-bg]<=a4+aA){if(aA>a4+aA-T-aP[aN-bg]){aZ=T+aP[aN-bg];ap=a4+aA-T-aP[aN-bg]}}else{aZ=null}if(a4<=T-aP[aN-bg]+1){if(aA>T-aP[aN-bg]-a4+1){aA=T-aP[aN-bg]-a4+1}}else{if(aA>=a4+aA-T-aP[aN-bg]+1){a4=null}}}}if(bz){if(aP[aN-bg]!=null&&a3!=null){if(T+aP[aN-bg]<=a3+ax){if(ax>a3+ax-T-aP[aN-bg]){aH=T+aP[aN-bg];bo=a3+ax-T-aP[aN-bg]}}else{aH=null}if(a3<=T-aP[aN-bg]+1){if(ax>T-aP[aN-bg]-a3+1){ax=T-aP[aN-bg]-a3+1}}else{if(ax>=a3+ax-T-aP[aN-bg]+1){a3=null}}}}if(a3==null){a3=""}if(a4==null){a4=""}if(!bv){if(bt){if(aw!=aX||aJ!=a4||aa!=aZ||aG!=a3||ad!=aH||aB!=aE||az!=Y||aI!=aC||ab!=at){V=aW-av;if(U){if(aG!=null&&aG!=""){ag[ag.length]='<DIV style="position:absolute;overflow:hidden;left:'+aG+"px;top:"+(aN+1)+"px;width:"+Y+"px;height:"+V+"px;background-color:"+aT+'"></DIV>'}if(ad!=null&&ad!=""){ag[ag.length]='<DIV style="position:absolute;overflow:hidden;left:'+ad+"px;top:"+(aN+1)+"px;width:"+at+"px;height:"+V+"px;background-color:"+aT+'"></DIV>'}}if(au){if(aJ!=null&&aJ!=""){ag[ag.length]='<DIV style="position:absolute;overflow:hidden;left:'+aJ+"px;top:"+(aN+1)+"px;width:"+aE+"px;height:"+V+"px;background-color:"+aT+'"></DIV>'}if(aa!=null&&aa!=""){ag[ag.length]='<DIV style="position:absolute;overflow:hidden;left:'+aa+"px;top:"+(aN+1)+"px;width:"+aC+"px;height:"+V+"px;background-color:"+aT+'"></DIV>'}}if(au||U){aJ=a4;aa=aZ;au=bi;U=ai;aX=aw;aW=av;aE=aB;Y=az;aG=a3;ad=aH;aC=aI;at=ab}}}else{if(aw!=a7||aV!=a4||bj!=aZ||aS!=a3||aA!=al||ap!=ay||ax!=bn||bo!=aq){V=a6-av;if(bh){if(aS!=null&&aS!=""){ag[ag.length]='<DIV style="position:absolute;overflow:hidden;left:'+aS+"px;top:"+(aL-V)+"px;width:"+bn+"px;height:"+V+"px;background-color:"+aT+'"></DIV>'}if(bk!=null&&bk!=""){ag[ag.length]='<DIV style="position:absolute;overflow:hidden;left:'+bk+"px;top:"+(aL-V)+"px;width:"+aq+"px;height:"+V+"px;background-color:"+aT+'"></DIV>'}}if(ah){if(aV!=null&&aV!=""){ag[ag.length]='<DIV style="position:absolute;overflow:hidden;left:'+aV+"px;top:"+(aL-V)+"px;width:"+al+"px;height:"+V+"px;background-color:"+aT+'"></DIV>'}if(bj!=null&&bj!=""){ag[ag.length]='<DIV style="position:absolute;overflow:hidden;left:'+bj+"px;top:"+(aL-V)+"px;width:"+ay+"px;height:"+V+"px;background-color:"+aT+'"></DIV>'}}if(ah||bh){aV=a4;bj=aZ;ah=a2;bh=bz;a7=aw;a6=av;al=aA;bn=ax;aS=a3;bk=aH;ay=ap;aq=bo}}}}if(bv){if(bt){au=bi;U=ai;if(au){aJ=a4;aa=aZ}if(U){aG=a3;ad=aH}if(au||U){aW=av;aX=aw}else{aW=0;aX=0}aE=aB;Y=az;aC=aI;at=ab}else{ah=a2;bh=bz;if(ah){aV=a4;bj=aZ}if(bh){aS=a3;bk=aH}if(ah||bh){a6=av;a7=aw}else{a6=0;a7=0}al=aA;bn=ax;ay=ap;aq=bo}}if(!bt){ah=a2;bh=bz}else{au=bi;U=ai}if(av==1&&!bt){V=a6-av+1;if(bz){if(a3!=""){ag[ag.length]='<DIV style="position:absolute;overflow:hidden;left:'+a3+"px;top:"+(aL+1-V)+"px;width:"+ax+"px;height:"+V+"px;background-color:"+aT+'"></DIV>'}if(aH!=null){ag[ag.length]='<DIV style="position:absolute;overflow:hidden;left:'+aH+"px;top:"+(aL+1-V)+"px;width:"+bo+"px;height:"+V+"px;background-color:"+aT+'"></DIV>'}}if(a2){if(a4!=""){ag[ag.length]='<DIV style="position:absolute;overflow:hidden;left:'+a4+"px;top:"+(aL+1-V)+"px;width:"+aA+"px;height:"+V+"px;background-color:"+aT+'"></DIV>'}if(aZ!=null){ag[ag.length]='<DIV style="position:absolute;overflow:hidden;left:'+aZ+"px;top:"+(aL+1-V)+"px;width:"+ap+"px;height:"+V+"px;background-color:"+aT+'"></DIV>'}}}if(av==0&&bt){V=aW-av+1;if(ai){if(a3!=""){ag[ag.length]='<DIV style="position:absolute;overflow:hidden;left:'+a3+"px;top:"+aN+"px;width:"+az+"px;height:"+V+"px;background-color:"+aT+'"></DIV>'}if(aH!=null){ag[ag.length]='<DIV style="position:absolute;overflow:hidden;left:'+aH+"px;top:"+aN+"px;width:"+ab+"px;height:"+V+"px;background-color:"+aT+'"></DIV>'}}if(bi){if(a4!=""){ag[ag.length]='<DIV style="position:absolute;overflow:hidden;left:'+a4+"px;top:"+aN+"px;width:"+aB+"px;height:"+V+"px;background-color:"+aT+'"></DIV>'}if(aZ!=null){ag[ag.length]='<DIV style="position:absolute;overflow:hidden;left:'+aZ+"px;top:"+aN+"px;width:"+aI+"px;height:"+V+"px;background-color:"+aT+'"></DIV>'}}}}function ar(bt){var bw;var bq,bq;var bu=ac;var bs=ac;var br=false;var bv=false;if(bt){var bi=false;var ai=false;bw=aN;bq=xDataArraySa;xDataArray2=xDataArrayEa;saDvar=ao;eaDvar=ba}else{var a2=false;var bx=false;bw=aL;xDataArray2=xDataArraySa;bq=xDataArrayEa;saDvar=360-ba;eaDvar=360-ao}if(eaDvar>saDvar){if(xDataArray2[bw]!=null&&a4+ac>=xDataArray2[bw].xMin&&a4<=xDataArray2[bw].xMin){aY=xDataArray2[bw].xMin;if(bq[bw]&&a4+ac>=bq[bw].xMax+1&&a4<=bq[bw].xMax+1){af=bq[bw].xMax+1;bu=af-aY}else{bu=a4+ac-aY}a4=aY;br=true}else{if(bq[bw]!=null&&a4+ac>=bq[bw].xMax+1&&a4<=bq[bw].xMax+1){af=bq[bw].xMax+1;bu=af-a4;br=true}else{if(eaDvar>90&&saDvar<90){br=true}}}}else{if(bq[bw]!=null&&a4+ac>=bq[bw].xMax+1&&a4<=bq[bw].xMax+1){af=bq[bw].xMax+1;bu=af-a4;br=true}else{if(eaDvar<90&&saDvar<90){br=true}}if(xDataArray2[bw]!=null&&a4+ac>=xDataArray2[bw].xMin&&a4<=xDataArray2[bw].xMin){a3=xDataArray2[bw].xMin;bs=ac-xDataArray2[bw].xMin+a4;bv=true}else{if(eaDvar>90&&saDvar>90){a3=a4;bs=ac;bv=true}}}if(bt){if(br){bi=true}if(bv){ai=true}aB=bu;az=bs}else{if(br){a2=true}if(bv){bx=true}aA=bu;ax=bs}if(ao>=0&&ao<180&&ba>=0&&ba<180&&ao>ba){a2=true}else{if(ao>=180&&ao<360&&ba>=180&&ba<360&&ao>ba){bi=true}}if(bi){if(aP[aN-bg]&&a4!=null){if(T+aP[aN-bg]<=a4+aB){if(aB>a4+aB-T-aP[aN-bg]){aZ=T+aP[aN-bg];aI=a4+aB-T-aP[aN-bg]}}else{aZ="X"}if(a4<T-aP[aN-bg]+1){if(aB>T-aP[aN-bg]-a4+1){aB=T-aP[aN-bg]-a4+1}}else{if(aB>=a4+aB-T-aP[aN-bg]+1){a4="X"}}}}if(ai){if(aP[aN-bg]&&a3!=null){if(T+aP[aN-bg]<=a3+az){if(az>a3+az-T-aP[aN-bg]){aH=T+aP[aN-bg];ab=a3+az-T-aP[aN-bg]}}else{aH="X"}if(a3<=T-aP[aN-bg]+1){if(az>T-aP[aN-bg]-a3+1){az=T-aP[aN-bg]-a3+1}}else{if(az>=a3+az-T-aP[aN-bg]+1){a3="X"}}}}if(a2){if(aP[aN-bg]&&a4!=null){if(T+aP[aN-bg]<=a4+aA){if(aA>a4+aA-T-ae[aN-bg]){aZ=T+aP[aN-bg];ap=a4+aA-T-aP[aN-bg]}}else{aZ="X"}if(a4<=T-aP[aN-bg]+1){if(aA>T-aP[aN-bg]-a4+1){aA=T-aP[aN-bg]-a4+1}}else{if(aA>=a4+aA-T-aP[aN-bg]+1){a4="X"}}}}if(bx){if(ae[aN-bg]&&a3!=null){if(T+aP[aN-bg]<=a3+ax){if(ax>a3+ax-T-aP[aN-bg]){aH=T+aP[aN-bg];bo=a3+ax-T-aP[aN-bg]}}else{aH="X"}if(a3<=T-aP[aN-bg]+1){if(ax>T-aP[aN-bg]-a3+1){ax=T-aP[aN-bg]-a3+1}}else{if(ax>=a3+ax-T-aP[aN-bg]+1){a3="X"}}}}if(a3==null){a3="X"}if(a4==null){a4="X"}if(aH==null){aH="X"}if(aZ==null){aZ="X"}if(bt){V=1;if(ai){if(a3!="X"){ag[ag.length]='<DIV style="position:absolute;overflow:hidden;left:'+a3+"px;top:"+aN+"px;width:"+az+"px;height:"+V+"px;background-color:"+aT+'"></DIV>'}if(aH!="X"){ag[ag.length]='<DIV style="position:absolute;overflow:hidden;left:'+aH+"px;top:"+aN+"px;width:"+ab+"px;height:"+V+"px;background-color:"+aT+'"></DIV>'}}if(bi){if(a4!="X"){ag[ag.length]='<DIV style="position:absolute;overflow:hidden;left:'+a4+"px;top:"+aN+"px;width:"+aB+"px;height:"+V+"px;background-color:"+aT+'"></DIV>'}if(aZ!="X"){ag[ag.length]='<DIV style="position:absolute;overflow:hidden;left:'+aZ+"px;top:"+aN+"px;width:"+aI+"px;height:"+V+"px;background-color:"+aT+'"></DIV>'}}}else{V=1;if(bx){if(a3!="X"){ag[ag.length]='<DIV style="position:absolute;overflow:hidden;left:'+a3+"px;top:"+(aL+1-V)+"px;width:"+ax+"px;height:"+V+"px;background-color:"+aT+'"></DIV>'}if(aH!="X"){ag[ag.length]='<DIV style="position:absolute;overflow:hidden;left:'+aH+"px;top:"+(aL+1-V)+"px;width:"+bo+"px;height:"+V+"px;background-color:"+aT+'"></DIV>'}}if(a2){if(a4!="X"){ag[ag.length]='<DIV style="position:absolute;overflow:hidden;left:'+a4+"px;top:"+(aL+1-V)+"px;width:"+aA+"px;height:"+V+"px;background-color:"+aT+'"></DIV>'}if(aZ!="X"){ag[ag.length]='<DIV style="position:absolute;overflow:hidden;left:'+aZ+"px;top:"+(aL+1-V)+"px;width:"+ap+"px;height:"+V+"px;background-color:"+aT+'"></DIV>'}}}}}function O(V,U){if(!V||!U){return false}var W=m.appendChild(document.createElement("div"));for(var T=1;T<U.length;T++){W.appendChild(this.drawLine(V,U[T-1],U[T]))}return W}function n(V,U){if(!V||!U){return false}var W=m.appendChild(document.createElement("div"));var T;for(T=1;T<U.length;T++){W.appendChild(this.drawLine(V,U[T-1],U[T]))}W.appendChild(this.drawLine(V,U[T-1],U[0]))}function h(ak,an){if(!ak||!an){return false}var ab=new Array();var ao;for(ao=0;ao<an.length;ao++){ab[ao]=M(an[ao])}var V=m.appendChild(document.createElement("div"));var ac=new Array();var W=ak.getHex();var af=new Array();var T=ab[0].y;var U=ab[0].y;var ar=new Array();var aj,ah,ag;var ad;ad=ab.length;for(ao=0;ao<ab.length;ao++){if(ao!=0){ah=ao-1}else{ah=ad-1}if(!(ab[ah].x==ab[ao].x&&ab[ah].y==ab[ao].y)){ar[ar.length]=ab[ao]}}ab=ar;ar=new Array();ad=ab.length;for(ao=0;ao<ab.length;ao++){if(ao!=0){ah=ao-1}else{ah=ad-1}if(ao!=ad-1){ag=ao+1}else{ag=0}if(!(ab[ao].y==ab[ag].y&&ab[ao].y==ab[ah].y)){ar[ar.length]=ab[ao]}else{if(ab[ah].x<=ab[ao].x){ac[ac.length]='<DIV style="position:absolute;height:1px;overflow:hidden;left:';ac[ac.length]=ab[ah].x;ac[ac.length]="px;top:";ac[ac.length]=ab[ao].y;ac[ac.length]="px;width:";ac[ac.length]=ab[ao].x-ab[ah].x;ac[ac.length]="px;background-color:";ac[ac.length]=W;ac[ac.length]='"></DIV>'}else{ac[ac.length]='<DIV style="position:absolute;height:1px;overflow:hidden;left:';ac[ac.length]=ab[ao].x;ac[ac.length]="px;top:";ac[ac.length]=ab[ao].y;ac[ac.length]="px;width:";ac[ac.length]=ab[ah].x-ab[ao].x;ac[ac.length]="px;background-color:";ac[ac.length]=W;ac[ac.length]='"></DIV>'}}}ab=ar;for(ao=1;ao<ab.length;ao++){if(T>ab[ao-1].y){T=ab[ao-1].y}if(U<ab[ao-1].y){U=ab[ao-1].y}af[ao-1]=o(ab[ao-1],ab[ao]);if(ao<ab.length-1){if((ab[ao-1].y<ab[ao].y&&ab[ao].y<ab[ao+1].y)||(ab[ao-1].y>ab[ao].y&&ab[ao].y>ab[ao+1].y)){af[ao-1][ab[ao].y]=null}}else{if((ab[ao-1].y<ab[ao].y&&ab[ao].y<ab[0].y)||(ab[ao-1].y>ab[ao].y&&ab[ao].y>ab[0].y)){af[ao-1][ab[ao].y]=null}}}if(T>ab[ao-1].y){T=ab[ao-1].y}if(U<ab[ao-1].y){U=ab[ao-1].y}af[ao-1]=o(ab[ao-1],ab[0]);if((ab[ao-1].y<ab[0].y&&ab[0].y<ab[1].y)||(ab[ao-1].y>ab[0].y&&ab[0].y>ab[1].y)){af[ao-1][ab[0].y]=null}var aa;var X="";var am;ad=ab.length;var ai;var aq,at;var Z,Y,ap;for(aa=T;aa<=U;aa++){am=0;var ae=new Array();for(ao=0;ao<ad;ao++){ai=af[ao];if(ao!=0){ah=ao-1}else{ah=ad-1}if(ao!=1&&ao!=0){aj=ao-2}else{if(ao==0){aj=ad-2}else{aj=ad-1}}if(ao!=ad-1){ag=ao+1}else{ag=0}if((aa==ab[ao].y&&aa==ab[ah].y&&aa<ab[aj].y&&aa<ab[ag].y&&ai[aa])||(aa==ab[ao].y&&aa==ab[ah].y&&aa>ab[aj].y&&aa>ab[ag].y&&ai[aa])){ae[am]=ai[aa];am++}if(ai[aa]){ae[am]=ai[aa];am++}}ae.sort(al);Y=aa;for(ao=0;ao<ae.length;ao+=2){if(ae[ao+1]){Z=ae[ao].xMin;if(ae[ao+1].xMax>ae[ao].xMax){ap=ae[ao+1].xMax-ae[ao].xMin+1}else{ap=ae[ao].xMax-ae[ao].xMin+1}}else{Z=ae[ae.length-1].xMin;ap=ae[ae.length-1].xMax-ae[ae.length-1].xMin+1}ac[ac.length]='<DIV style="position:absolute;height:1px;overflow:hidden;left:';ac[ac.length]=Z;ac[ac.length]="px;top:";ac[ac.length]=Y;ac[ac.length]="px;width:";ac[ac.length]=ap;ac[ac.length]="px;background-color:";ac[ac.length]=W;ac[ac.length]='"></DIV>'}}V.innerHTML=ac.join("");return V;function al(av,au){return av.xMin-au.xMin}}function r(aB,ao){if(!aB||!ao){return false}var Z=new Array();var aA;for(aA=0;aA<ao.length;aA++){Z[aA]=M(ao[aA])}if(Z.length>4){Z=new Array(Z[0],Z[1],Z[2],Z[3])}else{if(Z.length<4){return false}}var aE=m.appendChild(document.createElement("div"));var al=new Array();var aC=Z[0].x;var ae=Z[0].x;for(aA=1;aA<Z.length;aA++){if(aC>Z[aA-1].x){aC=Z[aA-1].x}if(ae<Z[aA-1].x){ae=Z[aA-1].x}}var av,ag,W,ax,ar,af,V,aw;av=Z[0].x;ar=Z[0].y;ag=Z[1].x;af=Z[1].y;W=Z[2].x;V=Z[2].y;ax=Z[3].x;aw=Z[3].y;var aq,ap,X,au;var an=av-1;var ad=ar-1;var ak,ac;au=0;var aD=1;var ah=parseInt(aB.width);var ai=aB.color.getHex();var at=ah;var aj=ah;ak=av;ac=ar;var am=false;var Y=false;var az=1.1;var ay=new Array();var aG,aF,ab,aa;aG=ac;aF=ac;ab=ak;aa=ak;while(au<=1){aq=0;ap=0;aq=(1-au)*(1-au)*(1-au)*av+3*(1-au)*(1-au)*au*ag+3*(1-au)*au*au*W+au*au*au*ax;ap=(1-au)*(1-au)*(1-au)*ar+3*(1-au)*(1-au)*au*af+3*(1-au)*au*au*V+au*au*au*aw;aq=Math.round(aq);ap=Math.round(ap);if(aq!=an||ap!=ad){if(aq-an>1||ap-ad>1||an-aq>1||ad-ap>1){au-=aD;aD=aD/az}else{ay[ay.length]=new jsPoint(aq,ap);an=aq;ad=ap}}else{au-=aD;aD=aD*az}au+=aD}var U=new Array();for(var aA=0;aA<ay.length;aA++){var T=false;aq=ay[aA].x;ap=ay[aA].y;if(aA!=0&&aA+1<ay.length){if(Math.abs(ay[aA-1].x-ay[aA+1].x)==1&&Math.abs(ay[aA-1].y-ay[aA+1].y)==1){if(!U[aA-1]){T=true;U[aA]=true}}}if(!T){if(ap==ac&&!Y){am=true}if(aq==ak&&!am){Y=true}if(aq!=ak&&!am){if(aF==aG){al[al.length]='<DIV style="position:absolute;overflow:hidden;left:';al[al.length]=ak;al[al.length]="px;top:";al[al.length]=aG;al[al.length]="px;width:";al[al.length]=ah;al[al.length]="px;height:";al[al.length]=ah;al[al.length]="px;background-color:";al[al.length]=ai;al[al.length]='"></DIV>'}else{al[al.length]='<DIV style="position:absolute;overflow:hidden;left:';al[al.length]=ak;al[al.length]="px;top:";al[al.length]=aG;al[al.length]="px;width:";al[al.length]=ah;al[al.length]="px;height:";al[al.length]=aF-aG+ah;al[al.length]="px;background-color:";al[al.length]=ai;al[al.length]='"></DIV>'}ak=aq;ac=ap;aG=ac;aF=ac;Y=false}if(ap!=ac&&!Y){if(aa==ab){al[al.length]='<DIV style="position:absolute;overflow:hidden;left:';al[al.length]=ab;al[al.length]="px;top:";al[al.length]=ac;al[al.length]="px;width:";al[al.length]=ah;al[al.length]="px;height:";al[al.length]=ah;al[al.length]="px;background-color:";al[al.length]=ai;al[al.length]='"></DIV>'}else{al[al.length]='<DIV style="position:absolute;overflow:hidden;left:';al[al.length]=ab;al[al.length]="px;top:";al[al.length]=ac;al[al.length]="px;width:";al[al.length]=aa-ab+ah;al[al.length]="px;height:";al[al.length]=ah;al[al.length]="px;background-color:";al[al.length]=ai;al[al.length]='"></DIV>'}ak=aq;ac=ap;ab=ak;aa=ak;am=false}if(Y&&!am){if(ap<=aG){aG=ap}if(ap>aF){aF=ap}}else{aG=ap;aF=ap}if(am&&!Y){if(aq<=ab){ab=aq}if(aq>aa){aa=aq}}else{ab=aq;aa=aq}if(aA==ay.length-1){if(!Y){if(aa==ab){al[al.length]='<DIV style="position:absolute;overflow:hidden;left:';al[al.length]=ab;al[al.length]="px;top:";al[al.length]=ac;al[al.length]="px;width:";al[al.length]=ah;al[al.length]="px;height:";al[al.length]=ah;al[al.length]="px;background-color:";al[al.length]=ai;al[al.length]='"></DIV>'}else{al[al.length]='<DIV style="position:absolute;overflow:hidden;left:';al[al.length]=ab;al[al.length]="px;top:";al[al.length]=ac;al[al.length]="px;width:";al[al.length]=aa-ab+ah;al[al.length]="px;height:";al[al.length]=ah;al[al.length]="px;background-color:";al[al.length]=ai;al[al.length]='"></DIV>'}}if(!am){if(aF==aG){al[al.length]='<DIV style="position:absolute;overflow:hidden;left:';al[al.length]=ak;al[al.length]="px;top:";al[al.length]=aG;al[al.length]="px;width:";al[al.length]=ah;al[al.length]="px;height:";al[al.length]=ah;al[al.length]="px;background-color:";al[al.length]=ai;al[al.length]='"></DIV>'}else{al[al.length]='<DIV style="position:absolute;overflow:hidden;left:';al[al.length]=ak;al[al.length]="px;top:";al[al.length]=aG;al[al.length]="px;width:";al[al.length]=aa-ab+ah;al[al.length]="px;height:";al[al.length]=aF-aG+ah;al[al.length]="px;background-color:";al[al.length]=ai;al[al.length]='"></DIV>'}}}}}aE.innerHTML=al.join("");return aE}function Q(ay,an){if(!ay||!an){return false}if(an.length<2){return false}var X=new Array();for(var ax=0;ax<an.length;ax++){X[ax]=M(an[ax])}var aA=m.appendChild(document.createElement("div"));var ak=new Array();var aC=new Array();var aB=new Array();var au=X.length-1;for(var ax=0;ax<=au;ax++){aC[ax]=X[ax].x*V(au)/(V(ax)*V(au-ax));aB[ax]=X[ax].y*V(au)/(V(ax)*V(au-ax))}var am=X[0].x-1;var ab=X[0].y-1;var aj,aa;t=0;var az=1;var ae=parseInt(ay.width);var af=ay.color.getHex();var aq=ae;var ah=ae;aj=X[0].x;aa=X[0].y;var al=false;var W=false;var ad=0;var ag;var ai=0;var ap;var ao;var aw;var ar,ac;var av=1.1;var at=new Array();var aE,aD,Z,Y;aE=aa;aD=aa;Z=aj;Y=aj;while(t<=1){ap=0;ao=0;for(var ax=0;ax<=au;ax++){ai=Math.pow(1-t,au-ax)*Math.pow(t,ax);ap=ap+aC[ax]*ai;ao=ao+aB[ax]*ai}var ar;var ac;ar=ap;ac=ao;ap=Math.round(ap);ao=Math.round(ao);if(ap!=am||ao!=ab){if(ap-am>1||ao-ab>1||am-ap>1||ab-ao>1){t-=az;az=az/av}else{at[at.length]=new jsPoint(ap,ao);am=ap;ab=ao}}else{t-=az;az=az*av}t+=az}var U=new Array();for(var ax=0;ax<at.length;ax++){var T=false;ap=at[ax].x;ao=at[ax].y;if(ax!=0&&ax+1<at.length){if(Math.abs(at[ax-1].x-at[ax+1].x)==1&&Math.abs(at[ax-1].y-at[ax+1].y)==1){if(!U[ax-1]){T=true;U[ax]=true}}}if(!T){if(ao==aa&&!W){al=true}if(ap==aj&&!al){W=true}if(ap!=aj&&!al){if(aD==aE){ak[ak.length]='<DIV style="position:absolute;overflow:hidden;left:';ak[ak.length]=aj;ak[ak.length]="px;top:";ak[ak.length]=aE;ak[ak.length]="px;width:";ak[ak.length]=ae;ak[ak.length]="px;height:";ak[ak.length]=ae;ak[ak.length]="px;background-color:";ak[ak.length]=af;ak[ak.length]='"></DIV>'}else{ak[ak.length]='<DIV style="position:absolute;overflow:hidden;left:';ak[ak.length]=aj;ak[ak.length]="px;top:";ak[ak.length]=aE;ak[ak.length]="px;width:";ak[ak.length]=ae;ak[ak.length]="px;height:";ak[ak.length]=aD-aE+ae;ak[ak.length]="px;background-color:";ak[ak.length]=af;ak[ak.length]='"></DIV>'}aj=ap;aa=ao;aE=aa;aD=aa;W=false}if(ao!=aa&&!W){if(Y==Z){ak[ak.length]='<DIV style="position:absolute;overflow:hidden;left:';ak[ak.length]=Z;ak[ak.length]="px;top:";ak[ak.length]=aa;ak[ak.length]="px;width:";ak[ak.length]=ae;ak[ak.length]="px;height:";ak[ak.length]=ae;ak[ak.length]="px;background-color:";ak[ak.length]=af;ak[ak.length]='"></DIV>'}else{ak[ak.length]='<DIV style="position:absolute;overflow:hidden;left:';ak[ak.length]=Z;ak[ak.length]="px;top:";ak[ak.length]=aa;ak[ak.length]="px;width:";ak[ak.length]=Y-Z+ae;ak[ak.length]="px;height:";ak[ak.length]=ae;ak[ak.length]="px;background-color:";ak[ak.length]=af;ak[ak.length]='"></DIV>'}aj=ap;aa=ao;Z=aj;Y=aj;al=false}if(W&&!al){if(ao<=aE){aE=ao}if(ao>aD){aD=ao}}else{aE=ao;aD=ao}if(al&&!W){if(ap<=Z){Z=ap}if(ap>Y){Y=ap}}else{Z=ap;Y=ap}if(ax==at.length-1){if(!W){if(Y==Z){ak[ak.length]='<DIV style="position:absolute;overflow:hidden;left:';ak[ak.length]=Z;ak[ak.length]="px;top:";ak[ak.length]=aa;ak[ak.length]="px;width:";ak[ak.length]=ae;ak[ak.length]="px;height:";ak[ak.length]=ae;ak[ak.length]="px;background-color:";ak[ak.length]=af;ak[ak.length]='"></DIV>'}else{ak[ak.length]='<DIV style="position:absolute;overflow:hidden;left:';ak[ak.length]=Z;ak[ak.length]="px;top:";ak[ak.length]=aa;ak[ak.length]="px;width:";ak[ak.length]=Y-Z+ae;ak[ak.length]="px;height:";ak[ak.length]=ae;ak[ak.length]="px;background-color:";ak[ak.length]=af;ak[ak.length]='"></DIV>'}}if(!al){if(aD==aE){ak[ak.length]='<DIV style="position:absolute;overflow:hidden;left:';ak[ak.length]=aj;ak[ak.length]="px;top:";ak[ak.length]=aE;ak[ak.length]="px;width:";ak[ak.length]=ae;ak[ak.length]="px;height:";ak[ak.length]=ae;ak[ak.length]="px;background-color:";ak[ak.length]=af;ak[ak.length]='"></DIV>'}else{ak[ak.length]='<DIV style="position:absolute;overflow:hidden;left:';ak[ak.length]=aj;ak[ak.length]="px;top:";ak[ak.length]=aE;ak[ak.length]="px;width:";ak[ak.length]=Y-Z+ae;ak[ak.length]="px;height:";ak[ak.length]=aD-aE+ae;ak[ak.length]="px;background-color:";ak[ak.length]=af;ak[ak.length]='"></DIV>'}}}}}aA.innerHTML=ak.join("");return aA;function V(aH){var aG=1;for(var aF=1;aF<=aH;aF++){aG=aG*aF}return aG}}function j(V,U,T){return this.drawCurve(V,U,T,true)}function i(Y,ac,ab,T){if(!Y||!ac){return false}if(!ab){ab=0}if(!T){T=false}var W=new Array();for(var Z=0;Z<ac.length;Z++){W[Z]=M(ac[Z])}var ad=new Array();if(!T||!(W[0].x==W[W.length-1].x&&W[0].y==W[W.length-1].y)){ad[ad.length]=W[0]}for(var Z=1;Z<W.length;Z++){if(!(W[Z].x==W[Z-1].x&&W[Z].y==W[Z-1].y)){ad[ad.length]=W[Z]}}W=ad;if(W.length<2){return false}else{if(W.length==2){return this.drawLine(Y,W[0],W[1],"physical")}}var X=m.appendChild(document.createElement("div"));var aa=new Array();var V=new Array();var U=W.length-1;if(!T){for(var Z=0;Z<=U-1;Z++){if(Z==0){p(new Array(W[0],W[0],W[1],W[2]),ab,V)}else{if(Z==U-1){p(new Array(W[U-2],W[U-1],W[U],W[U]),ab,V)}else{p(new Array(W[Z-1],W[Z],W[Z+1],W[Z+2]),ab,V)}}}J(Y,V,aa)}else{for(var Z=0;Z<=U-1;Z++){if(Z==0){p(new Array(W[U],W[0],W[1],W[2]),ab,V)}else{if(Z==U-1){p(new Array(W[U-2],W[U-1],W[U],W[0]),ab,V)}else{p(new Array(W[Z-1],W[Z],W[Z+1],W[Z+2]),ab,V)}}}p(new Array(W[U-1],W[U],W[0],W[1]),ab,V);J(Y,V,aa)}X.innerHTML=aa.join("");return X}function p(aa,af,V){var ae=0;var ad=0;var ac=aa[1].x-1;var W=aa[1].y-1;var ag=0;var ab=1;var X=1.1;var Z=(1-af)*(aa[2].x-aa[0].x)/2;var U=(1-af)*(aa[3].x-aa[1].x)/2;var Y=(1-af)*(aa[2].y-aa[0].y)/2;var T=(1-af)*(aa[3].y-aa[1].y)/2;while(ag<=1){ae=0;ad=0;ae=(2*ag*ag*ag-3*ag*ag+1)*aa[1].x+(ag*ag*ag-2*ag*ag+ag)*Z+(-2*ag*ag*ag+3*ag*ag)*aa[2].x+(ag*ag*ag-ag*ag)*U;ad=(2*ag*ag*ag-3*ag*ag+1)*aa[1].y+(ag*ag*ag-2*ag*ag+ag)*Y+(-2*ag*ag*ag+3*ag*ag)*aa[2].y+(ag*ag*ag-ag*ag)*T;ae=Math.round(ae);ad=Math.round(ad);if(ae!=ac||ad!=W){if(ae-ac>1||ad-W>1||ac-ae>1||W-ad>1){ag-=ab;ab=ab/X}else{V[V.length]=new jsPoint(ae,ad);ac=ae;W=ad;if(ag+ab>1){ag=1-ab}}}else{ab=ab*X}ag+=ab}}function J(ak,ab,ae){var ac=ab[0].x;var aj=ab[0].y;var aa=false;var Y=false;var ai,ah,V,U;ai=ac;ah=ac;V=aj;U=aj;var Z=parseInt(ak.width);var W=ak.color.getHex();var T=Z;var ad=Z;var X=new Array();for(var ag=0;ag<ab.length;ag++){var af=false;x=ab[ag].x;y=ab[ag].y;if(ag!=0&&ag+1<ab.length){if(Math.abs(ab[ag-1].x-ab[ag+1].x)==1&&Math.abs(ab[ag-1].y-ab[ag+1].y)==1){if(!X[ag-1]){af=true;X[ag]=true}}}if(!af){if(y==aj&&!Y){aa=true}if(x==ac&&!aa){Y=true}if(x!=ac&&!aa){if(U==V){ae[ae.length]='<DIV style="position:absolute;overflow:hidden;left:';ae[ae.length]=ac;ae[ae.length]="px;top:";ae[ae.length]=V;ae[ae.length]="px;width:";ae[ae.length]=Z;ae[ae.length]="px;height:";ae[ae.length]=Z;ae[ae.length]="px;background-color:";ae[ae.length]=W;ae[ae.length]='"></DIV>'}else{ae[ae.length]='<DIV style="position:absolute;overflow:hidden;left:';ae[ae.length]=ac;ae[ae.length]="px;top:";ae[ae.length]=V;ae[ae.length]="px;width:";ae[ae.length]=Z;ae[ae.length]="px;height:";ae[ae.length]=U-V+Z;ae[ae.length]="px;background-color:";ae[ae.length]=W;ae[ae.length]='"></DIV>'}ac=x;aj=y;V=aj;U=aj;Y=false}if(y!=aj&&!Y){if(ah==ai){ae[ae.length]='<DIV style="position:absolute;overflow:hidden;left:';ae[ae.length]=ai;ae[ae.length]="px;top:";ae[ae.length]=aj;ae[ae.length]="px;width:";ae[ae.length]=Z;ae[ae.length]="px;height:";ae[ae.length]=Z;ae[ae.length]="px;background-color:";ae[ae.length]=W;ae[ae.length]='"></DIV>'}else{ae[ae.length]='<DIV style="position:absolute;overflow:hidden;left:';ae[ae.length]=ai;ae[ae.length]="px;top:";ae[ae.length]=aj;ae[ae.length]="px;width:";ae[ae.length]=ah-ai+Z;ae[ae.length]="px;height:";ae[ae.length]=Z;ae[ae.length]="px;background-color:";ae[ae.length]=W;ae[ae.length]='"></DIV>'}ac=x;aj=y;ai=ac;ah=ac;aa=false}if(Y&&!aa){if(y<=V){V=y}if(y>U){U=y}}else{V=y;U=y}if(aa&&!Y){if(x<=ai){ai=x}if(x>ah){ah=x}}else{ai=x;ah=x}if(ag==ab.length-1){if(!Y){if(ah==ai){ae[ae.length]='<DIV style="position:absolute;overflow:hidden;left:';ae[ae.length]=ai;ae[ae.length]="px;top:";ae[ae.length]=aj;ae[ae.length]="px;width:";ae[ae.length]=Z;ae[ae.length]="px;height:";ae[ae.length]=Z;ae[ae.length]="px;background-color:";ae[ae.length]=W;ae[ae.length]='"></DIV>'}else{ae[ae.length]='<DIV style="position:absolute;overflow:hidden;left:';ae[ae.length]=ai;ae[ae.length]="px;top:";ae[ae.length]=aj;ae[ae.length]="px;width:";ae[ae.length]=ah-ai+Z;ae[ae.length]="px;height:";ae[ae.length]=Z;ae[ae.length]="px;background-color:";ae[ae.length]=W;ae[ae.length]='"></DIV>'}}if(!aa){if(U==V){ae[ae.length]='<DIV style="position:absolute;overflow:hidden;left:';ae[ae.length]=ac;ae[ae.length]="px;top:";ae[ae.length]=V;ae[ae.length]="px;width:";ae[ae.length]=Z;ae[ae.length]="px;height:";ae[ae.length]=Z;ae[ae.length]="px;background-color:";ae[ae.length]=W;ae[ae.length]='"></DIV>'}else{ae[ae.length]='<DIV style="position:absolute;overflow:hidden;left:';ae[ae.length]=ac;ae[ae.length]="px;top:";ae[ae.length]=V;ae[ae.length]="px;width:";ae[ae.length]=ah-ai+Z;ae[ae.length]="px;height:";ae[ae.length]=U-V+Z;ae[ae.length]="px;background-color:";ae[ae.length]=W;ae[ae.length]='"></DIV>'}}}}}}function E(al,ao,Y){if(!al||!ao){return false}if(!Y){Y=0}var ac=new Array();for(var ap=0;ap<ao.length;ap++){ac[ap]=M(ao[ap])}var ar=new Array();if(!(ac[0].x==ac[ac.length-1].x&&ac[0].y==ac[ac.length-1].y)){ar[ar.length]=ac[0]}for(var ap=1;ap<ac.length;ap++){if(!(ac[ap].x==ac[ap-1].x&&ac[ap].y==ac[ap-1].y)){ar[ar.length]=ac[ap]}}ac=ar;if(ac.length<2){return false}else{if(ac.length==2){return this.drawLine(pen,ac[0],ac[1],"physical")}}var ag=m.appendChild(document.createElement("div"));var ad=new Array();var V=al.getHex();var aj=new Array();var Z=new Array();var ae=new Array();var T;var U;var ai=ac.length-1;var ap;for(var ap=0;ap<=ai-1;ap++){if(ap==0){l(new Array(ac[ai],ac[0],ac[1],ac[2]),Y,Z)}else{if(ap==ai-1){l(new Array(ac[ai-2],ac[ai-1],ac[ai],ac[0]),Y,Z)}else{l(new Array(ac[ap-1],ac[ap],ac[ap+1],ac[ap+2]),Y,Z)}}}l(new Array(ac[ai-1],ac[ai],ac[0],ac[1]),Y,Z);var at=q(aj,ae,Z);T=at[0];U=at[1];var ab;var ak;var W="";var an;var af=ac.length;var aa,X,aq;for(ab=T;ab<=U;ab++){an=0;var ah=aj[ab];ah.sort(am);X=ab;for(ap=0;ap<ah.length;ap+=2){if(ah[ap+1]){aa=ah[ap].xMin;if(ah[ap+1].xMax>ah[ap].xMax){aq=ah[ap+1].xMax-ah[ap].xMin+1}else{aq=ah[ap].xMax-ah[ap].xMin+1}}else{aa=ah[ah.length-1].xMin;aq=ah[ah.length-1].xMax-ah[ah.length-1].xMin+1}ad[ad.length]='<DIV style="position:absolute;height:1px;overflow:hidden;left:';ad[ad.length]=aa;ad[ad.length]="px;top:";ad[ad.length]=X;ad[ad.length]="px;width:";ad[ad.length]=aq;ad[ad.length]="px;background-color:";ad[ad.length]=V;ad[ad.length]='"></DIV>'}}ag.innerHTML=ad.join("");return ag;function am(av,au){return av.xMin-au.xMin}}function l(ad,ai,W){var ah=0;var ag=0;var af=ad[1].x-1;var X=ad[1].y-1;var aj=0;var ae=1;var Y=1.1;var ac=1;var V=1;var aa=1;var ab=(1-ai)*(ad[2].x-ad[0].x)/2;var U=(1-ai)*(ad[3].x-ad[1].x)/2;var Z=(1-ai)*(ad[2].y-ad[0].y)/2;var T=(1-ai)*(ad[3].y-ad[1].y)/2;while(aj<=1){ah=0;ag=0;ah=(2*aj*aj*aj-3*aj*aj+1)*ad[1].x+(aj*aj*aj-2*aj*aj+aj)*ab+(-2*aj*aj*aj+3*aj*aj)*ad[2].x+(aj*aj*aj-aj*aj)*U;ag=(2*aj*aj*aj-3*aj*aj+1)*ad[1].y+(aj*aj*aj-2*aj*aj+aj)*Z+(-2*aj*aj*aj+3*aj*aj)*ad[2].y+(aj*aj*aj-aj*aj)*T;ah=Math.round(ah);ag=Math.round(ag);if(ah!=af||ag!=X){if(ah-af>1||ag-X>1||af-ah>1||X-ag>1){aj-=ae;ae=ae/Y}else{W[W.length]=new jsPoint(ah,ag);af=ah;X=ag;if(aj+ae>1){aj=1-ae}}}else{ae=ae*Y}aj+=ae}}function q(ai,ae,aa){function X(){this.xMax=0;this.xMin=0;this.i=0}var W=new Array();var T;var U;var Y;var ac;var ab=true;var Z;var ad=-1;var ah,af;for(var aj=0;aj<aa.length;aj++){var ag=false;x=aa[aj].x;y=aa[aj].y;if(aj!=0&&aj+1<aa.length){if((aa[aj-1].x-aa[aj+1].x==1||aa[aj+1].x-aa[aj-1].x==1)&&(aa[aj-1].y-aa[aj+1].y==1||aa[aj+1].y-aa[aj-1].y==1)){if(!W[aj-1]){ag=true;W[aj]=true}}}if(!ag){if(!ac){ac=y}if(!T){T=y}if(!U){U=y}if(y<T){T=y}if(y>U){U=y}if(!ai[y]){ai[y]=new Array();ai[y][0]=new X();ai[y][0].xMin=x;ai[y][0].xMax=x;ai[y][0].i=aj}else{Z=ai[y][ai[y].length-1];if(aj-Z.i==1){if(Z.xMin>x){Z.xMin=x}if(Z.xMax<x){Z.xMax=x}Z.i=aj}else{ai[y][ai[y].length]=new X();ai[y][ai[y].length-1].xMin=x;ai[y][ai[y].length-1].xMax=x;ai[y][ai[y].length-1].i=aj}}ah=ae[ae.length-1];af=ae[ae.length-2];if(ah&&af){if((ah>y&&af<ah)||(ah<y&&af>ah)){ai[ah][ai[ah].length]=ai[ah][ai[ah].length-1]}}if(!ae[0]){ae[0]=y}else{if(ae[ae.length-1]!=y){ae[ae.length]=y}}Y=y}}ah=ae[0];af=ah;var aj=1;while(ah==af){af=ae[ae.length-aj];aj++}if(ah&&af){if((ah>ae[1]&&af<ah)||(ah<ae[1]&&af>ah)){ai[ah][ai[ah].length]=ai[ah][ai[ah].length-1]}}if(ac==Y){var ak=ai[ac][0];var V=ai[Y][ai[Y].length-1];if(V.xMax>ak.xMax){ai[ac][0].xMax=V.xMax}if(V.xMin<ak.xMin){ai[ac][0].xMin=V.xMin}if(ai[Y].length>1){ai[Y].pop()}else{ai.pop()}}return new Array(T,U)}function a(Y,T,W,V,X,Z){if(!Y||!T){return false}phPoint=M(T);if(X!=null){X=Math.round(X*F)+"px"}var U=m.appendChild(document.createElement("div"));U.style.position="absolute";U.style.left=phPoint.x+"px";U.style.top=phPoint.y+"px";if(V){U.style.color=V.getHex()}if(W){if(W.family){U.style.fontFamily=W.family}if(W.weight){U.style.fontWeight=W.weight}if(W.size){U.style.fontSize=W.size}if(W.style){U.style.fontStyle=W.style}if(W.variant){U.style.fontVariant=W.variant}}if(X){U.style.width=X}if(Z){U.style.textAlign=Z}U.innerHTML=Y;return U}function f(W,U,X,T){if(!W||!U){return false}phPoint=M(U);if(X!=null){X=Math.round(X*F)+"px"}if(T!=null){T=Math.round(T*F)+"px"}var Y=m.appendChild(document.createElement("div"));Y.style.position="absolute";Y.style.left=phPoint.x+"px";Y.style.top=phPoint.y+"px";var V=Y.appendChild(document.createElement("img"));V.src=W;if(X!=null){V.style.width=X;Y.style.width=X}if(T!=null){V.style.height=T;Y.style.height=T}return Y}function H(){m.innerHTML=""}};
|
@@ -1,1214 +0,0 @@
|
|
1
|
-
/* ********************************************************************
|
2
|
-
**********************************************************************
|
3
|
-
* HTML Virtual Keyboard Interface Script - v1.36
|
4
|
-
* Copyright (c) 2010 - GreyWyvern
|
5
|
-
*
|
6
|
-
* - Licenced for free distribution under the BSDL
|
7
|
-
* http://www.opensource.org/licenses/bsd-license.php
|
8
|
-
*
|
9
|
-
* Add a script-driven keyboard interface to text fields, password
|
10
|
-
* fields and textareas.
|
11
|
-
*
|
12
|
-
* See http://www.greywyvern.com/code/javascript/keyboard for examples
|
13
|
-
* and usage instructions.
|
14
|
-
*
|
15
|
-
* Version 1.36 - June 2, 2010
|
16
|
-
* - Add user resize control
|
17
|
-
* - Automatically choose keyboard layout based on lang attribute
|
18
|
-
*
|
19
|
-
* See full changelog at:
|
20
|
-
* http://www.greywyvern.com/code/javascript/keyboard.changelog.txt
|
21
|
-
*
|
22
|
-
* Keyboard Credits
|
23
|
-
* - Basic Japanese Hiragana/Katakana keyboard layout by Damjan
|
24
|
-
* - Ukrainian keyboard layout by Dmitry Nikitin
|
25
|
-
* - Macedonian keyboard layout by Damjan Dimitrioski
|
26
|
-
* - Pashto keyboard layout by Ahmad Wali Achakzai (qamosona.com)
|
27
|
-
* - Armenian Eastern and Western keyboard layouts by Hayastan Project (www.hayastan.co.uk)
|
28
|
-
* - Pinyin keyboard layout from a collaboration with Lou Winklemann
|
29
|
-
* - Kazakh keyboard layout by Alex Madyankin
|
30
|
-
* - Danish keyboard layout by Verner Kjærsgaard
|
31
|
-
* - Slovak keyboard layout by Daniel Lara (www.learningslovak.com)
|
32
|
-
* - Belarusian, Serbian Cyrillic and Serbian Latin keyboard layouts by Evgeniy Titov
|
33
|
-
* - Bulgarian Phonetic keyboard layout by Samuil Gospodinov
|
34
|
-
* - Swedish keyboard layout by HÃ¥kan Sandberg
|
35
|
-
* - Romanian keyboard layout by Aurel
|
36
|
-
* - Farsi (Persian) keyboard layout by Kaveh Bakhtiyari (www.bakhtiyari.com)
|
37
|
-
* - Burmese keyboard layout by Cetanapa
|
38
|
-
* - Slovenian keyboard layout by Miran Zeljko
|
39
|
-
* - Hungarian keyboard layout by Antal Sall 'Hiromacu'
|
40
|
-
* - Arabic keyboard layout by Srinivas Reddy
|
41
|
-
* - Italian and Spanish (Spain) keyboard layouts by dictionarist.com
|
42
|
-
* - Lithuanian and Russian keyboard layouts by Ramunas
|
43
|
-
* - German keyboard layout by QuHno
|
44
|
-
* - French keyboard layout by Hidden Evil
|
45
|
-
* - Polish Programmers layout by moose
|
46
|
-
* - Turkish keyboard layouts by offcu
|
47
|
-
* - Dutch and US Int'l keyboard layouts by jerone
|
48
|
-
*
|
49
|
-
*/
|
50
|
-
var VKI_attach, VKI_close;
|
51
|
-
function VKI_buildKeyboardInputs() {
|
52
|
-
var self = this;
|
53
|
-
|
54
|
-
this.VKI_version = "1.36";
|
55
|
-
this.VKI_showVersion = false;
|
56
|
-
this.VKI_target = false;
|
57
|
-
this.VKI_shift = this.VKI_shiftlock = false;
|
58
|
-
this.VKI_altgr = this.VKI_altgrlock = false;
|
59
|
-
this.VKI_dead = false;
|
60
|
-
this.VKI_deadkeysOn = false;
|
61
|
-
|
62
|
-
this.VKI_kts = this.VKI_kt = VKI_default_layout; // Default keyboard layout
|
63
|
-
this.VKI_langAdapt = true; // Use lang attribute of input to select keyboard
|
64
|
-
this.VKI_size = 2; // Default keyboard size (1-5)
|
65
|
-
this.VKI_sizeAdj = true; // Allow user to adjust keyboard size
|
66
|
-
this.VKI_clearPasswords = false; // Clear password fields on focus
|
67
|
-
this.VKI_imageURI = "/assets/tr8n/keyboard.png";
|
68
|
-
this.VKI_clickless = 0; // 0 = disabled, > 0 = delay in ms
|
69
|
-
this.VKI_keyCenter = 3;
|
70
|
-
|
71
|
-
this.VKI_isIE = /*@cc_on!@*/false;
|
72
|
-
this.VKI_isIE6 = /*@if(@_jscript_version == 5.6)!@end@*/false;
|
73
|
-
this.VKI_isIElt8 = /*@if(@_jscript_version < 5.8)!@end@*/false;
|
74
|
-
this.VKI_isWebKit = window.opera;
|
75
|
-
this.VKI_isOpera = RegExp("Opera").test(navigator.userAgent);
|
76
|
-
this.VKI_isMoz = (!this.VKI_isWebKit && navigator.product == "Gecko");
|
77
|
-
|
78
|
-
|
79
|
-
/* ***** i18n text strings ************************************* */
|
80
|
-
this.VKI_i18n = {
|
81
|
-
'00': "Virtual Keyboard Interface",
|
82
|
-
'01': "Display virtual keyboard interface",
|
83
|
-
'02': "Select keyboard layout",
|
84
|
-
'03': "Dead keys",
|
85
|
-
'04': "On",
|
86
|
-
'05': "Off",
|
87
|
-
'06': "Close the keyboard",
|
88
|
-
'07': "Clear",
|
89
|
-
'08': "Clear this input",
|
90
|
-
'09': "Version",
|
91
|
-
'10': "Adjust keyboard size"
|
92
|
-
};
|
93
|
-
|
94
|
-
|
95
|
-
/* ***** Create keyboards ************************************** */
|
96
|
-
this.VKI_layout = {};
|
97
|
-
|
98
|
-
// - Lay out each keyboard in rows of sub-arrays. Each sub-array
|
99
|
-
// represents one key.
|
100
|
-
//
|
101
|
-
// - Each sub-array consists of four slots described as follows:
|
102
|
-
// example: ["a", "A", "\u00e1", "\u00c1"]
|
103
|
-
//
|
104
|
-
// a) Normal character
|
105
|
-
// A) Character + Shift/Caps
|
106
|
-
// \u00e1) Character + Alt/AltGr/AltLk
|
107
|
-
// \u00c1) Character + Shift/Caps + Alt/AltGr/AltLk
|
108
|
-
//
|
109
|
-
// You may include sub-arrays which are fewer than four slots.
|
110
|
-
// In these cases, the missing slots will be blanked when the
|
111
|
-
// corresponding modifier key (Shift or AltGr) is pressed.
|
112
|
-
//
|
113
|
-
// - If the second slot of a sub-array matches one of the following
|
114
|
-
// strings:
|
115
|
-
// "Tab", "Caps", "Shift", "Enter", "Bksp",
|
116
|
-
// "Alt" OR "AltGr", "AltLk"
|
117
|
-
// then the function of the key will be the following,
|
118
|
-
// respectively:
|
119
|
-
// - Insert a tab
|
120
|
-
// - Toggle Caps Lock (technically a Shift Lock)
|
121
|
-
// - Next entered character will be the shifted character
|
122
|
-
// - Insert a newline (textarea), or close the keyboard
|
123
|
-
// - Delete the previous character
|
124
|
-
// - Next entered character will be the alternate character
|
125
|
-
// - Toggle Alt/AltGr Lock
|
126
|
-
//
|
127
|
-
// The first slot of this sub-array will be the text to display
|
128
|
-
// on the corresponding key. This allows for easy localisation
|
129
|
-
// of key names.
|
130
|
-
//
|
131
|
-
// - Layout dead keys (diacritic + letter) should be added as
|
132
|
-
// arrays of two item arrays with hash keys equal to the
|
133
|
-
// diacritic. See the "this.VKI_deadkey" object below the layout
|
134
|
-
// definitions. In each two item child array, the second item
|
135
|
-
// is what the diacritic would change the first item to.
|
136
|
-
//
|
137
|
-
// - To disable dead keys for a layout, simply assign true to the
|
138
|
-
// DDK property of the layout (DDK = disable dead keys). See the
|
139
|
-
// Numpad layout below for an example.
|
140
|
-
//
|
141
|
-
// - Note that any characters beyond the normal ASCII set should be
|
142
|
-
// entered in escaped Unicode format. (eg \u00a3 = Pound symbol)
|
143
|
-
// You can find Unicode values for characters here:
|
144
|
-
// http://unicode.org/charts/
|
145
|
-
//
|
146
|
-
// - To remove a keyboard, just delete it, or comment it out of the
|
147
|
-
// source code
|
148
|
-
|
149
|
-
this.VKI_layout.Arabic = [ // Arabic Keyboard
|
150
|
-
[["\u0630", "\u0651 "], ["1", "!", "\u00a1", "\u00b9"], ["2", "@", "\u00b2"], ["3", "#", "\u00b3"], ["4", "$", "\u00a4", "\u00a3"], ["5", "%", "\u20ac"], ["6", "^", "\u00bc"], ["7", "&", "\u00bd"], ["8", "*", "\u00be"], ["9", "(", "\u2018"], ["0", ")", "\u2019"], ["-", "_", "\u00a5"], ["=", "+", "\u00d7", "\u00f7"], ["Bksp", "Bksp"]],
|
151
|
-
[["Tab", "Tab"], ["\u0636", "\u064e"], ["\u0635", "\u064b"], ["\u062b", "\u064f"], ["\u0642", "\u064c"], ["\u0641", "\u0644"], ["\u063a", "\u0625"], ["\u0639", "\u2018"], ["\u0647", "\u00f7"], ["\u062e", "\u00d7"], ["\u062d", "\u061b"], ["\u062c", "\u003c"], ["\u062f", "\u003e"], ["\u005c", "\u007c"]],
|
152
|
-
[["Caps", "Caps"], ["\u0634", "\u0650"], ["\u0633", "\u064d"], ["\u064a", "\u005d"], ["\u0628", "\u005b"], ["\u0644", "\u0644"], ["\u0627", "\u0623"], ["\u062a", "\u0640"], ["\u0646", "\u060c"], ["\u0645", "\u002f"], ["\u0643", "\u003a"], ["\u0637", "\u0022"], ["Enter", "Enter"]],
|
153
|
-
[["Shift", "Shift"], ["\u0626", "\u007e"], ["\u0621", "\u0652"], ["\u0624", "\u007d"], ["\u0631", "\u007b"], ["\u0644", "\u0644"], ["\u0649", "\u0622"], ["\u0629", "\u2019"], ["\u0648", "\u002c"], ["\u0632", "\u002e"], ["\u0638", "\u061f"], ["Shift", "Shift"]],
|
154
|
-
[[" ", " ", " ", " "], ["Alt", "Alt"]]
|
155
|
-
]; this.VKI_layout.Arabic.lang = ["ar"];
|
156
|
-
|
157
|
-
this.VKI_layout["Armenian East"] = [ // Eastern Armenian Keyboard
|
158
|
-
[["\u055D", "\u055C"], [":", "1"], ["\u0571", "\u0541"], ["\u0575", "\u0545"], ["\u055B", "3"], [",", "4"], ["-", "9"], [".", "\u0587"], ["\u00AB", "("], ["\u00BB", ")"], ["\u0585", "\u0555"], ["\u057C", "\u054C"], ["\u056A", "\u053A"], ["Bksp", "Bksp"]],
|
159
|
-
[["Tab", "Tab"], ["\u056D", "\u053D"], ["\u0582", "\u0552"], ["\u0567", "\u0537"], ["\u0580", "\u0550"], ["\u057F", "\u054F"], ["\u0565", "\u0535"], ["\u0568", "\u0538"], ["\u056B", "\u053B"], ["\u0578", "\u0548"], ["\u057A", "\u054A"], ["\u0579", "\u0549"], ["\u057B", "\u054B"], ["'", "\u055E"]],
|
160
|
-
[["Caps", "Caps"], ["\u0561", "\u0531"], ["\u057D", "\u054D"], ["\u0564", "\u0534"], ["\u0586", "\u0556"], ["\u0584", "\u0554"], ["\u0570", "\u0540"], ["\u0573", "\u0543"], ["\u056F", "\u053F"], ["\u056C", "\u053C"], ["\u0569", "\u0539"], ["\u0583", "\u0553"], ["Enter", "Enter"]],
|
161
|
-
[["Shift", "Shift"], ["\u0566", "\u0536"], ["\u0581", "\u0551"], ["\u0563", "\u0533"], ["\u057E", "\u054E"], ["\u0562", "\u0532"], ["\u0576", "\u0546"], ["\u0574", "\u0544"], ["\u0577", "\u0547"], ["\u0572", "\u0542"], ["\u056E", "\u053E"], ["Shift", "Shift"]],
|
162
|
-
[[" ", " "]]
|
163
|
-
]; this.VKI_layout["Armenian East"].lang = ["hy"];
|
164
|
-
|
165
|
-
this.VKI_layout["Armenian West"] = [ // Western Armenian Keyboard
|
166
|
-
[["\u055D", "\u055C"], [":", "1"], ["\u0571", "\u0541"], ["\u0575", "\u0545"], ["\u055B", "3"], [",", "4"], ["-", "9"], [".", "\u0587"], ["\u00AB", "("], ["\u00BB", ")"], ["\u0585", "\u0555"], ["\u057C", "\u054C"], ["\u056A", "\u053A"], ["Bksp", "Bksp"]],
|
167
|
-
[["Tab", "Tab"], ["\u056D", "\u053D"], ["\u057E", "\u054E"], ["\u0567", "\u0537"], ["\u0580", "\u0550"], ["\u0564", "\u0534"], ["\u0565", "\u0535"], ["\u0568", "\u0538"], ["\u056B", "\u053B"], ["\u0578", "\u0548"], ["\u0562", "\u0532"], ["\u0579", "\u0549"], ["\u057B", "\u054B"], ["'", "\u055E"]],
|
168
|
-
[["Caps", "Caps"], ["\u0561", "\u0531"], ["\u057D", "\u054D"], ["\u057F", "\u054F"], ["\u0586", "\u0556"], ["\u056F", "\u053F"], ["\u0570", "\u0540"], ["\u0573", "\u0543"], ["\u0584", "\u0554"], ["\u056C", "\u053C"], ["\u0569", "\u0539"], ["\u0583", "\u0553"], ["Enter", "Enter"]],
|
169
|
-
[["Shift", "Shift"], ["\u0566", "\u0536"], ["\u0581", "\u0551"], ["\u0563", "\u0533"], ["\u0582", "\u0552"], ["\u057A", "\u054A"], ["\u0576", "\u0546"], ["\u0574", "\u0544"], ["\u0577", "\u0547"], ["\u0572", "\u0542"], ["\u056E", "\u053E"], ["Shift", "Shift"]],
|
170
|
-
[[" ", " "]]
|
171
|
-
]; this.VKI_layout["Armenian West"].lang = ["hy-arevmda"];
|
172
|
-
|
173
|
-
this.VKI_layout.Belarusian = [ // Belarusian Standard Keyboard
|
174
|
-
[["\u0451", "\u0401"], ["1", "!"], ["2", '"'], ["3", "\u2116"], ["4", ";"], ["5", "%"], ["6", ":"], ["7", "?"], ["8", "*"], ["9", "("], ["0", ")"], ["-", "_"], ["=", "+"], ["Bksp", "Bksp"]],
|
175
|
-
[["Tab", "Tab"], ["\u0439", "\u0419"], ["\u0446", "\u0426"], ["\u0443", "\u0423"], ["\u043a", "\u041a"], ["\u0435", "\u0415"], ["\u043d", "\u041d"], ["\u0433", "\u0413"], ["\u0448", "\u0428"], ["\u045e", "\u040e"], ["\u0437", "\u0417"], ["\u0445", "\u0425"], ["'", "'"], ["\\", "/"]],
|
176
|
-
[["Caps", "Caps"], ["\u0444", "\u0424"], ["\u044b", "\u042b"], ["\u0432", "\u0412"], ["\u0430", "\u0410"], ["\u043f", "\u041f"], ["\u0440", "\u0420"], ["\u043e", "\u041e"], ["\u043b", "\u041b"], ["\u0434", "\u0414"], ["\u0436", "\u0416"], ["\u044d", "\u042d"], ["Enter", "Enter"]],
|
177
|
-
[["Shift", "Shift"], ["/", "|"], ["\u044f", "\u042f"], ["\u0447", "\u0427"], ["\u0441", "\u0421"], ["\u043c", "\u041c"], ["\u0456", "\u0406"], ["\u0442", "\u0422"], ["\u044c", "\u042c"], ["\u0431", "\u0411"], ["\u044e", "\u042e"], [".", ","], ["Shift", "Shift"]],
|
178
|
-
[[" ", " "]]
|
179
|
-
]; this.VKI_layout.Belarusian.lang = ["be"];
|
180
|
-
|
181
|
-
this.VKI_layout.Belgian = [ // Belgian Standard Keyboard
|
182
|
-
[["\u00b2", "\u00b3"], ["&", "1", "|"], ["\u00e9", "2", "@"], ['"', "3", "#"], ["'", "4"], ["(", "5"], ["\u00a7", "6", "^"], ["\u00e8", "7"], ["!", "8"], ["\u00e7", "9", "{"], ["\u00e0", "0", "}"], [")", "\u00b0"], ["-", "_"], ["Bksp", "Bksp"]],
|
183
|
-
[["Tab", "Tab"], ["a", "A"], ["z", "Z"], ["e", "E", "\u20ac"], ["r", "R"], ["t", "T"], ["y", "Y"], ["u", "U"], ["i", "I"], ["o", "O"], ["p", "P"], ["\u005e", "\u00a8", "["], ["$", "*", "]"], ["Enter", "Enter"]],
|
184
|
-
[["Caps", "Caps"], ["q", "Q"], ["s", "S"], ["d", "D"], ["f", "F"], ["g", "G"], ["h", "H"], ["j", "J"], ["k", "K"], ["l", "L"], ["m", "M"], ["\u00f9", "%", "\u00b4"], ["\u03bc", "\u00a3", "`"]],
|
185
|
-
[["Shift", "Shift"], ["<", ">", "\\"], ["w", "W"], ["x", "X"], ["c", "C"], ["v", "V"], ["b", "B"], ["n", "N"], [",", "?"], [";", "."], [":", "/"], ["=", "+", "~"], ["Shift", "Shift"]],
|
186
|
-
[[" ", " ", " ", " "], ["AltGr", "AltGr"]]
|
187
|
-
]; this.VKI_layout.Belgian.lang = ["nl-BE", "fr-BE"];
|
188
|
-
|
189
|
-
this.VKI_layout.Bengali = [ // Bengali Standard Keyboard
|
190
|
-
[[""], ["1", "", "\u09E7"], ["2", "", "\u09E8"], ["3", "\u09CD\u09B0", "\u09E9"], ["4", "\u09B0\u09CD", "\u09EA"], ["5", "\u099C\u09CD\u09B0", "\u09EB"], ["6", "\u09A4\u09CD\u09B7", "\u09EC"], ["7", "\u0995\u09CD\u09B0", "\u09ED"], ["8", "\u09B6\u09CD\u09B0", "\u09EE"], ["9", "(", "\u09EF"], ["0", ")", "\u09E6"], ["-", "\u0983"], ["\u09C3", "\u098B", "\u09E2", "\u09E0"], ["Bksp", "Bksp"]],
|
191
|
-
[["Tab", "Tab"], ["\u09CC", "\u0994", "\u09D7"], ["\u09C8", "\u0990"], ["\u09BE", "\u0986"], ["\u09C0", "\u0988", "\u09E3", "\u09E1"], ["\u09C2", "\u098A"], ["\u09AC", "\u09AD"], ["\u09B9", "\u0999"], ["\u0997", "\u0998"], ["\u09A6", "\u09A7"], ["\u099C", "\u099D"], ["\u09A1", "\u09A2", "\u09DC", "\u09DD"], ["\u09BC", "\u099E"]],
|
192
|
-
[["Caps", "Caps"], ["\u09CB", "\u0993", "\u09F4", "\u09F5"], ["\u09C7", "\u098F", "\u09F6", "\u09F7"], ["\u09CD", "\u0985", "\u09F8", "\u09F9"], ["\u09BF", "\u0987", "\u09E2", "\u098C"], ["\u09C1", "\u0989"], ["\u09AA", "\u09AB"], ["\u09B0", "", "\u09F0", "\u09F1"], ["\u0995", "\u0996"], ["\u09A4", "\u09A5"], ["\u099A", "\u099B"], ["\u099F", "\u09A0"], ["Enter", "Enter"]],
|
193
|
-
[["Shift", "Shift"], [""], ["\u0982", "\u0981", "\u09FA"], ["\u09AE", "\u09A3"], ["\u09A8"], ["\u09AC"], ["\u09B2"], ["\u09B8", "\u09B6"], [",", "\u09B7"], [".", "{"], ["\u09AF", "\u09DF"], ["Shift", "Shift"]],
|
194
|
-
[[" ", " ", " ", " "], ["AltGr", "AltGr"]]
|
195
|
-
]; this.VKI_layout.Bengali.lang = ["bn"];
|
196
|
-
|
197
|
-
this.VKI_layout['Bulgarian Ph'] = [ // Bulgarian Phonetic Keyboard
|
198
|
-
[["\u0447", "\u0427"], ["1", "!"], ["2", "@"], ["3", "#"], ["4", "$"], ["5", "%"], ["6", "^"], ["7", "&"], ["8", "*"], ["9", "("], ["0", ")"], ["-", "_"], ["=", "+"], ["Bksp", "Bksp"]],
|
199
|
-
[["Tab", "Tab"], ["\u044F", "\u042F"], ["\u0432", "\u0412"], ["\u0435", "\u0415"], ["\u0440", "\u0420"], ["\u0442", "\u0422"], ["\u044A", "\u042A"], ["\u0443", "\u0423"], ["\u0438", "\u0418"], ["\u043E", "\u041E"], ["\u043F", "\u041F"], ["\u0448", "\u0428"], ["\u0449", "\u0429"], ["\u044E", "\u042E"]],
|
200
|
-
[["Caps", "Caps"], ["\u0430", "\u0410"], ["\u0441", "\u0421"], ["\u0434", "\u0414"], ["\u0444", "\u0424"], ["\u0433", "\u0413"], ["\u0445", "\u0425"], ["\u0439", "\u0419"], ["\u043A", "\u041A"], ["\u043B", "\u041B"], [";", ":"], ["'", '"'], ["Enter", "Enter"]],
|
201
|
-
[["Shift", "Shift"], ["\u0437", "\u0417"], ["\u044C", "\u042C"], ["\u0446", "\u0426"], ["\u0436", "\u0416"], ["\u0431", "\u0411"], ["\u043D", "\u041D"], ["\u043C", "\u041C"], [",", "<"], [".", ">"], ["/", "?"], ["Shift", "Shift"]],
|
202
|
-
[[" ", " "]]
|
203
|
-
]; this.VKI_layout['Bulgarian Ph'].lang = ["bg"];
|
204
|
-
|
205
|
-
this.VKI_layout.Burmese = [ // Burmese Keyboard
|
206
|
-
[["\u1039`", "~"], ["\u1041", "\u100D"], ["\u1042", "\u100E"], ["\u1043", "\u100B"], ["\u1044", "\u1000\u103B\u1015\u103A"], ["\u1045", "%"], ["\u1046", "\u002F"], ["\u1047", "\u101B"], ["\u1048", "\u1002"], ["\u1049", "("], ["\u1040", ")"], ["-", "_"], ["=", "+"], ["Bksp", "Bksp"]],
|
207
|
-
[["Tab", "Tab"], ["\u1006", "\u1029"], ["\u1010", "\u1040"], ["\u1014", "\u103F"], ["\u1019", "\u1023"], ["\u1021", "\u1024"], ["\u1015", "\u104C"], ["\u1000", "\u1009"], ["\u1004", "\u104D"], ["\u101E", "\u1025"], ["\u1005", "\u100F"], ["\u101F", "\u1027"], ["\u2018", "\u2019"], ["\u104F", "\u100B\u1039\u100C"]],
|
208
|
-
[["Caps", "Caps"], ["\u200B\u1031", "\u1017"], ["\u200B\u103B", "\u200B\u103E"], ["\u200B\u102D", "\u200B\u102E"], ["\u200B\u103A","\u1004\u103A\u1039\u200B"], ["\u200B\u102B", "\u200B\u103D"], ["\u200B\u1037", "\u200B\u1036"], ["\u200B\u103C", "\u200B\u1032"], ["\u200B\u102F", "\u200B\u102F"], ["\u200B\u1030", "\u200B\u1030"], ["\u200B\u1038", "\u200B\u102B\u103A"], ["\u1012", "\u1013"], ["Enter", "Enter"]],
|
209
|
-
[["Shift", "Shift"], ["\u1016", "\u1007"], ["\u1011", "\u100C"], ["\u1001", "\u1003"], ["\u101C", "\u1020"], ["\u1018", "\u1026"], ["\u100A", "\u1008"], ["\u200B\u102C", "\u102A"], ["\u101A", "\u101B"], ["\u002E", "\u101B"], ["\u104B", "\u104A"], ["Shift", "Shift"]],
|
210
|
-
[[" ", " "]]
|
211
|
-
]; this.VKI_layout.Burmese.lang = ["my"];
|
212
|
-
|
213
|
-
this.VKI_layout.Czech = [ // Czech Keyboard
|
214
|
-
[[";", "\u00b0", "`", "~"], ["+", "1", "!"], ["\u011B", "2", "@"], ["\u0161", "3", "#"], ["\u010D", "4", "$"], ["\u0159", "5", "%"], ["\u017E", "6", "^"], ["\u00FD", "7", "&"], ["\u00E1", "8", "*"], ["\u00ED", "9", "("], ["\u00E9", "0", ")"], ["=", "%", "-", "_"], ["\u00B4", "\u02c7", "=", "+"], ["Bksp", "Bksp"]],
|
215
|
-
[["Tab", "Tab"], ["q", "Q"], ["w", "W"], ["e", "E", "\u20AC"], ["r", "R"], ["t", "T"], ["y", "Y"], ["u", "U"], ["i", "I"], ["o", "O"], ["p", "P"], ["\u00FA", "/", "[", "{"], [")", "(", "]", "}"], ["Enter", "Enter"]],
|
216
|
-
[["Caps", "Caps"], ["a", "A"], ["s", "S"], ["d", "D"], ["f", "F"], ["g", "G"], ["h", "H"], ["j", "J"], ["k", "K"], ["l", "L"], ["\u016F", '"', ";", ":"], ["\u00A7", "!", "\u00a4", "^"], ["\u00A8", "'", "\\", "|"]],
|
217
|
-
[["Shift", "Shift"], ["\\", "|", "", "\u02dd"], ["z", "Z"], ["x", "X"], ["c", "C"], ["v", "V"], ["b", "B"], ["n", "N"], ["m", "M"], [",", "?", "<", "\u00d7"], [".", ":", ">", "\u00f7"], ["-", "_", "/", "?"], ["Shift", "Shift"]],
|
218
|
-
[[" ", " ", " ", " "], ["Alt", "Alt"]]
|
219
|
-
]; this.VKI_layout.Czech.lang = ["cs"];
|
220
|
-
|
221
|
-
this.VKI_layout.Danish = [ // Danish Standard Keyboard
|
222
|
-
[["\u00bd", "\u00a7"], ["1", "!"], ["2", '"', "@"], ["3", "#", "\u00a3"], ["4", "\u00a4", "$"], ["5", "%", "\u20ac"], ["6", "&"], ["7", "/", "{"], ["8", "(", "["], ["9", ")", "]"], ["0", "=", "}"], ["+", "?"], ["\u00b4", "`", "|"], ["Bksp", "Bksp"]],
|
223
|
-
[["Tab", "Tab"], ["q", "Q"], ["w", "W"], ["e", "E", "\u20ac"], ["r", "R"], ["t", "T"], ["y", "Y"], ["u", "U"], ["i", "I"], ["o", "O"], ["p", "P"], ["\u00e5", "\u00c5"], ["\u00a8", "^", "~"], ["Enter", "Enter"]],
|
224
|
-
[["Caps", "Caps"], ["a", "A"], ["s", "S"], ["d", "D"], ["f", "F"], ["g", "G"], ["h", "H"], ["j", "J"], ["k", "K"], ["l", "L"], ["\u00e6", "\u00c6"], ["\u00f8", "\u00d8"], ["'", "*"]],
|
225
|
-
[["Shift", "Shift"], ["<", ">", "\\"], ["z", "Z"], ["x", "X"], ["c", "C"], ["v", "V"], ["b", "B"], ["n", "N"], ["m", "M", "\u03bc", "\u039c"], [",", ";"], [".", ":"], ["-", "_"], ["Shift", "Shift"]],
|
226
|
-
[[" ", " ", " ", " "], ["AltGr", "AltGr"]]
|
227
|
-
]; this.VKI_layout.Danish.lang = ["da"];
|
228
|
-
|
229
|
-
this.VKI_layout.Dutch = [ // Dutch Standard Keyboard
|
230
|
-
[["@", "\u00a7", "\u00ac"], ["1", "!", "\u00b9"], ["2", '"', "\u00b2"], ["3", "#", "\u00b3"], ["4", "$", "\u00bc"], ["5", "%", "\u00bd"], ["6", "&", "\u00be"], ["7", "_", "\u00a3"], ["8", "(", "{"], ["9", ")", "}"], ["0", "'"], ["/", "?", "\\"], ["\u00b0", "~", "\u00b8"], ["Bksp", "Bksp"]],
|
231
|
-
[["Tab", "Tab"], ["q", "Q"], ["w", "W"], ["e", "E", "\u20ac"], ["r", "R", "\u00b6"], ["t", "T"], ["y", "Y"], ["u", "U"], ["i", "I"], ["o", "O"], ["p", "P"], ["\u00a8", "^"], ["*", "|"], ["<", ">"]],
|
232
|
-
[["Caps", "Caps"], ["a", "A"], ["s", "S", "\u00df"], ["d", "D"], ["f", "F"], ["g", "G"], ["h", "H"], ["j", "J"], ["k", "K"], ["l", "L"], ["+", "\u00b1"], ["\u00b4", "\u0060"], ["Enter", "Enter"]],
|
233
|
-
[["Shift", "Shift"], ["]", "[", "\u00a6"], ["z", "Z", "\u00ab"], ["x", "X", "\u00bb"], ["c", "C", "\u00a2"], ["v", "V"], ["b", "B"], ["n", "N"], ["m", "M", "\u00b5"], [",", ";"], [".", ":", "\u00b7"], ["-", "="], ["Shift", "Shift"]],
|
234
|
-
[[" ", " ", " ", " "], ["AltGr", "AltGr"]]
|
235
|
-
]; this.VKI_layout.Dutch.lang = ["nl"];
|
236
|
-
|
237
|
-
this.VKI_layout.Dvorak = [ // Dvorak Keyboard
|
238
|
-
[["`", "~"], ["1", "!"], ["2", "@"], ["3", "#"], ["4", "$"], ["5", "%"], ["6", "^"], ["7", "&"], ["8", "*"], ["9", "("], ["0", ")"], ["[", "{"], ["]", "}"], ["Bksp", "Bksp"]],
|
239
|
-
[["Tab", "Tab"],["'", '"'], [",", "<"], [".", ">"], ["p", "P"], ["y", "Y"], ["f", "F"], ["g", "G"], ["c", "C"], ["r", "R"], ["l", "L"], ["/", "?"], ["=", "+"], ["\\", "|"]],
|
240
|
-
[["Caps", "Caps"], ["a", "A"], ["o", "O"], ["e", "E"], ["u", "U"], ["i", "I"], ["d", "D"], ["h", "H"], ["t", "T"], ["n", "N"], ["s", "S"], ["-", "_"], ["Enter", "Enter"]],
|
241
|
-
[["Shift", "Shift"], [";", ":"], ["q", "Q"], ["j", "J"], ["k", "K"], ["x", "X"], ["b", "B"], ["m", "M"], ["w", "W"], ["v", "V"], ["z", "Z"], ["Shift", "Shift"]],
|
242
|
-
[[" ", " "]]
|
243
|
-
];
|
244
|
-
|
245
|
-
this.VKI_layout.Farsi = [ // Farsi Keyboard
|
246
|
-
[["\u067e", "\u0651 "], ["1", "!", "\u00a1", "\u00b9"], ["2", "@", "\u00b2"], ["3", "#", "\u00b3"], ["4", "$", "\u00a4", "\u00a3"], ["5", "%", "\u20ac"], ["6", "^", "\u00bc"], ["7", "&", "\u00bd"], ["8", "*", "\u00be"], ["9", "(", "\u2018"], ["0", ")", "\u2019"], ["-", "_", "\u00a5"], ["=", "+", "\u00d7", "\u00f7"], ["Bksp", "Bksp"]],
|
247
|
-
[["Tab", "Tab"], ["\u0636", "\u064e"], ["\u0635", "\u064b"], ["\u062b", "\u064f"], ["\u0642", "\u064c"], ["\u0641", "\u0644"], ["\u063a", "\u0625"], ["\u0639", "\u2018"], ["\u0647", "\u00f7"], ["\u062e", "\u00d7"], ["\u062d", "\u061b"], ["\u062c", "\u003c"], ["\u0686", "\u003e"], ["\u0698", "\u007c"]],
|
248
|
-
[["Caps", "Caps"], ["\u0634", "\u0650"], ["\u0633", "\u064d"], ["\u064a", "\u005d"], ["\u0628", "\u005b"], ["\u0644", "\u0644"], ["\u0627", "\u0623"], ["\u062a", "\u0640"], ["\u0646", "\u060c"], ["\u0645", "\u005c"], ["\u06af", "\u003a"], ["\u0643", "\u0022"], ["Enter", "Enter"]],
|
249
|
-
[["Shift", "Shift"], ["\u0626", "\u007e"], ["\u0621", "\u0652"], ["\u0632", "\u007d"], ["\u0631", "\u007b"], ["\u0630", "\u0644"], ["\u062f", "\u0622"], ["\u0626", "\u0621"], ["\u0648", "\u002c"], [".", "\u002e"], ["/", "\u061f"], ["Shift", "Shift"]],
|
250
|
-
[[" ", " ", " ", " "], ["Alt", "Alt"]]
|
251
|
-
]; this.VKI_layout.Farsi.lang = ["fa"];
|
252
|
-
|
253
|
-
this.VKI_layout.French = [ // French Standard Keyboard
|
254
|
-
[["\u00b2", "\u00b3"], ["&", "1"], ["\u00e9", "2", "~"], ['"', "3", "#"], ["'", "4", "{"], ["(", "5", "["], ["-", "6", "|"], ["\u00e8", "7", "\u0060"], ["_", "8", "\\"], ["\u00e7", "9", "\u005e"], ["\u00e0", "0", "\u0040"], [")", "\u00b0", "]"], ["=", "+", "}"], ["Bksp", "Bksp"]],
|
255
|
-
[["Tab", "Tab"], ["a", "A"], ["z", "Z"], ["e", "E", "\u20ac"], ["r", "R"], ["t", "T"], ["y", "Y"], ["u", "U"], ["i", "I"], ["o", "O"], ["p", "P"], ["^", "\u00a8"], ["$", "\u00a3", "\u00a4"], ["Enter", "Enter"]],
|
256
|
-
[["Caps", "Caps"], ["q", "Q"], ["s", "S"], ["d", "D"], ["f", "F"], ["g", "G"], ["h", "H"], ["j", "J"], ["k", "K"], ["l", "L"], ["m", "M"], ["\u00f9", "%"], ["*", "\u03bc"]],
|
257
|
-
[["Shift", "Shift"], ["<", ">"], ["w", "W"], ["x", "X"], ["c", "C"], ["v", "V"], ["b", "B"], ["n", "N"], [",", "?"], [";", "."], [":", "/"], ["!", "\u00a7"], ["Shift", "Shift"]],
|
258
|
-
[[" ", " ", " ", " "], ["AltGr", "AltGr"]]
|
259
|
-
]; this.VKI_layout.French.lang = ["fr"];
|
260
|
-
|
261
|
-
this.VKI_layout.German = [ // German Standard Keyboard
|
262
|
-
[["\u005e", "\u00b0"], ["1", "!"], ["2", '"', "\u00b2"], ["3", "\u00a7", "\u00b3"], ["4", "$"], ["5", "%"], ["6", "&"], ["7", "/", "{"], ["8", "(", "["], ["9", ")", "]"], ["0", "=", "}"], ["\u00df", "?", "\\"], ["\u00b4", "\u0060"], ["Bksp", "Bksp"]],
|
263
|
-
[["Tab", "Tab"], ["q", "Q", "\u0040"], ["w", "W"], ["e", "E", "\u20ac"], ["r", "R"], ["t", "T"], ["z", "Z"], ["u", "U"], ["i", "I"], ["o", "O"], ["p", "P"], ["\u00fc", "\u00dc"], ["+", "*", "~"], ["Enter", "Enter"]],
|
264
|
-
[["Caps", "Caps"], ["a", "A"], ["s", "S"], ["d", "D"], ["f", "F"], ["g", "G"], ["h", "H"], ["j", "J"], ["k", "K"], ["l", "L"], ["\u00f6", "\u00d6"], ["\u00e4", "\u00c4"], ["#", "'"]],
|
265
|
-
[["Shift", "Shift"], ["<", ">", "\u00a6"], ["y", "Y"], ["x", "X"], ["c", "C"], ["v", "V"], ["b", "B"], ["n", "N"], ["m", "M", "\u00b5"], [",", ";"], [".", ":"], ["-", "_"], ["Shift", "Shift"]],
|
266
|
-
[[" ", " ", " ", " "], ["AltGr", "AltGr"]]
|
267
|
-
]; this.VKI_layout.German.lang = ["de"];
|
268
|
-
|
269
|
-
this.VKI_layout.Greek = [ // Greek Standard Keyboard
|
270
|
-
[["`", "~"], ["1", "!"], ["2", "@", "\u00b2"], ["3", "#", "\u00b3"], ["4", "$", "\u00a3"], ["5", "%", "\u00a7"], ["6", "^", "\u00b6"], ["7", "&"], ["8", "*", "\u00a4"], ["9", "(", "\u00a6"], ["0", ")", "\u00ba"], ["-", "_", "\u00b1"], ["=", "+", "\u00bd"], ["Bksp", "Bksp"]],
|
271
|
-
[["Tab", "Tab"], [";", ":"], ["\u03c2", "^"], ["\u03b5", "\u0395"], ["\u03c1", "\u03a1"], ["\u03c4", "\u03a4"], ["\u03c5", "\u03a5"], ["\u03b8", "\u0398"], ["\u03b9", "\u0399"], ["\u03bf", "\u039f"], ["\u03c0", "\u03a0"], ["[", "{", "\u201c"], ["]", "}", "\u201d"], ["Enter", "Enter"]],
|
272
|
-
[["Caps", "Caps"], ["\u03b1", "\u0391"], ["\u03c3", "\u03a3"], ["\u03b4", "\u0394"], ["\u03c6", "\u03a6"], ["\u03b3", "\u0393"], ["\u03b7", "\u0397"], ["\u03be", "\u039e"], ["\u03ba", "\u039a"], ["\u03bb", "\u039b"], ["\u0384", "\u00a8", "\u0385"], ["'", '"'], ["\\", "|", "\u00ac"]],
|
273
|
-
[["Shift", "Shift"], ["<", ">"], ["\u03b6", "\u0396"], ["\u03c7", "\u03a7"], ["\u03c8", "\u03a8"], ["\u03c9", "\u03a9"], ["\u03b2", "\u0392"], ["\u03bd", "\u039d"], ["\u03bc", "\u039c"], [",", "<"], [".", ">"], ["/", "?"], ["Shift", "Shift"]],
|
274
|
-
[[" ", " ", " ", " "], ["AltGr", "AltGr"]]
|
275
|
-
]; this.VKI_layout.Greek.lang = ["el"];
|
276
|
-
|
277
|
-
this.VKI_layout.Hebrew = [ // Hebrew Standard Keyboard
|
278
|
-
[["~", "`"], ["1", "!"], ["2", "@"], ["3", "#"], ["4" , "$", "\u20aa"], ["5" , "%"], ["6", "^"], ["7", "&"], ["8", "*"], ["9", ")"], ["0", "("], ["-", "_"], ["=", "+"], ["\\", "|"], ["Bksp", "Bksp"]],
|
279
|
-
[["Tab", "Tab"], ["/", "Q"], ["'", "W"], ["\u05e7", "E", "\u20ac"], ["\u05e8", "R"], ["\u05d0", "T"], ["\u05d8", "Y"], ["\u05d5", "U", "\u05f0"], ["\u05df", "I"], ["\u05dd", "O"], ["\u05e4", "P"], ["]", "}"], ["[", "{"]],
|
280
|
-
[["Caps", "Caps"], ["\u05e9", "A"], ["\u05d3", "S"], ["\u05d2", "D"], ["\u05db", "F"], ["\u05e2", "G"], ["\u05d9", "H", "\u05f2"], ["\u05d7", "J", "\u05f1"], ["\u05dc", "K"], ["\u05da", "L"], ["\u05e3", ":"], ["," , '"'], ["Enter", "Enter"]],
|
281
|
-
[["Shift", "Shift"], ["\u05d6", "Z"], ["\u05e1", "X"], ["\u05d1", "C"], ["\u05d4", "V"], ["\u05e0", "B"], ["\u05de", "N"], ["\u05e6", "M"], ["\u05ea", ">"], ["\u05e5", "<"], [".", "?"], ["Shift", "Shift"]],
|
282
|
-
[[" ", " ", " ", " "], ["AltGr", "AltGr"]]
|
283
|
-
]; this.VKI_layout.Hebrew.lang = ["he"];
|
284
|
-
|
285
|
-
this.VKI_layout.Hindi = [ // Hindi Traditional Keyboard
|
286
|
-
[["\u200d", "\u200c", "`", "~"], ["1", "\u090D", "\u0967", "!"], ["2", "\u0945", "\u0968", "@"], ["3", "\u094D\u0930", "\u0969", "#"], ["4", "\u0930\u094D", "\u096A", "$"], ["5", "\u091C\u094D\u091E", "\u096B", "%"], ["6", "\u0924\u094D\u0930", "\u096C", "^"], ["7", "\u0915\u094D\u0937", "\u096D", "&"], ["8", "\u0936\u094D\u0930", "\u096E", "*"], ["9", "(", "\u096F", "("], ["0", ")", "\u0966", ")"], ["-", "\u0903", "-", "_"], ["\u0943", "\u090B", "=", "+"], ["Bksp", "Bksp"]],
|
287
|
-
[["Tab", "Tab"], ["\u094C", "\u0914"], ["\u0948", "\u0910"], ["\u093E", "\u0906"], ["\u0940", "\u0908"], ["\u0942", "\u090A"], ["\u092C", "\u092D"], ["\u0939", "\u0919"], ["\u0917", "\u0918"], ["\u0926", "\u0927"], ["\u091C", "\u091D"], ["\u0921", "\u0922", "[", "{"], ["\u093C", "\u091E", "]", "}"], ["Enter", "Enter"]],
|
288
|
-
[["Caps", "Caps"], ["\u094B", "\u0913"], ["\u0947", "\u090F"], ["\u094D", "\u0905"], ["\u093F", "\u0907"], ["\u0941", "\u0909"], ["\u092A", "\u092B"], ["\u0930", "\u0931"], ["\u0915", "\u0916"], ["\u0924", "\u0925"], ["\u091A", "\u091B", ";", ":"], ["\u091F", "\u0920", "'", '"'], ["\u0949", "\u0911", "\\", "|"]],
|
289
|
-
[["Shift", "Shift"], [""], ["\u0902", "\u0901", "", "\u0950"], ["\u092E", "\u0923"], ["\u0928"], ["\u0935"], ["\u0932", "\u0933"], ["\u0938", "\u0936"], [",", "\u0937", ",", "<"], [".", "\u0964", ".", ">"], ["\u092F", "\u095F", "/", "?"], ["Shift", "Shift"]],
|
290
|
-
[[" ", " ", " ", " "], ["AltGr", "AltGr"]]
|
291
|
-
]; this.VKI_layout.Hindi.lang = ["hi"];
|
292
|
-
|
293
|
-
this.VKI_layout.Hungarian = [ // Hungarian Standard Keyboard
|
294
|
-
[["0", "\u00a7"], ["1", "'", "\u007e"], ["2", '"', "\u02c7"], ["3", "+", "\u02c6"], ["4", "!", "\u02d8"], ["5", "%", "\u00b0"], ["6", "/", "\u02db"], ["7", "=", "\u0060"], ["8", "(", "\u02d9"], ["9", ")", "\u00b4"], ["\u00f6", "\u00d6", "\u02dd"], ["\u00fc", "\u00dc", "\u00a8"], ["\u00f3", "\u00d3", "\u00b8"], ["Bksp", "Bksp"]],
|
295
|
-
[["Tab", "Tab"], ["q", "Q", "\u005c"], ["w", "W", "\u007c"], ["e", "E", "\u00c4"], ["r", "R"], ["t", "T"], ["z", "Z"], ["u", "U", "\u20ac"], ["i", "I", "\u00cd"], ["o", "O"], ["p", "P"], ["\u0151", "\u0150", "\u00f7"], ["\u00fa", "\u00da", "\u00d7"], ["Enter", "Enter"]],
|
296
|
-
[["Caps", "Caps"], ["a", "A", "\u00e4"], ["s", "S","\u0111"], ["d", "D","\u0110"], ["f", "F","\u005b"], ["g", "G","\u005d"], ["h", "H"], ["j", "J","\u00ed"], ["k", "K","\u0141"], ["l", "L","\u0142"], ["\u00e9", "\u00c9","\u0024"], ["\u00e1", "\u00c1","\u00df"], ["\u0171", "\u0170","\u00a4"]],
|
297
|
-
[["Shift", "Shift"], ["\u00ed", "\u00cd","\u003c"], ["y", "Y","\u003e"], ["x", "X","\u0023"], ["c", "C","\u0026"], ["v", "V","\u0040"], ["b", "B","\u007b"], ["n", "N","\u007d"], ["m", "M","\u003c"], [",", "?","\u003b"], [".", ":","\u003e"], ["-", "_","\u002a"], ["Shift", "Shift"]],
|
298
|
-
[[" ", " ", " ", " "], ["AltGr", "AltGr"]]
|
299
|
-
]; this.VKI_layout.Hungarian.lang = ["hu"];
|
300
|
-
|
301
|
-
this.VKI_layout.Italian = [ // Italian Standard Keyboard
|
302
|
-
[["\u005c", "\u007c"], ["1", "!"], ["2", '"'], ["3", "\u00a3"], ["4", "$", "\u20ac"], ["5", "%"], ["6", "&"], ["7", "/"], ["8", "("], ["9", ")"], ["0", "="], ["'", "?"], ["\u00ec", "\u005e"], ["Bksp", "Bksp"]],
|
303
|
-
[["Tab", "Tab"], ["q", "Q"], ["w", "W"], ["e", "E", "\u20ac"], ["r", "R"], ["t", "T"], ["y", "Y"], ["u", "U"], ["i", "I"], ["o", "O"], ["p", "P"], ["\u00e8", "\u00e9", "[", "{"], ["+", "*", "]", "}"], ["Enter", "Enter"]],
|
304
|
-
[["Caps", "Caps"], ["a", "A"], ["s", "S"], ["d", "D"], ["f", "F"], ["g", "G"], ["h", "H"], ["j", "J"], ["k", "K"], ["l", "L"], ["\u00f2", "\u00e7", "@"], ["\u00e0", "\u00b0", "#"], ["\u00f9", "\u00a7"]],
|
305
|
-
[["Shift", "Shift"], ["<", ">"], ["z", "Z"], ["x", "X"], ["c", "C"], ["v", "V"], ["b", "B"], ["n", "N"], ["m", "M"], [",", ";"], [".", ":"], ["-", "_"], ["Shift", "Shift"]],
|
306
|
-
[[" ", " ", " ", " "], ["AltGr", "AltGr"]]
|
307
|
-
]; this.VKI_layout.Italian.lang = ["it"];
|
308
|
-
|
309
|
-
this.VKI_layout["\u65e5\u672c\u8a9e"] = [ // Basic Japanese Hiragana/Katakana Keyboard
|
310
|
-
[["\uff5e"], ["\u306c", "\u30cc"], ["\u3075", '\u30d5'], ["\u3042", "\u30a2", "\u3041", "\u30a1"], ["\u3046", "\u30a6", "\u3045", "\u30a5"], ["\u3048", "\u30a8", "\u3047", "\u30a7"], ["\u304a", "\u30aa", "\u3049","\u30a9"], ["\u3084", "\u30e4", "\u3083", "\u30e3"], ["\u3086", "\u30e6", "\u3085", "\u30e5"], ["\u3088", "\u30e8", "\u3087", "\u30e7"], ["\u308f", "\u30ef", "\u3092", "\u30f2"], ["\u307b", "\u30db", "\u30fc", "\uff1d"], ["\u3078", "\u30d8" ,"\uff3e", "\uff5e"], ['"', '"', "\uffe5", "\uff5c"], ["Bksp", "Bksp"]],
|
311
|
-
[["Tab", "Tab"], ["\u305f", "\u30bf"], ["\u3066", "\u30c6"], ["\u3044", "\u30a4", "\u3043", "\u30a3"], ["\u3059", "\u30b9"], ["\u304b", "\u30ab"], ["\u3093", "\u30f3"], ["\u306a", "\u30ca"], ["\u306b", "\u30cb"], ["\u3089", "\u30e9"], ["\u305b", "\u30bb"],["\u3001", "\u3001", "\uff20", "\u2018"],["\u3002", "\u3002", "\u300c", "\uff5b"],["\uffe5","", "", "\uff0a"]],
|
312
|
-
[["Caps", "Caps"], ["\u3061", "\u30c1"], ["\u3068", "\u30c8"], ["\u3057", "\u30b7"], ["\u306f", "\u30cf"], ["\u304d", "\u30ad"], ["\u304f", "\u30af"], ["\u307e", "\u30de"], ["\u306e", "\u30ce"], ["\u308c", "\u30ec", "\uff1b", "\uff0b"], ["\u3051", "\u30b1", "\uff1a", "\u30f6"], ["\u3080", "\u30e0", "\u300d", "\uff5d"],["Enter", "Enter"]],
|
313
|
-
[["Shift", "Shift"], ["\u3064", "\u30c4"], ["\u3055", "\u30b5"], ["\u305d", "\u30bd"], ["\u3072", "\u30d2"], ["\u3053", "\u30b3"], ["\u307f", "\u30df"], ["\u3082", "\u30e2"], ["\u306d", "\u30cd", "\u3001", "\uff1c"], ["\u308b", "\u30eb", "\u3002", "\uff1e"], ["\u3081", "\u30e1", "\u30fb", "\uff1f"], ["\u308d", "\u30ed", "", "\uff3f"], ["Shift", "Shift"]],
|
314
|
-
[["AltLk", "AltLk"], [" ", " ", " ", " "], ["Alt", "Alt"]]
|
315
|
-
]; this.VKI_layout["\u65e5\u672c\u8a9e"].lang = ["ja"];
|
316
|
-
|
317
|
-
this.VKI_layout.Kazakh = [ // Kazakh Standard Keyboard
|
318
|
-
[["(", ")"], ['"', "!"], ["\u04d9", "\u04d8"], ["\u0456", "\u0406"], ["\u04a3", "\u04a2"], ["\u0493", "\u0492"], [",", ";"], [".", ":"], ["\u04af", "\u04ae"], ["\u04b1", "\u04b0"], ["\u049b", "\u049a"], ["\u04e9", "\u04e8"], ["\u04bb", "\u04ba"], ["Bksp", "Bksp"]],
|
319
|
-
[["Tab", "Tab"], ["\u0439", "\u0419"], ["\u0446", "\u0426"], ["\u0443", "\u0423"], ["\u043A", "\u041A"], ["\u0435", "\u0415"], ["\u043D", "\u041D"], ["\u0433", "\u0413"], ["\u0448", "\u0428"], ["\u0449", "\u0429"], ["\u0437", "\u0417"], ["\u0445", "\u0425"], ["\u044A", "\u042A"], ["\\", "/"]],
|
320
|
-
[["Caps", "Caps"], ["\u0444", "\u0424"], ["\u044B", "\u042B"], ["\u0432", "\u0412"], ["\u0430", "\u0410"], ["\u043F", "\u041F"], ["\u0440", "\u0420"], ["\u043E", "\u041E"], ["\u043B", "\u041B"], ["\u0434", "\u0414"], ["\u0436", "\u0416"], ["\u044D", "\u042D"], ["Enter", "Enter"]],
|
321
|
-
[["Shift", "Shift"], ["\\", "|"], ["\u044F", "\u042F"], ["\u0447", "\u0427"], ["\u0441", "\u0421"], ["\u043C", "\u041C"], ["\u0438", "\u0418"], ["\u0442", "\u0422"], ["\u044C", "\u042C"], ["\u0431", "\u0411"], ["\u044E", "\u042E"], ["\u2116", "?"], ["Shift", "Shift"]],
|
322
|
-
[[" ", " "]]
|
323
|
-
]; this.VKI_layout.Kazakh.lang = ["kk"];
|
324
|
-
|
325
|
-
this.VKI_layout.Lithuanian = [ // Lithuanian Standard Keyboard
|
326
|
-
[["`", "~"], ["\u0105", "\u0104"], ["\u010D", "\u010C"], ["\u0119", "\u0118"], ["\u0117", "\u0116"], ["\u012F", "\u012E"], ["\u0161", "\u0160"], ["\u0173", "\u0172"], ["\u016B", "\u016A"], ["\u201E", "("], ["\u201C", ")"], ["-", "_"], ["\u017E", "\u017D"], ["Bksp", "Bksp"]],
|
327
|
-
[["Tab", "Tab"], ["q", "Q"], ["w", "W"], ["e", "E"], ["r", "R"], ["t", "T"], ["y", "Y"], ["u", "U"], ["i", "I"], ["o", "O"], ["p", "P"], ["[", "{"], ["]", "}"], ["Enter", "Enter"]],
|
328
|
-
[["Caps", "Caps"], ["a", "A"], ["s", "S"], ["d", "D"], ["f", "F"], ["g", "G"], ["h", "H"], ["j", "J"], ["k", "K"], ["l", "L"], [";", ":"], ["'", '"'], ["\\", "|"]],
|
329
|
-
[["Shift", "Shift"], ["\u2013", "\u20AC"], ["z", "Z"], ["x", "X"], ["c", "C"], ["v", "V"], ["b", "B"], ["n", "N"], ["m", "M"], [",", "<"], [".", ">"], ["/", "?"], ["Shift", "Shift"]],
|
330
|
-
[[" ", " "]]
|
331
|
-
]; this.VKI_layout.Lithuanian.lang = ["lt"];
|
332
|
-
|
333
|
-
this.VKI_layout.Macedonian = [ // Macedonian Cyrillic Standard Keyboard
|
334
|
-
[["`", "~"], ["1", "!"], ["2", "\u201E"], ["3", "\u201C"], ["4", "\u2019"], ["5", "%"], ["6", "\u2018"], ["7", "&"], ["8", "*"], ["9", "("], ["0", ")"], ["-", "_"], ["=", "+"], ["Bksp", "Bksp"]],
|
335
|
-
[["Tab", "Tab"], ["\u0459", "\u0409"], ["\u045A", "\u040A"], ["\u0435", "\u0415", "\u20AC"], ["\u0440", "\u0420"], ["\u0442", "\u0422"], ["\u0455", "\u0405"], ["\u0443", "\u0423"], ["\u0438", "\u0418"], ["\u043E", "\u041E"], ["\u043F", "\u041F"], ["\u0448", "\u0428", "\u0402"], ["\u0453", "\u0403", "\u0452"], ["Enter", "Enter"]],
|
336
|
-
[["Caps", "Caps"], ["\u0430", "\u0410"], ["\u0441", "\u0421"], ["\u0434", "\u0414"], ["\u0444", "\u0424", "["], ["\u0433", "\u0413", "]"], ["\u0445", "\u0425"], ["\u0458", "\u0408"], ["\u043A", "\u041A"], ["\u043B", "\u041B"], ["\u0447", "\u0427", "\u040B"], ["\u045C", "\u040C", "\u045B"], ["\u0436", "\u0416"]],
|
337
|
-
[["Shift", "Shift"], ["\u0451", "\u0401"], ["\u0437", "\u0417"], ["\u045F", "\u040F"], ["\u0446", "\u0426"], ["\u0432", "\u0412", "@"], ["\u0431", "\u0411", "{"], ["\u043D", "\u041D", "}"], ["\u043C", "\u041C", "\u00A7"], [",", ";"], [".", ":"], ["/", "?"], ["Shift", "Shift"]],
|
338
|
-
[[" ", " ", " ", " "], ["AltGr", "AltGr"]]
|
339
|
-
]; this.VKI_layout.Macedonian.lang = ["mk"];
|
340
|
-
|
341
|
-
this.VKI_layout.Norwegian = [ // Norwegian Standard Keyboard
|
342
|
-
[["|", "\u00a7"], ["1", "!"], ["2", '"', "@"], ["3", "#", "\u00a3"], ["4", "\u00a4", "$"], ["5", "%"], ["6", "&"], ["7", "/", "{"], ["8", "(", "["], ["9", ")", "]"], ["0", "=", "}"], ["+", "?"], ["\\", "`", "\u00b4"], ["Bksp", "Bksp"]],
|
343
|
-
[["Tab", "Tab"], ["q", "Q"], ["w", "W"], ["e", "E", "\u20ac"], ["r", "R"], ["t", "T"], ["y", "Y"], ["u", "U"], ["i", "I"], ["o", "O"], ["p", "P"], ["\u00e5", "\u00c5"], ["\u00a8", "^", "~"], ["Enter", "Enter"]],
|
344
|
-
[["Caps", "Caps"], ["a", "A"], ["s", "S"], ["d", "D"], ["f", "F"], ["g", "G"], ["h", "H"], ["j", "J"], ["k", "K"], ["l", "L"], ["\u00f8", "\u00d8"], ["\u00e6", "\u00c6"], ["'", "*"]],
|
345
|
-
[["Shift", "Shift"], ["<", ">"], ["z", "Z"], ["x", "X"], ["c", "C"], ["v", "V"], ["b", "B"], ["n", "N"], ["m", "M", "\u03bc", "\u039c"], [",", ";"], [".", ":"], ["-", "_"], ["Shift", "Shift"]],
|
346
|
-
[[" ", " ", " ", " "], ["AltGr", "AltGr"]]
|
347
|
-
]; this.VKI_layout.Norwegian.lang = ["no", "nb", "nn"];
|
348
|
-
|
349
|
-
this.VKI_layout.Numpad = [ // Number pad
|
350
|
-
[["$"], ["\u00a3"], ["\u20ac"], ["\u00a5"], ["/"], ["^"], ["Bksp", "Bksp"]],
|
351
|
-
[["."], ["7"], ["8"], ["9"], ["*"], ["<"], ["("], ["["]],
|
352
|
-
[["="], ["4"], ["5"], ["6"], ["-"], [">"], [")"], ["]"]],
|
353
|
-
[["0"], ["1"], ["2"], ["3"], ["+"], ["Enter", "Enter"]],
|
354
|
-
[[" "]]
|
355
|
-
]; this.VKI_layout.Numpad.DDK = true;
|
356
|
-
|
357
|
-
this.VKI_layout.Pashto = [ // Pashto Keyboard
|
358
|
-
[["\u200d", "\u00f7"], ["\u06f1", "\u0021", "\u0060"], ["\u06f2", "\u066c", "\u0040"], ["\u06f3", "\u066b", "\u066b"], ["\u06f4", "\u00a4", "\u00a3"], ["\u06f5", "\u066a", "\u0025"], ["\u06f6", "\u00d7", "\u005e"], ["\u06f7", "\u00ab", "\u0026"], ["\u06f8", "\u00bb", "\u002a"], ["\u06f9", "(", "\ufdf2"], ["\u06f0", ")", "\ufefb"], ["\u002d", "\u0640", "\u005f"], ["\u003d", "\u002b", "\ufe87", "\u00f7"], ["Bksp", "Bksp"]],
|
359
|
-
[["Tab", "Tab"], ["\u0636", "\u0652", "\u06d5"], ["\u0635", "\u064c", "\u0653"], ["\u062b", "\u064d", "\u20ac"], ["\u0642", "\u064b", "\ufef7"], ["\u0641", "\u064f", "\ufef5"], ["\u063a", "\u0650", "\u0027"], ["\u0639", "\u064e", "\ufe84"], ["\u0647", "\u0651", "\u0670"], ["\u062e", "\u0685", "\u0027"], ["\u062d", "\u0681", "\u0022"], ["\u062c", "\u005b", "\u007b"], ["\u0686", "\u005d", "\u007d"], ["\u005c", "\u066d", "\u007c"]],
|
360
|
-
[["Caps", "Caps"], ["\u0634", "\u069a", "\ufbb0"], ["\u0633", "\u0626", "\ufe87"], ["\u06cc", "\u064a", "\u06d2"], ["\u0628", "\u067e", "\u06ba"], ["\u0644", "\u0623", "\u06b7"], ["\u0627", "\u0622", "\u0671"], ["\u062a", "\u067c", "\u0679"], ["\u0646", "\u06bc", "\u003c"], ["\u0645", "\u0629", "\u003e"], ["\u06a9", "\u003a", "\u0643"], ["\u06af", "\u061b", "\u06ab"], ["Enter", "Enter"]],
|
361
|
-
[["Shift", "Shift"], ["\u06cd", "\u0638", "\u003b"], ["\u06d0", "\u0637", "\ufbb0"], ["\u0632", "\u0698", "\u0655"], ["\u0631", "\u0621", "\u0654"], ["\u0630", "\u200c", "\u0625"], ["\u062f", "\u0689", "\u0688"], ["\u0693", "\u0624", "\u0691"], ["\u0648", "\u060c", "\u002c"], ["\u0696", "\u002e", "\u06c7"], ["\u002f", "\u061f", "\u06c9"], ["Shift", "Shift", "\u064d"]],
|
362
|
-
[[" ", " ", " ", " "], ["Alt", "Alt"]]
|
363
|
-
]; this.VKI_layout.Pashto.lang = ["ps"];
|
364
|
-
|
365
|
-
this.VKI_layout.Pinyin = [ // Pinyin Keyboard
|
366
|
-
[["`", "~", "\u4e93", "\u301C"], ["1", "!", "\uFF62"], ["2", "@", "\uFF63"], ["3", "#", "\u301D"], ["4", "$", "\u301E"], ["5", "%", "\u301F"], ["6", "^", "\u3008"], ["7", "&", "\u3009"], ["8", "*", "\u302F"], ["9", "(", "\u300A"], ["0", ")", "\u300B"], ["-", "_", "\u300E"], ["=", "+", "\u300F"], ["Bksp", "Bksp"]],
|
367
|
-
[["Tab", "Tab"], ["q", "Q", "\u0101", "\u0100"], ["w", "W", "\u00E1", "\u00C1"], ["e", "E", "\u01CE", "\u01CD"], ["r", "R", "\u00E0", "\u00C0"], ["t", "T", "\u0113", "\u0112"], ["y", "Y", "\u00E9", "\u00C9"], ["u", "U", "\u011B", "\u011A"], ["i", "I", "\u00E8", "\u00C8"], ["o", "O", "\u012B", "\u012A"], ["p", "P", "\u00ED", "\u00CD"], ["[", "{", "\u01D0", "\u01CF"], ["]", "}", "\u00EC", "\u00CC"], ["\\", "|", "\u3020"]],
|
368
|
-
[["Caps", "Caps"], ["a", "A", "\u014D", "\u014C"], ["s", "S", "\u00F3", "\u00D3"], ["d", "D", "\u01D2", "\u01D1"], ["f", "F", "\u00F2", "\u00D2"], ["g", "G", "\u00fc", "\u00dc"], ["h", "H", "\u016B", "\u016A"], ["j", "J", "\u00FA", "\u00DA"], ["k", "K", "\u01D4", "\u01D3"], ["l", "L", "\u00F9", "\u00D9"], [";", ":"], ["'", '"'], ["Enter", "Enter"]],
|
369
|
-
[["Shift", "Shift"], ["z", "Z", "\u01D6", "\u01D5"], ["x", "X", "\u01D8", "\u01D7"], ["c", "C", "\u01DA", "\u01D9"], ["v", "V", "\u01DC", "\u01DB"], ["b", "B"], ["n", "N"], ["m", "M"], [",", "<", "\u3001"], [".", ">", "\u3002"], ["/", "?"], ["Shift", "Shift"]],
|
370
|
-
[["AltLk", "AltLk"], [" ", " ", " ", " "], ["Alt", "Alt"]]
|
371
|
-
]; this.VKI_layout.Pinyin.lang = ["zh-Latn"];
|
372
|
-
|
373
|
-
this.VKI_layout["Polish Prog"] = [ // Polish Programmers Keyboard
|
374
|
-
[["`", "~"], ["1", "!"], ["2", "@"], ["3", "#"], ["4", "$"], ["5", "%"], ["6", "^"], ["7", "&"], ["8", "*"], ["9", "("], ["0", ")"], ["-", "_"], ["=", "+"], ["Bksp", "Bksp"]],
|
375
|
-
[["Tab", "Tab"], ["q", "Q"], ["w", "W"], ["e", "E", "\u0119", "\u0118"], ["r", "R"], ["t", "T"], ["y", "Y"], ["u", "U"], ["i", "I"], ["o", "O", "\u00f3", "\u00d3"], ["p", "P"], ["[", "{"], ["]", "}"], ["\\", "|"]],
|
376
|
-
[["Caps", "Caps"], ["a", "A", "\u0105", "\u0104"], ["s", "S", "\u015b", "\u015a"], ["d", "D"], ["f", "F"], ["g", "G"], ["h", "H"], ["j", "J"], ["k", "K"], ["l", "L", "\u0142", "\u0141"], [";", ":"], ["'", '"'], ["Enter", "Enter"]],
|
377
|
-
[["Shift", "Shift"], ["z", "Z", "\u017c", "\u017b"], ["x", "X", "\u017a", "\u0179"], ["c", "C", "\u0107", "\u0106"], ["v", "V"], ["b", "B"], ["n", "N", "\u0144", "\u0143"], ["m", "M"], [",", "<"], [".", ">"], ["/", "?"], ["Shift", "Shift"]],
|
378
|
-
[[" ", " ", " ", " "], ["Alt", "Alt"]]
|
379
|
-
]; this.VKI_layout["Polish Prog"].lang = ["pl"];
|
380
|
-
|
381
|
-
this.VKI_layout["Portuguese Br"] = [ // Portuguese (Brazil) Standard Keyboard
|
382
|
-
[["'", '"'], ["1", "!", "\u00b9"], ["2", "@", "\u00b2"], ["3", "#", "\u00b3"], ["4", "$", "\u00a3"], ["5", "%", "\u00a2"], ["6", "\u00a8", "\u00ac"], ["7", "&"], ["8", "*"], ["9", "("], ["0", ")"], ["-", "_"], ["=", "+", "\u00a7"], ["Bksp", "Bksp"]],
|
383
|
-
[["Tab", "Tab"], ["q", "Q", "/"], ["w", "W", "?"], ["e", "E", "\u20ac"], ["r", "R"], ["t", "T"], ["y", "Y"], ["u", "U"], ["i", "I"], ["o", "O"], ["p", "P"], ["\u00b4", "`"], ["[", "{", "\u00aa"], ["Enter", "Enter"]],
|
384
|
-
[["Caps", "Caps"], ["a", "A"], ["s", "S"], ["d", "D"], ["f", "F"], ["g", "G"], ["h", "H"], ["j", "J"], ["k", "K"], ["l", "L"], ["\u00e7", "\u00c7"], ["~", "^"], ["]", "}", "\u00ba"], ["/", "?"]],
|
385
|
-
[["Shift", "Shift"], ["\\", "|"], ["z", "Z"], ["x", "X"], ["c", "C", "\u20a2"], ["v", "V"], ["b", "B"], ["n", "N"], ["m", "M"], [",", "<"], [".", ">"], [":", ":"], ["Shift", "Shift"]],
|
386
|
-
[[" ", " ", " ", " "], ["AltGr", "AltGr"]]
|
387
|
-
]; this.VKI_layout["Portuguese Br"].lang = ["pt-br"];
|
388
|
-
|
389
|
-
this.VKI_layout["Portuguese Pt"] = [ // Portuguese (Portugal) Standard Keyboard
|
390
|
-
[["\\", "|"], ["1", "!"], ["2", '"', "@"], ["3", "#", "\u00a3"], ["4", "$", "\u00a7"], ["5", "%"], ["6", "&"], ["7", "/", "{"], ["8", "(", "["], ["9", ")", "]"], ["0", "=", "}"], ["'", "?"], ["\u00ab", "\u00bb"], ["Bksp", "Bksp"]],
|
391
|
-
[["Tab", "Tab"], ["q", "Q"], ["w", "W"], ["e", "E", "\u20ac"], ["r", "R"], ["t", "T"], ["y", "Y"], ["u", "U"], ["i", "I"], ["o", "O"], ["p", "P"], ["+", "*", "\u00a8"], ["\u00b4", "`"], ["Enter", "Enter"]],
|
392
|
-
[["Caps", "Caps"], ["a", "A"], ["s", "S"], ["d", "D"], ["f", "F"], ["g", "G"], ["h", "H"], ["j", "J"], ["k", "K"], ["l", "L"], ["\u00e7", "\u00c7"], ["\u00ba", "\u00aa"], ["~", "^"]],
|
393
|
-
[["Shift", "Shift"], ["<", ">", "\\"], ["z", "Z"], ["x", "X"], ["c", "C"], ["v", "V"], ["b", "B"], ["n", "N"], ["m", "M"], [",", ";"], [".", ":"], ["-", "_"], ["Shift", "Shift"]],
|
394
|
-
[[" ", " ", " ", " "], ["AltGr", "AltGr"]]
|
395
|
-
]; this.VKI_layout["Portuguese Pt"].lang = ["pt"];
|
396
|
-
|
397
|
-
this.VKI_layout.Romanian = [ // Romanian Standard Keyboard
|
398
|
-
[["\u201E", "\u201D", "\u0060", "~"], ["1", "!","~"], ["2", "\u0040", "\u02C7"], ["3", "#","\u005E"], ["4", "$", "\u02D8"], ["5", "%", "\u00B0"], ["6", "\u005E", "\u02DB"], ["7", "&", "\u0060"], ["8", "*", "\u02D9"], ["9", "(", "\u00B4"], ["0", ")", "\u02DD"], ["-", "_", "\u00A8"], ["=", "+", "\u00B8", "\u00B1"], ["Bksp", "Bksp"]],
|
399
|
-
[["Tab", "Tab"], ["q", "Q"], ["w", "W"], ["e", "E", "\u20AC"], ["r", "R"], ["t", "T"], ["y", "Y"], ["u", "U"], ["i", "I"], ["o", "O"], ["p", "P", "\u00A7"], ["\u0103", "\u0102", "[", "{"], ["\u00EE", "\u00CE", "]","}"], ["\u00E2", "\u00C2", "\\", "|"]],
|
400
|
-
[["Caps", "Caps"], ["a", "A"], ["s", "S", "\u00df"], ["d", "D", "\u00f0", "\u00D0"], ["f", "F"], ["g", "G"], ["h", "H"], ["j", "J"], ["k", "K"], ["l", "L", "\u0142", "\u0141"], [(this.VKI_isIElt8) ? "\u015F" : "\u0219", (this.VKI_isIElt8) ? "\u015E" : "\u0218", ";", ":"], [(this.VKI_isIElt8) ? "\u0163" : "\u021B", (this.VKI_isIElt8) ? "\u0162" : "\u021A", "\'", "\""], ["Enter", "Enter"]],
|
401
|
-
[["Shift", "Shift"], ["\\", "|"], ["z", "Z"], ["x", "X"], ["c", "C", "\u00A9"], ["v", "V"], ["b", "B"], ["n", "N"], ["m", "M"], [",", ";", "<", "\u00AB"], [".", ":", ">", "\u00BB"], ["/", "?"], ["Shift", "Shift"]],
|
402
|
-
[[" ", " ", " ", " "], ["AltGr", "AltGr"]]
|
403
|
-
]; this.VKI_layout.Romanian.lang = ["ro"];
|
404
|
-
|
405
|
-
this.VKI_layout.Russian = [ // Russian Standard Keyboard
|
406
|
-
[["\u0451", "\u0401"], ["1", "!"], ["2", '"'], ["3", "\u2116"], ["4", ";"], ["5", "%"], ["6", ":"], ["7", "?"], ["8", "*"], ["9", "("], ["0", ")"], ["-", "_"], ["=", "+"], ["Bksp", "Bksp"]],
|
407
|
-
[["Tab", "Tab"], ["\u0439", "\u0419"], ["\u0446", "\u0426"], ["\u0443", "\u0423"], ["\u043A", "\u041A"], ["\u0435", "\u0415"], ["\u043D", "\u041D"], ["\u0433", "\u0413"], ["\u0448", "\u0428"], ["\u0449", "\u0429"], ["\u0437", "\u0417"], ["\u0445", "\u0425"], ["\u044A", "\u042A"], ["Enter", "Enter"]],
|
408
|
-
[["Caps", "Caps"], ["\u0444", "\u0424"], ["\u044B", "\u042B"], ["\u0432", "\u0412"], ["\u0430", "\u0410"], ["\u043F", "\u041F"], ["\u0440", "\u0420"], ["\u043E", "\u041E"], ["\u043B", "\u041B"], ["\u0434", "\u0414"], ["\u0436", "\u0416"], ["\u044D", "\u042D"], ["\\", "/"]],
|
409
|
-
[["Shift", "Shift"], ["/", "|"], ["\u044F", "\u042F"], ["\u0447", "\u0427"], ["\u0441", "\u0421"], ["\u043C", "\u041C"], ["\u0438", "\u0418"], ["\u0442", "\u0422"], ["\u044C", "\u042C"], ["\u0431", "\u0411"], ["\u044E", "\u042E"], [".", ","], ["Shift", "Shift"]],
|
410
|
-
[[" ", " "]]
|
411
|
-
]; this.VKI_layout.Russian.lang = ["ru"];
|
412
|
-
|
413
|
-
this.VKI_layout.SerbianCyr = [ // Serbian Cyrillic Standard Keyboard
|
414
|
-
[["`", "~"], ["1", "!"], ["2", '"'], ["3", "#"], ["4", "$"], ["5", "%"], ["6", "&"], ["7", "/"], ["8", "("], ["9", ")"], ["0", "="], ["'", "?"], ["+", "*"], ["Bksp", "Bksp"]],
|
415
|
-
[["Tab", "Tab"], ["\u0459", "\u0409"], ["\u045a", "\u040a"], ["\u0435", "\u0415", "\u20ac"], ["\u0440", "\u0420"], ["\u0442", "\u0422"], ["\u0437", "\u0417"], ["\u0443", "\u0423"], ["\u0438", "\u0418"], ["\u043e", "\u041e"], ["\u043f", "\u041f"], ["\u0448", "\u0428"], ["\u0452", "\u0402"], ["Enter", "Enter"]],
|
416
|
-
[["Caps", "Caps"], ["\u0430", "\u0410"], ["\u0441", "\u0421"], ["\u0434", "\u0414"], ["\u0444", "\u0424"], ["\u0433", "\u0413"], ["\u0445", "\u0425"], ["\u0458", "\u0408"], ["\u043a", "\u041a"], ["\u043b", "\u041b"], ["\u0447", "\u0427"], ["\u045b", "\u040b"], ["\u0436", "\u0416"]],
|
417
|
-
[["Shift", "Shift"], ["<", ">"], ["\u0455", "\u0405"], ["\u045f", "\u040f"], ["\u0446", "\u0426"], ["\u0432", "\u0412"], ["\u0431", "\u0411"], ["\u043d", "\u041d"], ["\u043c", "\u041c"], [",", ";", "<"], [".", ":", ">"], ["-", "_", "\u00a9"], ["Shift", "Shift"]],
|
418
|
-
[[" ", " ", " ", " "], ["AltGr", "AltGr"]]
|
419
|
-
]; this.VKI_layout.SerbianCyr.lang = ["sr-Cyrl"];
|
420
|
-
|
421
|
-
this.VKI_layout.SerbianLat = [ // Serbian Latin Standard Keyboard
|
422
|
-
[["\u201a", "~"], ["1", "!", "~"], ["2", '"', "\u02c7"], ["3", "#", "^"], ["4", "$", "\u02d8"], ["5", "%", "\u00b0"], ["6", "&", "\u02db"], ["7", "/", "`"], ["8", "(", "\u02d9"], ["9", ")", "\u00b4"], ["0", "=", "\u02dd"], ["'", "?", "\u00a8"], ["+", "*", "\u00b8"], ["Bksp", "Bksp"]],
|
423
|
-
[["Tab", "Tab"], ["q", "Q", "\\"], ["w", "W","|"], ["e", "E", "\u20ac"], ["r", "R"], ["t", "T"], ["z", "Z"], ["u", "U"], ["i", "I"], ["o", "O"], ["p", "P"], ["\u0161", "\u0160", "\u00f7"], ["\u0111", "\u0110", "\u00d7"], ["Enter", "Enter"]],
|
424
|
-
[["Caps", "Caps"], ["a", "A"], ["s", "S"], ["d", "D"], ["f", "F", "["], ["g", "G", "]"], ["h", "H"], ["j", "J"], ["k", "K", "\u0142"], ["l", "L", "\u0141"], ["\u010d", "\u010c"], ["\u0107", "\u0106", "\u00df"], ["\u017e", "\u017d", "\u00a4"]],
|
425
|
-
[["Shift", "Shift"], ["<", ">"], ["y", "Y"], ["x", "X"], ["c", "C"], ["v", "V", "@"], ["b", "B", "{",], ["n", "N", "}"], ["m", "M", "\u00a7"], [",", ";", "<"], [".", ":", ">"], ["-", "_", "\u00a9"], ["Shift", "Shift"]],
|
426
|
-
[[" ", " ", " ", " "], ["AltGr", "AltGr"]]
|
427
|
-
]; this.VKI_layout.SerbianLat.lang = ["sr"];
|
428
|
-
|
429
|
-
this.VKI_layout.Slovak = [ // Slovak Keyboard
|
430
|
-
[[";", "\u00b0"], ["+", "1", "~"], ["\u013E", "2", "\u02C7"], ["\u0161", "3", "\u005E"], ["\u010D", "4", "\u02D8"], ["\u0165", "5", "\u00B0"], ["\u017E", "6", "\u02DB"], ["\u00FD", "7", "\u0060"], ["\u00E1", "8", "\u02D9"], ["\u00ED", "9", "\u00B4"], ["\u00E9", "0", "\u02DD"], ["=", "%", "\u00A8"], ["\u00B4", "\u02c7", "\u00B8"], ["Bksp", "Bksp"]],
|
431
|
-
[["Tab", "Tab"], ["q", "Q","\u005C"], ["w", "W","\u007C"], ["e", "E", "\u20AC"], ["r", "R"], ["t", "T"], ["z", "Z"], ["u", "U"], ["i", "I"], ["o", "O"], ["p", "P","\u0027"], ["\u00FA", "/", "\u00F7"], ["\u00E4", "(", "\u00D7"], ["Enter", "Enter"]],
|
432
|
-
[["Caps", "Caps"], ["a", "A"], ["s", "S","\u0111"], ["d", "D","\u0110"], ["f", "F","\u005B"], ["g", "G","\u005D"], ["h", "H"], ["j", "J"], ["k", "K","\u0142"], ["l", "L","\u0141"], ["\u00F4", '"', "\u0024"], ["\u00A7", "!", "\u00DF",], ["\u0148", ")","\u00A4"]],
|
433
|
-
[["Shift", "Shift"], ["&", "*", "\u003C"], ["y", "Y","\u003E"], ["x", "X","\u0023"], ["c", "C","\u0026"], ["v", "V","\u0040"], ["b", "B","\u007B"], ["n", "N","\u007D"], ["m", "M"], [",", "?", "<"], [".", ":", ">"], ["-", "_", "\u002A", ], ["Shift", "Shift"]],
|
434
|
-
[[" ", " ", " ", " "], ["AltGr", "AltGr"]]
|
435
|
-
]; this.VKI_layout.Slovak.lang = ["sk"];
|
436
|
-
|
437
|
-
this.VKI_layout.Slovenian = [ // Slovenian Standard Keyboard
|
438
|
-
[["\u00a8", "\u00a8", "\u00b8"], ["1", "!", "~"], ["2", '"', "\u02c7"], ["3", "#", "^"], ["4", "$", "\u02d8"], ["5", "%", "\u00b0"], ["6", "&", "\u02db"], ["7", "/", "\u0060"], ["8", "(", "\u00B7"], ["9", ")", "\u00b4"], ["0", "=", "\u2033"], ["'", "?", "\u00a8"], ["+", "*", "\u00b8"], ["Bksp", "Bksp"]],
|
439
|
-
[["Tab", "Tab"], ["q", "Q", "\\"], ["w", "W","|"], ["e", "E", "\u20ac"], ["r", "R"], ["t", "T"], ["z", "Z"], ["u", "U"], ["i", "I"], ["o", "O"], ["p", "P"], ["\u0161", "\u0160", "\u00f7"], ["\u0111", "\u0110", "\u00d7"], ["Enter", "Enter"]],
|
440
|
-
[["Caps", "Caps"], ["a", "A"], ["s", "S"], ["d", "D"], ["f", "F", "["], ["g", "G", "]"], ["h", "H"], ["j", "J"], ["k", "K", "\u0142"], ["l", "L", "\u0141"], ["\u010D", "\u010C"], ["\u0107", "\u0106", "\u00df"], ["\u017E", "\u017D", "\u00a4"]],
|
441
|
-
[["Shift", "Shift"], ["<", ">"], ["y", "Y"], ["x", "X"], ["c", "C"], ["v", "V", "@"], ["b", "B", "{",], ["n", "N", "}"], ["m", "M", "\u00a7"], [",", ";"], [".", ":"], ["-", "_"], ["Shift", "Shift"]],
|
442
|
-
[[" ", " ", " ", " "], ["AltGr", "AltGr"]]
|
443
|
-
]; this.VKI_layout.Slovenian.lang = ["sl"];
|
444
|
-
|
445
|
-
this.VKI_layout["Spanish Es"] = [ // Spanish (Spain) Standard Keyboard
|
446
|
-
[["\u00ba", "\u00aa", "\\"], ["1", "!", "|"], ["2", '"', "@"], ["3", "'", "#"], ["4", "$", "~"], ["5", "%", "\u20ac"], ["6", "&","\u00ac"], ["7", "/"], ["8", "("], ["9", ")"], ["0", "="], ["'", "?"], ["\u00a1", "\u00bf"], ["Bksp", "Bksp"]],
|
447
|
-
[["Tab", "Tab"], ["q", "Q"], ["w", "W"], ["e", "E"], ["r", "R"], ["t", "T"], ["y", "Y"], ["u", "U"], ["i", "I"], ["o", "O"], ["p", "P"], ["\u0060", "^", "["], ["\u002b", "\u002a", "]"], ["Enter", "Enter"]],
|
448
|
-
[["Caps", "Caps"], ["a", "A"], ["s", "S"], ["d", "D"], ["f", "F"], ["g", "G"], ["h", "H"], ["j", "J"], ["k", "K"], ["l", "L"], ["\u00f1", "\u00d1"], ["\u00b4", "\u00a8", "{"], ["\u00e7", "\u00c7", "}"]],
|
449
|
-
[["Shift", "Shift"], ["<", ">"], ["z", "Z"], ["x", "X"], ["c", "C"], ["v", "V"], ["b", "B"], ["n", "N"], ["m", "M"], [",", ";"], [".", ":"], ["-", "_"], ["Shift", "Shift"]],
|
450
|
-
[[" ", " ", " ", " "], ["AltGr", "AltGr"]]
|
451
|
-
]; this.VKI_layout["Spanish Es"].lang = ["es"];
|
452
|
-
|
453
|
-
this.VKI_layout.Swedish = [ // Swedish Standard Keyboard
|
454
|
-
[["\u00a7", "\u00bd"], ["1", "!"], ["2", '"', "@"], ["3", "#", "\u00a3"], ["4", "\u00a4", "$"], ["5", "%", "\u20ac"], ["6", "&"], ["7", "/", "{"], ["8", "(", "["], ["9", ")", "]"], ["0", "=", "}"], ["+", "?", "\\"], ["\u00b4", "`"], ["Bksp", "Bksp"]],
|
455
|
-
[["Tab", "Tab"], ["q", "Q"], ["w", "W"], ["e", "E", "\u20ac"], ["r", "R"], ["t", "T"], ["y", "Y"], ["u", "U"], ["i", "I"], ["o", "O"], ["p", "P"], ["\u00e5", "\u00c5"], ["\u00a8", "^", "~"], ["Enter", "Enter"]],
|
456
|
-
[["Caps", "Caps"], ["a", "A"], ["s", "S"], ["d", "D"], ["f", "F"], ["g", "G"], ["h", "H"], ["j", "J"], ["k", "K"], ["l", "L"], ["\u00f6", "\u00d6"], ["\u00e4", "\u00c4"], ["'", "*"]],
|
457
|
-
[["Shift", "Shift"], ["<", ">", "|"], ["z", "Z"], ["x", "X"], ["c", "C"], ["v", "V"], ["b", "B"], ["n", "N"], ["m", "M", "\u03bc", "\u039c"], [",", ";"], [".", ":"], ["-", "_"], ["Shift", "Shift"]],
|
458
|
-
[[" ", " ", " ", " "], ["AltGr", "AltGr"]]
|
459
|
-
]; this.VKI_layout.Swedish.lang = ["sv"];
|
460
|
-
|
461
|
-
this.VKI_layout["Turkish-F"] = [ // Turkish F Keyboard Layout
|
462
|
-
[['+', "*", "\u00ac"], ["1", "!", "\u00b9", "\u00a1"], ["2", '"', "\u00b2"], ["3", "^", "#", "\u00b3"], ["4", "$", "\u00bc", "\u00a4"], ["5", "%", "\u00bd"], ["6", "&", "\u00be"], ["7", "'", "{"], ["8", "(", '['], ["9", ")", ']'], ["0", "=", "}"], ["/", "?", "\\", "\u00bf"], ["-", "_", "|"], ["Bksp", "Bksp"]],
|
463
|
-
[["Tab", "Tab"], ["f", "F", "@"], ["g", "G"], ["\u011f", "\u011e"], ["\u0131", "\u0049", "\u00b6", "\u00ae"], ["o", "O"], ["d", "D", "\u00a5"], ["r", "R"], ["n", "N"], ["h", "H", "\u00f8", "\u00d8"], ["p", "P", "\u00a3"], ["q", "Q", "\u00a8"], ["w", "W", "~"], ["Enter", "Enter"]],
|
464
|
-
[["Caps", "Caps"], ["u", "U", "\u00e6", "\u00c6"], ["i", "\u0130", "\u00df", "\u00a7"], ["e", "E", "\u20ac"], ["a", "A", " ", "\u00aa"], ["\u00fc", "\u00dc"], ["t", "T"], ["k", "K"], ["m", "M"], ["l", "L"], ["y", "Y", "\u00b4"], ["\u015f", "\u015e"], ["x", "X", "`"]],
|
465
|
-
[["Shift", "Shift"], ["<", ">", "|", "\u00a6"], ["j", "J", "\u00ab", "<"], ["\u00f6", "\u00d6", "\u00bb", ">"], ["v", "V", "\u00a2", "\u00a9"], ["c", "C"], ["\u00e7", "\u00c7"], ["z", "Z"], ["s", "S", "\u00b5", "\u00ba"], ["b", "B", "\u00d7"], [".", ":", "\u00f7"], [",", ";", "-"], ["Shift", "Shift"]],
|
466
|
-
[[" ", " ", " ", " "], ["AltGr", "AltGr"]]
|
467
|
-
];
|
468
|
-
|
469
|
-
this.VKI_layout["Turkish-Q"] = [ // Turkish Q Keyboard Layout
|
470
|
-
[['"', "\u00e9", "<"], ["1", "!", ">"], ["2", "'", "\u00a3"], ["3", "^", "#"], ["4", "+", "$"], ["5", "%", "\u00bd"], ["6", "&"], ["7", "/", "{"], ["8", "(", '['], ["9", ")", ']'], ["0", "=", "}"], ["*", "?", "\\"], ["-", "_", "|"], ["Bksp", "Bksp"]],
|
471
|
-
[["Tab", "Tab"], ["q", "Q", "@"], ["w", "W"], ["e", "E", "\u20ac"], ["r", "R"], ["t", "T"], ["y", "Y"], ["u", "U"], ["\u0131", "\u0049", "\u0069", "\u0130"], ["o", "O"], ["p", "P"], ["\u011f", "\u011e", "\u00a8"], ["\u00fc", "\u00dc", "~"], ["Enter", "Enter"]],
|
472
|
-
[["Caps", "Caps"], ["a", "A", "\u00e6", "\u00c6"], ["s", "S", "\u00df"], ["d", "D"], ["f", "F"], ["g", "G"], ["h", "H"], ["j", "J"], ["k", "K"], ["l", "L"], ["\u015f", "\u015e", "\u00b4"], ["\u0069", "\u0130"], [",", ";", "`"]],
|
473
|
-
[["Shift", "Shift"], ["<", ">", "|"], ["z", "Z"], ["x", "X"], ["c", "C"], ["v", "V"], ["b", "B"], ["n", "N"], ["m", "M"], ["\u00f6", "\u00d6"], ["\u00e7", "\u00c7"], [".", ":"], ["Shift", "Shift"]],
|
474
|
-
[[" ", " ", " ", " "], ["AltGr", "AltGr"]]
|
475
|
-
]; this.VKI_layout["Turkish-Q"].lang = ["tr"];
|
476
|
-
|
477
|
-
this.VKI_layout.UK = [ // UK Standard Keyboard
|
478
|
-
[["`", "\u00ac", "\u00a6"], ["1", "!"], ["2", '"'], ["3", "\u00a3"], ["4", "$", "\u20ac"], ["5", "%"], ["6", "^"], ["7", "&"], ["8", "*"], ["9", "("], ["0", ")"], ["-", "_"], ["=", "+"], ["Bksp", "Bksp"]],
|
479
|
-
[["Tab", "Tab"], ["q", "Q"], ["w", "W"], ["e", "E", "\u00e9", "\u00c9"], ["r", "R"], ["t", "T"], ["y", "Y"], ["u", "U", "\u00fa", "\u00da"], ["i", "I", "\u00ed", "\u00cd"], ["o", "O", "\u00f3", "\u00d3"], ["p", "P"], ["[", "{"], ["]", "}"], ["Enter", "Enter"]],
|
480
|
-
[["Caps", "Caps"], ["a", "A", "\u00e1", "\u00c1"], ["s", "S"], ["d", "D"], ["f", "F"], ["g", "G"], ["h", "H"], ["j", "J"], ["k", "K"], ["l", "L"], [";", ":"], ["'", "@"], ["#", "~"]],
|
481
|
-
[["Shift", "Shift"], ["\\", "|"], ["z", "Z"], ["x", "X"], ["c", "C"], ["v", "V"], ["b", "B"], ["n", "N"], ["m", "M"], [",", "<"], [".", ">"], ["/", "?"], ["Shift", "Shift"]],
|
482
|
-
[[" ", " ", " ", " "], ["AltGr", "AltGr"]]
|
483
|
-
]; this.VKI_layout.UK.lang = ["en-gb"];
|
484
|
-
|
485
|
-
this.VKI_layout.Ukrainian = [ // Ukrainian Standard Keyboard
|
486
|
-
[["\u00b4", "~"], ["1", "!"], ["2", '"'], ["3", "\u2116"], ["4", ";"], ["5", "%"], ["6", ":"], ["7", "?"], ["8", "*"], ["9", "("], ["0", ")"], ["-", "_"], ["=", "+"], ["Bksp", "Bksp"]],
|
487
|
-
[["Tab", "Tab"], ["\u0439", "\u0419"], ["\u0446", "\u0426"], ["\u0443", "\u0423"], ["\u043A", "\u041A"], ["\u0435", "\u0415"], ["\u043D", "\u041D"], ["\u0433", "\u0413"], ["\u0448", "\u0428"], ["\u0449", "\u0429"], ["\u0437", "\u0417"], ["\u0445", "\u0425"], ["\u0457", "\u0407"], ["\u0491", "\u0490"]],
|
488
|
-
[["Caps", "Caps"], ["\u0444", "\u0424"], ["\u0456", "\u0406"], ["\u0432", "\u0412"], ["\u0430", "\u0410"], ["\u043F", "\u041F"], ["\u0440", "\u0420"], ["\u043E", "\u041E"], ["\u043B", "\u041B"], ["\u0434", "\u0414"], ["\u0436", "\u0416"], ["\u0454", "\u0404"], ["Enter", "Enter"]],
|
489
|
-
[["Shift", "Shift"], ["\u044F", "\u042F"], ["\u0447", "\u0427"], ["\u0441", "\u0421"], ["\u043C", "\u041C"], ["\u0438", "\u0418"], ["\u0442", "\u0422"], ["\u044C", "\u042C"], ["\u0431", "\u0411"], ["\u044E", "\u042E"], [".", ","], ["Shift", "Shift"]],
|
490
|
-
[[" ", " "]]
|
491
|
-
]; this.VKI_layout.Ukrainian.lang = ["uk"];
|
492
|
-
|
493
|
-
this.VKI_layout.US = [ // US Standard Keyboard
|
494
|
-
[["`", "~"], ["1", "!"], ["2", "@"], ["3", "#"], ["4", "$"], ["5", "%"], ["6", "^"], ["7", "&"], ["8", "*"], ["9", "("], ["0", ")"], ["-", "_"], ["=", "+"], ["Bksp", "Bksp"]],
|
495
|
-
[["Tab", "Tab"], ["q", "Q"], ["w", "W"], ["e", "E"], ["r", "R"], ["t", "T"], ["y", "Y"], ["u", "U"], ["i", "I"], ["o", "O"], ["p", "P"], ["[", "{"], ["]", "}"], ["\\", "|"]],
|
496
|
-
[["Caps", "Caps"], ["a", "A"], ["s", "S"], ["d", "D"], ["f", "F"], ["g", "G"], ["h", "H"], ["j", "J"], ["k", "K"], ["l", "L"], [";", ":"], ["'", '"'], ["Enter", "Enter"]],
|
497
|
-
[["Shift", "Shift"], ["z", "Z"], ["x", "X"], ["c", "C"], ["v", "V"], ["b", "B"], ["n", "N"], ["m", "M"], [",", "<"], [".", ">"], ["/", "?"], ["Shift", "Shift"]],
|
498
|
-
[[" ", " "]]
|
499
|
-
]; this.VKI_layout.US.lang = ["en-us"];
|
500
|
-
|
501
|
-
this.VKI_layout["US Int'l"] = [ // US International Keyboard
|
502
|
-
[["`", "~"], ["1", "!", "\u00a1", "\u00b9"], ["2", "@", "\u00b2"], ["3", "#", "\u00b3"], ["4", "$", "\u00a4", "\u00a3"], ["5", "%", "\u20ac"], ["6", "^", "\u00bc"], ["7", "&", "\u00bd"], ["8", "*", "\u00be"], ["9", "(", "\u2018"], ["0", ")", "\u2019"], ["-", "_", "\u00a5"], ["=", "+", "\u00d7", "\u00f7"], ["Bksp", "Bksp"]],
|
503
|
-
[["Tab", "Tab"], ["q", "Q", "\u00e4", "\u00c4"], ["w", "W", "\u00e5", "\u00c5"], ["e", "E", "\u00e9", "\u00c9"], ["r", "R", "\u00ae"], ["t", "T", "\u00fe", "\u00de"], ["y", "Y", "\u00fc", "\u00dc"], ["u", "U", "\u00fa", "\u00da"], ["i", "I", "\u00ed", "\u00cd"], ["o", "O", "\u00f3", "\u00d3"], ["p", "P", "\u00f6", "\u00d6"], ["[", "{", "\u00ab"], ["]", "}", "\u00bb"], ["\\", "|", "\u00ac", "\u00a6"]],
|
504
|
-
[["Caps", "Caps"], ["a", "A", "\u00e1", "\u00c1"], ["s", "S", "\u00df", "\u00a7"], ["d", "D", "\u00f0", "\u00d0"], ["f", "F"], ["g", "G"], ["h", "H"], ["j", "J"], ["k", "K"], ["l", "L", "\u00f8", "\u00d8"], [";", ":", "\u00b6", "\u00b0"], ["'", '"', "\u00b4", "\u00a8"], ["Enter", "Enter"]],
|
505
|
-
[["Shift", "Shift"], ["z", "Z", "\u00e6", "\u00c6"], ["x", "X"], ["c", "C", "\u00a9", "\u00a2"], ["v", "V"], ["b", "B"], ["n", "N", "\u00f1", "\u00d1"], ["m", "M", "\u00b5"], [",", "<", "\u00e7", "\u00c7"], [".", ">"], ["/", "?", "\u00bf"], ["Shift", "Shift"]],
|
506
|
-
[[" ", " ", " ", " "], ["Alt", "Alt"]]
|
507
|
-
]; this.VKI_layout["US Int'l"].lang = ["en"];
|
508
|
-
|
509
|
-
|
510
|
-
/* ***** Define Dead Keys ************************************** */
|
511
|
-
this.VKI_deadkey = {};
|
512
|
-
|
513
|
-
// - Lay out each dead key set in one row of sub-arrays. The rows
|
514
|
-
// below are wrapped so uppercase letters are below their
|
515
|
-
// lowercase equivalents.
|
516
|
-
//
|
517
|
-
// - The first letter in each sub-array is the letter pressed after
|
518
|
-
// the diacritic. The second letter is the letter this key-combo
|
519
|
-
// will generate.
|
520
|
-
//
|
521
|
-
// - Note that if you have created a new keyboard layout and want
|
522
|
-
// it included in the distributed script, PLEASE TELL ME if you
|
523
|
-
// have added additional dead keys to the ones below.
|
524
|
-
|
525
|
-
this.VKI_deadkey['"'] = this.VKI_deadkey['\u00a8'] = [ // Umlaut / Diaeresis / Greek Dialytika
|
526
|
-
["a", "\u00e4"], ["e", "\u00eb"], ["i", "\u00ef"], ["o", "\u00f6"], ["u", "\u00fc"], ["y", "\u00ff"], ["\u03b9", "\u03ca"], ["\u03c5", "\u03cb"], ["\u016B", "\u01D6"], ["\u00FA", "\u01D8"], ["\u01D4", "\u01DA"], ["\u00F9", "\u01DC"],
|
527
|
-
["A", "\u00c4"], ["E", "\u00cb"], ["I", "\u00cf"], ["O", "\u00d6"], ["U", "\u00dc"], ["Y", "\u0178"], ["\u0399", "\u03aa"], ["\u03a5", "\u03ab"], ["\u016A", "\u01D5"], ["\u00DA", "\u01D7"], ["\u01D3", "\u01D9"], ["\u00D9", "\u01DB"],
|
528
|
-
["\u304b", "\u304c"], ["\u304d", "\u304e"], ["\u304f", "\u3050"], ["\u3051", "\u3052"], ["\u3053", "\u3054"],
|
529
|
-
["\u305f", "\u3060"], ["\u3061", "\u3062"], ["\u3064", "\u3065"], ["\u3066", "\u3067"], ["\u3068", "\u3069"],
|
530
|
-
["\u3055", "\u3056"], ["\u3057", "\u3058"], ["\u3059", "\u305a"], ["\u305b", "\u305c"], ["\u305d", "\u305e"],
|
531
|
-
["\u306f", "\u3070"], ["\u3072", "\u3073"], ["\u3075", "\u3076"], ["\u3078", "\u3079"], ["\u307b", "\u307c"],
|
532
|
-
["\u30ab", "\u30ac"], ["\u30ad", "\u30ae"], ["\u30af", "\u30b0"], ["\u30b1", "\u30b2"], ["\u30b3", "\u30b4"],
|
533
|
-
["\u30bf", "\u30c0"], ["\u30c1", "\u30c2"], ["\u30c4", "\u30c5"], ["\u30c6", "\u30c7"], ["\u30c8", "\u30c9"],
|
534
|
-
["\u30b5", "\u30b6"], ["\u30b7", "\u30b8"], ["\u30b9", "\u30ba"], ["\u30bb", "\u30bc"], ["\u30bd", "\u30be"],
|
535
|
-
["\u30cf", "\u30d0"], ["\u30d2", "\u30d3"], ["\u30d5", "\u30d6"], ["\u30d8", "\u30d9"], ["\u30db", "\u30dc"]
|
536
|
-
];
|
537
|
-
this.VKI_deadkey['~'] = [ // Tilde / Stroke
|
538
|
-
["a", "\u00e3"], ["l", "\u0142"], ["n", "\u00f1"], ["o", "\u00f5"],
|
539
|
-
["A", "\u00c3"], ["L", "\u0141"], ["N", "\u00d1"], ["O", "\u00d5"]
|
540
|
-
];
|
541
|
-
this.VKI_deadkey['^'] = [ // Circumflex
|
542
|
-
["a", "\u00e2"], ["e", "\u00ea"], ["i", "\u00ee"], ["o", "\u00f4"], ["u", "\u00fb"], ["w", "\u0175"], ["y", "\u0177"],
|
543
|
-
["A", "\u00c2"], ["E", "\u00ca"], ["I", "\u00ce"], ["O", "\u00d4"], ["U", "\u00db"], ["W", "\u0174"], ["Y", "\u0176"]
|
544
|
-
];
|
545
|
-
this.VKI_deadkey['\u02c7'] = [ // Baltic caron
|
546
|
-
["c", "\u010D"], ["d", "\u010f"], ["e", "\u011b"], ["s", "\u0161"], ["l", "\u013e"], ["n", "\u0148"], ["r", "\u0159"], ["t", "\u0165"], ["u", "\u01d4"], ["z", "\u017E"], ["\u00fc", "\u01da"],
|
547
|
-
["C", "\u010C"], ["D", "\u010e"], ["E", "\u011a"], ["S", "\u0160"], ["L", "\u013d"], ["N", "\u0147"], ["R", "\u0158"], ["T", "\u0164"], ["U", "\u01d3"], ["Z", "\u017D"], ["\u00dc", "\u01d9"]
|
548
|
-
];
|
549
|
-
this.VKI_deadkey['\u02d8'] = [ // Romanian and Turkish breve
|
550
|
-
["a", "\u0103"], ["g", "\u011f"],
|
551
|
-
["A", "\u0102"], ["G", "\u011e"]
|
552
|
-
];
|
553
|
-
this.VKI_deadkey['-'] = this.VKI_deadkey['\u00af'] = [ // Macron
|
554
|
-
["a", "\u0101"], ["e", "\u0113"], ["i", "\u012b"], ["o", "\u014d"], ["u", "\u016B"], ["y", "\u0233"], ["\u00fc", "\u01d6"],
|
555
|
-
["A", "\u0100"], ["E", "\u0112"], ["I", "\u012a"], ["O", "\u014c"], ["U", "\u016A"], ["Y", "\u0232"], ["\u00dc", "\u01d5"]
|
556
|
-
];
|
557
|
-
this.VKI_deadkey['`'] = [ // Grave
|
558
|
-
["a", "\u00e0"], ["e", "\u00e8"], ["i", "\u00ec"], ["o", "\u00f2"], ["u", "\u00f9"], ["\u00fc", "\u01dc"],
|
559
|
-
["A", "\u00c0"], ["E", "\u00c8"], ["I", "\u00cc"], ["O", "\u00d2"], ["U", "\u00d9"], ["\u00dc", "\u01db"]
|
560
|
-
];
|
561
|
-
this.VKI_deadkey["'"] = this.VKI_deadkey['\u00b4'] = this.VKI_deadkey['\u0384'] = [ // Acute / Greek Tonos
|
562
|
-
["a", "\u00e1"], ["e", "\u00e9"], ["i", "\u00ed"], ["o", "\u00f3"], ["u", "\u00fa"], ["y", "\u00fd"], ["\u03b1", "\u03ac"], ["\u03b5", "\u03ad"], ["\u03b7", "\u03ae"], ["\u03b9", "\u03af"], ["\u03bf", "\u03cc"], ["\u03c5", "\u03cd"], ["\u03c9", "\u03ce"], ["\u00fc", "\u01d8"],
|
563
|
-
["A", "\u00c1"], ["E", "\u00c9"], ["I", "\u00cd"], ["O", "\u00d3"], ["U", "\u00da"], ["Y", "\u00dd"], ["\u0391", "\u0386"], ["\u0395", "\u0388"], ["\u0397", "\u0389"], ["\u0399", "\u038a"], ["\u039f", "\u038c"], ["\u03a5", "\u038e"], ["\u03a9", "\u038f"], ["\u00dc", "\u01d7"]
|
564
|
-
];
|
565
|
-
this.VKI_deadkey['\u02dd'] = [ // Hungarian Double Acute Accent
|
566
|
-
["o", "\u0151"], ["u", "\u0171"],
|
567
|
-
["O", "\u0150"], ["U", "\u0170"]
|
568
|
-
];
|
569
|
-
this.VKI_deadkey['\u0385'] = [ // Greek Dialytika + Tonos
|
570
|
-
["\u03b9", "\u0390"], ["\u03c5", "\u03b0"]
|
571
|
-
];
|
572
|
-
this.VKI_deadkey['\u00b0'] = this.VKI_deadkey['\u00ba'] = [ // Ring
|
573
|
-
["a", "\u00e5"], ["u", "\u016f"],
|
574
|
-
["A", "\u00c5"], ["U", "\u016e"]
|
575
|
-
];
|
576
|
-
this.VKI_deadkey['\u02DB'] = [ // Ogonek
|
577
|
-
["a", "\u0106"], ["e", "\u0119"], ["i", "\u012f"], ["o", "\u01eb"], ["u", "\u0173"], ["y", "\u0177"],
|
578
|
-
["A", "\u0105"], ["E", "\u0118"], ["I", "\u012e"], ["O", "\u01ea"], ["U", "\u0172"], ["Y", "\u0176"]
|
579
|
-
];
|
580
|
-
this.VKI_deadkey['\u02D9'] = [ // Dot-above
|
581
|
-
["c", "\u010B"], ["e", "\u0117"], ["g", "\u0121"], ["z", "\u017C"],
|
582
|
-
["C", "\u010A"], ["E", "\u0116"], ["G", "\u0120"], ["Z", "\u017B"]
|
583
|
-
];
|
584
|
-
this.VKI_deadkey['\u00B8'] = this.VKI_deadkey['\u201a'] = [ // Cedilla
|
585
|
-
["c", "\u00e7"], ["s", "\u015F"],
|
586
|
-
["C", "\u00c7"], ["S", "\u015E"]
|
587
|
-
];
|
588
|
-
this.VKI_deadkey[','] = [ // Comma
|
589
|
-
["s", (this.VKI_isIElt8) ? "\u015F" : "\u0219"], ["t", (this.VKI_isIElt8) ? "\u0163" : "\u021B"],
|
590
|
-
["S", (this.VKI_isIElt8) ? "\u015E" : "\u0218"], ["T", (this.VKI_isIElt8) ? "\u0162" : "\u021A"]
|
591
|
-
];
|
592
|
-
this.VKI_deadkey['\u3002'] = [ // Hiragana/Katakana Point
|
593
|
-
["\u306f", "\u3071"], ["\u3072", "\u3074"], ["\u3075", "\u3077"], ["\u3078", "\u307a"], ["\u307b", "\u307d"],
|
594
|
-
["\u30cf", "\u30d1"], ["\u30d2", "\u30d4"], ["\u30d5", "\u30d7"], ["\u30d8", "\u30da"], ["\u30db", "\u30dd"]
|
595
|
-
];
|
596
|
-
|
597
|
-
|
598
|
-
/* ***** Define Symbols **************************************** */
|
599
|
-
this.VKI_symbol = {
|
600
|
-
'\u200c': "ZW\r\nNJ", '\u200d': "ZW\r\nJ"
|
601
|
-
};
|
602
|
-
|
603
|
-
|
604
|
-
|
605
|
-
/* ****************************************************************
|
606
|
-
* Attach the keyboard to an element
|
607
|
-
*
|
608
|
-
*/
|
609
|
-
this.VKI_attachKeyboard = VKI_attach = function(elem) {
|
610
|
-
if (elem.VKI_attached) return false;
|
611
|
-
var keybut = document.createElement('img');
|
612
|
-
keybut.src = this.VKI_imageURI;
|
613
|
-
keybut.alt = this.VKI_i18n['00'];
|
614
|
-
keybut.className = "keyboardInputInitiator";
|
615
|
-
keybut.title = this.VKI_i18n['01'];
|
616
|
-
keybut.elem = elem;
|
617
|
-
keybut.onclick = function() { self.VKI_show(this.elem); };
|
618
|
-
elem.VKI_attached = true;
|
619
|
-
elem.parentNode.insertBefore(keybut, (elem.dir == "rtl") ? elem : elem.nextSibling);
|
620
|
-
if (this.VKI_isIE) {
|
621
|
-
elem.onclick = elem.onselect = elem.onkeyup = function(e) {
|
622
|
-
if ((e || event).type != "keyup" || !this.readOnly)
|
623
|
-
this.range = document.selection.createRange();
|
624
|
-
};
|
625
|
-
}
|
626
|
-
};
|
627
|
-
|
628
|
-
|
629
|
-
/* ***** Find tagged input & textarea elements ***************** */
|
630
|
-
var inputElems = [
|
631
|
-
document.getElementsByTagName('input'),
|
632
|
-
document.getElementsByTagName('textarea')
|
633
|
-
];
|
634
|
-
for (var x = 0, elem; elem = inputElems[x++];)
|
635
|
-
for (var y = 0, ex; ex = elem[y++];)
|
636
|
-
if ((ex.nodeName == "TEXTAREA" || ex.type == "text" || ex.type == "password") && ex.className.indexOf("keyboardInput") > -1)
|
637
|
-
this.VKI_attachKeyboard(ex);
|
638
|
-
|
639
|
-
|
640
|
-
/* ***** Build the keyboard interface ************************** */
|
641
|
-
this.VKI_keyboard = document.createElement('table');
|
642
|
-
this.VKI_keyboard.id = "keyboardInputMaster";
|
643
|
-
this.VKI_keyboard.dir = "ltr";
|
644
|
-
this.VKI_keyboard.cellSpacing = this.VKI_keyboard.border = "0";
|
645
|
-
|
646
|
-
var thead = document.createElement('thead');
|
647
|
-
var tr = document.createElement('tr');
|
648
|
-
var th = document.createElement('th');
|
649
|
-
var abbr = document.createElement('abbr');
|
650
|
-
abbr.title = this.VKI_i18n['00'];
|
651
|
-
abbr.appendChild(document.createTextNode('VKI'));
|
652
|
-
th.appendChild(abbr);
|
653
|
-
|
654
|
-
var kblist = document.createElement('select');
|
655
|
-
kblist.title = this.VKI_i18n['02'];
|
656
|
-
for (ktype in this.VKI_layout) {
|
657
|
-
if (typeof this.VKI_layout[ktype] == "object") {
|
658
|
-
if (!this.VKI_layout[ktype].lang) this.VKI_layout[ktype].lang = [];
|
659
|
-
var opt = document.createElement('option');
|
660
|
-
opt.value = ktype;
|
661
|
-
opt.appendChild(document.createTextNode(ktype));
|
662
|
-
kblist.appendChild(opt);
|
663
|
-
}
|
664
|
-
}
|
665
|
-
if (kblist.options.length) {
|
666
|
-
kblist.value = this.VKI_kt;
|
667
|
-
kblist.onchange = function() {
|
668
|
-
self.VKI_kts = self.VKI_kt = this.value;
|
669
|
-
self.VKI_buildKeys();
|
670
|
-
self.VKI_position(true);
|
671
|
-
};
|
672
|
-
th.appendChild(kblist);
|
673
|
-
}
|
674
|
-
|
675
|
-
if (this.VKI_sizeAdj) {
|
676
|
-
this.VKI_size = Math.min(5, Math.max(1, this.VKI_size));
|
677
|
-
var kbsize = document.createElement('select');
|
678
|
-
kbsize.title = this.VKI_i18n['10'];
|
679
|
-
for (var x = 1; x <= 5; x++) {
|
680
|
-
var opt = document.createElement('option');
|
681
|
-
opt.value = x;
|
682
|
-
opt.appendChild(document.createTextNode(x));
|
683
|
-
kbsize.appendChild(opt);
|
684
|
-
} kbsize.value = this.VKI_size;
|
685
|
-
kbsize.onchange = function() {
|
686
|
-
self.VKI_keyboard.className = self.VKI_keyboard.className.replace(/ ?keyboardInputSize\d ?/, "");
|
687
|
-
if (this.value != 2) self.VKI_keyboard.className += " keyboardInputSize" + this.value;
|
688
|
-
self.VKI_position(true);
|
689
|
-
};
|
690
|
-
th.appendChild(kbsize);
|
691
|
-
}
|
692
|
-
|
693
|
-
var label = document.createElement('label');
|
694
|
-
var checkbox = document.createElement('input');
|
695
|
-
checkbox.type = "checkbox";
|
696
|
-
checkbox.title = this.VKI_i18n['03'] + ": " + ((this.VKI_deadkeysOn) ? this.VKI_i18n['04'] : this.VKI_i18n['05']);
|
697
|
-
checkbox.defaultChecked = this.VKI_deadkeysOn;
|
698
|
-
checkbox.onclick = function() {
|
699
|
-
self.VKI_deadkeysOn = this.checked;
|
700
|
-
this.title = self.VKI_i18n['03'] + ": " + ((this.checked) ? self.VKI_i18n['04'] : self.VKI_i18n['05']);
|
701
|
-
self.VKI_modify("");
|
702
|
-
return true;
|
703
|
-
};
|
704
|
-
label.appendChild(this.VKI_deadkeysElem = checkbox);
|
705
|
-
checkbox.checked = this.VKI_deadkeysOn;
|
706
|
-
label.setAttribute('style', 'white-space:nowrap; display:inline');
|
707
|
-
th.setAttribute('style', 'width:200px;white-space:nowrap');
|
708
|
-
th.appendChild(label);
|
709
|
-
tr.appendChild(th);
|
710
|
-
|
711
|
-
var td = document.createElement('td');
|
712
|
-
var clearer = document.createElement('span');
|
713
|
-
clearer.id = "keyboardInputClear";
|
714
|
-
clearer.appendChild(document.createTextNode(this.VKI_i18n['07']));
|
715
|
-
clearer.title = this.VKI_i18n['08'];
|
716
|
-
clearer.onmousedown = function() { this.className = "pressed"; };
|
717
|
-
clearer.onmouseup = function() { this.className = ""; };
|
718
|
-
clearer.onclick = function() {
|
719
|
-
self.VKI_target.value = "";
|
720
|
-
self.VKI_target.focus();
|
721
|
-
return false;
|
722
|
-
};
|
723
|
-
td.appendChild(clearer);
|
724
|
-
|
725
|
-
var closer = document.createElement('strong');
|
726
|
-
closer.id = "keyboardInputClose";
|
727
|
-
closer.appendChild(document.createTextNode('X'));
|
728
|
-
closer.title = this.VKI_i18n['06'];
|
729
|
-
closer.onmousedown = function() { this.className = "pressed"; };
|
730
|
-
closer.onmouseup = function() { this.className = ""; };
|
731
|
-
closer.onclick = function() { self.VKI_close(); };
|
732
|
-
td.appendChild(closer);
|
733
|
-
|
734
|
-
tr.appendChild(td);
|
735
|
-
thead.appendChild(tr);
|
736
|
-
this.VKI_keyboard.appendChild(thead);
|
737
|
-
|
738
|
-
var tbody = document.createElement('tbody');
|
739
|
-
var tr = document.createElement('tr');
|
740
|
-
var td = document.createElement('td');
|
741
|
-
td.colSpan = "2";
|
742
|
-
var div = document.createElement('div');
|
743
|
-
div.id = "keyboardInputLayout";
|
744
|
-
td.appendChild(div);
|
745
|
-
if (this.VKI_showVersion) {
|
746
|
-
var div = document.createElement('div');
|
747
|
-
var ver = document.createElement('var');
|
748
|
-
ver.title = this.VKI_i18n['09'] + " " + this.VKI_version;
|
749
|
-
ver.appendChild(document.createTextNode("v" + this.VKI_version));
|
750
|
-
div.appendChild(ver);
|
751
|
-
td.appendChild(div);
|
752
|
-
}
|
753
|
-
tr.appendChild(td);
|
754
|
-
tbody.appendChild(tr);
|
755
|
-
this.VKI_keyboard.appendChild(tbody);
|
756
|
-
|
757
|
-
if (this.VKI_isIE6) {
|
758
|
-
this.VKI_iframe = document.createElement('iframe');
|
759
|
-
this.VKI_iframe.style.position = "absolute";
|
760
|
-
this.VKI_iframe.style.border = "0px none";
|
761
|
-
this.VKI_iframe.style.filter = "mask()";
|
762
|
-
this.VKI_iframe.style.zIndex = "999999";
|
763
|
-
this.VKI_iframe.src = this.VKI_imageURI;
|
764
|
-
}
|
765
|
-
|
766
|
-
|
767
|
-
/* ****************************************************************
|
768
|
-
* Build or rebuild the keyboard keys
|
769
|
-
*
|
770
|
-
*/
|
771
|
-
this.VKI_buildKeys = function() {
|
772
|
-
this.VKI_shift = this.VKI_shiftlock = this.VKI_altgr = this.VKI_altgrlock = this.VKI_dead = false;
|
773
|
-
this.VKI_deadkeysOn = (this.VKI_layout[this.VKI_kt].DDK) ? false : this.VKI_keyboard.getElementsByTagName('label')[0].getElementsByTagName('input')[0].checked;
|
774
|
-
|
775
|
-
var container = this.VKI_keyboard.tBodies[0].getElementsByTagName('div')[0];
|
776
|
-
while (container.firstChild) container.removeChild(container.firstChild);
|
777
|
-
|
778
|
-
for (var x = 0, hasDeadKey = false, lyt; lyt = this.VKI_layout[this.VKI_kt][x++];) {
|
779
|
-
var table = document.createElement('table');
|
780
|
-
table.cellSpacing = table.border = "0";
|
781
|
-
if (lyt.length <= this.VKI_keyCenter) table.className = "keyboardInputCenter";
|
782
|
-
var tbody = document.createElement('tbody');
|
783
|
-
var tr = document.createElement('tr');
|
784
|
-
for (var y = 0, lkey; lkey = lyt[y++];) {
|
785
|
-
var td = document.createElement('td');
|
786
|
-
if (this.VKI_symbol[lkey[0]]) {
|
787
|
-
var span = document.createElement('span');
|
788
|
-
span.className = lkey[0];
|
789
|
-
span.appendChild(document.createTextNode(this.VKI_symbol[lkey[0]]));
|
790
|
-
td.appendChild(span);
|
791
|
-
} else td.appendChild(document.createTextNode(lkey[0] || "\xa0"));
|
792
|
-
|
793
|
-
var className = [];
|
794
|
-
if (this.VKI_deadkeysOn)
|
795
|
-
for (key in this.VKI_deadkey)
|
796
|
-
if (key === lkey[0]) { className.push("alive"); break; }
|
797
|
-
if (lyt.length > this.VKI_keyCenter && y == lyt.length) className.push("last");
|
798
|
-
if (lkey[0] == " ") className.push("space");
|
799
|
-
td.className = className.join(" ");
|
800
|
-
|
801
|
-
td.VKI_clickless = 0;
|
802
|
-
if (!td.click) {
|
803
|
-
td.click = function() {
|
804
|
-
var evt = this.ownerDocument.createEvent('MouseEvents');
|
805
|
-
evt.initMouseEvent('click', true, true, this.ownerDocument.defaultView, 1, 0, 0, 0, 0, false, false, false, false, 0, null);
|
806
|
-
this.dispatchEvent(evt);
|
807
|
-
};
|
808
|
-
}
|
809
|
-
td.onmouseover = function() {
|
810
|
-
if (self.VKI_clickless) {
|
811
|
-
var _self = this;
|
812
|
-
clearTimeout(this.VKI_clickless);
|
813
|
-
this.VKI_clickless = setTimeout(function() { _self.click(); }, self.VKI_clickless);
|
814
|
-
}
|
815
|
-
if ((this.firstChild.nodeValue || this.firstChild.className) != "\xa0") this.className += " hover";
|
816
|
-
};
|
817
|
-
td.onmouseout = function() {
|
818
|
-
if (self.VKI_clickless) clearTimeout(this.VKI_clickless);
|
819
|
-
this.className = this.className.replace(/ ?(hover|pressed)/g, "");
|
820
|
-
};
|
821
|
-
td.onmousedown = function() {
|
822
|
-
if (self.VKI_clickless) clearTimeout(this.VKI_clickless);
|
823
|
-
if ((this.firstChild.nodeValue || this.firstChild.className) != "\xa0") this.className += " pressed";
|
824
|
-
};
|
825
|
-
td.onmouseup = function() {
|
826
|
-
if (self.VKI_clickless) clearTimeout(this.VKI_clickless);
|
827
|
-
this.className = this.className.replace(/ ?pressed/g, "");
|
828
|
-
};
|
829
|
-
td.ondblclick = function() { return false; };
|
830
|
-
|
831
|
-
switch (lkey[1]) {
|
832
|
-
case "Caps": case "Shift":
|
833
|
-
case "Alt": case "AltGr": case "AltLk":
|
834
|
-
td.onclick = (function(type) { return function() { self.VKI_modify(type); return false; }; })(lkey[1]);
|
835
|
-
break;
|
836
|
-
case "Tab":
|
837
|
-
td.onclick = function() { self.VKI_insert("\t"); return false; };
|
838
|
-
break;
|
839
|
-
case "Bksp":
|
840
|
-
td.onclick = function() {
|
841
|
-
self.VKI_target.focus();
|
842
|
-
if (self.VKI_target.setSelectionRange) {
|
843
|
-
if (self.VKI_target.readOnly && self.VKI_isWebKit) {
|
844
|
-
var rng = [self.VKI_target.selStart || 0, self.VKI_target.selEnd || 0];
|
845
|
-
} else var rng = [self.VKI_target.selectionStart, self.VKI_target.selectionEnd];
|
846
|
-
if (rng[0] < rng[1]) rng[0]++;
|
847
|
-
self.VKI_target.value = self.VKI_target.value.substr(0, rng[0] - 1) + self.VKI_target.value.substr(rng[1]);
|
848
|
-
self.VKI_target.setSelectionRange(rng[0] - 1, rng[0] - 1);
|
849
|
-
if (self.VKI_target.readOnly && self.VKI_isWebKit) {
|
850
|
-
var range = window.getSelection().getRangeAt(0);
|
851
|
-
self.VKI_target.selStart = range.startOffset;
|
852
|
-
self.VKI_target.selEnd = range.endOffset;
|
853
|
-
}
|
854
|
-
} else if (self.VKI_target.createTextRange) {
|
855
|
-
try {
|
856
|
-
self.VKI_target.range.select();
|
857
|
-
} catch(e) { self.VKI_target.range = document.selection.createRange(); }
|
858
|
-
if (!self.VKI_target.range.text.length) self.VKI_target.range.moveStart('character', -1);
|
859
|
-
self.VKI_target.range.text = "";
|
860
|
-
} else self.VKI_target.value = self.VKI_target.value.substr(0, self.VKI_target.value.length - 1);
|
861
|
-
if (self.VKI_shift) self.VKI_modify("Shift");
|
862
|
-
if (self.VKI_altgr) self.VKI_modify("AltGr");
|
863
|
-
self.VKI_target.focus();
|
864
|
-
return true;
|
865
|
-
};
|
866
|
-
break;
|
867
|
-
case "Enter":
|
868
|
-
td.onclick = function() {
|
869
|
-
if (self.VKI_target.nodeName != "TEXTAREA") {
|
870
|
-
self.VKI_close();
|
871
|
-
this.className = this.className.replace(/ ?(hover|pressed)/g, "");
|
872
|
-
} else self.VKI_insert("\n");
|
873
|
-
return true;
|
874
|
-
};
|
875
|
-
break;
|
876
|
-
default:
|
877
|
-
td.onclick = function() {
|
878
|
-
var character = this.firstChild.nodeValue || this.firstChild.className;
|
879
|
-
if (self.VKI_deadkeysOn && self.VKI_dead) {
|
880
|
-
if (self.VKI_dead != character) {
|
881
|
-
for (key in self.VKI_deadkey) {
|
882
|
-
if (key == self.VKI_dead) {
|
883
|
-
if (character != " ") {
|
884
|
-
for (var z = 0, rezzed = false, dk; dk = self.VKI_deadkey[key][z++];) {
|
885
|
-
if (dk[0] == character) {
|
886
|
-
self.VKI_insert(dk[1]);
|
887
|
-
rezzed = true;
|
888
|
-
break;
|
889
|
-
}
|
890
|
-
}
|
891
|
-
} else {
|
892
|
-
self.VKI_insert(self.VKI_dead);
|
893
|
-
rezzed = true;
|
894
|
-
} break;
|
895
|
-
}
|
896
|
-
}
|
897
|
-
} else rezzed = true;
|
898
|
-
} self.VKI_dead = false;
|
899
|
-
|
900
|
-
if (!rezzed && character != "\xa0") {
|
901
|
-
if (self.VKI_deadkeysOn) {
|
902
|
-
for (key in self.VKI_deadkey) {
|
903
|
-
if (key == character) {
|
904
|
-
self.VKI_dead = key;
|
905
|
-
this.className += " dead";
|
906
|
-
if (self.VKI_shift) self.VKI_modify("Shift");
|
907
|
-
if (self.VKI_altgr) self.VKI_modify("AltGr");
|
908
|
-
break;
|
909
|
-
}
|
910
|
-
}
|
911
|
-
if (!self.VKI_dead) self.VKI_insert(character);
|
912
|
-
} else self.VKI_insert(character);
|
913
|
-
}
|
914
|
-
|
915
|
-
self.VKI_modify("");
|
916
|
-
if (self.VKI_isOpera) {
|
917
|
-
this.style.width = "50px";
|
918
|
-
var foo = this.offsetWidth;
|
919
|
-
this.style.width = "";
|
920
|
-
}
|
921
|
-
return false;
|
922
|
-
};
|
923
|
-
|
924
|
-
}
|
925
|
-
tr.appendChild(td);
|
926
|
-
tbody.appendChild(tr);
|
927
|
-
table.appendChild(tbody);
|
928
|
-
|
929
|
-
for (var z = 0; z < 4; z++)
|
930
|
-
if (this.VKI_deadkey[lkey[z] = lkey[z] || "\xa0"]) hasDeadKey = true;
|
931
|
-
}
|
932
|
-
container.appendChild(table);
|
933
|
-
}
|
934
|
-
this.VKI_deadkeysElem.style.display = (!this.VKI_layout[this.VKI_kt].DDK && hasDeadKey) ? "inline" : "none";
|
935
|
-
};
|
936
|
-
|
937
|
-
this.VKI_buildKeys();
|
938
|
-
VKI_disableSelection(this.VKI_keyboard);
|
939
|
-
|
940
|
-
|
941
|
-
/* ****************************************************************
|
942
|
-
* Controls modifier keys
|
943
|
-
*
|
944
|
-
*/
|
945
|
-
this.VKI_modify = function(type) {
|
946
|
-
switch (type) {
|
947
|
-
case "Alt":
|
948
|
-
case "AltGr": this.VKI_altgr = !this.VKI_altgr; break;
|
949
|
-
case "AltLk": this.VKI_altgrlock = !this.VKI_altgrlock; break;
|
950
|
-
case "Caps": this.VKI_shiftlock = !this.VKI_shiftlock; break;
|
951
|
-
case "Shift": this.VKI_shift = !this.VKI_shift; break;
|
952
|
-
} var vchar = 0;
|
953
|
-
if (!this.VKI_shift != !this.VKI_shiftlock) vchar += 1;
|
954
|
-
if (!this.VKI_altgr != !this.VKI_altgrlock) vchar += 2;
|
955
|
-
|
956
|
-
var tables = this.VKI_keyboard.getElementsByTagName('table');
|
957
|
-
for (var x = 0; x < tables.length; x++) {
|
958
|
-
var tds = tables[x].getElementsByTagName('td');
|
959
|
-
for (var y = 0; y < tds.length; y++) {
|
960
|
-
var className = [], lkey = this.VKI_layout[this.VKI_kt][x][y];
|
961
|
-
|
962
|
-
if (tds[y].className.indexOf('hover') > -1) className.push("hover");
|
963
|
-
|
964
|
-
switch (lkey[1]) {
|
965
|
-
case "Alt":
|
966
|
-
case "AltGr":
|
967
|
-
if (this.VKI_altgr) className.push("dead");
|
968
|
-
break;
|
969
|
-
case "AltLk":
|
970
|
-
if (this.VKI_altgrlock) className.push("dead");
|
971
|
-
break;
|
972
|
-
case "Shift":
|
973
|
-
if (this.VKI_shift) className.push("dead");
|
974
|
-
break;
|
975
|
-
case "Caps":
|
976
|
-
if (this.VKI_shiftlock) className.push("dead");
|
977
|
-
break;
|
978
|
-
case "Tab": case "Enter": case "Bksp": break;
|
979
|
-
default:
|
980
|
-
if (type) {
|
981
|
-
tds[y].removeChild(tds[y].firstChild);
|
982
|
-
if (this.VKI_symbol[lkey[vchar]]) {
|
983
|
-
var span = document.createElement('span');
|
984
|
-
span.className = lkey[vchar];
|
985
|
-
span.appendChild(document.createTextNode(this.VKI_symbol[lkey[vchar]]));
|
986
|
-
tds[y].appendChild(span);
|
987
|
-
} else tds[y].appendChild(document.createTextNode(lkey[vchar]));
|
988
|
-
}
|
989
|
-
if (this.VKI_deadkeysOn) {
|
990
|
-
var character = tds[y].firstChild.nodeValue || tds[y].firstChild.className;
|
991
|
-
if (this.VKI_dead) {
|
992
|
-
if (character == this.VKI_dead) className.push("dead");
|
993
|
-
for (var z = 0; z < this.VKI_deadkey[this.VKI_dead].length; z++) {
|
994
|
-
if (character == this.VKI_deadkey[this.VKI_dead][z][0]) {
|
995
|
-
className.push("target");
|
996
|
-
break;
|
997
|
-
}
|
998
|
-
}
|
999
|
-
}
|
1000
|
-
for (key in this.VKI_deadkey)
|
1001
|
-
if (key === character) { className.push("alive"); break; }
|
1002
|
-
}
|
1003
|
-
}
|
1004
|
-
|
1005
|
-
if (y == tds.length - 1 && tds.length > this.VKI_keyCenter) className.push("last");
|
1006
|
-
if (lkey[0] == " ") className.push("space");
|
1007
|
-
tds[y].className = className.join(" ");
|
1008
|
-
}
|
1009
|
-
}
|
1010
|
-
};
|
1011
|
-
|
1012
|
-
|
1013
|
-
/* ****************************************************************
|
1014
|
-
* Insert text at the cursor
|
1015
|
-
*
|
1016
|
-
*/
|
1017
|
-
this.VKI_insert = function(text) {
|
1018
|
-
this.VKI_target.focus();
|
1019
|
-
if (this.VKI_target.maxLength) this.VKI_target.maxlength = this.VKI_target.maxLength;
|
1020
|
-
if (typeof this.VKI_target.maxlength == "undefined" ||
|
1021
|
-
this.VKI_target.maxlength < 0 ||
|
1022
|
-
this.VKI_target.value.length < this.VKI_target.maxlength) {
|
1023
|
-
if (this.VKI_target.setSelectionRange) {
|
1024
|
-
if (this.VKI_target.readOnly && this.VKI_isWebKit) {
|
1025
|
-
var rng = [this.VKI_target.selStart || 0, this.VKI_target.selEnd || 0];
|
1026
|
-
} else var rng = [this.VKI_target.selectionStart, this.VKI_target.selectionEnd];
|
1027
|
-
this.VKI_target.value = this.VKI_target.value.substr(0, rng[0]) + text + this.VKI_target.value.substr(rng[1]);
|
1028
|
-
if (text == "\n" && window.opera) rng[0]++;
|
1029
|
-
this.VKI_target.setSelectionRange(rng[0] + text.length, rng[0] + text.length);
|
1030
|
-
if (this.VKI_target.readOnly && this.VKI_isWebKit) {
|
1031
|
-
var range = window.getSelection().getRangeAt(0);
|
1032
|
-
this.VKI_target.selStart = range.startOffset;
|
1033
|
-
this.VKI_target.selEnd = range.endOffset;
|
1034
|
-
}
|
1035
|
-
} else if (this.VKI_target.createTextRange) {
|
1036
|
-
try {
|
1037
|
-
this.VKI_target.range.select();
|
1038
|
-
} catch(e) { this.VKI_target.range = document.selection.createRange(); }
|
1039
|
-
this.VKI_target.range.text = text;
|
1040
|
-
this.VKI_target.range.collapse(true);
|
1041
|
-
this.VKI_target.range.select();
|
1042
|
-
} else this.VKI_target.value += text;
|
1043
|
-
if (this.VKI_shift) this.VKI_modify("Shift");
|
1044
|
-
if (this.VKI_altgr) this.VKI_modify("AltGr");
|
1045
|
-
this.VKI_target.focus();
|
1046
|
-
} else if (this.VKI_target.createTextRange && this.VKI_target.range)
|
1047
|
-
this.VKI_target.range.select();
|
1048
|
-
};
|
1049
|
-
|
1050
|
-
|
1051
|
-
/* ****************************************************************
|
1052
|
-
* Show the keyboard interface
|
1053
|
-
*
|
1054
|
-
*/
|
1055
|
-
this.VKI_show = function(elem) {
|
1056
|
-
if (!this.VKI_target) {
|
1057
|
-
this.VKI_target = elem;
|
1058
|
-
if (this.VKI_langAdapt && this.VKI_target.lang) {
|
1059
|
-
var chg = false, sub = [];
|
1060
|
-
for (ktype in this.VKI_layout) {
|
1061
|
-
if (typeof this.VKI_layout[ktype] == "object") {
|
1062
|
-
for (var x = 0; x < this.VKI_layout[ktype].lang.length; x++) {
|
1063
|
-
if (this.VKI_layout[ktype].lang[x].toLowerCase() == this.VKI_target.lang.toLowerCase()) {
|
1064
|
-
chg = kblist.value = this.VKI_kt = ktype;
|
1065
|
-
break;
|
1066
|
-
} else if (this.VKI_layout[ktype].lang[x].toLowerCase().indexOf(this.VKI_target.lang.toLowerCase()) == 0)
|
1067
|
-
sub.push([this.VKI_layout[ktype].lang[x], ktype]);
|
1068
|
-
}
|
1069
|
-
} if (chg) break;
|
1070
|
-
} if (sub.length) {
|
1071
|
-
sub.sort(function (a, b) { return a[0].length - b[0].length; });
|
1072
|
-
chg = kblist.value = this.VKI_kt = sub[0][1];
|
1073
|
-
} if (chg) this.VKI_buildKeys();
|
1074
|
-
}
|
1075
|
-
if (this.VKI_isIE) {
|
1076
|
-
if (!this.VKI_target.range) {
|
1077
|
-
this.VKI_target.range = this.VKI_target.createTextRange();
|
1078
|
-
this.VKI_target.range.moveStart('character', this.VKI_target.value.length);
|
1079
|
-
} this.VKI_target.range.select();
|
1080
|
-
}
|
1081
|
-
try { this.VKI_keyboard.parentNode.removeChild(this.VKI_keyboard); } catch (e) {}
|
1082
|
-
if (this.VKI_clearPasswords && this.VKI_target.type == "password") this.VKI_target.value = "";
|
1083
|
-
|
1084
|
-
var elem = this.VKI_target;
|
1085
|
-
this.VKI_target.keyboardPosition = "absolute";
|
1086
|
-
do {
|
1087
|
-
if (VKI_getStyle(elem, "position") == "fixed") {
|
1088
|
-
this.VKI_target.keyboardPosition = "fixed";
|
1089
|
-
break;
|
1090
|
-
}
|
1091
|
-
} while (elem = elem.offsetParent);
|
1092
|
-
|
1093
|
-
if (this.VKI_isIE6) document.body.appendChild(this.VKI_iframe);
|
1094
|
-
document.body.appendChild(this.VKI_keyboard);
|
1095
|
-
this.VKI_keyboard.style.position = this.VKI_target.keyboardPosition;
|
1096
|
-
|
1097
|
-
this.VKI_position(true);
|
1098
|
-
if (self.VKI_isMoz || self.VKI_isWebKit) this.VKI_position(true);
|
1099
|
-
this.VKI_target.focus();
|
1100
|
-
} else this.VKI_close();
|
1101
|
-
};
|
1102
|
-
|
1103
|
-
|
1104
|
-
/* ****************************************************************
|
1105
|
-
* Position the keyboard
|
1106
|
-
*
|
1107
|
-
*/
|
1108
|
-
this.VKI_position = function(force) {
|
1109
|
-
if (self.VKI_target) {
|
1110
|
-
var kPos = VKI_findPos(self.VKI_keyboard), wDim = VKI_innerDimensions(), sDis = VKI_scrollDist();
|
1111
|
-
var place = false, fudge = self.VKI_target.offsetHeight + 3;
|
1112
|
-
if (force !== true) {
|
1113
|
-
if (kPos[1] + self.VKI_keyboard.offsetHeight - sDis[1] - wDim[1] > 0) {
|
1114
|
-
place = true;
|
1115
|
-
fudge = -self.VKI_keyboard.offsetHeight - 3;
|
1116
|
-
} else if (kPos[1] - sDis[1] < 0) place = true;
|
1117
|
-
}
|
1118
|
-
if (place || force === true) {
|
1119
|
-
var iPos = VKI_findPos(self.VKI_target);
|
1120
|
-
self.VKI_keyboard.style.top = iPos[1] - ((self.VKI_target.keyboardPosition == "fixed" && !self.VKI_isIE && !self.VKI_isMoz) ? sDis[1] : 0) + fudge + "px";
|
1121
|
-
self.VKI_keyboard.style.left = Math.max(10, Math.min(wDim[0] - self.VKI_keyboard.offsetWidth - 25, iPos[0])) + "px";
|
1122
|
-
if (self.VKI_isIE6) {
|
1123
|
-
self.VKI_iframe.style.width = self.VKI_keyboard.offsetWidth + "px";
|
1124
|
-
self.VKI_iframe.style.height = self.VKI_keyboard.offsetHeight + "px";
|
1125
|
-
self.VKI_iframe.style.top = self.VKI_keyboard.style.top;
|
1126
|
-
self.VKI_iframe.style.left = self.VKI_keyboard.style.left;
|
1127
|
-
}
|
1128
|
-
}
|
1129
|
-
if (force === true) self.VKI_position();
|
1130
|
-
}
|
1131
|
-
};
|
1132
|
-
|
1133
|
-
|
1134
|
-
if (window.addEventListener) {
|
1135
|
-
window.addEventListener('resize', this.VKI_position, false);
|
1136
|
-
window.addEventListener('scroll', this.VKI_position, false);
|
1137
|
-
} else if (window.attachEvent) {
|
1138
|
-
window.attachEvent('onresize', this.VKI_position);
|
1139
|
-
window.attachEvent('onscroll', this.VKI_position);
|
1140
|
-
}
|
1141
|
-
|
1142
|
-
|
1143
|
-
/* ****************************************************************
|
1144
|
-
* Close the keyboard interface
|
1145
|
-
*
|
1146
|
-
*/
|
1147
|
-
this.VKI_close = VKI_close = function() {
|
1148
|
-
if (this.VKI_target) {
|
1149
|
-
try {
|
1150
|
-
this.VKI_keyboard.parentNode.removeChild(this.VKI_keyboard);
|
1151
|
-
if (this.VKI_isIE6) this.VKI_iframe.parentNode.removeChild(this.VKI_iframe);
|
1152
|
-
} catch (e) {}
|
1153
|
-
if (this.VKI_kt != this.VKI_kts) {
|
1154
|
-
kblist.value = this.VKI_kt = this.VKI_kts;
|
1155
|
-
this.VKI_buildKeys();
|
1156
|
-
}
|
1157
|
-
this.VKI_target.focus();
|
1158
|
-
this.VKI_target = false;
|
1159
|
-
}
|
1160
|
-
};
|
1161
|
-
}
|
1162
|
-
|
1163
|
-
function VKI_findPos(obj) {
|
1164
|
-
var curleft = curtop = 0;
|
1165
|
-
do {
|
1166
|
-
curleft += obj.offsetLeft;
|
1167
|
-
curtop += obj.offsetTop;
|
1168
|
-
} while (obj = obj.offsetParent);
|
1169
|
-
return [curleft, curtop];
|
1170
|
-
}
|
1171
|
-
|
1172
|
-
function VKI_innerDimensions() {
|
1173
|
-
if (self.innerHeight) {
|
1174
|
-
return [self.innerWidth, self.innerHeight];
|
1175
|
-
} else if (document.documentElement && document.documentElement.clientHeight) {
|
1176
|
-
return [document.documentElement.clientWidth, document.documentElement.clientHeight];
|
1177
|
-
} else if (document.body)
|
1178
|
-
return [document.body.clientWidth, document.body.clientHeight];
|
1179
|
-
return [0, 0];
|
1180
|
-
}
|
1181
|
-
|
1182
|
-
function VKI_scrollDist() {
|
1183
|
-
var html = document.getElementsByTagName('html')[0];
|
1184
|
-
if (html.scrollTop && document.documentElement.scrollTop) {
|
1185
|
-
return [html.scrollLeft, html.scrollTop];
|
1186
|
-
} else if (html.scrollTop || document.documentElement.scrollTop) {
|
1187
|
-
return [html.scrollLeft + document.documentElement.scrollLeft, html.scrollTop + document.documentElement.scrollTop];
|
1188
|
-
} else if (document.body.scrollTop)
|
1189
|
-
return [document.body.scrollLeft, document.body.scrollTop];
|
1190
|
-
return [0, 0];
|
1191
|
-
}
|
1192
|
-
|
1193
|
-
function VKI_getStyle(obj, styleProp) {
|
1194
|
-
if (obj.currentStyle) {
|
1195
|
-
var y = obj.currentStyle[styleProp];
|
1196
|
-
} else if (window.getComputedStyle)
|
1197
|
-
var y = window.getComputedStyle(obj, null)[styleProp];
|
1198
|
-
return y;
|
1199
|
-
}
|
1200
|
-
|
1201
|
-
function VKI_disableSelection(elem) {
|
1202
|
-
elem.onselectstart = function() { return false; };
|
1203
|
-
elem.unselectable = "on";
|
1204
|
-
elem.style.MozUserSelect = "none";
|
1205
|
-
elem.style.cursor = "default";
|
1206
|
-
if (window.opera) elem.onmousedown = function() { return false; };
|
1207
|
-
}
|
1208
|
-
|
1209
|
-
|
1210
|
-
/* ***** Attach this script to the onload event ****************** */
|
1211
|
-
if (window.addEventListener) {
|
1212
|
-
window.addEventListener('load', VKI_buildKeyboardInputs, false);
|
1213
|
-
} else if (window.attachEvent)
|
1214
|
-
window.attachEvent('onload', VKI_buildKeyboardInputs);
|