tr8n 3.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/.project +18 -0
- data/Gemfile +34 -0
- data/Gemfile.lock +79 -0
- data/LICENSE +18 -0
- data/README.rdoc +116 -0
- data/Rakefile +29 -0
- data/VERSION +1 -0
- data/app/controllers/application_controller.rb +28 -0
- data/app/controllers/tr8n/admin/base_controller.rb +65 -0
- data/app/controllers/tr8n/admin/clientsdk_controller.rb +34 -0
- data/app/controllers/tr8n/admin/domain_controller.rb +77 -0
- data/app/controllers/tr8n/admin/forum_controller.rb +58 -0
- data/app/controllers/tr8n/admin/glossary_controller.rb +56 -0
- data/app/controllers/tr8n/admin/language_controller.rb +129 -0
- data/app/controllers/tr8n/admin/translation_controller.rb +64 -0
- data/app/controllers/tr8n/admin/translation_key_controller.rb +157 -0
- data/app/controllers/tr8n/admin/translator_controller.rb +119 -0
- data/app/controllers/tr8n/api/v1/base_controller.rb +81 -0
- data/app/controllers/tr8n/api/v1/language_controller.rb +107 -0
- data/app/controllers/tr8n/api/v1/translation_controller.rb +75 -0
- data/app/controllers/tr8n/api/v1/translator_controller.rb +34 -0
- data/app/controllers/tr8n/awards_controller.rb +43 -0
- data/app/controllers/tr8n/base_controller.rb +206 -0
- data/app/controllers/tr8n/dashboard_controller.rb +32 -0
- data/app/controllers/tr8n/forum_controller.rb +100 -0
- data/app/controllers/tr8n/glossary_controller.rb +40 -0
- data/app/controllers/tr8n/help_controller.rb +40 -0
- data/app/controllers/tr8n/home_controller.rb +51 -0
- data/app/controllers/tr8n/language_cases_controller.rb +82 -0
- data/app/controllers/tr8n/language_controller.rb +372 -0
- data/app/controllers/tr8n/login_controller.rb +86 -0
- data/app/controllers/tr8n/phrases_controller.rb +293 -0
- data/app/controllers/tr8n/translations_controller.rb +194 -0
- data/app/controllers/tr8n/translator_controller.rb +83 -0
- data/app/helpers/application_helper.rb +27 -0
- data/app/helpers/tr8n/admin/base_helper.rb +84 -0
- data/app/helpers/tr8n/base_helper.rb +44 -0
- data/app/helpers/tr8n/dashboard_helper.rb +43 -0
- data/app/models/tr8n/base_filter.rb +68 -0
- data/app/models/tr8n/daily_language_metric.rb +42 -0
- data/app/models/tr8n/date_rule.rb +123 -0
- data/app/models/tr8n/gender_list_rule.rb +247 -0
- data/app/models/tr8n/gender_rule.rb +140 -0
- data/app/models/tr8n/glossary.rb +27 -0
- data/app/models/tr8n/glossary_filter.rb +33 -0
- data/app/models/tr8n/integration/ru/russian_gender_list_rule.rb +60 -0
- data/app/models/tr8n/integration/ru/russian_numeric_rule.rb +64 -0
- data/app/models/tr8n/ip_location.rb +74 -0
- data/app/models/tr8n/ip_location_filter.rb +34 -0
- data/app/models/tr8n/language.rb +318 -0
- data/app/models/tr8n/language_case.rb +141 -0
- data/app/models/tr8n/language_case_filter.rb +30 -0
- data/app/models/tr8n/language_case_rule.rb +187 -0
- data/app/models/tr8n/language_case_rule_filter.rb +30 -0
- data/app/models/tr8n/language_case_value_map.rb +100 -0
- data/app/models/tr8n/language_case_value_map_filter.rb +41 -0
- data/app/models/tr8n/language_filter.rb +75 -0
- data/app/models/tr8n/language_forum_abuse_report.rb +33 -0
- data/app/models/tr8n/language_forum_abuse_report_filter.rb +30 -0
- data/app/models/tr8n/language_forum_message.rb +46 -0
- data/app/models/tr8n/language_forum_message_filter.rb +34 -0
- data/app/models/tr8n/language_forum_topic.rb +41 -0
- data/app/models/tr8n/language_forum_topic_filter.rb +34 -0
- data/app/models/tr8n/language_metric.rb +91 -0
- data/app/models/tr8n/language_metric_filter.rb +63 -0
- data/app/models/tr8n/language_rule.rb +117 -0
- data/app/models/tr8n/language_rule_filter.rb +45 -0
- data/app/models/tr8n/language_user.rb +61 -0
- data/app/models/tr8n/language_user_filter.rb +34 -0
- data/app/models/tr8n/list_rule.rb +118 -0
- data/app/models/tr8n/monthly_language_metric.rb +34 -0
- data/app/models/tr8n/numeric_rule.rb +175 -0
- data/app/models/tr8n/total_language_metric.rb +59 -0
- data/app/models/tr8n/translation.rb +299 -0
- data/app/models/tr8n/translation_domain.rb +48 -0
- data/app/models/tr8n/translation_domain_filter.rb +26 -0
- data/app/models/tr8n/translation_filter.rb +34 -0
- data/app/models/tr8n/translation_key.rb +625 -0
- data/app/models/tr8n/translation_key_comment.rb +37 -0
- data/app/models/tr8n/translation_key_comment_filter.rb +30 -0
- data/app/models/tr8n/translation_key_filter.rb +45 -0
- data/app/models/tr8n/translation_key_lock.rb +59 -0
- data/app/models/tr8n/translation_key_lock_filter.rb +30 -0
- data/app/models/tr8n/translation_key_source.rb +58 -0
- data/app/models/tr8n/translation_key_source_filter.rb +30 -0
- data/app/models/tr8n/translation_source.rb +52 -0
- data/app/models/tr8n/translation_source_filter.rb +30 -0
- data/app/models/tr8n/translation_vote.rb +36 -0
- data/app/models/tr8n/translation_vote_filter.rb +34 -0
- data/app/models/tr8n/translator.rb +301 -0
- data/app/models/tr8n/translator_filter.rb +46 -0
- data/app/models/tr8n/translator_following.rb +38 -0
- data/app/models/tr8n/translator_following_filter.rb +34 -0
- data/app/models/tr8n/translator_log.rb +120 -0
- data/app/models/tr8n/translator_log_filter.rb +49 -0
- data/app/models/tr8n/translator_metric.rb +83 -0
- data/app/models/tr8n/translator_metric_filter.rb +38 -0
- data/app/models/tr8n/translator_report.rb +82 -0
- data/app/models/tr8n/translator_report_filter.rb +30 -0
- data/app/models/tr8n/value_rule.rb +117 -0
- data/app/views/layouts/_footer.html.erb +15 -0
- data/app/views/layouts/_header.html.erb +12 -0
- data/app/views/layouts/_html_head.html.erb +5 -0
- data/app/views/layouts/tr8n.html.erb +21 -0
- data/app/views/layouts/tr8n_admin.html.erb +33 -0
- data/app/views/tr8n/admin/clientsdk/index.html.erb +133 -0
- data/app/views/tr8n/admin/clientsdk/lb_samples.html.erb +54 -0
- data/app/views/tr8n/admin/common/_footer.html.erb +1 -0
- data/app/views/tr8n/admin/common/_header.html.erb +30 -0
- data/app/views/tr8n/admin/common/_lightbox_buttons.html.erb +5 -0
- data/app/views/tr8n/admin/common/_paginator.html.erb +20 -0
- data/app/views/tr8n/admin/domain/_tabs.html.erb +23 -0
- data/app/views/tr8n/admin/domain/index.html.erb +33 -0
- data/app/views/tr8n/admin/domain/key_sources.rhtml +53 -0
- data/app/views/tr8n/admin/domain/lb_caller.html.erb +35 -0
- data/app/views/tr8n/admin/domain/sources.html.erb +35 -0
- data/app/views/tr8n/admin/forum/_tabs.html.erb +22 -0
- data/app/views/tr8n/admin/forum/index.html.erb +34 -0
- data/app/views/tr8n/admin/forum/messages.html.erb +33 -0
- data/app/views/tr8n/admin/forum/reports.html.erb +50 -0
- data/app/views/tr8n/admin/glossary/index.html.erb +22 -0
- data/app/views/tr8n/admin/glossary/lb_update.html.erb +26 -0
- data/app/views/tr8n/admin/language/_rules.html.erb +22 -0
- data/app/views/tr8n/admin/language/_tabs.html.erb +27 -0
- data/app/views/tr8n/admin/language/_users.html.erb +40 -0
- data/app/views/tr8n/admin/language/case_rules.html.erb +24 -0
- data/app/views/tr8n/admin/language/case_values.html.erb +25 -0
- data/app/views/tr8n/admin/language/cases.html.erb +24 -0
- data/app/views/tr8n/admin/language/charts.html.erb +35 -0
- data/app/views/tr8n/admin/language/index.html.erb +99 -0
- data/app/views/tr8n/admin/language/lb_update.html.erb +76 -0
- data/app/views/tr8n/admin/language/lb_value_map.html.erb +42 -0
- data/app/views/tr8n/admin/language/metrics.rhtml +16 -0
- data/app/views/tr8n/admin/language/rules.html.erb +24 -0
- data/app/views/tr8n/admin/language/users.rhtml +31 -0
- data/app/views/tr8n/admin/language/view.html.erb +106 -0
- data/app/views/tr8n/admin/translation/_tabs.html.erb +21 -0
- data/app/views/tr8n/admin/translation/index.html.erb +75 -0
- data/app/views/tr8n/admin/translation/view.html.erb +142 -0
- data/app/views/tr8n/admin/translation/votes.rhtml +81 -0
- data/app/views/tr8n/admin/translation_key/_tabs.html.erb +22 -0
- data/app/views/tr8n/admin/translation_key/comments.html.erb +49 -0
- data/app/views/tr8n/admin/translation_key/index.html.erb +79 -0
- data/app/views/tr8n/admin/translation_key/lb_merge.html.erb +43 -0
- data/app/views/tr8n/admin/translation_key/lb_update.html.erb +44 -0
- data/app/views/tr8n/admin/translation_key/locks.html.erb +51 -0
- data/app/views/tr8n/admin/translation_key/view.html.erb +192 -0
- data/app/views/tr8n/admin/translator/_list.html.erb +51 -0
- data/app/views/tr8n/admin/translator/_tabs.html.erb +26 -0
- data/app/views/tr8n/admin/translator/following.html.erb +20 -0
- data/app/views/tr8n/admin/translator/index.html.erb +77 -0
- data/app/views/tr8n/admin/translator/ip_locations.html.erb +9 -0
- data/app/views/tr8n/admin/translator/lb_register.html.erb +18 -0
- data/app/views/tr8n/admin/translator/log.html.erb +27 -0
- data/app/views/tr8n/admin/translator/metrics.html.erb +25 -0
- data/app/views/tr8n/admin/translator/reports.html.erb +22 -0
- data/app/views/tr8n/admin/translator/view.html.erb +228 -0
- data/app/views/tr8n/awards/_list.html.erb +46 -0
- data/app/views/tr8n/awards/index.html.erb +42 -0
- data/app/views/tr8n/common/_flashes.html.erb +39 -0
- data/app/views/tr8n/common/_footer.html.erb +1 -0
- data/app/views/tr8n/common/_header.html.erb +5 -0
- data/app/views/tr8n/common/_language_selector.html.erb +8 -0
- data/app/views/tr8n/common/_language_strip.html.erb +29 -0
- data/app/views/tr8n/common/_language_table.html.erb +13 -0
- data/app/views/tr8n/common/_paginator.html.erb +8 -0
- data/app/views/tr8n/common/_permutations.html.erb +37 -0
- data/app/views/tr8n/common/_scripts.html.erb +49 -0
- data/app/views/tr8n/common/_splash_screen.html.erb +9 -0
- data/app/views/tr8n/common/_splash_screen_legacy.html.erb +4 -0
- data/app/views/tr8n/common/_tabs.html.erb +39 -0
- data/app/views/tr8n/common/_translation_votes.html.erb +41 -0
- data/app/views/tr8n/common/_translator_login.html.erb +11 -0
- data/app/views/tr8n/dashboard/_forum.html.erb +25 -0
- data/app/views/tr8n/dashboard/_language_metric.html.erb +49 -0
- data/app/views/tr8n/dashboard/_statistics.html.erb +35 -0
- data/app/views/tr8n/dashboard/_translations.html.erb +24 -0
- data/app/views/tr8n/dashboard/_translator_metric.html.erb +68 -0
- data/app/views/tr8n/dashboard/_votes.html.erb +76 -0
- data/app/views/tr8n/dashboard/index.rhtml +115 -0
- data/app/views/tr8n/forum/_message.html.erb +17 -0
- data/app/views/tr8n/forum/_messages.html.erb +21 -0
- data/app/views/tr8n/forum/_new_message.html.erb +28 -0
- data/app/views/tr8n/forum/_new_topic.html.erb +49 -0
- data/app/views/tr8n/forum/index.html.erb +84 -0
- data/app/views/tr8n/forum/topic.html.erb +36 -0
- data/app/views/tr8n/glossary/index.html.erb +42 -0
- data/app/views/tr8n/help/_navigation.html.erb +127 -0
- data/app/views/tr8n/help/awards.html.erb +13 -0
- data/app/views/tr8n/help/basic_information.html.erb +13 -0
- data/app/views/tr8n/help/context_rules.html.erb +13 -0
- data/app/views/tr8n/help/creating_translations.html.erb +16 -0
- data/app/views/tr8n/help/dashboard.html.erb +13 -0
- data/app/views/tr8n/help/direction.html.erb +13 -0
- data/app/views/tr8n/help/discussions.html.erb +13 -0
- data/app/views/tr8n/help/enter_translation.html.erb +13 -0
- data/app/views/tr8n/help/fallback_language.html.erb +13 -0
- data/app/views/tr8n/help/generate_context_rules.html.erb +17 -0
- data/app/views/tr8n/help/index.html.erb +18 -0
- data/app/views/tr8n/help/inline_translations.html.erb +28 -0
- data/app/views/tr8n/help/language_dashboard.html.erb +21 -0
- data/app/views/tr8n/help/language_phrases.html.erb +17 -0
- data/app/views/tr8n/help/language_selector.html.erb +13 -0
- data/app/views/tr8n/help/language_statistics.html.erb +13 -0
- data/app/views/tr8n/help/lb_credits.html.erb +9 -0
- data/app/views/tr8n/help/lb_shortcuts.html.erb +26 -0
- data/app/views/tr8n/help/manage.html.erb +13 -0
- data/app/views/tr8n/help/manage_language.html.erb +13 -0
- data/app/views/tr8n/help/native_name.html.erb +13 -0
- data/app/views/tr8n/help/original_phrase.html.erb +13 -0
- data/app/views/tr8n/help/other_languages.html.erb +15 -0
- data/app/views/tr8n/help/other_translatable_resources.html.erb +13 -0
- data/app/views/tr8n/help/phrases.html.erb +19 -0
- data/app/views/tr8n/help/phrases_with_translations.html.erb +21 -0
- data/app/views/tr8n/help/phrases_without_translations.html.erb +15 -0
- data/app/views/tr8n/help/prohibited_words.html.erb +13 -0
- data/app/views/tr8n/help/rank.html.erb +13 -0
- data/app/views/tr8n/help/recent_discussions.html.erb +13 -0
- data/app/views/tr8n/help/recent_translation_votes.html.erb +13 -0
- data/app/views/tr8n/help/recent_translations.html.erb +13 -0
- data/app/views/tr8n/help/site_map.html.erb +17 -0
- data/app/views/tr8n/help/site_sections.html.erb +13 -0
- data/app/views/tr8n/help/suggested_translation.html.erb +13 -0
- data/app/views/tr8n/help/translating_inline.html.erb +30 -0
- data/app/views/tr8n/help/translation_context_rules.html.erb +16 -0
- data/app/views/tr8n/help/translation_rank.html.erb +17 -0
- data/app/views/tr8n/help/translation_tokens.html.erb +13 -0
- data/app/views/tr8n/help/translation_tools.html.erb +13 -0
- data/app/views/tr8n/help/translations.html.erb +13 -0
- data/app/views/tr8n/help/user_rank.html.erb +13 -0
- data/app/views/tr8n/help/using_translation_tools.html.erb +13 -0
- data/app/views/tr8n/help/voting_on_translations.html.erb +13 -0
- data/app/views/tr8n/help/your_dashboard.html.erb +17 -0
- data/app/views/tr8n/help/your_languages.html.erb +19 -0
- data/app/views/tr8n/help/your_translations.html.erb +17 -0
- data/app/views/tr8n/home/credits.html.erb +102 -0
- data/app/views/tr8n/home/docs.html.erb +3 -0
- data/app/views/tr8n/home/index.html.erb +37 -0
- data/app/views/tr8n/home/integration.html.erb +564 -0
- data/app/views/tr8n/home/languages.html.erb +7 -0
- data/app/views/tr8n/home/license.html.erb +586 -0
- data/app/views/tr8n/home/rules.html.erb +668 -0
- data/app/views/tr8n/home/tokens.html.erb +324 -0
- data/app/views/tr8n/language/_basic_info.html.erb +53 -0
- data/app/views/tr8n/language/_edit_language_case_rules.html.erb +51 -0
- data/app/views/tr8n/language/_edit_language_cases.html.erb +68 -0
- data/app/views/tr8n/language/_edit_rules.html.erb +46 -0
- data/app/views/tr8n/language/_grammar.html.erb +84 -0
- data/app/views/tr8n/language/_header.html.erb +14 -0
- data/app/views/tr8n/language/_language_cases.html.erb +196 -0
- data/app/views/tr8n/language/_lists.html.erb +56 -0
- data/app/views/tr8n/language/_prohibited_words.html.erb +16 -0
- data/app/views/tr8n/language/_translator_dependencies.html.erb +27 -0
- data/app/views/tr8n/language/_translator_header.html.erb +19 -0
- data/app/views/tr8n/language/_translator_submit.html.erb +141 -0
- data/app/views/tr8n/language/_translator_votes.html.erb +27 -0
- data/app/views/tr8n/language/index.html.erb +54 -0
- data/app/views/tr8n/language/lb_language_case_rule.html.erb +94 -0
- data/app/views/tr8n/language/rules/_date_rule.html.erb +3 -0
- data/app/views/tr8n/language/rules/_gender_list_rule.html.erb +23 -0
- data/app/views/tr8n/language/rules/_gender_rule.html.erb +3 -0
- data/app/views/tr8n/language/rules/_list_rule.html.erb +3 -0
- data/app/views/tr8n/language/rules/_number_rule.html.erb +24 -0
- data/app/views/tr8n/language/rules/_value_rule.html.erb +3 -0
- data/app/views/tr8n/language/select.html.erb +72 -0
- data/app/views/tr8n/language/table.html.erb +32 -0
- data/app/views/tr8n/language/translator.html.erb +18 -0
- data/app/views/tr8n/language_cases/_gender_based.html.erb +32 -0
- data/app/views/tr8n/language_cases/_gender_neutral.html.erb +25 -0
- data/app/views/tr8n/language_cases/_manager_header.html.erb +18 -0
- data/app/views/tr8n/language_cases/index.html.erb +54 -0
- data/app/views/tr8n/language_cases/manager.html.erb +60 -0
- data/app/views/tr8n/login/index.html.erb +33 -0
- data/app/views/tr8n/login/register.html.erb +57 -0
- data/app/views/tr8n/phrases/_breadcrumb.html.erb +11 -0
- data/app/views/tr8n/phrases/_comment.html.erb +17 -0
- data/app/views/tr8n/phrases/_comments_module.html.erb +37 -0
- data/app/views/tr8n/phrases/_dictionary.rhtml +29 -0
- data/app/views/tr8n/phrases/_header.html.erb +24 -0
- data/app/views/tr8n/phrases/_new_comment.html.erb +31 -0
- data/app/views/tr8n/phrases/_permutations_module.html.erb +30 -0
- data/app/views/tr8n/phrases/_tokens.html.erb +122 -0
- data/app/views/tr8n/phrases/_toolbar.html.erb +33 -0
- data/app/views/tr8n/phrases/_translation_module.html.erb +127 -0
- data/app/views/tr8n/phrases/_translations_module.html.erb +70 -0
- data/app/views/tr8n/phrases/index.html.erb +90 -0
- data/app/views/tr8n/phrases/lb_sources.html.erb +51 -0
- data/app/views/tr8n/phrases/map.html.erb +42 -0
- data/app/views/tr8n/phrases/view.html.erb +77 -0
- data/app/views/tr8n/translations/_list.html.erb +71 -0
- data/app/views/tr8n/translations/_original_phrase.html.erb +11 -0
- data/app/views/tr8n/translations/_translation.html.erb +80 -0
- data/app/views/tr8n/translations/index.html.erb +30 -0
- data/app/views/tr8n/translator/_basic_info.html.erb +95 -0
- data/app/views/tr8n/translator/_header.html.erb +12 -0
- data/app/views/tr8n/translator/_header_key_report.html.erb +12 -0
- data/app/views/tr8n/translator/index.html.erb +25 -0
- data/app/views/tr8n/translator/lb_report.html.erb +113 -0
- data/config.ru +4 -0
- data/config/application.rb +65 -0
- data/config/boot.rb +6 -0
- data/config/database.yml +13 -0
- data/config/environment.rb +46 -0
- data/config/environments/development.rb +25 -0
- data/config/environments/test.rb +35 -0
- data/config/routes.rb +47 -0
- data/config/tr8n/config.yml +247 -0
- data/config/tr8n/data/ip_locations.csv +93460 -0
- data/config/tr8n/rules/default_cases.yml +141 -0
- data/config/tr8n/rules/default_date_rules.yml +20 -0
- data/config/tr8n/rules/default_gender_list_rules.yml +82 -0
- data/config/tr8n/rules/default_gender_rules.yml +20 -0
- data/config/tr8n/rules/default_list_rules.yml +19 -0
- data/config/tr8n/rules/default_numeric_rules.yml +42 -0
- data/config/tr8n/rules/default_value_rules.yml +18 -0
- data/config/tr8n/site/default_glossary.yml +18 -0
- data/config/tr8n/site/default_languages.yml +1591 -0
- data/config/tr8n/site/features.yml +111 -0
- data/config/tr8n/site/shortcuts.yml +55 -0
- data/config/tr8n/site/sitemap.json +42 -0
- data/config/tr8n/tokens/data.yml +19 -0
- data/config/tr8n/tokens/decorations.yml +16 -0
- data/config/will_filter/config.yml +97 -0
- data/db/extras/20100511185330_create_test_users.rb +43 -0
- data/db/migrate/20090730070119_create_will_filter_tables.rb +19 -0
- data/db/migrate/20100405201417_create_tr8n_tables.rb +350 -0
- data/db/seeds.rb +7 -0
- data/doc/README_FOR_APP +2 -0
- data/doc/cheat sheet.docx +0 -0
- data/doc/cheat sheet.pdf +0 -0
- data/doc/classes.graffle +12555 -0
- data/doc/classes.pdf +0 -0
- data/doc/client sdk sequence.graffle +2768 -0
- data/doc/integration.doc +0 -0
- data/doc/integration.docx +0 -0
- data/doc/pixel client sdk.graffle +1454 -0
- data/lib/application_controller.rb +38 -0
- data/lib/application_helper.rb +336 -0
- data/lib/core_ext/array.rb +61 -0
- data/lib/core_ext/date.rb +76 -0
- data/lib/core_ext/fixnum.rb +35 -0
- data/lib/core_ext/hash.rb +60 -0
- data/lib/core_ext/string.rb +49 -0
- data/lib/core_ext/time.rb +83 -0
- data/lib/generators/tr8n/templates/create_tr8n_tables.rb +350 -0
- data/lib/generators/tr8n/tr8n_generator.rb +49 -0
- data/lib/tasks/.gitkeep +0 -0
- data/lib/tasks/tr8n_tasks.rake +99 -0
- data/lib/tr8n.rb +3 -0
- data/lib/tr8n/active_dumper.rb +49 -0
- data/lib/tr8n/cache.rb +57 -0
- data/lib/tr8n/common_methods.rb +61 -0
- data/lib/tr8n/config.rb +719 -0
- data/lib/tr8n/controller_methods.rb +112 -0
- data/lib/tr8n/dictionary.rb +53 -0
- data/lib/tr8n/engine.rb +29 -0
- data/lib/tr8n/exception.rb +26 -0
- data/lib/tr8n/extender.rb +34 -0
- data/lib/tr8n/helper_methods.rb +304 -0
- data/lib/tr8n/ip_address.rb +52 -0
- data/lib/tr8n/key_registration_exception.rb +26 -0
- data/lib/tr8n/keyboard_mapping.rb +174 -0
- data/lib/tr8n/logger.rb +60 -0
- data/lib/tr8n/site_map.rb +85 -0
- data/lib/tr8n/site_map_section.rb +108 -0
- data/lib/tr8n/token.rb +438 -0
- data/lib/tr8n/token_exception.rb +26 -0
- data/lib/tr8n/tokenized_label.rb +141 -0
- data/lib/tr8n/tokens/data_token.rb +52 -0
- data/lib/tr8n/tokens/decoration_token.rb +124 -0
- data/lib/tr8n/tokens/hidden_token.rb +87 -0
- data/lib/tr8n/tokens/method_token.rb +60 -0
- data/lib/tr8n/tokens/transform_token.rb +131 -0
- data/public/404.html +26 -0
- data/public/422.html +26 -0
- data/public/500.html +26 -0
- data/public/favicon.ico +0 -0
- data/public/robots.txt +5 -0
- data/public/tr8n/images/accept.png +0 -0
- data/public/tr8n/images/action_tab_bkgd.gif +0 -0
- data/public/tr8n/images/action_tab_white_bkgd.gif +0 -0
- data/public/tr8n/images/add.png +0 -0
- data/public/tr8n/images/arrow_down.gif +0 -0
- data/public/tr8n/images/arrow_down.png +0 -0
- data/public/tr8n/images/arrow_down_grey.png +0 -0
- data/public/tr8n/images/arrow_right.gif +0 -0
- data/public/tr8n/images/arrow_up.png +0 -0
- data/public/tr8n/images/arrow_up_grey.png +0 -0
- data/public/tr8n/images/bullet_go.png +0 -0
- data/public/tr8n/images/buttons.png +0 -0
- data/public/tr8n/images/cancel.png +0 -0
- data/public/tr8n/images/close.gif +0 -0
- data/public/tr8n/images/cross.png +0 -0
- data/public/tr8n/images/delete.png +0 -0
- data/public/tr8n/images/disk.png +0 -0
- data/public/tr8n/images/examples/context_rules_1.png +0 -0
- data/public/tr8n/images/examples/context_rules_2.png +0 -0
- data/public/tr8n/images/examples/date_rules_1.png +0 -0
- data/public/tr8n/images/examples/date_rules_2.png +0 -0
- data/public/tr8n/images/examples/date_rules_3.png +0 -0
- data/public/tr8n/images/examples/gender_rules_1.png +0 -0
- data/public/tr8n/images/examples/gender_rules_2.png +0 -0
- data/public/tr8n/images/examples/gender_rules_3.png +0 -0
- data/public/tr8n/images/examples/language_manager_1.png +0 -0
- data/public/tr8n/images/examples/list_rules_1.png +0 -0
- data/public/tr8n/images/examples/list_rules_2.png +0 -0
- data/public/tr8n/images/examples/list_rules_3.png +0 -0
- data/public/tr8n/images/examples/numeric_rules_1.png +0 -0
- data/public/tr8n/images/examples/numeric_rules_2.png +0 -0
- data/public/tr8n/images/examples/numeric_rules_3.png +0 -0
- data/public/tr8n/images/examples/numeric_rules_4.png +0 -0
- data/public/tr8n/images/exclamation.png +0 -0
- data/public/tr8n/images/eye.png +0 -0
- data/public/tr8n/images/eye_not.png +0 -0
- data/public/tr8n/images/facebook/connect_light_medium_long.gif +0 -0
- data/public/tr8n/images/field_sprite.gif +0 -0
- data/public/tr8n/images/find.png +0 -0
- data/public/tr8n/images/flags/.DS_Store +0 -0
- data/public/tr8n/images/flags/ab.png +0 -0
- data/public/tr8n/images/flags/ach.png +0 -0
- data/public/tr8n/images/flags/af.png +0 -0
- data/public/tr8n/images/flags/ak.png +0 -0
- data/public/tr8n/images/flags/am.png +0 -0
- data/public/tr8n/images/flags/an.png +0 -0
- data/public/tr8n/images/flags/ar-AE.png +0 -0
- data/public/tr8n/images/flags/ar-BH.png +0 -0
- data/public/tr8n/images/flags/ar-DZ.png +0 -0
- data/public/tr8n/images/flags/ar-EG.png +0 -0
- data/public/tr8n/images/flags/ar-IQ.png +0 -0
- data/public/tr8n/images/flags/ar-JO.png +0 -0
- data/public/tr8n/images/flags/ar-KW.png +0 -0
- data/public/tr8n/images/flags/ar-LB.png +0 -0
- data/public/tr8n/images/flags/ar-LY.png +0 -0
- data/public/tr8n/images/flags/ar-MA.png +0 -0
- data/public/tr8n/images/flags/ar-OM.png +0 -0
- data/public/tr8n/images/flags/ar-QA.png +0 -0
- data/public/tr8n/images/flags/ar-SA.png +0 -0
- data/public/tr8n/images/flags/ar-SY.png +0 -0
- data/public/tr8n/images/flags/ar-TN.png +0 -0
- data/public/tr8n/images/flags/ar-YE.png +0 -0
- data/public/tr8n/images/flags/ar.png +0 -0
- data/public/tr8n/images/flags/as.png +0 -0
- data/public/tr8n/images/flags/ast.png +0 -0
- data/public/tr8n/images/flags/ay.png +0 -0
- data/public/tr8n/images/flags/az.png +0 -0
- data/public/tr8n/images/flags/ba.png +0 -0
- data/public/tr8n/images/flags/be.png +0 -0
- data/public/tr8n/images/flags/bg.png +0 -0
- data/public/tr8n/images/flags/bh.png +0 -0
- data/public/tr8n/images/flags/bn.png +0 -0
- data/public/tr8n/images/flags/bo.png +0 -0
- data/public/tr8n/images/flags/br.png +0 -0
- data/public/tr8n/images/flags/bs.png +0 -0
- data/public/tr8n/images/flags/ca.png +0 -0
- data/public/tr8n/images/flags/cb.png +0 -0
- data/public/tr8n/images/flags/ce.png +0 -0
- data/public/tr8n/images/flags/ch.png +0 -0
- data/public/tr8n/images/flags/ck-US.png +0 -0
- data/public/tr8n/images/flags/co.png +0 -0
- data/public/tr8n/images/flags/cr.png +0 -0
- data/public/tr8n/images/flags/cs.png +0 -0
- data/public/tr8n/images/flags/cv.png +0 -0
- data/public/tr8n/images/flags/cy.png +0 -0
- data/public/tr8n/images/flags/da.png +0 -0
- data/public/tr8n/images/flags/de-AT.png +0 -0
- data/public/tr8n/images/flags/de-CH.png +0 -0
- data/public/tr8n/images/flags/de-DE.png +0 -0
- data/public/tr8n/images/flags/de-LI.png +0 -0
- data/public/tr8n/images/flags/de-LU.png +0 -0
- data/public/tr8n/images/flags/de.png +0 -0
- data/public/tr8n/images/flags/el.png +0 -0
- data/public/tr8n/images/flags/en-AU.png +0 -0
- data/public/tr8n/images/flags/en-BZ.png +0 -0
- data/public/tr8n/images/flags/en-CA.png +0 -0
- data/public/tr8n/images/flags/en-IE.png +0 -0
- data/public/tr8n/images/flags/en-JM.png +0 -0
- data/public/tr8n/images/flags/en-NZ.png +0 -0
- data/public/tr8n/images/flags/en-PH.png +0 -0
- data/public/tr8n/images/flags/en-PI.png +0 -0
- data/public/tr8n/images/flags/en-SC.png +0 -0
- data/public/tr8n/images/flags/en-UK.png +0 -0
- data/public/tr8n/images/flags/en-US.png +0 -0
- data/public/tr8n/images/flags/en-ZA.png +0 -0
- data/public/tr8n/images/flags/en-ZW.png +0 -0
- data/public/tr8n/images/flags/en.png +0 -0
- data/public/tr8n/images/flags/eo.png +0 -0
- data/public/tr8n/images/flags/es-AR.png +0 -0
- data/public/tr8n/images/flags/es-BO.png +0 -0
- data/public/tr8n/images/flags/es-CL.png +0 -0
- data/public/tr8n/images/flags/es-CO.png +0 -0
- data/public/tr8n/images/flags/es-CR.png +0 -0
- data/public/tr8n/images/flags/es-DO.png +0 -0
- data/public/tr8n/images/flags/es-EC.png +0 -0
- data/public/tr8n/images/flags/es-ES.png +0 -0
- data/public/tr8n/images/flags/es-GT.png +0 -0
- data/public/tr8n/images/flags/es-HN.png +0 -0
- data/public/tr8n/images/flags/es-MX.png +0 -0
- data/public/tr8n/images/flags/es-NI.png +0 -0
- data/public/tr8n/images/flags/es-PA.png +0 -0
- data/public/tr8n/images/flags/es-PE.png +0 -0
- data/public/tr8n/images/flags/es-PR.png +0 -0
- data/public/tr8n/images/flags/es-PY.png +0 -0
- data/public/tr8n/images/flags/es-SV.png +0 -0
- data/public/tr8n/images/flags/es-UY.png +0 -0
- data/public/tr8n/images/flags/es-VE.png +0 -0
- data/public/tr8n/images/flags/es.png +0 -0
- data/public/tr8n/images/flags/et.png +0 -0
- data/public/tr8n/images/flags/eu.png +0 -0
- data/public/tr8n/images/flags/fa-IR.png +0 -0
- data/public/tr8n/images/flags/fa.png +0 -0
- data/public/tr8n/images/flags/fb-LT.png +0 -0
- data/public/tr8n/images/flags/fi.png +0 -0
- data/public/tr8n/images/flags/fj.png +0 -0
- data/public/tr8n/images/flags/fo.png +0 -0
- data/public/tr8n/images/flags/fr-BE.png +0 -0
- data/public/tr8n/images/flags/fr-CA.png +0 -0
- data/public/tr8n/images/flags/fr-CH.png +0 -0
- data/public/tr8n/images/flags/fr-FR.png +0 -0
- data/public/tr8n/images/flags/fr-LU.png +0 -0
- data/public/tr8n/images/flags/fr-MC.png +0 -0
- data/public/tr8n/images/flags/fr.png +0 -0
- data/public/tr8n/images/flags/fur.png +0 -0
- data/public/tr8n/images/flags/fy.png +0 -0
- data/public/tr8n/images/flags/ga.png +0 -0
- data/public/tr8n/images/flags/gd.png +0 -0
- data/public/tr8n/images/flags/gl.png +0 -0
- data/public/tr8n/images/flags/gn.png +0 -0
- data/public/tr8n/images/flags/gu.png +0 -0
- data/public/tr8n/images/flags/gv.png +0 -0
- data/public/tr8n/images/flags/ha.png +0 -0
- data/public/tr8n/images/flags/haw.png +0 -0
- data/public/tr8n/images/flags/he.png +0 -0
- data/public/tr8n/images/flags/hi.png +0 -0
- data/public/tr8n/images/flags/hr.png +0 -0
- data/public/tr8n/images/flags/hsb.png +0 -0
- data/public/tr8n/images/flags/ht.png +0 -0
- data/public/tr8n/images/flags/hu.png +0 -0
- data/public/tr8n/images/flags/hy.png +0 -0
- data/public/tr8n/images/flags/ia.png +0 -0
- data/public/tr8n/images/flags/id.png +0 -0
- data/public/tr8n/images/flags/ie.png +0 -0
- data/public/tr8n/images/flags/ig.png +0 -0
- data/public/tr8n/images/flags/is.png +0 -0
- data/public/tr8n/images/flags/it-CH.png +0 -0
- data/public/tr8n/images/flags/it.png +0 -0
- data/public/tr8n/images/flags/iu.png +0 -0
- data/public/tr8n/images/flags/ja.png +0 -0
- data/public/tr8n/images/flags/jw.png +0 -0
- data/public/tr8n/images/flags/ka.png +0 -0
- data/public/tr8n/images/flags/kk.png +0 -0
- data/public/tr8n/images/flags/kl.png +0 -0
- data/public/tr8n/images/flags/km.png +0 -0
- data/public/tr8n/images/flags/kn.png +0 -0
- data/public/tr8n/images/flags/ko-KP.png +0 -0
- data/public/tr8n/images/flags/ko-KR.png +0 -0
- data/public/tr8n/images/flags/ko.png +0 -0
- data/public/tr8n/images/flags/kok.png +0 -0
- data/public/tr8n/images/flags/ks.png +0 -0
- data/public/tr8n/images/flags/ku.png +0 -0
- data/public/tr8n/images/flags/ky.png +0 -0
- data/public/tr8n/images/flags/la.png +0 -0
- data/public/tr8n/images/flags/lb.png +0 -0
- data/public/tr8n/images/flags/lg.png +0 -0
- data/public/tr8n/images/flags/li-NL.png +0 -0
- data/public/tr8n/images/flags/ln.png +0 -0
- data/public/tr8n/images/flags/lo.png +0 -0
- data/public/tr8n/images/flags/lt.png +0 -0
- data/public/tr8n/images/flags/lv.png +0 -0
- data/public/tr8n/images/flags/md.png +0 -0
- data/public/tr8n/images/flags/mfe.png +0 -0
- data/public/tr8n/images/flags/mg.png +0 -0
- data/public/tr8n/images/flags/mh.png +0 -0
- data/public/tr8n/images/flags/mi.png +0 -0
- data/public/tr8n/images/flags/mk.png +0 -0
- data/public/tr8n/images/flags/ml.png +0 -0
- data/public/tr8n/images/flags/mn.png +0 -0
- data/public/tr8n/images/flags/mo.png +0 -0
- data/public/tr8n/images/flags/mr.png +0 -0
- data/public/tr8n/images/flags/ms.png +0 -0
- data/public/tr8n/images/flags/mt.png +0 -0
- data/public/tr8n/images/flags/my.png +0 -0
- data/public/tr8n/images/flags/na.png +0 -0
- data/public/tr8n/images/flags/nb.png +0 -0
- data/public/tr8n/images/flags/nd.png +0 -0
- data/public/tr8n/images/flags/ne.png +0 -0
- data/public/tr8n/images/flags/ng.png +0 -0
- data/public/tr8n/images/flags/nl-NE.png +0 -0
- data/public/tr8n/images/flags/nl.png +0 -0
- data/public/tr8n/images/flags/nn.png +0 -0
- data/public/tr8n/images/flags/no.png +0 -0
- data/public/tr8n/images/flags/nr.png +0 -0
- data/public/tr8n/images/flags/nso.png +0 -0
- data/public/tr8n/images/flags/nv.png +0 -0
- data/public/tr8n/images/flags/ny.png +0 -0
- data/public/tr8n/images/flags/nyn.png +0 -0
- data/public/tr8n/images/flags/oc.png +0 -0
- data/public/tr8n/images/flags/om.png +0 -0
- data/public/tr8n/images/flags/or.png +0 -0
- data/public/tr8n/images/flags/pa-IN.png +0 -0
- data/public/tr8n/images/flags/pa-PK.png +0 -0
- data/public/tr8n/images/flags/pa.png +0 -0
- data/public/tr8n/images/flags/pf.png +0 -0
- data/public/tr8n/images/flags/pl.png +0 -0
- data/public/tr8n/images/flags/pp.png +0 -0
- data/public/tr8n/images/flags/ps.png +0 -0
- data/public/tr8n/images/flags/pt-BZ.png +0 -0
- data/public/tr8n/images/flags/pt.png +0 -0
- data/public/tr8n/images/flags/qu-PE.png +0 -0
- data/public/tr8n/images/flags/qu.png +0 -0
- data/public/tr8n/images/flags/rj.png +0 -0
- data/public/tr8n/images/flags/rm.png +0 -0
- data/public/tr8n/images/flags/rn.png +0 -0
- data/public/tr8n/images/flags/ro-MD.png +0 -0
- data/public/tr8n/images/flags/ro-RO.png +0 -0
- data/public/tr8n/images/flags/ro.png +0 -0
- data/public/tr8n/images/flags/ru.png +0 -0
- data/public/tr8n/images/flags/rw.png +0 -0
- data/public/tr8n/images/flags/sa.png +0 -0
- data/public/tr8n/images/flags/sc.png +0 -0
- data/public/tr8n/images/flags/sd.png +0 -0
- data/public/tr8n/images/flags/se-NO.png +0 -0
- data/public/tr8n/images/flags/sg.png +0 -0
- data/public/tr8n/images/flags/sh.png +0 -0
- data/public/tr8n/images/flags/si.png +0 -0
- data/public/tr8n/images/flags/sk.png +0 -0
- data/public/tr8n/images/flags/sl.png +0 -0
- data/public/tr8n/images/flags/sm.png +0 -0
- data/public/tr8n/images/flags/sn.png +0 -0
- data/public/tr8n/images/flags/so.png +0 -0
- data/public/tr8n/images/flags/sq.png +0 -0
- data/public/tr8n/images/flags/sr-me.png +0 -0
- data/public/tr8n/images/flags/sr.png +0 -0
- data/public/tr8n/images/flags/ss.png +0 -0
- data/public/tr8n/images/flags/st.png +0 -0
- data/public/tr8n/images/flags/su.png +0 -0
- data/public/tr8n/images/flags/sv-FI.png +0 -0
- data/public/tr8n/images/flags/sv-SE.png +0 -0
- data/public/tr8n/images/flags/sv.png +0 -0
- data/public/tr8n/images/flags/sw.png +0 -0
- data/public/tr8n/images/flags/ta.png +0 -0
- data/public/tr8n/images/flags/te.png +0 -0
- data/public/tr8n/images/flags/tg.png +0 -0
- data/public/tr8n/images/flags/th.png +0 -0
- data/public/tr8n/images/flags/ti.png +0 -0
- data/public/tr8n/images/flags/tig.png +0 -0
- data/public/tr8n/images/flags/tk.png +0 -0
- data/public/tr8n/images/flags/tl.png +0 -0
- data/public/tr8n/images/flags/tlh.png +0 -0
- data/public/tr8n/images/flags/tn.png +0 -0
- data/public/tr8n/images/flags/to.png +0 -0
- data/public/tr8n/images/flags/tr.png +0 -0
- data/public/tr8n/images/flags/ts.png +0 -0
- data/public/tr8n/images/flags/tt.png +0 -0
- data/public/tr8n/images/flags/tw.png +0 -0
- data/public/tr8n/images/flags/ug.png +0 -0
- data/public/tr8n/images/flags/uk.png +0 -0
- data/public/tr8n/images/flags/ur.png +0 -0
- data/public/tr8n/images/flags/uz.png +0 -0
- data/public/tr8n/images/flags/ve.png +0 -0
- data/public/tr8n/images/flags/vi.png +0 -0
- data/public/tr8n/images/flags/vo.png +0 -0
- data/public/tr8n/images/flags/wa.png +0 -0
- data/public/tr8n/images/flags/wo.png +0 -0
- data/public/tr8n/images/flags/xh.png +0 -0
- data/public/tr8n/images/flags/yi.png +0 -0
- data/public/tr8n/images/flags/yo.png +0 -0
- data/public/tr8n/images/flags/zh-CN.png +0 -0
- data/public/tr8n/images/flags/zh-HK.png +0 -0
- data/public/tr8n/images/flags/zh-SG.png +0 -0
- data/public/tr8n/images/flags/zh-TW.png +0 -0
- data/public/tr8n/images/flags/zh.png +0 -0
- data/public/tr8n/images/flags/zu.png +0 -0
- data/public/tr8n/images/globe.gif +0 -0
- data/public/tr8n/images/help.png +0 -0
- data/public/tr8n/images/help/color_coding.png +0 -0
- data/public/tr8n/images/help/language_selector.png +0 -0
- data/public/tr8n/images/help/language_selector_default.png +0 -0
- data/public/tr8n/images/help/languages_disabled.png +0 -0
- data/public/tr8n/images/help/translator.png +0 -0
- data/public/tr8n/images/help2.png +0 -0
- data/public/tr8n/images/information.png +0 -0
- data/public/tr8n/images/keyboard.png +0 -0
- data/public/tr8n/images/language_selector_arrow.gif +0 -0
- data/public/tr8n/images/left_quote.png +0 -0
- data/public/tr8n/images/lightning.png +0 -0
- data/public/tr8n/images/loading.gif +0 -0
- data/public/tr8n/images/loading2.gif +0 -0
- data/public/tr8n/images/loading3.gif +0 -0
- data/public/tr8n/images/loading_large.gif +0 -0
- data/public/tr8n/images/lock.png +0 -0
- data/public/tr8n/images/lock_add.png +0 -0
- data/public/tr8n/images/lock_delete.png +0 -0
- data/public/tr8n/images/lock_open.png +0 -0
- data/public/tr8n/images/medals/bronze.png +0 -0
- data/public/tr8n/images/medals/gold.png +0 -0
- data/public/tr8n/images/medals/runner.png +0 -0
- data/public/tr8n/images/medals/silver.png +0 -0
- data/public/tr8n/images/pencil.png +0 -0
- data/public/tr8n/images/photo_silhouette.gif +0 -0
- data/public/tr8n/images/plus.png +0 -0
- data/public/tr8n/images/random.png +0 -0
- data/public/tr8n/images/random2.png +0 -0
- data/public/tr8n/images/rating_star0.png +0 -0
- data/public/tr8n/images/rating_star05.png +0 -0
- data/public/tr8n/images/rating_star1.png +0 -0
- data/public/tr8n/images/rating_stars.gif +0 -0
- data/public/tr8n/images/rating_stars.psd +0 -0
- data/public/tr8n/images/reply.png +0 -0
- data/public/tr8n/images/right_quote.png +0 -0
- data/public/tr8n/images/rotating_world.gif +0 -0
- data/public/tr8n/images/script.png +0 -0
- data/public/tr8n/images/script_edit.png +0 -0
- data/public/tr8n/images/script_gear.png +0 -0
- data/public/tr8n/images/site_sprite.gif +0 -0
- data/public/tr8n/images/spinner.gif +0 -0
- data/public/tr8n/images/star.png +0 -0
- data/public/tr8n/images/table_edit.png +0 -0
- data/public/tr8n/images/table_gear.png +0 -0
- data/public/tr8n/images/table_multiple.png +0 -0
- data/public/tr8n/images/thumb_down.png +0 -0
- data/public/tr8n/images/thumb_up.png +0 -0
- data/public/tr8n/images/toolbar_bg.gif +0 -0
- data/public/tr8n/images/top_left_stem.png +0 -0
- data/public/tr8n/images/top_right_stem.png +0 -0
- data/public/tr8n/images/tr8n_loading.gif +0 -0
- data/public/tr8n/images/tr8n_logo.jpg +0 -0
- data/public/tr8n/images/tr8n_logo.png +0 -0
- data/public/tr8n/images/tr8n_logo2.gif +0 -0
- data/public/tr8n/images/tr8n_logo2.png +0 -0
- data/public/tr8n/images/tr8n_logo_wiki.png +0 -0
- data/public/tr8n/images/tr8n_logo_wiki2.png +0 -0
- data/public/tr8n/images/translate_icn.gif +0 -0
- data/public/tr8n/images/wizard.png +0 -0
- data/public/tr8n/javascripts/jsDraw2D.js +24 -0
- data/public/tr8n/javascripts/keyboard_1_36.js +1214 -0
- data/public/tr8n/javascripts/keyboard_1_44.js +1735 -0
- data/public/tr8n/javascripts/shortcut.js +223 -0
- data/public/tr8n/javascripts/tr8n.js +904 -0
- data/public/tr8n/javascripts/tr8n_client_sdk.js +1182 -0
- data/public/tr8n/javascripts/tr8n_prototype_effects.js +65 -0
- data/public/tr8n/stylesheets/components.css +208 -0
- data/public/tr8n/stylesheets/keyboard_1_36.css +185 -0
- data/public/tr8n/stylesheets/keyboard_1_44.css +268 -0
- data/public/tr8n/stylesheets/layout.css +119 -0
- data/public/tr8n/stylesheets/tr8n.css +201 -0
- data/rails/init.rb +53 -0
- data/script/rails +6 -0
- data/test/performance/browsing_test.rb +9 -0
- data/test/test_helper.rb +13 -0
- data/tr8n.gemspec +40 -0
- metadata +865 -0
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,24 @@
|
|
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=""}};
|
@@ -0,0 +1,1214 @@
|
|
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 = "/tr8n/images/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);
|