tr8n 3.2.2 → 3.2.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. data/Gemfile.lock +1 -1
  2. data/lib/tr8n/version.rb +1 -1
  3. data/tr8n.gemspec +2 -2
  4. metadata +41 -117
  5. data/app/javascript/compile.rb +0 -37
  6. data/app/javascript/compile.sh +0 -1
  7. data/app/javascript/compressors/google/COPYING +0 -202
  8. data/app/javascript/compressors/google/README +0 -292
  9. data/app/javascript/compressors/google/compiler.jar +0 -0
  10. data/app/javascript/config.yml +0 -66
  11. data/app/javascript/src/base.js +0 -35
  12. data/app/javascript/src/effects.js +0 -67
  13. data/app/javascript/src/ext/inflector.js +0 -309
  14. data/app/javascript/src/ext/jsDraw2D.js +0 -24
  15. data/app/javascript/src/ext/keyboard_1_36.js +0 -1214
  16. data/app/javascript/src/ext/keyboard_1_44.js +0 -1735
  17. data/app/javascript/src/ext/keyboard_1_49.js +0 -1796
  18. data/app/javascript/src/ext/md5.js +0 -209
  19. data/app/javascript/src/ext/shortcut.js +0 -223
  20. data/app/javascript/src/init.js +0 -47
  21. data/app/javascript/src/language.js +0 -38
  22. data/app/javascript/src/logger.js +0 -203
  23. data/app/javascript/src/prototype/effects.js +0 -65
  24. data/app/javascript/src/proxy.js +0 -254
  25. data/app/javascript/src/rules/date_rule.js +0 -37
  26. data/app/javascript/src/rules/gender_list_rule.js +0 -37
  27. data/app/javascript/src/rules/gender_rule.js +0 -87
  28. data/app/javascript/src/rules/language_rule.js +0 -55
  29. data/app/javascript/src/rules/list_rule.js +0 -37
  30. data/app/javascript/src/rules/numeric_rule.js +0 -95
  31. data/app/javascript/src/tml/label.js +0 -60
  32. data/app/javascript/src/tml/token.js +0 -107
  33. data/app/javascript/src/tokens/data_token.js +0 -45
  34. data/app/javascript/src/tokens/decoration_token.js +0 -82
  35. data/app/javascript/src/tokens/token.js +0 -121
  36. data/app/javascript/src/tokens/transform_token.js +0 -106
  37. data/app/javascript/src/translation_key.js +0 -183
  38. data/app/javascript/src/ui/language_case_manager.js +0 -155
  39. data/app/javascript/src/ui/language_selector.js +0 -126
  40. data/app/javascript/src/ui/lightbox.js +0 -72
  41. data/app/javascript/src/ui/translator.js +0 -257
  42. 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);