spiegel-keyman/output/keymanweb.js
2014-11-02 08:03:05 +11:00

288 lines
132 KiB
JavaScript

/*
(C) 2012 Tavultesoft Pty Ltd
Adds functions to treat supplementary plane characters in the same
way as basic multilingual plane characters in JavaScript.
Version 0.1
License
The contents of this file are subject to the Mozilla Public License
Version 1.1 (the "License"); you may not use this file except in
compliance with the License. You may obtain a copy of the License at
http://www.mozilla.org/MPL/
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
License for the specific language governing rights and limitations
under the License.
The Original Code is (C) 2012 Tavultesoft Pty Ltd.
The Initial Developer of the Original Code is Tavultesoft.
*/
String.kmwFromCharCode=function(a){var b=[],c;for(c=0;c<arguments.length;c++){var d=Number(arguments[c]);if(!isFinite(d)||0>d||1114111<d||Math.floor(d)!==d)throw new RangeError("Invalid code point "+d);65536>d?b.push(d):(d-=65536,b.push((d>>10)+55296),b.push(d%1024+56320))}return String.fromCharCode.apply(void 0,b)};
String.prototype.kmwCharCodeAt=function(a){var b=""+this,c=0;if(0>a||a>=b.length)return NaN;for(var d=0;d<a;d++)if(c=b.kmwNextChar(c),null===c)return NaN;a=b.charCodeAt(c);return 55296<=a&&(56319>=a&&b.length>c+1)&&(b=b.charCodeAt(c+1),56320<=b&&57343>=b)?(a-55296<<10)+(b-56320)+65536:a};String.prototype.kmwIndexOf=function(a,b){var c=""+this,d=c.indexOf(a,b);if(0>d)return d;for(var e=0,f=0;null!==f&&f<d;f=c.kmwNextChar(f))e++;return e};
String.prototype.kmwLastIndexOf=function(a,b){var c=""+this,d=c.lastIndexOf(a,b);if(0>d)return d;for(var e=0,f=0;null!==f&&f<d;f=c.kmwNextChar(f))e++;return e};String.prototype.kmwLength=function(){var a=""+this;if(0==a.length)return 0;for(var b=0,c=0;null!==c;b++)c=a.kmwNextChar(c);return b};String.prototype.kmwSlice=function(a,b){var c=""+this,d=c.kmwCodePointToCodeUnit(a),e=c.kmwCodePointToCodeUnit(b);return null===d||null===e?"":c.slice(d,e)};
String.prototype.kmwSubstr=function(a,b){var c=""+this;0>a&&(a=c.kmwLength()+a);0>a&&(a=0);var d=c.kmwCodePointToCodeUnit(a),e=d;if(null===d)return"";if(2>arguments.length)e=c.length;else for(var f=0;f<b;f++)e=c.kmwNextChar(e);return null===e?c.substring(d):c.substring(d,e)};
String.prototype.kmwSubstring=function(a,b){var c=""+this,d,e;"undefined"==typeof b?(d=c.kmwCodePointToCodeUnit(a),e=c.length):(a>b&&(d=a,a=b,b=d),d=c.kmwCodePointToCodeUnit(a),e=c.kmwCodePointToCodeUnit(b));if(isNaN(d)||null===d)d=0;if(isNaN(e)||null===e)e=c.length;return c.substring(d,e)};
String.prototype.kmwNextChar=function(a){var b=""+this;if(null===a||0>a||a>=b.length-1)return null;var c=b.charCodeAt(a);return 55296<=c&&(56319>=c&&b.length>a+1)&&(c=b.charCodeAt(a+1),56320<=c&&57343>=c)?a==b.length-2?null:a+2:a+1};String.prototype.kmwPrevChar=function(a){var b=""+this;if(null==a||0>=a||a>b.length)return null;var c=b.charCodeAt(a-1);return 56320<=c&&(57343>=c&&1<a)&&(b=b.charCodeAt(a-2),55296<=b&&56319>=b)?a-2:a-1};
String.prototype.kmwCodePointToCodeUnit=function(a){if(null===a)return null;var b=""+this,c=0;if(0>a){for(var c=b.length,d=0;d>a;d--)c=b.kmwPrevChar(c);return c}if(a==b.kmwLength())return b.length;for(d=0;d<a;d++)c=b.kmwNextChar(c);return c};String.prototype.kmwCodeUnitToCodePoint=function(a){var b=""+this;return null===a?null:0==a?0:0>a?b.substr(a).kmwLength():b.substr(0,a).kmwLength()};String.prototype.kmwCharAt=function(a){return 0<=a?(""+this).kmwSubstr(a,1):""};
String.prototype.kmwBMPNextChar=function(a){return 0>a||a>=(""+this).length-1?null:a+1};String.prototype.kmwBMPPrevChar=function(a){return 0>=a||a>(""+this).length?null:a-1};String.prototype.kmwBMPCodePointToCodeUnit=function(a){return a};String.prototype.kmwBMPCodeUnitToCodePoint=function(a){return a};String.prototype.kmwBMPLength=function(){return(""+this).length};String.prototype.kmwBMPSubstr=function(a,b){var c=""+this;return-1<a?c.substr(a,b):c.substr(c.length+a,-a)};
String.kmwEnableSupplementaryPlane=function(a){var b=String.prototype;String._kmwFromCharCode=a?String.kmwFromCharCode:String.fromCharCode;b._kmwCharAt=a?b.kmwCharAt:b.charAt;b._kmwCharCodeAt=a?b.kmwCharCodeAt:b.charCodeAt;b._kmwIndexOf=a?b.kmwIndexOf:b.indexOf;b._kmwLastIndexOf=a?b.kmwLastIndexOf:b.lastIndexOf;b._kmwSlice=a?b.kmwSlice:b.slice;b._kmwSubstring=a?b.kmwSubstring:b.substring;b._kmwSubstr=a?b.kmwSubstr:b.kmwBMPSubstr;b._kmwLength=a?b.kmwLength:b.kmwBMPLength;b._kmwNextChar=a?b.kmwNextChar:
b.kmwBMPNextChar;b._kmwPrevChar=a?b.kmwPrevChar:b.kmwBMPPrevChar;b._kmwCodePointToCodeUnit=a?b.kmwCodePointToCodeUnit:b.kmwBMPCodePointToCodeUnit;b._kmwCodeUnitToCodePoint=a?b.kmwCodeUnitToCodePoint:b.kmwBMPCodeUnitToCodePoint};
/*
KeymanWeb 2.0 Copyright 2010 Tavultesoft Pty Ltd
*/
var __BUILD__=371;
(function(){var b=(window.tavultesoft={}).keymanweb={_TitleElement:null,_Enabled:1,_IE:0,legacy:0,_IsActivatingKeymanWebUI:0,_JustActivatedKeymanWebUI:0,_IgnoreNextSelChange:0,_Selection:null,_SelectionControl:null,_KeyboardStubs:[],dfltStub:null,_Keyboards:[],_ActiveKeyboard:null,_ActiveStub:null,_LoadingInternalName:null,_AnyIndices:[],_DeadKeys:[],_ActiveControl:null,_Controls:[],_AttachedElements:[],_ActiveElement:null,_LastActiveElement:null,_DfltStyle:"",_MasterDocument:null,_HotKeys:[],focusTimer:null,
focusing:!1,resizing:!1,sortedInputs:[],inputList:[],languageList:null,languagesPending:[],deferredStubs:[],deferredKRS:[],deferredKR:[],loadTimer:null,waiting:null,warned:!1,baseFont:"sans-serif",appliedFont:"",embeddedFonts:[],fontCheckTimer:null,srcPath:"",rootPath:"",mustReloadKeyboard:!1,fullInitialization:!0};b.initialized=0;b.build=__BUILD__;b.version="2.0";b.helpURL="http://help.keyman.com/go";window.KeymanWeb=b;var f=b.util={},i=b.osk={ready:!1};b.ui={};b.setDefaultDeviceOptions=function(){};
b.getStyleSheetPath=function(g){return g};b.getKeyboardPath=function(g){return g};b.KC_=function(){return""};b.handleRotationEvents=function(){};b.alignInputs=function(){};b.refreshElementContent=null;i.highlightSubKeys=function(){};i.createKeyTip=function(){};i.optionKey=function(){};i.showKeyTip=function(){};i.registerPopup=function(){return!1};i.waitForFonts=function(){return!0};b.options={root:"",resources:"",keyboards:"",fonts:"",attachType:"",ui:null};f.events=[];f.currentEvents=[];i=document.getElementsByTagName("script");
i=i[i.length-1].src;i=i.substr(0,i.lastIndexOf("/")+1);b.srcPath=i;b.rootPath=i.replace(/(https?:\/\/)([^\/]*)(.*)/,"$1$2/");b.protocol=i.replace(/(.{3,5}:)(.*)/,"$1");f.addEventListener=function(g,b){f.removeEventListener(g,b);f.events[g].push(b);return!0};f.removeEventListener=function(g,b){"undefined"==typeof f.events[g]&&(f.events[g]=[]);for(var d=0;d<f.events[g].length;d++)if(f.events[g][d]==b)return f.events[g].splice(d,1),!0;return!1};f.callEvent=function(g,b){if("undefined"==typeof f.events[g])return!0;
if("undefined"!=typeof f.currentEvents[g])return!1;f.currentEvents.push(g);for(var d=0;d<f.events[g].length;d++){var a=f.events[g][d],h=!1;try{h=a(b)}catch(j){h=!1}if(!h)return f.currentEvents.pop(),!1}f.currentEvents.pop();return!0};f.attachDOMEvent=f.attachDOMEvent=function(g,b,d,a){f.detachDOMEvent(g,b,d,a);g.attachEvent?g.attachEvent("on"+b,d):g.addEventListener&&g.addEventListener(b,d,a?!0:!1)};f.detachDOMEvent=f.detachDOMEvent=function(g,b,d,a){g.detachEvent?g.detachEvent("on"+b,d):g.removeEventListener&&
g.removeEventListener(b,d,a)};f.getOption=f.getOption=function(g,a){return g in b.options?b.options[g]:1<arguments.length?a:""};f.setOption=f.setOption=function(g,a){b.options[g]=a};f.getAbsoluteX=f._GetAbsoluteX=function(g){if(!g)return 0;var a=g.offsetLeft?g.offsetLeft:0,d=g;if(d.offsetParent)for(;d.offsetParent;)d=d.offsetParent,a+=d.offsetLeft;d&&(d.ownerDocument&&g.ownerDocument!=b._MasterDocument)&&(d=d.ownerDocument);return d&&d.parentWindow&&d.parentWindow.frameElement?a+f._GetAbsoluteX(d.parentWindow.frameElement)-
d.documentElement.scrollLeft:d&&d.defaultView&&d.defaultView.frameElement?a+f._GetAbsoluteX(d.defaultView.frameElement)-d.documentElement.scrollLeft:a};f.getAbsoluteY=f._GetAbsoluteY=function(g){if(!g)return 0;var a=g.offsetTop?g.offsetTop:0,d=g;if(d.offsetParent)for(;d.offsetParent;)d=d.offsetParent,a+=d.offsetTop;d&&(d.ownerDocument&&g.ownerDocument!=b._MasterDocument)&&(d=d.ownerDocument);return d&&d.parentWindow&&d.parentWindow.frameElement?a+f._GetAbsoluteY(d.parentWindow.frameElement)-d.documentElement.scrollTop:
d&&d.defaultView&&d.defaultView.frameElement?a+f._GetAbsoluteY(d.defaultView.frameElement)-d.documentElement.scrollTop:a};f.getAbsolute=f._GetAbsolute=function(g){var b={};b.x=f._GetAbsoluteX(g);b.y=f._GetAbsoluteY(g);return b};f.selectStartHandler=function(){return!1};f.mouseDownPreventDefaultHandler=function(b){b&&b.preventDefault()};f.mouseDownPreventDefaultHandler=function(b){b&&b.preventDefault()};f.createElement=f._CreateElement=function(b){b=document.createElement(b);"undefined"!=typeof b.onselectstart?
(b.unSelectable="on",b.onselectstart=f.selectStartHandler):(b.style.MozUserSelect="none",b.style.KhtmlUserSelect="none",b.style.UserSelect="none",b.style.WebkitUserSelect="none");return b};f.getIEVersion=f._GetIEVersion=function(){var b,a="";"userAgent"in navigator&&(a=navigator.userAgent);if("selection"in document){var d=navigator.appVersion;b=d.indexOf("MSIE ");if(0<=b){if("BackCompat"==document.compatMode)return 6;d=d.substr(b+5);b=d.indexOf(".");if(0<b)return parseInt(d.substr(0,b),10)}}b=a.indexOf("Trident/");
if(0>b)return 999;a=a.substr(b+8);b=a.indexOf(".");return 0<b?parseInt(a.substr(0,b),10)+4:999};f.getDPI=function(){var b=document.createElement("DIV"),a=b.style,d=96;if("complete"!==document.readyState)return d;b.id="calculateDPI";a.position="absolute";a.display="block";a.visibility="hidden";a.left="10px";a.top="10px";a.width="1in";a.height="10px";document.body.appendChild(b);d="undefined"==typeof window.devicePixelRatio?b.offsetWidth:b.offsetWidth*window.devicePixelRatio;document.body.removeChild(b);
return d};f.getStyleValue=function(b,a){try{if(b&&"undefined"!=typeof window.getComputedStyle)return window.getComputedStyle(b,"").getPropertyValue(a);if(b&&"undefined"!=typeof b.currentStyle)return b.currentStyle[a]}catch(d){}return""};f.getStyleInt=function(b,a,d){b=parseInt(f.getStyleValue(b,a),10);return!isNaN(b)?b:"number"==typeof d?d:0};var k=f.device={touchable:!!("ontouchstart"in window),OS:"",formFactor:"desktop",dyPortrait:0,dyLandscape:0,version:"0",orientation:window.orientation};if(navigator&&
navigator.userAgent){i=navigator.userAgent;0<=i.indexOf("iPad")&&(k.OS="iOS",k.formFactor="tablet",k.dyPortrait=k.dyLandscape=0);0<=i.indexOf("iPhone")&&(k.OS="iOS",k.formFactor="phone",k.dyPortrait=k.dyLandscape=25);if(0<=i.indexOf("Android")){k.OS="Android";k.formFactor="phone";k.dyPortrait=75;k.dyLandscape=25;try{k.version=i.match(/(?:Android\s+)(\d+\.\d+\.\d+)/)[1]}catch(a){}}if(0<=i.indexOf("Windows NT")&&(k.OS="Windows",0<=i.indexOf("Touch")&&(k.formFactor="phone"),"number"==typeof navigator.msMaxTouchPoints&&
0<navigator.msMaxTouchPoints))k.touchable=!0}"tablet"==k.formFactor&&400>Math.min(screen.width,screen.height)&&(k.formFactor="phone");"phone"==k.formFactor&&720<Math.max(screen.width,screen.height)&&(k.formFactor="tablet");"iOS"==k.OS&&(!("ongesturestart"in window)&&"Win32"!=navigator.platform)&&(k.OS="Android");k.browser="web";if(999>f._GetIEVersion())k.browser="ie";else{if("iOS"==k.OS||"macosx"==k.OS.toLowerCase())k.browser="safari";/Firefox|Chrome|OPR/.test(navigator.userAgent)&&(0<=navigator.userAgent.indexOf("Firefox")&&
"onmozorientationchange"in screen?k.browser="firefox":0<=navigator.userAgent.indexOf("OPR")?k.browser="opera":0<=navigator.userAgent.indexOf("Chrome")&&(k.browser="chrome"))}f.isTouchDevice=function(){return k.touchable};f.portraitView=function(){return!f.landscapeView()};f.landscapeView=function(){return typeof window.orientation=="undefined"?false:Math.abs(window.orientation/90)==1};f.getViewportScale=function(){try{if(screen.width>document.documentElement.clientWidth)return 1;var b=screen.width;
if(f.landscapeView()){if(screen.width<screen.height)b=screen.height}else if(screen.width>screen.height)b=screen.height;return Math.round(100*b/window.innerWidth)/100}catch(a){return 1}};f.barHeight=function(){var b=0;k.formFactor=="phone"&&(b=screen.height/2-window.innerHeight-(f.landscapeView()?k.dyLandscape:k.dyPortrait));return b};f._EncodeEntities=function(b){return b.replace("&","&amp;").replace("<","&lt;").replace(">","&gt;")};f.createShim=f.createShim=function(){var b=f._CreateElement("IFRAME");
b.src="";b.style.display="none";b.style.position="absolute";b.style.filter="progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)";b.frameBorder="0";b.scrolling="no";return b};f.showShim=f.showShim=function(b,a,d){if(a)try{a.style.left=f._GetAbsoluteX(b)+"px";a.style.top=f._GetAbsoluteY(b)+"px";if(d){a.style.width=f._GetAbsoluteX(d)-f._GetAbsoluteX(b)+d.offsetWidth+"px";a.style.height=f._GetAbsoluteY(d)-f._GetAbsoluteY(b)+d.offsetHeight+"px"}else{a.style.width=b.offsetWidth+"px";a.style.height=
b.offsetHeight+"px"}a.style.zindex="9999";a.style.display="block"}catch(e){}};f.hideShim=function(b){try{if(b)b.style.display="none"}catch(a){}};f.rgba=f.rgba=function(b,a,d,e,h){var j="transparent";if(f._GetIEVersion()<9){h=Math.floor(100*h);a=a.toString(16);d=d.toString(16);e=e.toString(16);a=("00"+a).substr(-2);d=("00"+d).substr(-2);e=("00"+e).substr(-2);e=h+a+d+e;b.filter="progid:DXImageTransform.Microsoft.gradient(startColorstr=#"+e+",endColorstr=#"+e+")";b.zoom="1"}else try{j="rgba("+a+","+
d+","+e+","+h+")"}catch(r){j="rgb("+a+","+d+","+e+")"}return j};f.addStyleSheet=f.addStyleSheet=function(b){var a=document.createElement("STYLE");a.type="text/css";a.styleSheet?a.styleSheet.cssText=b:a.appendChild(document.createTextNode(b));b=document.getElementsByTagName("HEAD");b.length>0?b[0].appendChild(a):document.body.appendChild(a);return a};f.removeStyleSheet=f.removeStyleSheet=function(b){if(b==null||typeof b!="object"||b.nodeName!="STYLE"||typeof b.parentNode=="undefined"||b.parentNode==
null)return false;b.parentNode.removeChild(b);return true};f.linkStyleSheet=f.linkStyleSheet=function(b){var a=document.getElementsByTagName("head");if(a.length>0){var d=document.createElement("link");d.type="text/css";d.rel="stylesheet";d.href=b;a[0].appendChild(d)}};f.addFontFaceStyleSheet=function(g){if(typeof g!="undefined"){typeof g.files=="undefined"&&(g.files=g.source);if(typeof g.files!="undefined"){var a,d="",e="",h="",j=[];for(a=0;a<b.embeddedFonts.length;a++)if(b.embeddedFonts[a]==g.family)return;
typeof g.files=="string"?j[0]=g.files:j=g.files;for(a=0;a<j.length;a++){j[a].indexOf(".ttf")>0&&(d=j[a]);j[a].indexOf(".woff")>0&&(e=j[a]);j[a].indexOf(".eot")>0&&(h=j[a])}d!=""&&d.indexOf("/")<0&&(d=b.options.fonts+d);e!=""&&e.indexOf("/")<0&&(e=b.options.fonts+e);h!=""&&h.indexOf("/")<0&&(h=b.options.fonts+h);a="@font-face {\nfont-family:"+g.family+";\nfont-style:normal;\nfont-weight:normal;\n";j=f._GetIEVersion();if(j>=999)if(k.OS=="iOS")if(d!="")a=a+"src:url('"+d+"') format('truetype');";else return;
else if(d!=""&&e!="")a=a+"src:url('"+e+"') format('woff'),url('"+d+"') format('truetype');";else if(e!="")a=a+"src:url('"+e+"') format('woff');";else if(d!="")a=a+"src:url('"+d+"') format('truetype');";else return;else if(h!=""&&j<9)a=a+"src:url('"+h+"?#iefix') format('embedded-opentype');";else if(h!="")a=a+"src:url('"+h+"');";else return;f.addStyleSheet(a+"\n}\n");b.embeddedFonts.push(g.family)}}};f.loadCookie=f.loadCookie=function(b){var a={};if(arguments.length>0){var d=f.loadCookie(),e;for(e in d)if(e==
b)for(var h=unescape(d[e]).split(";"),j=0;j<h.length;j++){var r=h[j].split("=");a[r[0]]=r.length>1?r[1]:""}}else if(typeof document.cookie!="undefined"&&document.cookie!=""){d=document.cookie.split(/;\s*/);for(j=0;j<d.length;j++){h=d[j].split("=");h.length==2&&(a[h[0]]=h[1])}}return a};f.saveCookie=f.saveCookie=function(b,a){var d="",e;for(e in a)d=d+e+"="+a[e]+";";e=(new Date((new Date).valueOf()+2592E6)).toGMTString();document.cookie=b+"="+escape(d)+"; path=/; expires="+e};f.toNumber=f.toNumber=
function(b,a){var d=parseInt(b,10);return isNaN(d)?a:d};f.toFloat=f.toFloat=function(b,a){var d=parseFloat(b);return isNaN(d)?a:d};f.toNzString=f.nzString=function(b,a){var d="";arguments.length>1&&(d=a);return typeof b=="undefined"||b==null||b==0||b==""?d:""+b};f.deepCopy=function(b,a){var d=a||{},e;for(e in b)if(typeof b[e]==="object"){d[e]=b[e].constructor===Array?[]:{};f.deepCopy(b[e],d[e])}else d[e]=b[e];return d};"indexOf"in Array||(Array.prototype.indexOf=function(b,a){for(var d=a||0;d<this.length;d++)if(this[d]==
b)return d;return-1});f.eventTarget=function(b){return b&&b.target?b.target:window.event?window.event.srcElement:null};f.eventType=function(b){return b&&b.type?b.type:window.event?window.event.type:""};f.alert=f.alert=function(a,c){var d=b.waiting,e=d.firstChild.childNodes;e[0].style.display="block";e[1].className="kmw-alert-text";e[1].innerHTML=a;e[2].style.display="none";d.style.display="block";d.dismiss=arguments.length>1?c:null};f.prepareWait=function(){var a=document.createElement("DIV"),c=document.createElement("DIV"),
d=document.createElement("DIV"),e=document.createElement("DIV"),h=document.createElement("DIV");a.className="kmw-wait-background";c.className="kmw-wait-box";a.dismiss=null;d.className="kmw-wait-text";e.className="kmw-wait-graphic";h.className="kmw-alert-close";c.ontouchstart=c.onmousedown=c.onclick=function(){if(h.style.display=="block"){a.style.display="none";a.dismiss&&a.dismiss()}};a.ontouchstart=a.onmousedown=a.onclick=function(b){b.preventDefault();b.stopPropagation()};c.appendChild(h);c.appendChild(d);
c.appendChild(e);a.appendChild(c);document.body.appendChild(a);b.waiting=a};f.myPath=function(b){var a,d=document.getElementsByTagName("script"),e;for(a=0;a<d.length;a++){e=d[a];if(e.src.indexOf(b)>=0)return e.src.substr(0,e.src.lastIndexOf("/")+1)}return""};f.prependProtocol=function(a){return/^https?:/.test(a)?a:a.substr(0,2)=="//"?b.protocol+a:a.substr(0,1)=="/"?b.protocol+"/"+a:b.protocol+"//"+a};f.testString=function(b){var a=b.family;if("sample"in b&&typeof b.sample=="string")return"BESbswy"+
b.sample;for(var d=["TamilWeb","TibetanWeb","LatinWeb","CherokeeWeb","EgyptianWeb","SinhalaWeb","KhmerWeb","ArabicWeb","BurmeseWeb","LaoWeb","OriyaWeb","GeezWeb"],e=["\u0bbe\u0bf5","\u0f7f\u0fd0","\u02b0\u02a4","\u13d0\u13c9","\ua723\uf7d3","\u0dd8\u0da3","\u17d6\u178e","\u0639\u06b3","\u1038\u1024","\u0ec0\u0edd","\u0b03\u0b06","\u1361\u132c"],b=0;b<d.length;b++)if(a==d[b])return"BESbswy"+e[b];return"BESbswy"};f.checkFont=function(b){var a=false,a=b.family,d=document.createElement("DIV"),e=d.style,
h=document.createElement("P"),j=document.createElement("P"),r=document.createElement("SPAN"),l=r.style,i=document.createElement("SPAN"),k=i.style;e.position="absolute";e.top="10px";e.left="10px";e.visibility="hidden";document.body.appendChild(d);d.appendChild(h);d.appendChild(j);h.appendChild(r);j.appendChild(i);r.setAttribute("style","font-family:monospace !important");k.fontFamily=a+",monospace";l.fontSize=k.fontSize="24px";r.innerHTML=i.innerHTML=f.testString(b);if(r.offsetWidth!=i.offsetWidth){r.setAttribute("style",
"font-family:sans-serif !important");k.fontFamily=a+",sans-serif";if(r.offsetWidth!=i.offsetWidth){r.setAttribute("style","font-family:serif !important");k.fontFamily=a+",serif"}}a=r.offsetWidth!=i.offsetWidth;h.removeChild(r);j.removeChild(i);d.removeChild(h);d.removeChild(j);document.body.removeChild(d);return a};b.isFontAvailable=function(b){return f.checkFont({family:b})};f.checkFontDescriptor=function(b){return typeof b=="undefined"||typeof b.family!="string"?true:f.checkFont(b)}})();(function(){var b=window.tavultesoft.keymanweb,f=b.osk,i=b.util,k=i.device;b.debug=b.debug=function(a){var c;if(null==b.debugElement){var d=document.createElement("DIV");c=d.style;c.position="absolute";c.width="30%";c.maxHeight="50%";c.top="0";c.right="0";c.minHeight="50px";c.border="1px solid blue";c.whiteSpace="pre-line";c.overflowY="scroll";c=document.createElement("P");c.id="debug_output";c.style.margin="2px";d.appendChild(c);document.body.appendChild(d);b.debugElement=c}if(null!=(c=document.getElementById("debug_output")))if(0==
arguments.length)"undefined"!=typeof c.textContent?c.textContent="":c.innerHTML="";else{var d=(new Date).toTimeString().substr(3,5),e=a,h;if("object"==typeof a)if(null==a)e="null";else{e="{";for(h in a){e=e+h+":";switch(typeof a[h]){case "string":case "number":case "boolean":e+=a[h];break;default:e+=typeof a[h]}e+="; "}2<e.length&&(e=e.substr(0,e.length-2));e+="}"}"undefined"!=typeof c.textContent?c.textContent=d+" "+e+"\n"+c.textContent:c.innerHTML=d+" "+e+"<br />"+c.innerHTML}};b.debugElement=null;
b.addEventListener=b.addEventListener=function(b,a){return i.addEventListener("kmw."+b,a)};b.setupTouchDevice=function(){b.cancelInput=function(){b._ActiveElement=null;b.hideCaret();f.hideNow()};b.setBlur=function(a){"relatedTarget"in a&&a.relatedTarget&&("DIV"!=a.relatedTarget.nodeName||-1==a.relatedTarget.className.indexOf("keymanweb-input"))?b.cancelInput():b.focusing||b.cancelInput()};b.setFocus=function(a){b.focusing=!0;b.focusTimer=window.setTimeout(function(){b.focusing=!1},1E3);var d=a;a?
"object"==typeof a.touches&&(d=a.touches[0]):(d={clientX:0,clientY:0},d.target=b._LastActiveElement?b._LastActiveElement.kmw_ip:b.sortedInputs[0].kmw_ip);var a=d.clientX,g=d.clientY,e=d.target,c;c="SPAN"==e.nodeName?e.parentNode:null!=e.className&&0<=e.className.indexOf("keymanweb-input")?e.firstChild:e;d=c.parentNode;b._ActiveElement!=d&&(b.hideCaret(),b._ActiveElement=d,d.focus());b.useInternalKeyboard=!1;f.ready&&!f._Visible&&f._Show();if("DIV"==e.nodeName)g=i._GetAbsoluteX(c.firstChild),"rtl"==
d.dir?(g+=c.firstChild.offsetWidth,c=a>g?0:1E5):c=a<g?0:1E5,b.setTextCaret(d,c),b.scrollInput(d);else{var h,j,l,r,m,k,e=c.childNodes[1];h=0;j=b.getText(d)._kmwLength();c=b.getTextCaret(d);r=document.body.scrollTop;if("TEXTAREA"==d.base.nodeName){m=Math.round(d.base.offsetHeight/d.base.rows);for(k=0;16>k;k++){l=i._GetAbsoluteY(e)-r;if(l>g&&c>h&&c!=j)j=c,c=Math.round((c+h)/2);else if(l<g-m&&c<j&&c!=h)h=c,c=Math.round((c+j)/2);else break;b.setTextCaret(d,c)}for(;i._GetAbsoluteY(e)-r>g&&c>h;)b.setTextCaret(d,
--c);for(;i._GetAbsoluteY(e)-r<g-m&&c<j;)b.setTextCaret(d,++c)}if("rtl"==d.dir){for(k=0;16>k;k++){g=i._GetAbsoluteX(e);if(g<a&&c>h&&c!=j)j=c,c=Math.round((c+h)/2);else if(g>a&&c<j&&c!=h)h=c,c=Math.round((c+j)/2);else break;b.setTextCaret(d,c)}for(;i._GetAbsoluteX(e)<a&&c>h;)b.setTextCaret(d,--c);for(;i._GetAbsoluteX(e)>a&&c<j;)b.setTextCaret(d,++c)}else{for(k=0;16>k;k++){g=i._GetAbsoluteX(e);if(g>a&&c>h&&c!=j)j=c,c=Math.round((c+h)/2);else if(g<a&&c<j&&c!=h)h=c,c=Math.round((c+j)/2);else break;b.setTextCaret(d,
c)}for(;i._GetAbsoluteX(e)>a&&c>h;)b.setTextCaret(d,--c);for(;i._GetAbsoluteX(e)<a&&c<j;)b.setTextCaret(d,++c)}}b._ActiveControl=null;b._LastActiveElement=d;for(a=0;a<b._Controls.length;a++)if(b._Controls[a].LControl==d){b._ActiveControl=b._Controls[a];break}null!=b._ActiveControl&&null!=b._ActiveControl.LDefaultInternalName&&(b._JustActivatedKeymanWebUI?b._ActiveControl.LDefaultInternalName=null==b._ActiveKeyboard?"":b._ActiveKeyboard.KI:b._SetActiveKeyboard(b._ActiveControl.LDefaultInternalName,
"",!0));!b._IsIEEditableIframe(d,1)||!b._IsMozillaEditableIframe(d,1)?b._DisableInput=1:(b._DisableInput=0,b._JustActivatedKeymanWebUI||(b._DeadKeys=[],b._NotifyKeyboard(0,d,1)),!b._JustActivatedKeymanWebUI&&b._SelectionControl!=d&&(b._IsActivatingKeymanWebUI=0),b._JustActivatedKeymanWebUI=0,b._SelectionControl=d)};b.caret=document.createElement("DIV");var a=b.caret.style;a.position="absolute";a.height="16px";a.width="2px";a.backgroundColor="blue";a.border="none";a.left=a.top=0;a.display="block";
a.visibility="hidden";a.zIndex="9998";b.showCaret=function(d){if(d&&d.firstChild&&!(3>d.firstChild.childNodes.length)){var a=d.firstChild,g=b.caret.style,e=a.childNodes[1];b.caret.parentNode!=a&&a.appendChild(b.caret);g.left=e.offsetLeft+"px";g.top=e.offsetTop+"px";g.height=e.offsetHeight-1+"px";g.visibility="hidden";b.scrollBody(d);b.setScrollBar(d)}};b.setScrollBar=function(b){var d=b.childNodes[0],a=b.childNodes[1].style;(d.offsetWidth>b.offsetWidth||0>d.offsetLeft)&&"TEXTAREA"!=b.base.nodeName?
(a.height="4px",a.width=100*(b.offsetWidth/d.offsetWidth)+"%",a.left=100*(-d.offsetLeft/d.offsetWidth)+"%",a.top="0",a.visibility="visible"):d.offsetHeight>b.offsetHeight||0>d.offsetTop?(a.width="4px",a.height=100*(b.offsetHeight/d.offsetHeight)+"%",a.top=100*(-d.offsetTop/d.offsetHeight)+"%",a.left="0",a.visibility="visible"):a.visibility="hidden"};b.flashCaret=function(){if(k.touchable&&null!=b._ActiveElement){var d=b.caret.style;d.visibility="visible"!=d.visibility?"visible":"hidden"}};b.hideCaret=
function(){var d=b._LastActiveElement;if(d&&null!=d.className&&0<=d.className.indexOf("keymanweb-input")){d.base.value=b.getText(d);b.setText(d,null,1E5);var a=d.firstChild.style;"TEXTAREA"==d.base.nodeName?a.top="0":a.left="rtl"==d.base.dir?d.offsetWidth-d.firstChild.offsetWidth-8+"px":"0";b.caret.parentNode&&b.caret.parentNode.removeChild(b.caret);b.caret.style.visibility="hidden";1<d.childNodes.length&&(d.childNodes[1].style.visibility="hidden")}};b.timerId=window.setInterval(b.flashCaret,500);
b.setText=function(d,a,g){if(d&&0<d.childNodes.length){var e=d.firstChild,c=0;if(3<=e.childNodes.length){var h=e.childNodes[0],e=e.childNodes[2],j;null===a&&(j="string"==typeof h.textContent?h.textContent:h.innerText,a="string"==typeof e.textContent?e.textContent:e.innerText,a=j+a);0>g&&(g=0);c=a._kmwLength();if(null===g||g>c)g=c;j=a._kmwSubstr(0,g);a=a._kmwSubstr(g);"string"==typeof h.textContent?h.textContent=j:h.innerText=j;"string"==typeof e.textContent?e.textContent=a:e.innerText=a}}b.updateBaseElement(d,
c)};b.updateBaseElement=function(d,a){d.base.value=b.getText(d);d.style.backgroundColor=0==a?"transparent":window.getComputedStyle(d.base,null).backgroundColor;"iOS"==k.OS&&(d.base.style.visibility=0==a?"visible":"hidden")};b.getText=function(b){return null==b?"":"string"==typeof b.textContent?b.textContent:b.innerText};b.getTextBeforeCaret=function(b){if(b&&1<b.childNodes.length&&(b=b.firstChild,0<b.childNodes.length)){b=b.childNodes[0];if("textContent"in b)return b.textContent;if("innerText"in b)return b.innerText}return""};
b.setTextBeforeCaret=function(d,a){if(d&&0<d.childNodes.length){var g=d.firstChild,e=0;1<g.childNodes.length&&(e=g.childNodes[0],g=g.childNodes[2],"TEXTAREA"!=d.base.nodeName&&(a=a.replace(/\s+$/," ")),"textContent"in e?e.textContent=a:"innerText"in e&&(e.innerText=a),e=a.length,"textContent"in g?e+=g.textContent.length:"innerText"in g&&(e+=g.innerText.length))}b.updateBaseElement(d,e);b.scrollInput(d)};b.getTextCaret=function(d){return b.getTextBeforeCaret(d)._kmwLength()};b.setTextCaret=function(d,
a){b.setText(d,null,a);b.showCaret(d)};b.dragInput=function(d){d.preventDefault();d.stopPropagation();var a="object"==typeof d.targetTouches?d.targetTouches[0].target:d.target;if(null!=a){if(null==a.className||0>a.className.indexOf("keymanweb-input"))a=a.parentNode;if(null==a.className||0>a.className.indexOf("keymanweb-input"))a=a.parentNode;if(!(null==a.className||0>a.className.indexOf("keymanweb-input"))){var g="object"==typeof d.touches?d.touches[0].screenX:d.screenX,e="object"==typeof d.touches?
d.touches[0].screenY:d.screenY;if("undefined"==typeof b.firstTouch||null==b.firstTouch)b.firstTouch={x:g,y:e};else{var c=b.firstTouch.x,h=b.firstTouch.y,d=a.firstChild,j;if("TEXTAREA"==a.base.nodeName){if(g=parseInt(d.style.top,10),isNaN(g)&&(g=0),c=h-e,-4>c||4<c)d.style.top=(g<c?g-c:0)+"px",b.firstTouch.y=e}else if(e=parseInt(d.style.left,10),isNaN(e)&&(e=0),j=c-g,-4>j||4<j)c=0,h=i._GetAbsoluteX(a)+a.offsetWidth-d.offsetWidth-32,"rtl"==a.base.dir?c=16:h-=24,e-=j,e>c&&(e=c),e<h&&(e=h),d.style.left=
e+"px",b.firstTouch.x=g}b.setScrollBar(a)}}};b.scrollInput=function(d){if(d&&d.firstChild&&!(null==d.className||0>d.className.indexOf("keymanweb-input"))){var a=d.firstChild;if(!(3>a.childNodes.length)){var g=a.childNodes[1],e=i._GetAbsoluteX(g),g=i._GetAbsoluteY(g),c=i._GetAbsoluteX(d),h=i._GetAbsoluteY(d),j=parseInt(a.style.left,10),f=parseInt(a.style.top,10),r=0,l=0;isNaN(j)&&(j=0);isNaN(f)&&(f=0);"TEXTAREA"==d.base.nodeName?(e=Math.round(d.offsetHeight/d.base.rows),g<h&&(l=g-h),g>h+d.offsetHeight-
e&&(l=g-h-d.offsetHeight+e),0!=l&&(a.style.top=(f<l?f-l:0)+"px")):(e<c+8&&(r=e-c-12),e>c+d.offsetWidth-12&&(r=e-c-d.offsetWidth+12),0!=r&&(a.style.left=(j<r?j-r:0)+"px"));b.showCaret(d)}}};b.scrollBody=function(b){if(b&&!(null==b.className||0>b.className.indexOf("keymanweb-input")||!f.ready)){var b=b.firstChild.childNodes[1],d=i._GetAbsoluteY(b),a=window.pageYOffset,g=0;d<a?g=d-a:(g=d-a-(window.innerHeight-f._Box.offsetHeight-b.offsetHeight-2),0>g&&(g=0));0!=g&&window.scrollTo(0,g+window.pageYOffset)}};
b.updateInput=function(b){var d=b.style,a=b.base,g=window.getComputedStyle(a,null),e=parseInt(g.marginLeft,10),c=parseInt(g.marginTop,10),h=i._GetAbsoluteX(a),j=i._GetAbsoluteY(a),f=b.offsetParent;f&&(h-=i._GetAbsoluteX(f),j-=i._GetAbsoluteY(f));isNaN(e)&&(e=0);isNaN(c)&&(c=0);d.left=h-e+"px";d.top=j-c+"px";"undefined"!=typeof g.MozBoxSizing&&(d.left=h+"px",d.top=j+"px");var e=a.offsetWidth,a=a.offsetHeight,c=parseInt(g.paddingLeft,10),h=parseInt(g.paddingRight,10),j=parseInt(g.paddingTop,10),f=parseInt(g.paddingBottom,
10),r=parseInt(g.borderLeft,10),l=parseInt(g.borderRight,10),m=parseInt(g.borderTop,10),s=parseInt(g.borderBottom,10),D="undefined";"undefined"!=typeof g.boxSizing?D=g.boxSizing:"undefined"!=typeof g.MozBoxSizing&&(D=g.MozBoxSizing);"content-box"==D&&(isNaN(c)||(e-=c),isNaN(h)||(e-=h),isNaN(r)||(e-=r),isNaN(l)||(e-=l),isNaN(j)||(a-=j),isNaN(f)||(a-=f),isNaN(m)||(a-=m),isNaN(s)||(a-=s));"Android"==k.OS&&("undefined"!=typeof g.MozBoxSizing?(d.paddingTop=j+1+"px",d.paddingLeft=c+"px","TEXTAREA"==b.base.nodeName?
d.marginTop="1px":d.marginLeft="1px",e--,a--):(e++,a++));d.width=e+"px";d.height=a+"px"};for(var c=0;2>c;c++)for(var d=document.getElementsByTagName(0==c?"INPUT":"TEXTAREA"),a=0;a<d.length;a++)if(d[a].kmwInput){var e=document.createElement("DIV");e.base=e.base=d[a];e.base.className=e.base.className?e.base.className+" keymanweb-font":"keymanweb-font";d[a].kmw_ip=e;b.inputList.push(e)}else d[a].addEventListener("touchstart",function(){b.focusing=!1;clearTimeout(b.focusTimer);f.hideNow()},!1);for(var h,
j,r,l,m,s,a=0;a<b.inputList.length;a++)e=b.inputList[a],e.className="keymanweb-input",e.dir=e.base.dir,h=document.createElement("DIV"),d=window.getComputedStyle(e.base,null),c=e.style,c.overflow="hidden",c.position="absolute",c.border="hidden",c.border="none",c.borderRadius="5px",m=document.createElement("DIV"),j=m.style,j.position="absolute",j.height=j.width="4px",j.left=j.top="0",j.display="block",j.visibility="hidden",j.backgroundColor="#808080",j.borderRadius="2px",j=document.createElement("SPAN"),
r=document.createElement("SPAN"),l=document.createElement("SPAN"),j.innerHTML=r.innerHTML=l.innerHTML="",j.className=r.className=l.className="keymanweb-font",h.appendChild(j),h.appendChild(l),h.appendChild(r),e.appendChild(h),e.appendChild(m),h=h.style,h.position="absolute",m=j.style,s=r.style,l=l.style,m.border=s.border="none",m.height=s.height="100%",m.fontFamily=s.fontFamily=h.fontFamily=d.fontFamily,"INPUT"==e.base.nodeName&&!isNaN(parseInt(d.height,10))&&(m.lineHeight=s.lineHeight=d.height),
l.border="1px solid red",l.visibility="hidden",l.marginLeft=l.marginRight="-1px",c.padding="8px",h.padding="0px 2px",h.backgroundColor="Android"==k.OS&&"transparent"==d.backgroundColor?"#fff":d.backgroundColor,e.tabIndex="0",e.style.msTouchAction="none",e.onmspointerdown=e.ontouchstart=e.onmousedown=b.setFocus,e.onmspointerup=e.ontouchend=e.onmouseup=function(b){b.stopPropagation()},e.onmspointermove=e.ontouchmove=e.onmousemove=b.dragInput,e.onblur=b.setBlur,j.style.whiteSpace="TEXTAREA"==e.base.nodeName?
r.style.whiteSpace="pre-wrap":r.style.whiteSpace="pre",e.base.parentNode.appendChild(e),b.updateInput(e),c=e.style,c.color=d.color,c.fontFamily=d.fontFamily,c.fontSize=d.fontSize,c.fontWeight=d.fontWeight,c.textDecoration=d.textDecoration,c.padding=d.padding,c.margin=d.margin,c.border=d.border,c.borderRadius=d.borderRadius,"webkitTapHighlightColor"in c&&(c.webkitTapHighlightColor="rgba(0,0,0,0)"),"TEXTAREA"==e.base.nodeName?(2==e.base.rows&&(j=parseInt(d.height,10)-parseInt(d.paddingTop,10)-parseInt(d.paddingBottom,
10),d=parseInt(d.fontSize,10),d=Math.round(j/d),d>e.base.rows+1&&(e.base.rows=d)),h.width=c.width,h.minHeight=c.height):(h.minWidth=c.width,h.height=c.height),e.base.style.visibility="hidden",function(d){d.base.addEventListener("resize",function(){b.updateInput(d)},false)}(e),b.setText(e,e.base.value,null)};b.setupDesktopPage=function(){for(var a=0;2>a;a++)for(var c=document.getElementsByTagName(0==a?"INPUT":"TEXTAREA"),d=0;d<c.length;d++)0>c[d].className.indexOf("kmw-disabled")&&!c[d].readOnly&&
b.inputList.push(c[d]),c[d].className=c[d].className?c[d].className+" keymanweb-font":"keymanweb-font"};b.getBaseFont=function(){var b=document.getElementsByTagName("INPUT"),a=document.getElementsByTagName("TEXTAREA"),d=0,e;0==b.length&&0==a.length?d=0:0<b.length&&0==a.length?d=1:0==b.length&&0<a.length?d=2:b[0].offsetTop<a[0].offsetTop?d=1:b[0].offsetTop>a[0].offsetTop?d=2:b[0].offsetLeft<a[0].offsetLeft?d=1:b[0].offsetLeft>a[0].offsetLeft&&(d=2);switch(d){case 0:case 1:i.getStyleValue(b[0],"font-family");
case 2:e=i.getStyleValue(a[0],"font-family")}if("undefined"==typeof e||"monospace"==e)e="Arial,sans-serif";return e};b.setFocus=function(){};b.timerID=null;b.getText=function(){return""};b.setText=function(){};b.getTextBeforeCaret=function(){return""};b.setTextBeforeCaret=function(){};b.getTextCaret=function(){return 0};b.setTextCaret=function(){};b.hideCaret=function(){};b.flashCaret=function(){};b.updateInput=function(){};b.addKeyboards=function(a){0==arguments.length?b.keymanCloudRequest("",!1):
b.addKeyboardArray(arguments)};b.addKeyboardArray=function(a){if(b.initialized){if(0!=a.length){var c,d,e,h,j,f=d="";b.cloudList=[];for(c=0;c<a.length;c++){if("string"==typeof a[c]&&0<a[c].length){e=a[c].split("@");h=[""];"english"==e[0].toLowerCase()&&(e[0]="us");1<e.length&&(h=e[1].split(","));for(d=0;d<h.length;d++)j={id:e[0]},""!=h[d]&&(j.language=h[d]),2<e.length&&(j.version=e[2]),b.cloudList.push(j)}if("object"==typeof a[c]&&null!=a[c])if("string"==typeof a[c].filename)b.addStub(a[c])||alert("To use a custom keyboard, you must specify file name, keyboard name, language, language code and region code.");
else if(h=a[c].language,"number"==typeof h.length)for(d=0;d<h.length;d++)b.cloudList.push({id:a[c].id,language:a[c].language[d].id});else b.cloudList.push({id:a[c].id,language:a[c].language.id})}if(0!=b.cloudList.length){d="&keyboardid=";for(c=0;c<b.cloudList.length;c++)a=b.cloudList[c],e=a.id,j=h="","string"==typeof a.language&&""!=a.language&&(h=a.language),"string"==typeof a.version&&""!=a.version&&(j=a.version),""!=h?(e=e+"@"+h,""!=j&&(e=e+"@"+j)):""!=j&&(e=e+"@@"+j),d=d+f+e,f=",";b.keymanCloudRequest(d,
!1)}}}else for(c=0;c<a.length;c++)b.deferredStubs.push(a[c])};b.keymanCloudRequest=function(a,c){var d="https://r.keymanweb.com/api/4.0/",e,h=i._CreateElement("SCRIPT"),d=d+(1<arguments.length&&c?"languages":"keyboards")+"?jsonp=tavultesoft.keymanweb.register";e="&timerid="+window.setTimeout(function(){b.serverUnavailable(a)},1E4);h.charset="UTF-8";h.src=d+a+e;h.type="text/javascript";try{document.body.appendChild(h)}catch(j){document.getElementsByTagName("head")[0].appendChild(h)}};b.addKeyboardsForLanguage=
function(a){b.addLanguageKeyboards(arguments)};b.addLanguageKeyboards=function(a){var c,d,e,h=b.languageList,j,f;if(null==h){d=0==b.languagesPending.length;for(c=0;c<a.length;c++)b.languagesPending.push(a[c]);d&&b.keymanCloudRequest("",!0)}else{j="";for(c=0;c<a.length;c++){e=a[c].toLowerCase();(f="$"==e.substr(-1,1))&&(e=e.substr(0,e.length-1));for(d=0;d<h.length;d++)if(e==h[d].name.toLowerCase()){""!=j&&(j+=",");j=j+"@"+h[d].id;f&&(j+="$");break}}""==j?i.alert("No keyboards are available for "+a[0]+
". Does it have another language name?"):b.keymanCloudRequest("&keyboardid="+j,!1)}};b.addStub=function(a){if("string"!=typeof a.id||"undefined"==typeof a.language)return!1;"string"!=typeof a.name&&(a.name=a.id.replace("_"," "),a.name=a.name.substr(0,1).toUpperCase()+a.name.substr(1));var c=a.language,d=[];"undefined"==typeof c.length?d[0]=c:d=c;for(var e={keyboardBaseUri:b.options.keyboards,fontBaseUri:b.options.fonts},c=0;c<d.length;c++)b.mergeStub(a,d[c],e);return!0};b.findStub=function(a,c){var d,
e=b._KeyboardStubs;for(d=0;d<e.length;d++)if(e[d].KI=="Keyboard_"+a&&e[d].KLC==c)return e[d];return null};b.regions="World;Africa;Asia;Europe;South America;North America;Oceania;Central America;Middle East".split(";");b.regionCodes="un af as eu sa na oc ca me".split(" ");b.mergeStub=function(a,c,d){var e=b.findStub(a.id,c.id);null==e&&(e={KI:"Keyboard_"+a.id,KLC:c.id},b._KeyboardStubs.push(e));var h=c.region,j=0;if("number"==typeof h)j=1>h||9<h?0:h-1;else if("string"==typeof h)for(var f=2==h.length?
b.regionCodes:b.regions,l=0;l<f.length;l++)if(h.toLowerCase()==f[l].toLowerCase()){j=l;break}h=null;"undefined"==typeof e.KL&&(e.KL=c.name);"undefined"==typeof e.KR&&(e.KR=b.regions[j]);"undefined"==typeof e.KRC&&(e.KRC=b.regionCodes[j]);"undefined"==typeof e.KN&&(e.KN=a.name);"undefined"==typeof e.KF&&(h=/^(([.]\/)|([.][.]\/)|(\/))|(:)/,e.KF=a.filename,h.test(e.KF)||(e.KF=d.keyboardBaseUri+e.KF));a=d.fontBaseUri;""!=b.options.fonts?(a=b.options.fonts,h=/^https?:/,h.test(a)||(a="//"==a.substr(0,2)?
b.protocol+a:"/"==a.substr(0,1)?b.rootPath+a.substr(1):b.rootPath+a)):b.options.fonts=a;"undefined"==typeof e.KFont&&"undefined"!=typeof c.font&&(d=e.KFont=c.font,d.files=d.source,d.path=a);"undefined"==typeof e.OskFont&&"undefined"!=typeof c.font&&(d=e.OskFont=c.font,d.files=d.source,d.path=a);b.doKeyboardRegistered(e.KI,e.KL,e.KN,e.KLC);1==b._KeyboardStubs.length&&b._SetActiveKeyboard(e.KI,e.KLC)};b.registerLanguagesForKeyboard=function(a,c,d){var e,h,j,f=0;e="";if("undefined"!=typeof a)if("string"==
typeof c.keyboardid&&(e=c.keyboardid.split(",")[d]),"number"==typeof a.length)if(1==a.length||"$"==e.substr(-1,1)||""==e)for(e=0;e<a.length;e++)b.registerLanguagesForKeyboard(a[e],c,d);else{for(e=0;e<a.length;e++){j=a[e].id.toLowerCase();"us"==j&&(j="english");for(h=0;h<a[e].languages.length;h++)if(j==a[e].languages[h].name.toLowerCase()){f=e;break}}b.registerLanguagesForKeyboard(a[f],c,d)}else if(d=e.split("@")[1],"string"==typeof d&&(d=d.replace(/\$$/,"")),f=a.languages,"undefined"!=typeof f)if("number"==
typeof f.length)for(e=0;e<f.length;e++)("undefined"==typeof d||f[e].id==d)&&b.mergeStub(a,f[e],c);else b.mergeStub(a,f,c)};b.register=function(a){var c=a.options;a.timerid&&window.clearTimeout(a.timerid);if("string"==typeof a.error)c="","string"==typeof a.keyboardid&&(c=a.keyboardid.substr(0,1).toUpperCase()+a.keyboardid.substr(1)),b.serverUnavailable(c+" keyboard not found.");else if(!("undefined"==typeof c||"undefined"==typeof c.context))if("keyboard"==c.context){var d=a.keyboard;if("number"==typeof d.length)for(a=
0;a<d.length;a++)b.registerLanguagesForKeyboard(d[a],c,a);else b.registerLanguagesForKeyboard(d,c,0)}else"language"==c.context&&(b.languageList=a.languages,b.languagesPending&&b.addLanguageKeyboards(b.languagesPending),b.languagesPending=[])};b.serverUnavailable=function(a){i.alert(""==a?"Unable to connect to Keyman Cloud server!":a);b.warned=!0};b.removeKeyboards=function(a){if(0!=arguments.length){var c,d,e=b._KeyboardStubs;for(c=0;c<arguments.length;c++)for(d=e.length-1;0<=d;d--)if("Keyboard_"+
arguments[c]==e[d].KI&&1<e.length){e.splice(d,1);break}b._SetActiveKeyboard(e[0].KI,e[0].KLC,!0);b.doKeyboardUnregistered()}};if(document.selection){var a=navigator.appVersion;"undefined"==typeof document.createEventObject&&(0<=a.indexOf("MSIE 5.0")||0<=a.indexOf("MSIE 4.0")||0<=a.indexOf("MSIE 3.0"))?b.legacy=1:0<=a.indexOf("MSIE 6.0")?b._IE=6:0<=a.indexOf("MSIE 7.0")?b._IE=7:0<=a.indexOf("MSIE 8.0")&&(b._IE=8);b._IE&&"BackCompat"==document.compatMode&&(b._IE=6)}f._BaseLayout="undefined"!==typeof window.KeymanWeb_BaseLayout?
window.KeymanWeb_BaseLayout:"us";b._BrowserIsSafari=0<=navigator.userAgent.indexOf("AppleWebKit");b._GetEventObject=function(a){if(!a&&(a=window.event,!a&&(a=b._GetLastActiveElement()))){if(a=a.ownerDocument)a=a.parentWindow;if(!a)return null;a=a.event}return a};b._push=function(a,b){a.push?a.push(b):a=a.concat(b);return a};b._IsAttached=function(a){for(var c=0;c<b._AttachedElements.length;c++)if(b._AttachedElements[c]==a)return 1;return 0};b.attachToControl=b.attachToControl=function(a){var c=a.attributes.readonly,
d=a.className;!("object"==typeof c&&"false"!=c.value)&&!("string"==typeof d&&0<=d.indexOf("kmw-disabled"))&&("iframe"==a.tagName.toLowerCase()?b._AttachToIframe(a):(i.attachDOMEvent(a,"focus",b._ControlFocus),i.attachDOMEvent(a,"blur",b._ControlBlur),a.onkeypress=b._KeyPress,a.onkeydown=b._KeyDown,a.onkeyup=b._KeyUp),b._IsAttached(a)||b._AttachedElements.push(a))};b._AttachToIframe=function(a){try{var c=a.contentWindow.document;if(c)if(c.parentWindow){if("on"==c.designMode.toLowerCase()||c.body.isContentEditable)i.attachDOMEvent(a,
"focus",b._ControlFocus),i.attachDOMEvent(a,"blur",b._ControlBlur),i.attachDOMEvent(c,"keydown",b._KeyDown),i.attachDOMEvent(c,"keypress",b._KeyPress),i.attachDOMEvent(c,"keyup",b._KeyUp),b.legacy||(i.attachDOMEvent(c,"selectionchange",b._SelectionChange),b._SelectionChange())}else"on"==c.designMode.toLowerCase()?(i.attachDOMEvent(c,"focus",b._ControlFocus),i.attachDOMEvent(c,"blur",b._ControlBlur),i.attachDOMEvent(c,"keydown",b._KeyDown),i.attachDOMEvent(c,"keypress",b._KeyPress),i.attachDOMEvent(c,
"keyup",b._KeyUp)):b._AttachToControls(c)}catch(d){}};b.GetEnabled=function(){return b._Enabled};b.SetEnabled=function(a){a=a?1:0;b._Enabled!=a&&(b._Enabled=a,!a&&b.HideInterface&&b.HideInterface())};b.DisableControl=function(a){var c;for(c=0;c<b._Controls.length;c++)if(b._Controls[c].LControl==a){b._Controls[c].LEnabled=0;return}b._Controls=b._push(b._Controls,{LControl:a,LEnabled:0,LDefaultInternalName:"-"})};b.EnableControl=function(a){var c;for(c=0;c<b._Controls.length;c++)if(b._Controls[c].LControl==
a){b._Controls[c].LEnabled=1;return}b._Controls=b._push(b._Controls,{LControl:a,LEnabled:1,LDefaultInternalName:"-"})};b.SetDefaultKeyboardForControl=function(a,c){var d;for(d=0;d<b._Controls.length;d++)if(b._Controls[d].LControl==a){b._Controls[d].LDefaultInternalName=c;return}b._Controls=b._push(b._Controls,{LControl:a,LEnabled:1,LDefaultInternalName:c})};b.focusLastActiveElement=b._FocusLastActiveElement=function(){b._LastActiveElement&&(b._JustActivatedKeymanWebUI=1,b._IsMozillaEditableIframe(b._LastActiveElement,
0)?b._LastActiveElement.defaultView.focus():b._LastActiveElement.focus&&b._LastActiveElement.focus())};b.getLastActiveElement=b._GetLastActiveElement=function(){return b._LastActiveElement};b.setActiveElement=b.setActiveElement=function(a,c){"string"==typeof a&&(a=document.getElementById(a));b._ActiveElement=b._LastActiveElement=a;1<arguments.length&&c&&(k.touchable?b.setFocus(a):b._ActiveElement.focus())};b.getUIState=b.getUIState=function(){var a={};a.activationPending=a.activationPending=b._IsActivatingKeymanWebUI;
a.activated=a.activated=b._JustActivatedKeymanWebUI;return a};b.activatingUI=function(a){b._IsActivatingKeymanWebUI=a?1:0};b._ControlFocus=function(a){var c;if(!b._Enabled)return!0;a=b._GetEventObject(a);if(!a)return!0;if(a.target)a=a.target;else if(a.srcElement)a=a.srcElement;else return!0;if(k.touchable&&(null==a.className||0>a.className.indexOf("keymanweb-input")))return!0;c=a.nodeName.toLowerCase();if("input"==c){if(c=a.type.toLowerCase(),!("text"==c||"search"==c))return!0}else if("textarea"!=
c)return!0;b._ActiveElement=a;3==a.nodeType&&(a=a.parentNode);var d=a;k.touchable&&(null==a.className||0>a.className.indexOf("keymanweb-input"))&&b.scrollBody(a);"IFRAME"==a.tagName&&(b._AttachToIframe(a),a=a.contentWindow.document);b._ActiveControl=null;b._LastActiveElement=a;for(c=0;c<b._Controls.length;c++)if(b._Controls[c].LControl==a){b._ActiveControl=b._Controls[c];break}null!=b._ActiveControl&&null!=b._ActiveControl.LDefaultInternalName&&(b._JustActivatedKeymanWebUI?b._ActiveControl.LDefaultInternalName=
null==b._ActiveKeyboard?"":b._ActiveKeyboard.KI:b._SetActiveKeyboard(b._ActiveControl.LDefaultInternalName,"",!0));if(!b._IsIEEditableIframe(a,1)||!b._IsMozillaEditableIframe(a,1))return b._DisableInput=1,!0;b._DisableInput=0;b._JustActivatedKeymanWebUI||(b._DeadKeys=[],b._NotifyKeyboard(0,a,1));!b._JustActivatedKeymanWebUI&&b._SelectionControl!=a&&(b._IsActivatingKeymanWebUI=0);b._JustActivatedKeymanWebUI=0;b._SelectionControl=a;a._KeymanWebSelectionStart=a._KeymanWebSelectionEnd=null;b._SetTargDir(a);
b.doControlFocused(d,b._ActiveControl);k.touchable?f._Enabled=1:f.ready&&(b.isCJK()&&(f._Enabled=1),f._Enabled?f._Show():f._Hide(!1));return!0};b._IsIEEditableIframe=function(a,b){var d,e=a&&(d=a.tagName)&&"body"==d.toLowerCase()&&(d=a.ownerDocument)&&d.parentWindow;return!b&&e||b&&(!e||a.isContentEditable)};b._IsMozillaEditableIframe=function(a,b){var d,e=a&&(d=a.defaultView)&&d.frameElement;return!b&&e||b&&(!e||"on"==d.document.designMode.toLowerCase())};b._ControlBlur=function(a){var c;if(!b._Enabled)return!0;
a=b._GetEventObject(a);if(!a)return!0;if(a.target)c=a.target;else if(a.srcElement)c=a.srcElement;else return!0;b._ActiveElement=null;k.touchable&&b.hideCaret();3==c.nodeType&&(c=c.parentNode);"IFRAME"==c.tagName&&(c=c.contentWindow.document);c.setSelectionRange&&(c._KeymanWebSelectionStart=c.value._kmwCodeUnitToCodePoint(c.selectionStart),c._KeymanWebSelectionEnd=c.value._kmwCodeUnitToCodePoint(c.selectionEnd));b._LastActiveElement=c;null!=b._ActiveControl&&null!=b._ActiveControl.LDefaultInternalName&&
(b._ActiveControl.LDefaultInternalName=null==b._ActiveKeyboard?"":b._ActiveKeyboard.KI);b._ActiveControl=null;b._IsActivatingKeymanWebUI||b._NotifyKeyboard(0,c,0);a=b._GetEventObject(a);b.doControlBlurred(c,a,b._IsActivatingKeymanWebUI);f.ready&&!b._IsActivatingKeymanWebUI&&f._Hide(!1);return!0};b.doControlBlurred=function(a,b,d){var e={};e.target=a;e.event=b;e.isActivating=d;return i.callEvent("kmw.controlblurred",e)};b.doControlFocused=function(a,b){var d={};d.target=a;d.activeControl=b;return i.callEvent("kmw.controlfocused",
d)};b.doKeyboardRegistered=function(a,b,d,e){return i.callEvent("kmw.keyboardregistered",{internalName:a,language:b,keyboardName:d,languageCode:e})};b.doKeyboardUnregistered=function(){return i.callEvent("kmw.keyboardregistered",{})};b.doKeyboardLoaded=function(a){var b={};b.keyboardName=a;return i.callEvent("kmw.keyboardloaded",b)};b.doBeforeKeyboardChange=function(a,b){var d={};d.internalName=a;d.languageCode=b;return i.callEvent("kmw.beforekeyboardchange",d)};b.doKeyboardChange=function(a,b,d){var e=
{};e.internalName=a;e.languageCode=b;e.indirect=2<arguments.length?d:!1;return i.callEvent("kmw.keyboardchange",e)};b.doUnloadOSK=function(){return i.callEvent("kmw.unloadosk",{})};b.doLoadUI=function(){return i.callEvent("kmw.loaduserinterface",{})};b.doUnloadUI=function(){return i.callEvent("kmw.unloaduserinterface",{})};b._BubbledFocus=function(){};window.addEventListener&&window.addEventListener("focus",b._BubbledFocus,!0);b._GetKeyEventProperties=function(a){var c={},a=b._GetEventObject(a);if(!a||
!0===a.cancelBubble)return null;if(a.target)c.Ltarg=a.target;else if(a.srcElement)c.Ltarg=a.srcElement;else return null;3==c.Ltarg.nodeType&&(c.Ltarg=c.Ltarg.parentNode);if(a.keyCode)c.Lcode=a.keyCode;else if(a.which)c.Lcode=a.which;else return null;c.Lmodifiers=(a.shiftKey?16:0)|(a.ctrlKey?32:0)|(a.altKey?64:0);c.LisVirtualKeyCode="undefined"!=typeof a.charCode&&null!=a.charCode&&(0==a.charCode||0!=(c.Lmodifiers&96));c.LisVirtualKey=c.LisVirtualKeyCode||"keypress"!=a.type;return c};b._SelectionChange=
function(){if(b._IgnoreNextSelChange)b._IgnoreNextSelChange--;else{var a=document.selection;if("control"!=a.type.toLowerCase()&&(a=a.createRange(),!b._Selection||!b._Selection.isEqual(a)))b._Selection=a,b._DeadKeys=[]}return!0};b._FindCaret=function(a){if(!a.createTextRange&&a.selectionStart){var c=document.createEvent("KeyboardEvent");if(c.initKeyEvent){c.initKeyEvent("keypress",!0,!0,null,!1,!1,!1,!1,0,32);var d=b._KeyPress;b._KeyPress=function(){};a.dispatchEvent(c);c=document.createEvent("KeyboardEvent");
c.initKeyEvent("keypress",!0,!0,null,!1,!1,!1,!1,8,0);a.dispatchEvent(c);b._KeyPress=d}}};b._NotifyKeyboard=function(a,c,d){null!=b._ActiveKeyboard&&"function"==typeof b._ActiveKeyboard.KNS&&b._ActiveKeyboard.KNS(a,c,d)};b._KeyDown=function(a){var c;b._KeyPressToSwallow=0;if(!b._Enabled||b._DisableInput||null==b._ActiveKeyboard||null!=b._ActiveControl&&!b._ActiveControl.LEnabled)return!0;var d=i.eventTarget(a);if(k.touchable){if(d&&"undefined"!=typeof d.kmwInput&&!1==d.kmwInput)return!0}else if(d&&
0<=d.className.indexOf("kmw-disabled"))return!0;if(!f.ready)return!0;d=b._GetKeyEventProperties(a);if(null==d)return!0;switch(d.Lcode){case 8:b._DeadKeys=[];break;case 16:case 17:case 18:return b._NotifyKeyboard(d.Lcode,d.Ltarg,1),f._UpdateVKShift(d,d.Lcode-15,1)}(c=d.Ltarg.ownerDocument)&&((c=c.selection)&&(33>d.Lcode||40<d.Lcode))&&c.createRange().select();!window.event&&b._VKMap_FF_IE["k"+d.Lcode]&&(d.Lcode=b._VKMap_FF_IE["k"+d.Lcode]);if(b._ActiveKeyboard.KM){if(8==d.Lcode)return b._KeyPressToSwallow=
1,b.callKeyboardStartGroup(d.Ltarg,d)||b.KO(1,b._LastActiveElement,""),!1;b._KeyPressToSwallow=0}else{var e=0;if((c=b._VKMap[f._BaseLayout])&&c["k"+d.Lcode])d.Lcode=c["k"+d.Lcode];"undefined"==typeof b._ActiveKeyboard.KM&&!(d.Lmodifiers&96)&&(c={Lcode:b._USKeyCodeToCharCode(d),Ltarg:d.Ltarg,Lmodifiers:0,LisVirtualKey:0},b.callKeyboardStartGroup(c.Ltarg,c)&&(e=1));e=e||b.callKeyboardStartGroup(d.Ltarg,d);8==d.Lcode&&(!e&&null!=d.Ltarg.className&&0<=d.Ltarg.className.indexOf("keymanweb-input"))&&b.KO(1,
b._LastActiveElement,"")}!e&&(96<=d.Lcode&&111>=d.Lcode)&&(b.KO(0,d.Ltarg,String._kmwFromCharCode(106>d.Lcode?d.Lcode-48:d.Lcode-64)),e=1);if(e)return b._FindCaret(d.Ltarg),a&&a.preventDefault&&a.preventDefault(),b._KeyPressToSwallow=a?a.keyCode:0,!1;b._KeyPressToSwallow=0;return 8==d.Lcode&&null!=d.Ltarg.className&&0<=d.Ltarg.className.indexOf("keymanweb-input")?!1:!0};b.callKeyboardStartGroup=function(a,c){b._CachedSelectionStart=null;b._DeadkeyResetMatched();b.cachedContext.reset();return b._ActiveKeyboard.gs(a,
c)};b._KeyPress=function(a){var c;if(!b._Enabled||b._DisableInput||null==b._ActiveKeyboard||null!=b._ActiveControl&&!b._ActiveControl.LEnabled)return!0;c=b._GetKeyEventProperties(a);if(null==c||c.LisVirtualKey)return!0;if(!b._ActiveKeyboard.KM){if(!b._KeyPressToSwallow||32>c.Lcode||b._BrowserIsSafari&&63232<c.Lcode&&63744>c.Lcode)return!0;if(a=b._GetEventObject(a))a.returnValue=!1;return!1}if(b._KeyPressToSwallow||b.callKeyboardStartGroup(c.Ltarg,c))return b._KeyPressToSwallow=0,a&&a.preventDefault&&
a.preventDefault(),b._FindCaret(c.Ltarg),!1;b._KeyPressToSwallow=0;return!0};b._KeyUp=function(a){a=b._GetKeyEventProperties(a);if(null==a||!f.ready)return!0;switch(a.Lcode){case 13:if("TEXTAREA"==a.Ltarg.nodeName)break;"search"==a.Ltarg.type||"submit"==a.Ltarg.type?a.Ltarg.form.submit():b.moveToNext(!1);return!0;case 16:case 17:case 18:return b._NotifyKeyboard(a.Lcode,a.Ltarg,0),f._UpdateVKShift(a,a.Lcode-15,1)}var c;if((c=a.Ltarg.ownerDocument)&&(c=c.selection)&&"control"!=c.type)c=c.createRange(),
b._Selection=c;return!1};b.moveToNext=function(a){var c,d=b.sortedInputs,e=b._ActiveElement;k.touchable&&(e=e.base);for(c=0;c<d.length&&d[c]!=e;c++);c=a?c-1:c+1;c>=d.length&&(c-=d.length);0>c&&(c+=d.length);k.touchable?(b.focusing=!0,a=d[c].kmw_ip,"undefined"==typeof a?d[c].focus():(b._ActiveElement=b._LastActiveElement=a,b.setTextCaret(a,1E4),b.scrollInput(a))):d[c].focus()};b.moveToElement=function(a){"string"==typeof a&&(a=document.getElementById(a));k.touchable&&a.kmw_ip?a.kmw_ip.focus():a.focus()};
b._SetActiveKeyboard=function(a,c,d){var e,h,j;j=2>arguments.length||!c?"---":c;for(e=0;e<b._KeyboardStubs.length&&!(a==b._KeyboardStubs[e].KI&&(j==b._KeyboardStubs[e].KLC||"---"==j));e++);if(k.touchable&&(""==a||null==a||e>=b._KeyboardStubs.length))a=b._KeyboardStubs[0].KI,j=b._KeyboardStubs[0].KLC;2<arguments.length&&d&&b.saveCurrentKeyboard(a,j);if(!b._ActiveStub||!b._ActiveKeyboard||!(b._ActiveKeyboard.KI==a&&b._ActiveStub.KI==a&&b._ActiveStub.KLC==c&&!b.mustReloadKeyboard)){if(b._ActiveKeyboard&&
b._ActiveKeyboard.KI==a)for(h=0;h<b._KeyboardStubs.length;h++)if(b._KeyboardStubs[h].KI==a&&b._KeyboardStubs[h].KLC==c){b._ActiveStub=b._KeyboardStubs[h];f.appendStyleSheet();b.mustReloadKeyboard&&f._Load();return}b._ActiveKeyboard=null;b._ActiveStub=null;if(""==a)f._Hide(!1);else{for(h=0;h<b._Keyboards.length;h++)if(b._Keyboards[h].KI==a){b._ActiveKeyboard=b._Keyboards[h];b._SetTargDir(b._LastActiveElement);for(e=0;e<b._KeyboardStubs.length;e++)if(b._KeyboardStubs[e].KI==a&&b._KeyboardStubs[e].KLC==
c){b._ActiveStub=b._KeyboardStubs[e];break}break}if("undefined"==c||""==c)c="---";if(null==b._ActiveKeyboard){for(h=0;h<b._KeyboardStubs.length;h++)if(b._KeyboardStubs[h].KI==a&&(b._KeyboardStubs[h].KLC==c||"---"==c)){if(b.isCJK(b._KeyboardStubs[h])||k.touchable)f._Enabled=1;if(null==b._LoadingInternalName||b._LoadingInternalName!=a)f.ready&&f._Hide(!1),b._LoadingInternalName=a,null!=b.loadTimer&&window.clearTimeout(b.loadTimer),b.loadTimer=null,b.loadTimer="function"==typeof b.keyboardUnavailable?
b.keyboardUnavailable(h):null,e="Installing keyboard<br/>"+b._KeyboardStubs[h].KN.replace(/\s*keyboard\s*/i,""),"function"==typeof i.wait&&i.wait(e),window.setTimeout(function(){b.installKeyboard(b._KeyboardStubs[h].KF)},0);b._ActiveStub=b._KeyboardStubs[h];return}b._SetTargDir(b._LastActiveElement)}e=b._ActiveKeyboard;null!==e&&String.kmwEnableSupplementaryPlane(e&&(e.KS&&1==e.KS||"Hieroglyphic"==e.KN));f._Load()}}};b.installKeyboard=function(a){var c=i._CreateElement("SCRIPT");c.charset="UTF-8";
c.src=b.getKeyboardPath(a);c.type="text/javascript";try{document.body.appendChild(c)}catch(d){document.getElementsByTagName("head")[0].appendChild(c)}};b.setDfltKeyboard=function(){b._SetActiveKeyboard("Keyboard_us","eng",!0);b.doKeyboardChange("Keyboard_us","eng",!0)};b.isCJK=function(a){var c=b._ActiveKeyboard,d="";0<arguments.length&&(c=a);c&&("undefined"!=typeof c.KLC?d=c.KLC:"undefined"!=typeof c.LanguageCode&&(d=c.LanguageCode));return"cmn"==d||"jpn"==d||"kor"==d};b.isCJK=b.isCJK;b.setActiveKeyboard=
function(a,c){b.doBeforeKeyboardChange(a,c);b._SetActiveKeyboard(a,c,!0);null!=b._LastActiveElement&&b._FocusLastActiveElement();b.doKeyboardChange(a,c)};b.getActiveKeyboard=function(){return null==b._ActiveKeyboard?"":b._ActiveKeyboard.KI};b.getActiveLanguage=function(){return null==b._ActiveStub?"":b._ActiveStub.KLC};b.getKeyboard=function(a,c){var d,e;for(d=0;d<b._KeyboardStubs.length;d++)if(e=b._GetKeyboardDetail(b._KeyboardStubs[d]),e.InternalName==a&&(2>arguments.length||e.LanguageCode==c))return e;
return null};b.GetKeyboardDetail=function(a){for(var c=b.getKeyboards(),d=0;d<c.length;d++)if(c[d].InternalName==a)return c[d];return null};b._GetKeyboardDetail=function(a){var b=[];b.Name=a.KN;b.InternalName=a.KI;b.LanguageName=a.KL;b.LanguageCode=a.KLC;b.RegionName=a.KR;b.RegionCode=a.KRC;b.CountryName=a.KC;b.CountryCode=a.KCC;b.KeyboardID=a.KD;b.Font=a.KFont;b.OskFont=a.KOskFont;return b};b.getKeyboards=function(){var a=[],c,d;for(c=0;c<b._KeyboardStubs.length;c++)d=b._KeyboardStubs[c],d=b._GetKeyboardDetail(d),
a=b._push(a,d);return a};b._WindowUnload=function(){b.doUnloadUI();f.ready&&f._Unload();b._LastActiveElement=0};i.attachDOMEvent(window,"load",function(){document.body.scrollTop=0;"undefined"!=typeof document.documentElement&&(document.documentElement.scrollTop=0)},!1);i.attachDOMEvent(window,"unload",b._WindowUnload,!1);b._AttachToControls=function(a){for(var c=a.getElementsByTagName("INPUT"),d=a.getElementsByTagName("TEXTAREA"),e=a.getElementsByTagName("IFRAME"),a=document.evaluate?document.evaluate('//*[@contenteditable and @contenteditable != "false"]',
document,null,XPathResult.ANY_TYPE,null):null,h=0;h<c.length;h++)"text"==c[h].type.toLowerCase()&&b.attachToControl(c[h]);for(h=0;h<d.length;h++)b.attachToControl(d[h]);for(h=0;h<e.length;h++)try{e[h].contentWindow.document&&b._AttachToIframe(e[h])}catch(j){}if(a)for(c=a.iterateNext();c;c=a.iterateNext())b.attachToControl(c);for(h=0;h<b.inputList.length;h++)b.attachToControl(b.inputList[h])};b.fixPath=function(a){if(0==a.length)return a;var b=a.substr(a.length-1,1);return"/"==b||"\\"==b?a:a+"/"};
b.init=b.init=function(a){var c,d,e,h,j,r;d=function(a){if(0==a.length)return a;"/"!=a.substr(a.length-1,1)&&(a+="/");return"http"==a.replace(/^(http)s?:.*/,"$1")||"file"==a.replace(/^(file):.*/,"$1")?a:"//"==a.substr(0,2)?b.protocol+a:"/"==a.substr(0,1)?b.rootPath+a.substr(1):b.srcPath+a};c=b.options;if("object"==typeof a&&null!==a)for(h in c)a.hasOwnProperty(h)&&(c[h]=a[h]);""!=c.root&&(b.rootPath=d(c.root));""==c.resources&&(c.resources=b.srcPath);c.resources=d(c.resources);c.keyboards=d(c.keyboards);
c.fonts=d(c.fonts);""==c.attachType&&(c.attachType=k.touchable?"manual":"auto");b.setDefaultDeviceOptions(c);if(!b.initialized)if("complete"!==document.readyState)window.setTimeout(function(){b.init(a)},50);else{b._MasterDocument=window.document;if(k.touchable){j=document.getElementsByTagName("textarea");r=document.getElementsByTagName("input");for(c=0;c<j.length;c++)if(e=j[c],d=e.className,e.kmwInput=!1,(!d||0>d.indexOf("kmw-disabled"))&&!e.readOnly)e.disabled=!0,e.kmwInput=!0;for(c=0;c<r.length;c++)if(e=
r[c],d=e.className,e.kmwInput=!1,(!d||0>d.indexOf("kmw-disabled"))&&!e.readOnly)if("text"==e.type||"search"==e.type)e.disabled=!0,e.kmwInput=!0}"Android"==k.OS&&(k.dpi=i.getDPI(),k.formFactor=screen.height<4*k.dpi||screen.width<4*k.dpi?"phone":"tablet");window.removeEventListener&&window.removeEventListener("focus",b._BubbledFocus,!0);"manual"!=b.options.attachType&&b._AttachToControls(document);b.initialized=1;f.prepare();i.prepareWait();b.addKeyboardArray(b.deferredStubs);for(c=0;c<b.deferredKRS.length;c++)b.KRS(b.deferredKRS[c]);
b.initializeUI();for(c=0;c<b.deferredKR.length;c++)b.KR(b.deferredKR[c]);b.fullInitialization&&(b.appliedFont=b.baseFont=b.getBaseFont(),b.listInputs(),k.touchable&&b.handleRotationEvents(),k.touchable?b.setupTouchDevice():b.setupDesktopPage(),6==i._GetIEVersion()&&(f.shim=i.createShim()),k.touchable&&(f._Box.ontouchend=function(a){a.stopPropagation()},c=document.createElement("DIV"),d=c.style,d.width="100%",d.height=screen.width/2+"px",document.body.appendChild(c),"Android"==k.OS&&0<navigator.userAgent.indexOf("Chrome")?
(b.hideOskWhileScrolling=function(a){if(typeof f._Box!="undefined"&&typeof f._Box.style!="undefined"){h=a.target.parentNode;if(typeof h!="undefined"&&h!=null){if(h.className.indexOf("keymanweb-input")>=0||h.className.indexOf("kmw-key-")>=0)return;if(typeof h.parentNode!="undefined"){h=h.parentNode;if(h.className.indexOf("keymanweb-input")>=0||h.className.indexOf("kmw-key-")>=0)return}}f.hideNow()}},document.body.addEventListener("touchstart",b.hideOskWhileScrolling,!1)):(b.conditionallyHideOsk=function(){b.hideOnRelease&&
f.hideNow();b.hideOnRelease=false},b.hideOskIfOnBody=function(a){b.touchY=a.touches[0].screenY;b.hideOnRelease=true},b.cancelHideIfScrolling=function(a){var a=a.touches[0].screenY,d=b.touchY;if(a-d>5||d-a<5)b.hideOnRelease=false},document.body.addEventListener("touchstart",b.hideOskIfOnBody,!1),document.body.addEventListener("touchmove",b.cancelHideIfScrolling,!1),document.body.addEventListener("touchend",b.conditionallyHideOsk,!1))),f.shim&&document.body.appendChild(f.shim),document.selection&&!b.legacy&&
i.attachDOMEvent(document,"selectionchange",b._SelectionChange),"manual"!=b.options.attachType&&(document.attachEvent?document.attachEvent("onfocusin",b._IEFocusIn):document.addEventListener&&document.addEventListener("DOMNodeInserted",b._DOMNodeInserted,!0)),b.restoreCurrentKeyboard(),b.initialized=2)}};b.listInputs=function(){var a,c=[],d=document.getElementsByTagName("INPUT"),e=document.getElementsByTagName("TEXTAREA");for(a=0;a<d.length;a++)switch(d[a].type){case "text":case "search":case "email":case "url":0>
d[a].className.indexOf("kmw-disabled")&&c.push({ip:d[a],x:i._GetAbsoluteX(d[a]),y:i._GetAbsoluteY(d[a])})}for(a=0;a<e.length;a++)0>e[a].className.indexOf("kmw-disabled")&&c.push({ip:e[a],x:i._GetAbsoluteX(e[a]),y:i._GetAbsoluteY(e[a])});c.sort(function(a,b){return a.y!=b.y?a.y-b.y:a.x-b.x});d=[];for(a=0;a<c.length;a++)d.push(c[a].ip);b.sortedInputs=d};b.initializeUI=function(){"function"==typeof b.ui.initialize?(b.ui.initialize(),f._Show()):window.setTimeout(b.initializeUI,1E3)};b._SelPos=function(a){var c,
d=999>i._GetIEVersion();if(k.touchable)return b.getTextCaret(a);if(a._KeymanWebSelectionStart)return a._KeymanWebSelectionStart;if(a.setSelectionRange)return a.value.substr(0,a.selectionStart)._kmwLength();if((c=a.ownerDocument)&&(c=c.defaultView)&&c.getSelection&&"on"==a.ownerDocument.designMode.toLowerCase()){if(a=c.getSelection(),3==a.focusNode.nodeType)return a.focusNode.substringData(0,a.focusOffset)._kmwLength()}else if(d){if("string"==typeof a.value)return c=b.getInputSelection(a),a.value.substr(0,
c.start)._kmwLength();if(a=a.body?a:a.ownerDocument)c=a.selection;else return 0;a=c.createRange();a.moveStart("textedit",-1);return a.text._kmwLength()}return 0};b.getInputSelection=function(a){var b=0,d=0,e="",h,j=0;if("number"==typeof a.selectionStart&&"number"==typeof a.selectionEnd)b=a.selectionStart,d=a.selectionEnd;else if((h=document.selection.createRange())&&h.parentElement()==a)j=a.value.length,e=a.value.replace(/\r\n/g,"\n"),d=a.createTextRange(),d.moveToBookmark(h.getBookmark()),a=a.createTextRange(),
a.collapse(!1),-1<d.compareEndPoints("StartToEnd",a)?b=d=j:(b=-d.moveStart("character",-j),b+=e.slice(0,b).split("\n").length-1,-1<d.compareEndPoints("EndToEnd",a)?d=j:(d=-d.moveEnd("character",-j),d+=e.slice(0,d).split("\n").length-1));return{start:b,end:d}};b._DeadkeyResetMatched=function(){var a,c=b._DeadKeys;for(a=0;a<c.length;a++)c[a].matched=0};b._DeadkeyDeleteMatched=function(){var a,c=b._DeadKeys;for(a=0;a<c.length;a++)c[a].matched&&c.splice(a,1)};b._DeadkeyAdjustPos=function(a,c){var d,e=
b._DeadKeys;for(d=0;d<e.length;d++)e[d].p>a&&(e[d].p+=c)};b._SetTargDir=function(a){var c=null!=b._ActiveKeyboard&&b._ActiveKeyboard.KRTL?"rtl":"ltr";a&&(k.touchable?0==a.textContent.length&&(a.base.dir=a.dir=c,b.setTextCaret(a,1E4)):0==a.value.length&&(a.dir=c))};b._IEFocusIn=function(){var a=b._GetEventObject(null);a&&(a=a.srcElement,null!=a&&!b._IsAttached(a)&&("input"==a.tagName.toLowerCase()&&"text"==a.type.toLowerCase()||"textarea"==a.tagName.toLowerCase()||"iframe"==a.tagName.toLowerCase())&&
b.attachToControl(a))};b._DOMNodeInserted=function(a){a=a.target;null!=a&&1==a.nodeType&&b._AttachToControls(a)};b._ResetVKShift=function(){b._IsActivatingKeymanWebUI||f._UpdateVKShift&&f._UpdateVKShift(null,15,0)};b.addHotKey=b.addHotKey=function(a,c,d){for(var e=0;e<b._HotKeys.length;e++)if(b._HotKeys[e].Code==a&&b._HotKeys[e].Shift==c){b._HotKeys[e].Handler=d;return}b._HotKeys.push({Code:a,Shift:c,Handler:d})};b.removeHotKey=b.removeHotKey=function(a,c){for(var d=0;d<b._HotKeys.length;d++)if(b._HotKeys[d].Code==
a&&b._HotKeys[d].Shift==c){b._HotKeys.splice(d,1);break}};b._ProcessHotKeys=function(a){a||(a=window.event);if(a.keyCode)var c=a.keyCode;else if(a.which)c=a.which;else return 0;for(var d=(a.shiftKey?16:0)|(a.ctrlKey?32:0)|(a.altKey?64:0),e=0;e<b._HotKeys.length;e++)if(c==b._HotKeys[e].Code&&d==b._HotKeys[e].Shift)return b._HotKeys[e].Handler(),a.returnValue=0,a&&a.preventDefault&&a.preventDefault(),a.cancelBubble=!0,!1;return!0};i.attachDOMEvent(document,"keyup",b._ProcessHotKeys,!1);b.saveCurrentKeyboard=
function(a,b){i.saveCookie("KeymanWeb_Keyboard",{current:a+":"+b})};b.restoreCurrentKeyboard=function(){var a=b._KeyboardStubs,c,d=a.length;if(!(1>a.length)){c=b.getSavedKeyboard();var e=c.split(":"),e=c.split(":");2>e.length&&(e[1]="");for(c=0;c<d&&!(a[c].KI==e[0]&&(a[c].KLC==e[1]||""==e[1]));c++);if(c<d||null==b._ActiveKeyboard)b._SetActiveKeyboard(e[0],e[1],!1),b.doKeyboardChange(e[0],e[1])}};b.getSavedKeyboard=b.getSavedKeyboard=function(){var a=i.loadCookie("KeymanWeb_Keyboard");if("string"!=
typeof a.current)return"Keyboard_us:eng";var c,d=b._KeyboardStubs,e;for(c=0;c<d.length;c++)if(e=d[c].KI+":"+d[c].KLC,e==a.current)return e;for(c=0;c<d.length;c++)if(e=d[c].KI+":"+d[c].KLC,"Keyboard_us:eng"==e)return e;return 0<d.length?d[0].KI+":"+d[0].KLC:"Keyboard_us:eng"};i.attachDOMEvent(window,"focus",b._ResetVKShift,!1);i.attachDOMEvent(window,"blur",b._ResetVKShift,!1);String.kmwEnableSupplementaryPlane(!1)})();(function(){var b=window.tavultesoft.keymanweb,f={K_BKSP:8,K_TAB:9,K_ENTER:13,K_SHIFT:16,K_CONTROL:17,K_ALT:18,K_PAUSE:19,K_CAPS:20,K_ESC:27,K_SPACE:32,K_PGUP:33,K_PGDN:34,K_END:35,K_HOME:36,K_LEFT:37,K_UP:38,K_RIGHT:39,K_DOWN:40,K_SEL:41,K_PRINT:42,K_EXEC:43,K_INS:45,K_DEL:46,K_HELP:47,K_0:48,K_1:49,K_2:50,K_3:51,K_4:52,K_5:53,K_6:54,K_7:55,K_8:56,K_9:57,K_A:65,K_B:66,K_C:67,K_D:68,K_E:69,K_F:70,K_G:71,K_H:72,K_I:73,K_J:74,K_K:75,K_L:76,K_M:77,K_N:78,K_O:79,K_P:80,K_Q:81,K_R:82,K_S:83,K_T:84,K_U:85,
K_V:86,K_W:87,K_X:88,K_Y:89,K_Z:90,K_NP0:96,K_NP1:97,K_NP2:98,K_NP3:99,K_NP4:100,K_NP5:101,K_NP6:102,K_NP7:103,K_NP8:104,K_NP9:105,K_NPSTAR:106,K_NPPLUS:107,K_SEPARATOR:108,K_NPMINUS:109,K_NPDOT:110,K_NPSLASH:111,K_F1:112,K_F2:113,K_F3:114,K_F4:115,K_F5:116,K_F6:117,K_F7:118,K_F8:119,K_F9:120,K_F10:121,K_F11:122,K_F12:123,K_NUMLOCK:144,K_SCROLL:145,K_LSHIFT:160,K_RSHIFT:161,K_LCONTROL:162,K_RCONTROL:163,K_LALT:164,K_RALT:165,K_COLON:186,K_EQUAL:187,K_COMMA:188,K_HYPHEN:189,K_PERIOD:190,K_SLASH:191,
K_BKQUOTE:192,K_LBRKT:219,K_BKSLASH:220,K_RBRKT:221,K_QUOTE:222,K_oE2:226,K_LOPT:50001,K_ROPT:50002,K_NUMERALS:50003,K_SYMBOLS:50004,K_CURRENCIES:50005,K_UPPER:50006,K_LOWER:50007,K_ALPHA:50008,K_SHIFTED:50009,K_ALTGR:50010,K_TABBACK:50011,K_TABFWD:50012},i=[["0123456789",";=,-./`","[\\]'"],[")!@#$%^&*(",":+<_>?~",'{|}"']],k="K_BKQUOTE K_1 K_2 K_3 K_4 K_5 K_6 K_7 K_8 K_9 K_0 K_HYPHEN K_EQUAL K_* K_* K_* K_Q K_W K_E K_R K_T K_Y K_U K_I K_O K_P K_LBRKT K_RBRKT K_BKSLASH K_* K_* K_* K_A K_S K_D K_F K_G K_H K_J K_K K_L K_COLON K_QUOTE K_* K_* K_* K_* K_* K_oE2 K_Z K_X K_C K_V K_B K_N K_M K_COMMA K_PERIOD K_SLASH K_* K_* K_* K_* K_* K_SPACE".split(" "),
a=b.osk,g=b.util,c=g.device;a._Box=null;a._DivVKbd=null;a._DivVKbdHelp=null;a._Visible=0;a._Enabled=1;a._VShift=[];a._VKeySpans=[];a._VKeyDown=null;a._VKbdContainer=null;a._VOriginalWidth=1;a._BaseLayout="us";a._BaseLayoutEuro={};a._BaseLayoutEuro.se="\u00a71234567890+\u00b4~~~QWERTYUIOP\u00c5\u00a8'~~~ASDFGHJKL\u00d6\u00c4~~~~~<ZXCVBNM,.-~~~~~ ";a._BaseLayoutEuro.uk="`1234567890-=~~~QWERTYUIOP[]#~~~ASDFGHJKL;'~~~~~\\ZXCVBNM,./~~~~~ ";a.lgTimer=null;a.lgKey=null;a.hkKey=null;a.spaceBar=null;a.lgList=
null;a.frameColor="#ad4a28";a.keyPending=null;a.fontFamily="";a.fontSize="1em";a.layout=null;a.layers=null;a.layerId="default";a.nextLayer="default";a.layerIndex=0;a.currentKey="";a.subkeyDelayTimer=null;a.popupPending=!1;a.styleSheet=null;a.loadRetry=0;a.popupDelay=500;a.x=99;a.y=0;a.width=1;a.height=1;a.rowHeight=1;a.nRows=1;a.vpScale=1;a.closeButton=null;a.resizeIcon=null;a.resizing=0;a.pinImg=null;a.userPositioned=0;a.dfltX="";a.dfltY="";a.noDrag=!1;a.shim=null;a.keytip=null;a.touchY=0;a.addEventListener=
function(a,b){return g.addEventListener("osk."+a,b)};a._TitleBarInterior=function(){var d=g._CreateElement("DIV"),e=d.style;e.paddingLeft="2px";e.cursor="move";e.background="#ad4a28";e.font="8pt Tahoma,Arial,sans-serif";e=g._CreateElement("DIV");e.className="kmw-title-bar-actions";e.onmousedown=a._CancelMouse;var h=g._CreateElement("DIV");h.className="kmw-close-button";h.onmousedown=a._CancelMouse;h.onclick=function(){a._Hide(!0)};a.closeButton=h;e.appendChild(h);a.restorePosition=function(){a._Visible&&
(b._FocusLastActiveElement(),a.loadCookie(),a.userPositioned=!1,a.saveCookie(),a._Show(),a.doResizeMove());a.pinImg&&(a.pinImg.style.display="none");window.event&&(window.event.returnValue=!1)};h=a.pinImg=g._CreateElement("DIV");h.className="kmw-pin-image";h.title="Pin the On Screen Keyboard to its default location on the active text box";h.onclick=a.restorePosition;h.onmousedown=a._CancelMouse;h.style.display="none";c.touchable||e.appendChild(h);d.appendChild(e);h=b._TitleElement=g._CreateElement("SPAN");
h.className="kmw-title-bar-caption";h.innerHTML="Tavultesoft KeymanWeb";d.appendChild(h);return d};a.isEnabled=a.isEnabled=function(){return a._Enabled};a.isVisible=a.isVisible=function(){return a._Visible};a.getRect=a.getRect=function(){var b={};a._DivVKbd?(b.left=b.left=g._GetAbsoluteX(a._DivVKbd),b.top=b.top=g._GetAbsoluteY(a._DivVKbd),b.width=b.width=g._GetAbsoluteX(a._DivVKbdHelp)-g._GetAbsoluteX(a._DivVKbd)+a._DivVKbdHelp.offsetWidth,b.height=b.height=g._GetAbsoluteY(a._DivVKbdHelp)-g._GetAbsoluteY(a._DivVKbd)+
a._DivVKbdHelp.offsetHeight):(b.left=b.left=g._GetAbsoluteX(a._Box),b.top=b.top=g._GetAbsoluteY(a._Box),b.width=b.width=g._GetAbsoluteX(a._Box)+a._Box.offsetWidth,b.height=b.height=g._GetAbsoluteY(a._Box)+a._Box.offsetHeight);return b};a.setRect=a.setRect=function(b){if(!(null==a._Box||"desktop"!=c.formFactor)){var e=a._Box,h=e.style;"left"in b&&(h.left=b.left-g._GetAbsoluteX(e)+e.offsetLeft+"px",a.dfltX=h.left);"top"in b&&(h.top=b.top-g._GetAbsoluteY(e)+e.offsetTop+"px",a.dfltY=h.top);if(null!=a._DivVKbd){var j=
a._DivVKbd,h=j.style;if("width"in b){var f=b.width-(e.offsetWidth-j.offsetWidth);f<0.2*screen.width&&(f=0.2*screen.width);f>0.9*screen.width&&(f=0.9*screen.width);h.width=f+"px";a.width=f}"height"in b&&(e=b.height-(e.offsetHeight-j.offsetHeight),e<0.1*screen.height&&(e=0.1*screen.height),e>0.5*screen.height&&(e=0.5*screen.height),h.height=e+"px",h.fontSize=e/8+"px",a.height=e);"nosize"in b&&a.resizeIcon&&(a.resizeIcon.style.display=b.nosize?"none":"block")}"nomove"in b&&(a.noDrag=b.nomove,a.pinImg&&
(a.pinImg.style.display=b.nomove||!a.userPositioned?"none":"block"));a.saveCookie()}};a.getPos=function(){var b=a._Box,e={};e.left=a._Visible?b.offsetLeft:a.x;e.top=a._Visible?b.offsetTop:a.y;return e};a.setPos=a.setPos=function(b){if(!("undefined"==typeof a._Box||c.touchable)){if(a.userPositioned){var e=b.left,b=b.top;"undefined"!=typeof e&&(e<-0.8*a._Box.offsetWidth&&(e=-0.8*a._Box.offsetWidth),a.userPositioned&&(a._Box.style.left=e+"px",a.x=e));"undefined"!=typeof b&&(0>b&&(b=0),a.userPositioned&&
(a._Box.style.top=b+"px",a.y=b))}a.pinImg&&(a.pinImg.style.display=a.userPositioned?"block":"none")}};a._VKeyGetTarget=function(a){a=b._GetEventObject(a);if(!a)return null;if(a.target)a=a.target;else if(a.srcElement)a=a.srcElement;else return null;3==a.nodeType&&(a=a.parentNode);"SPAN"==a.tagName&&(a=a.parentNode);return a};a.touchKey=function(d,e){e.preventDefault();e.cancelBubble=!0;"function"==typeof e.stopImmediatePropagation?e.stopImmediatePropagation():"function"==typeof e.stopPropagation&&
e.stopPropagation();if(!("object"==typeof e.touches&&1<e.touches.length)){a.touchY="object"==typeof e.touches?e.touches[0].clientY:e.clientY;var c=d.id.split("-")[1];"K_LOPT"==c||"K_ROPT"==c?(a.highlightKey(d,!0),window.setTimeout(function(){a.clickKey(d)},0)):"K_BKSP"==c?(a.highlightKey(d,!0),b.KO(1,b._LastActiveElement,""),a.deleting=!0,window.setTimeout(a.repeatDelete,500)):null==a.keyPending&&(a.keyPending=d,a.highlightKey(d,!0),null!=d.subKeys&&(a.subkeyDelayTimer=window.setTimeout(function(){a.showSubKeys(d)},
a.popupDelay)))}};a.repeatDelete=function(){a.deleting&&(b.KO(1,b._LastActiveElement,""),window.setTimeout(a.repeatDelete,200))};a.highlightKey=function(b,e,c){var g=b.className,f=2<arguments.length?" "+arguments[2]:" kmw-key-touched";""!=g&&(0<=g.indexOf(f)?e||(b.className=g.replace(f,"")):e&&(b.className=g+f));a.showKeyTip(b,e)};a.moveOverKeys=function(b,e){e.preventDefault();e.cancelBubble=!0;"function"==typeof e.stopImmediatePropagation?e.stopImmediatePropagation():"function"==typeof e.stopPropagation&&
e.stopPropagation();if(null!=a.keyPending){var c="object"==typeof e.touches?e.touches[0].clientX:e.clientX,j="object"==typeof e.touches?e.touches[0].clientY:e.clientY,f=g._GetAbsoluteX(b),l=g._GetAbsoluteY(b),i=f+b.offsetWidth,k=l+b.offsetHeight,n=b.id.split("-")[1];"K_LOPT"!=n&&"K_ROPT"!=n&&a.highlightKey(b,c>f&&c<i&&j>l&&j<k);a.highlightSubKeys(b,c,j)}};a.showSubKeys=function(b){if(null!=a.keyPending){var e=document.createElement("DIV"),c,j,f,l,i,k;e.id="kmw-popup-keys";c=e.style;c.bottom=parseInt(b.style.bottom,
10)+parseInt(b.style.height,10)+10+"px";c.fontFamily=a.fontFamily;c.fontSize=g.getStyleValue(b,"font-size");c.visibility="hidden";var n=b.subKeys.length,q,p;q=Math.min(Math.ceil(n/9),2);p=Math.ceil(n/q);1<q&&(c.width=p*b.offsetWidth+5*p+"px");for(c=0;c<n;c++)j=b.subKeys[c],i=document.createElement("DIV"),i.className="kmw-key-square-ex",i.keyId=j.id,f=i.style,l=Math.floor(c/p),1<q&&0<l&&(f.marginTop="5px"),i.width="undefined"!=typeof j.width?f.width=parseInt(j.width,10)*b.offsetWidth/100+"px":f.width=
b.offsetWidth+"px",f.height=b.offsetHeight+"px",k=document.createElement("DIV"),a.setButtonClass(j,k),k.id="string"==typeof j.layer&&""!=j.layer?"popup-"+j.layer+"-"+j.id:"popup-default-"+j.id,"string"==typeof j.nextlayer&&""!=j.nextlayer&&(k.nextLayer=j.nextlayer),l=k.style,l.height=f.height,l.width=f.width,l.position="absolute",f=g._CreateElement("SPAN"),f.className="kmw-key-text",null==j.text||""==j.text?(f.innerHTML="\u00a0","string"==typeof j.id&&/^U_[0-9A-F]{4}$/i.test(j.id)&&(f.innerHTML=String.fromCharCode(parseInt(j.id.substr(2),
16)))):f.innerHTML=j.text,l=f.style,l.fontSize=a.fontSize,"string"==typeof j.font&&""!=j.font&&(l.fontFamily=j.font),"string"==typeof j.fontsize&&0!=j.fontsize&&(l.fontSize=j.fontsize),k.appendChild(f),i.appendChild(k),e.appendChild(i);a.registerPopup(b)||(a._Box.appendChild(e),c=e.style,n=g._GetAbsoluteX(b)+0.5*(b.offsetWidth-e.offsetWidth),f=(g.landscapeView()?screen.height:screen.width)-e.offsetWidth,n>f&&(n=f),0>n&&(n=0),c.left=n+"px",f=document.createElement("DIV"),f.className="arrow-border",
l=f.style,n=g._GetAbsoluteX(b)+0.5*b.offsetWidth-16,q=e.offsetTop+e.offsetHeight-1,l.left=n+"px",l.top=q+"px",b=document.createElement("DIV"),b.className="arrow-content",l=b.style,l.left=n+1+"px",l.top=q-1+"px",f.appendChild(b),e.appendChild(f),c.visibility="visible")}};a.getVKDictionaryCode=function(a){if(!b._ActiveKeyboard.VKDictionary){var e=[];if("string"==typeof b._ActiveKeyboard.KVKD)for(var c=b._ActiveKeyboard.KVKD.split(" "),g=0;g<c.length;g++)e[c[g]]=g+256;b._ActiveKeyboard.VKDictionary=
e}return(a=b._ActiveKeyboard.VKDictionary[a])?a:0};a.clickKey=function(d){var e=b._LastActiveElement,c,g,r,l=d.id.split("-");if(2>l.length)return!0;"popup"==l[0]&&l.splice(0,1);if(null!=e){var m=l[0],l=l[1];c=g=a.getModifierState(a.layerId);"undefined"!=typeof d.key&&(c=d.key.nextlayer);null==b._ActiveElement&&(b._ActiveElement=e);switch(l){case "K_LSHIFT":case "K_RSHIFT":case "K_SHIFT":return a.highlightKey(d,!1),a.updateLayer(c?c:"shift"),a._Show(),!0;case "K_LCONTROL":case "K_RCONTROL":case "K_LCTRL":case "K_RCTRL":case "K_CTRL":return a.highlightKey(d,
!1),a.updateLayer(c?c:"ctrl"),a._Show(),!0;case "K_LALT":case "K_RALT":case "K_ALT":return a.highlightKey(d,!1),a.updateLayer(c?c:"alt"),a._Show(),!0;case "K_ALTGR":return a.highlightKey(d,!1),a.updateLayer(c?c:"ctrlalt"),a._Show(),!0;case "K_LOPT":case "K_ROPT":return a.optionKey(d,l,!0),!0;case "K_CURRENCIES":case "K_NUMERALS":case "K_SHIFTED":case "K_UPPER":case "K_LOWER":case "K_SYMBOLS":return a.highlightKey(d,!1),a.updateLayer(c?c:"default"),a._Show(),!0}a.highlightKey(d,!1);"K_SPACE"!=l&&(r=
d.childNodes[0].innerHTML);c=e._KeymanWebSelectionStart;g=e._KeymanWebSelectionEnd;r=b._Selection;b._IsActivatingKeymanWebUI=1;b._IgnoreNextSelChange=100;b._FocusLastActiveElement();b._IsMozillaEditableIframe(e,0)&&(e=e.documentElement);document.selection&&null!=r&&r.select();e._KeymanWebSelectionStart=c;e._KeymanWebSelectionEnd=g;b._IgnoreNextSelChange=0;b._CachedSelectionStart=null;b._DeadkeyDeleteMatched();c={Ltarg:e,Lmodifiers:0,Lcode:f[l],LisVirtualKey:!0};"U_"==l.substr(0,2)&&(c.LisVirtualKey=
!1);"undefined"==typeof c.Lcode&&(c.Lcode=a.getVKDictionaryCode(l),!c.Lcode&&"U_"==l.substr(0,2)&&(g=parseInt(l.substr(2),16),isNaN(g)||(c.Lcode=g)));g="undefined"==typeof d.key?null:d.key.layer;g=null==g?a.getModifierState(m):a.getModifierState(g);c.Lmodifiers=16*g;b._ActiveKeyboard&&b._ActiveKeyboard.KM?(r=d.firstChild.firstChild.wholeText,c.LisVirtualKey=!1,c.LisVirtualKeyCode=!1,c.vkCode=c.Lcode,32!=c.Lcode&&(c.Lcode="string"==typeof r&&""!=r?r.charCodeAt(0):0,160==c.Lcode&&(c.Lcode=0)),c.Lmodifiers=
0):c.vkCode=c.Lcode;"undefined"==typeof b._ActiveKeyboard.KM&&(c.Lcode=b._USKeyCodeToCharCode(c),c.LisVirtualKey=!1);if(!b._ActiveKeyboard||0!=c.Lcode&&!b._ActiveKeyboard.gs(e,c))switch(c.Lcode=c.vkCode,l){case "K_BKSP":b.KO(1,b._LastActiveElement,"");break;case "K_TAB":b.moveToNext("shift"==a.layerId);break;case "K_TABBACK":b.moveToNext(!0);break;case "K_TABFWD":b.moveToNext(!1);break;case "K_ENTER":"TEXTAREA"==e.nodeName||"undefined"!=typeof e.base&&"TEXTAREA"==e.base.nodeName?b.KO(0,e,"\n"):"INPUT"==
e.nodeName&&("search"==e.type||"submit"==e.type)?e.form.submit():"undefined"!=typeof e.base&&("search"==e.base.type||"submit"==e.base.type)?(e.base.disabled=!1,e.base.form.submit()):b.moveToNext(!1);break;case "K_SPACE":b.KO(0,e," ");break;default:m=0,c=c.Lcode,"U_"==l.substr(0,2)&&32<c&&!(127<c&&!1>c)?m=String.fromCharCode(c):48<=c&&57>=c?m=i[g][0][c-48]:65<=c&&90>=c?m=String.fromCharCode(c+(g?0:32)):186<=c&&192>=c?m=i[g][1][c-186]:219<=c&&222>=c&&(m=i[g][2][c-219]),m&&b.KO(0,e,m)}"undefined"!=typeof d.key&&
null!==d.key.nextlayer?a.nextLayer=d.key.nextlayer:"undefined"!=typeof d.nextLayer&&null!==d.nextLayer&&(a.nextLayer=d.nextLayer);a.nextLayer!=a.layerId&&(a.layerId=a.nextLayer,a._Show());e._KeymanWebSelectionStart=null;e._KeymanWebSelectionEnd=null}b._IsActivatingKeymanWebUI=0;return!0};a.getLayerId=function(a){var b="";if(0==a)return"default";a&1&&(b="shift");a&4&&(b="alt"+b);a&2&&(b="ctrl"+b);return b};a.getModifierState=function(a){var b=0;0<=a.indexOf("shift")&&(b+=1);0<=a.indexOf("ctrl")&&(b+=
2);0<=a.indexOf("alt")&&(b+=4);return b};a.updateLayer=function(b){var e=a.layerId,c;c=b.replace("shift","");c=c.replace("ctrl","");c=c.replace("alt","");if("default"==a.layerId||"numeric"==a.layerId||"symbol"==a.layerId||"currency"==a.layerId||""!=c)e=b;else{c=a.getModifierState(e);e=e.replace("shift","");e=e.replace("ctrl","");e=e.replace("alt","");switch(b){case "shift":c^=1;break;case "ctrl":c^=2;break;case "alt":c^=4;break;default:e=b}"default"!=e&&(c&1&&(e="shift"+e),c&2&&(e="ctrl"+e),c&4&&
(e="alt"+e))}""==e&&(e="default");a.layerId=e.replace("altctrl","ctrlalt");for(b=0;b<a.layers.length;b++)if(a.layerId==a.layers[b].id)return;a.layerId="default"};a.showLanguage=function(){var d="",e="";b._ActiveStub?(d=b._ActiveStub.KL,e=b._ActiveStub.KN):d=b._ActiveLanguage?b._ActiveLanguage.KN:"English";try{var c=a.spaceBar.firstChild.firstChild;c.parentNode.className="undefined"==typeof c.parentNode.className||""==c.parentNode.className?"kmw-spacebar":c.parentNode.className+" kmw-spacebar";c.className=
"kmw-spacebar-caption";e=e.replace(/\s*keyboard\s*/i,"");c.innerHTML=e==d?d:d+" ("+e+")"}catch(g){}};a.releaseKey=function(b,e){e.preventDefault();e.cancelBubble=!0;"function"==typeof e.stopImmediatePropagation?e.stopImmediatePropagation():"function"==typeof e.stopPropagation&&e.stopPropagation();a.subkeyDelayTimer&&window.clearTimeout(a.subkeyDelayTimer);a.lgTimer&&window.clearTimeout(a.lgTimer);a.subkeyDelayTimer=a.lgTimer=null;e.target.id&&0<=e.target.id.indexOf("K_BKSP")?a.highlightKey(e.target,
!1):e.target.parentNode.id&&0<=e.target.parentNode.id.indexOf("K_BKSP")&&a.highlightKey(e.target.parentNode,!1);a.deleting=!1;a.optionKey(e,b.id,!1);if(null!==a.keyPending){var c=null;"undefined"!=typeof e.changedTouches&&0<e.changedTouches.length?c=document.elementFromPoint(e.changedTouches[0].clientX,e.changedTouches[0].clientY):"undefined"!=typeof e.target&&(c=e.target);null!=c&&((""==c.id&&(c=c.parentNode),c==a.keyPending||"kmw-popup-keys"==c.parentNode.parentNode.id)?(a.clickKey(c),a.keyPending=
null):a.highlightKey(a.keyPending,!1));a.keyPending=null}c=document.getElementById("kmw-popup-keys");null!=c&&c.parentNode.removeChild(c)};a.showLanguageMenu=function(){var d=b._KeyboardStubs;if(!(1>d.length)){var e=a.lgList=g._CreateElement("DIV");a.lgList.id="kmw-language-menu";e.shim=g._CreateElement("DIV");e.shim.id="kmw-language-menu-background";e.shim.addEventListener("touchstart",function(b){b.preventDefault();a.hideLanguageList();if(2<b.touches.length){var d=b.touches[1].pageX,b=b.touches[1].pageY;
d>a.spaceBar.offsetLeft&&(d<a.spaceBar.offsetLeft+a.spaceBar.offsetWidth&&b>a.spaceBar.offsetTop&&b<a.spaceBar.offsetTop+a.spaceBar.offsetHeight)&&a.showBuild()}},!1);document.body.appendChild(e.shim);var h=g._CreateElement("DIV"),j=h.style,f=g._CreateElement("DIV");h.id="kmw-menu-scroll-container";f.id="kmw-menu-scroller";"WebkitOverflowScrolling"in j&&(j.WebkitOverflowScrolling="touch");h.appendChild(f);e.appendChild(h);var i,m,j=g._CreateElement("DIV");j.id="kmw-menu-index";for(i=1;26>=i;i++)m=
g._CreateElement("P"),m.innerHTML=String.fromCharCode(i+64),j.appendChild(m);j.ontouchstart=function(b){a.scrollToLanguage(b,h,f)};e.appendChild(j);e.addEventListener("scroll",function(){a.lgList.scrolling=true},!1);h.addEventListener("scroll",function(){if(h.scrollTop<1)h.scrollTop=1;if(h.scrollTop>h.scrollHeight-h.offsetHeight-1)h.scrollTop=h.scrollHeight-h.offsetHeight-1},!1);a.lgList.activeLgNo=a.addLanguagesToMenu(f,d);a.lgList.visibility="hidden";document.body.appendChild(a.lgList);"Android"==
c.OS&&"devicePixelRatio"in window&&(a.lgList.style.fontSize=2/window.devicePixelRatio+"em");if("Android"==c.OS&&("tablet"==c.formFactor&&"devicePixelRatio"in window)&&(i=parseInt(g.getStyleValue(e,"width"),10),d=e.style,isNaN(i)||(d.width=d.maxWidth=2*i/window.devicePixelRatio+"px"),i=parseInt(g.getStyleValue(h,"width"),10),d=h.style,isNaN(i)||(d.width=d.maxWidth=2*i/window.devicePixelRatio+"px"),i=parseInt(g.getStyleValue(f,"width"),10),d=f.style,!isNaN(i)))d.width=d.maxWidth=2*i/window.devicePixelRatio+
"px";a.adjustLanguageMenu(0);d=Math.floor(e.offsetHeight/26);m=Math.round(100*d/(j.childNodes[1].offsetTop-j.childNodes[0].offsetTop))/100;var k=0.6<m?1:2;1.25<m&&(m=1.25);for(i=0;26>i;i++){var n=j.childNodes[i].style;2==k&&1==i%2?n.display="none":(n.fontSize=m*k+"em",n.lineHeight=d*k+"px")}i=h.offsetWidth;h.scrollHeight>h.offsetHeight+3?i+=j.offsetWidth:j.style.display="none";e.style.width=i+"px";a.lgList.visibility="";e=f.firstChild.offsetHeight*a.lgList.activeLgNo+1;h.scrollTop=e;h.scrollTop<e&&
(h.scrollTop=h.scrollHeight-h.offsetHeight);h.scrollTop>h.scrollHeight-h.offsetHeight-1&&(h.scrollTop=h.scrollHeight-h.offsetHeight-1)}};a.adjustLanguageMenu=function(b){var e=a.lgList,h=e.firstChild,j=h.firstChild,f=0,i=e.style,e=e.childNodes[1],m=window.innerHeight-a.lgKey.offsetHeight-16,b=(j.childNodes.length+b-1)*j.firstChild.firstChild.offsetHeight;"iOS"==c.OS&&("phone"==c.formFactor?(f=g.landscapeView()?36:0,m=(window.innerHeight-f-16)*g.getViewportScale()):"tablet"==c.formFactor&&(f=g.landscapeView()?
16:0,m-=f));i.left=g._GetAbsoluteX(a.lgKey)+"px";b>m&&(b=m);i.height=b+"px";i.top=g._GetAbsoluteY(a._Box)+a._Box.offsetHeight-b+window.pageYOffset-6+"px";i.bottom="auto";e.style.height=h.style.height=i.height};a.scrollToLanguage=function(a,b,c){a.stopImmediatePropagation();a.preventDefault();if("P"==a.touches[0].target.nodeName){var g,f,i=0,a=a.touches[0].target.innerHTML.charCodeAt(0),m=c.childNodes;try{for(g=0;g<m.length-1&&!(f=m[g].firstChild.innerHTML.toUpperCase().charCodeAt(0),f>=a);g++);}catch(k){}try{i=
c.firstChild.offsetHeight*g+1,b.scrollTop=i}catch(n){i=0}try{if(b.scrollTop<i&&(b.scrollTop=b.scrollHeight-b.offsetHeight),b.scrollTop>b.scrollHeight-b.offsetHeight-1)b.scrollTop=b.scrollHeight-b.offsetHeight-1}catch(q){}}};a.addLanguagesToMenu=function(d,e){var h=e.length,j,f,i,m=[];for(f=0;f<h;f++)i=e[f].KL,-1==m.indexOf(i)&&m.push(i);m.sort();var k=Math.round(100/g.getViewportScale())/100,n,q,p;i=-1;for(j=0;j<m.length;j++){n=g._CreateElement("DIV");n.className="kbd-list-closed";q=g._CreateElement("P");
q.kList=[];for(f=0;f<h;f++)e[f].KL==m[j]&&q.kList.push(e[f]);"iOS"==c.OS&&(q.style.fontSize=k+"em");n.appendChild(q);d.appendChild(n);m[j]==b._ActiveStub.KL&&(i=j);if(1<q.kList.length){q.className="kbd-list";q.innerHTML=m[j]+"...";q.scrolled=!1;q.ontouchend=function(b){b.preventDefault();b.stopPropagation();b.target.scrolled?b.target.scrolled=false:this.parentNode.className=this.parentNode.className=="kbd-list-closed"?"kbd-list-open":"kbd-list-closed";a.adjustLanguageMenu(this.parentNode.className==
"kbd-list-closed"?0:this.kList.length)};q.ontouchstart=function(a){a.stopPropagation()};q.ontouchmove=function(a){a.target.scrolled=true;a.stopPropagation()};for(f=0;f<q.kList.length;f++)p=g._CreateElement("P"),p.className="kbd-list-entry","iOS"==c.OS&&(p.style.fontSize=k+"em"),a.addKeyboardToMenu(q.kList[f],p,!1),n.appendChild(p)}else q.innerHTML=m[j],q.className="kbd-single-entry",a.addKeyboardToMenu(q.kList[0],q,!0);j==i&&(q.className+=" current")}h=g._CreateElement("DIV");h.id="kmw-menu-footer";
h.ontouchstart=h.ontouchmove=h.ontouchend=function(a){a.preventDefault();a.stopPropagation()};d.appendChild(h);return i};a.addKeyboardToMenu=function(d,e,c){e.kn=d.KI;e.kc=d.KLC;e.innerHTML=c?d.KL:d.KN.replace(" Keyboard","");e.onmspointerdown=e.ontouchstart=function(b){b.stopPropagation();0>=this.className.indexOf("selected")&&(this.className+=" selected");a.lgList.scrolling=!1;a.lgList.y0=b.touches[0].pageY;return!0};e.onmspointermove=e.ontouchmove=function(b){b.stopImmediatePropagation();var d=
a.lgList.childNodes[0],e=d.scrollHeight-d.offsetHeight,c=b.touches[0].pageY,h=c-a.lgList.y0;if(0>h)d.scrollTop>=e-1&&(b.preventDefault(),a.lgList.y0=c);else if(0<h)2>d.scrollTop&&(b.preventDefault(),a.lgList.y0=c);else return;if(-5>h||5<h)a.lgList.scrolling=!0,this.className=this.className.replace(/\s*selected/,""),a.lgList.y0=c;return!0};e.onmspointerout=e.ontouchend=function(d){d.preventDefault();"undefined"!=typeof d.stopImmediatePropagation?d.stopImmediatePropagation():d.stopPropagation();a.lgList.scrolling?
this.className=this.className.replace(/\s*selected/,""):(b.focusing=!0,b.focusTimer=window.setTimeout(function(){b.focusing=!1},1E3),a.lgList.style.display="none",b._SetActiveKeyboard(this.kn,this.kc,!0),b.doKeyboardChange(this.kn,this.kc),b._FocusLastActiveElement(),a.hideLanguageList(),a._Show());return!0}};a.hideLanguageList=function(){a.lgList&&(a.highlightKey(a.lgKey.firstChild,!1),a.lgList.style.visibility="hidden",window.setTimeout(function(){document.body.removeChild(a.lgList.shim);document.body.removeChild(a.lgList);
a.lgList=null},500))};a._UpdateVKShift=function(b,e,c){var g=0,g=b?b.Lmodifiers/16:c?g|e:g&~e;a.layerId=a.getLayerId(g);a._Visible&&a._Show();return!0};a._CancelMouse=function(a){(a=b._GetEventObject(a))&&a.preventDefault&&a.preventDefault();a&&(a.cancelBubble=!0,a.returnValue=!1);return!1};a.showLayer=function(d){if(b._ActiveKeyboard)for(var e=0;e<a.layers.length;e++)if(a.layers[e].id==d)return a.layerId=d,a._Show(),!0;return!1};a.getHeight=function(){if("function"==typeof b.getOskHeight)return b.getOskHeight();
var a=Math.floor(Math.min(screen.availHeight,screen.availWidth)/2);if("phone"==c.formFactor)var e=Math.min(screen.height,screen.width),h=Math.max(screen.height,screen.width),a=g.portraitView()?Math.floor(Math.max(screen.availHeight,screen.availWidth)/3):a*(h/e)/1.6;"iOS"==c.OS&&(a/=g.getViewportScale());"Android"==c.OS&&"phone"==c.formFactor&&"devicePixelRatio"in window&&/Firefox|Chrome|OPR/.test(navigator.userAgent)&&(a*=window.devicePixelRatio);return a};a.getWidth=function(){if("function"==typeof b.getOskWidth)return b.getOskWidth();
var a=screen.width;if("Android"==c.OS)try{a=document.documentElement.clientWidth}catch(e){a=screen.availWidth}return a};a.mouseOverMouseDownHandler=function(b){var e=g.eventTarget(b);null!==e&&(("SPAN"==e.nodeName&&(e=e.parentNode),"mousedown"==g.eventType(b))?(a.currentKey=e.id,a._CancelMouse(b),a.highlightKey(e,!0)):e.id==a.currentKey&&a.highlightKey(e,!0))};a.mouseUpMouseOutHandler=function(b){var e=g.eventTarget(b);if(null!==e&&("SPAN"==e.nodeName&&(e=e.parentNode),a.highlightKey(e,!1),"mouseup"==
g.eventType(b)))e.id==a.currentKey&&a.clickKey(e),a.currentKey=""};a.mspointerdownHandler=function(b){a.touchKey(this,b)};a.mspointerupHandler=function(b){a.releaseKey(this,b)};a.mspointermoveHandler=function(b){a.moveOverKeys(this,b)};a.deviceDependentLayout=function(b,e){var h=g._CreateElement("DIV"),j=h.style,i=0;h.className="kmw-key-layer-group";switch(e){case "phone":case "tablet":i=a.getHeight(),j.height=i+"px"}if(null==b)return h;j.fontSize="undefined"==typeof b.fontsize||null==b.fontsize?
"1em":b.fontsize;a.fontSize=j.fontSize;var l,m,k,n,q,p,A,x,t,o,w,B,u,y;k=b.layer;var F={text:""};F.fontsize=j.fontSize;F.width="100";F.pad="5";F.sp="0";F.layer=null;F.nextlayer=null;for(var H=/\*\w+\*/,i=0;i<k.length;i++){n=k[i];p=n.row;for(l=p.length;0<l&&!(0<p[l-1].key.length);l--);l<p.length&&p.splice(l-p.length,p.length-l)}A=100/p.length;"desktop"==e&&(A=100/p.length);var D,E;"desktop"==e?(D=function(a){return a+"%"},E=100):(D=function(a){return Math.round(a)+"px"},E=a.getWidth());for(i=0;i<k.length;i++){n=
k[i];n.aligned=!1;q=g._CreateElement("DIV");p=q.style;q.className="kmw-key-layer";p.display=0==i?"block":"none";p.height=j.height;p.fontFamily="font"in b?b.font:"";q.layer=q.nextLayer=n.id;"string"==typeof n.nextlayer&&(q.nextLayer=n.nextlayer);p=n.row;var C=0;for(l=0;l<p.length;l++){x=0;m=p[l];t=m.key;for(m=0;m<t.length;m++)if(o=t[m],null==o)t.length-=1;else{var z;B="string"==typeof o.width&&""!=o.width?parseInt(o.width,10):100;if(isNaN(B)||0==B)B=100;o.width=B.toString();z="string"==typeof o.pad&&
""!=o.pad?parseInt(o.pad,10):5;if(isNaN(z)||0==z)z=5;o.pad=z.toString();x+=B+z}x>C&&(C=x)}C="desktop"==e?C+5:C+15;for(l=0;l<p.length;l++){x=g._CreateElement("DIV");x.className="kmw-key-row";x.onmousedown=g.mouseDownPreventDefaultHandler;m=p[l];B=x.style;B.maxHeight=B.height=A+"%";t=m.key;for(m=0;m<t.length;m++){o=t[m];for(var G in F)"string"!=typeof o[G]&&(o[G]=F[G]);switch(o.sp){case "1":H.test(o.text)||(o.sp="3");break;case "2":H.test(o.text)||(o.sp="4")}}for(m=z=0;m<t.length-1;m++)o=parseInt(t[m].width,
10)*E/C,t[m].widthpc=o,w=parseInt(t[m].pad,10)*E/C,t[m].padpc=w,z+=w+o;z+=15*E/C;1==t.length&&0>parseInt(t[0].pad,10)?(o=parseInt(t[0].width,10)*E/C,t[0].widthpc=o,z+=o,t[0].padpc=E-z):0<t.length&&(m=t.length-1,w=parseInt(t[m].pad,10)*E/C,t[m].padpc=w,z+=w,t[m].widthpc=E-z);for(m=z=0;m<t.length;m++){o=t[m];w=g._CreateElement("DIV");w.keyId=o.id;w.className="kmw-key-square";u=w.style;"desktop"!=e&&(u.left=D(z+t[m].padpc));z=z+t[m].padpc+t[m].widthpc;w.width=u.width=D(o.widthpc);"desktop"!=e?(u.bottom=
B.bottom,u.height=B.height):u.marginLeft=D(o.padpc);y=g._CreateElement("DIV");a.setButtonClass(o,y);c.touchable&&(y.style.left=u.left,y.style.width=u.width);u=null;if(b.keyLabels||"desktop"==e){var v=f[o.id];switch(v){case 186:v=59;break;case 187:v=61;break;case 188:v=44;break;case 189:v=45;break;case 190:v=46;break;case 191:v=47;break;case 192:v=96;break;case 219:v=91;break;case 220:v=92;break;case 221:v=93;break;case 222:v=39;break;default:if(48>v||90<v)v=0}0<v&&(u=g._CreateElement("DIV"),u.className=
"kmw-key-label",u.innerHTML=String.fromCharCode(v),w.appendChild(u))}y.id=n.id+"-"+o.id;y.key=o;if("undefined"!=typeof o.sk&&null!=o.sk){v=y.subKeys=o.sk;for(u=0;u<v.length;u++)if("1"==v[u].sp||"2"==v[u].sp)v[u].text=a.renameSpecialKey(v[u].text)}else y.subKeys=null;"ontouchstart"in window?(g.attachDOMEvent(y,"touchstart",function(b){a.touchKey(this,b)}),g.attachDOMEvent(y,"touchend",function(b){a.releaseKey(this,b)}),g.attachDOMEvent(y,"touchmove",function(b){a.moveOverKeys(this,b)}),y.onclick=function(a){a.preventDefault();
a.stopPropagation()}):c.touchable&&"Windows"==c.OS?(y.style.msTouchAction="none",y.onmspointerdown=a.mspointerdownHandler,y.onmspointerup=a.mspointerupHandler,y.onmspointermove=a.mspointermoveHandler):(y.onmouseover=y.onmousedown=a.mouseOverMouseDownHandler,y.onmouseup=y.onmouseout=a.mouseUpMouseOutHandler);u=g._CreateElement("SPAN");v=u.style;null==o.text||""==o.text?(u.innerHTML="\u00a0","string"==typeof o.id&&/^U_[0-9A-F]{4}$/i.test(o.id)&&(u.innerHTML=String.fromCharCode(parseInt(o.id.substr(2),
16)))):u.innerHTML=o.text;u.className="kmw-key-text";if("1"==o.sp||"2"==o.sp)u.innerHTML=a.renameSpecialKey("*Tab*"==o.text&&1==i?"*TabLeft*":o.text);"font"in o&&(v.fontFamily=o.font);"fontsize"in o&&(v.fontSize=o.fontsize);y.appendChild(u);w.appendChild(y);"undefined"!=typeof o.sk&&null!=o.sk&&(o=g._CreateElement("DIV"),o.className="kmw-key-popup-icon",w.appendChild(o));x.appendChild(w)}q.appendChild(x)}h.appendChild(q)}return h};a.renameSpecialKey=function(a){for(var b="*Shift* *Enter* *Tab* *BkSp* *Menu* *Hide* *Alt* *Ctrl* *Caps* *ABC* *abc* *123* *Symbol* *Currency* *Shifted* *AltGr* *TabLeft*".split(" "),
c=[8,5,6,4,11,10,25,1,3,16,17,19,21,20,8,2,7],g=0;g<b.length;g++)if(a==b[g])return String.fromCharCode(57344+c[g]);return a};a.setButtonClass=function(b,e){var c=0,f="default shift shift-on special special-on deadkey blank hidden".split(" ");"string"==typeof b.dk&&"1"==b.dk&&(c=8);"string"==typeof b.sp&&(c=parseInt(b.sp,10));if(0>c||10<c)c=0;e.className=4<a.layout.layer[0].row.length&&"phone"==g.device.formFactor?"kmw-key kmw-5rows kmw-key-"+f[c]:"kmw-key kmw-key-"+f[c]};a.buildDefaultLayout=function(a,
b){var c;c=b;var f=window.dfltLayout;"object"!=typeof f[c]&&(c="desktop");c=g.deepCopy(f[c]);var i=c.layer,l=a.BK,m=a.K102,s,n,q,p,A;q=/\*\w+\*/;for(var x="default shift ctrl ctrlshift alt altshift ctrlalt ctrlaltshift".split(" "),f=0;8>f;f++){0<f&&(i[f]=g.deepCopy(i[0]));i[f].id=x[f];i[f].nextlayer=x[f];for(s=0;s<i[f].row.length;s++){n=i[f].row[s];A=n.key;for(n=0;n<A.length;n++)switch(p=A[n],p.id){case "K_SHIFT":case "K_LSHIFT":case "K_RSHIFT":1==(f&1)&&(p.sp="2");"desktop"!=b&&0<f&&(p.nextlayer=
"default");break;case "K_CONTROL":case "K_LCTRL":case "K_LCONTROL":case "K_RCTRL":case "K_RCONTROL":2==(f&2)&&(p.sp="2");break;case "K_ALT":case "K_LALT":case "K_RALT":4==(f&4)&&(p.sp="2")}}if("undefined"==typeof m||!m)for(s=0;s<i[f].row.length;s++)for(n=0;n<i[f].row[s].key.length;n++)"K_oE2"==i[f].row[s].key[n].id&&("desktop"==b?(i[f].row[s].key.splice(n,1),i[f].row[s].key[0].width="200"):i[f].row[s].key[n].sp="10")}for(f=0;f<i.length;f++){var t=i[f],o,w=null,B="",m=t.row;for(s=0;s<m.length;s++){A=
m[s].key;for(n=0;n<A.length;n++)p=A[n],o=k.indexOf(p.id),"undefined"!=typeof l&&(0<=o&&o+65*f<l.length)&&(p.text=l[o+65*f]),""==p.text&&("K_SPACE"!=p.id&&130>o+65*f)&&(p.text="`1234567890-=\u00a7~~qwertyuiop[]\\~~~asdfghjkl;'~~~~~?zxcvbnm,./~~~~~ ~!@#$%^&*()_+\u00a7~~QWERTYUIOP{}\\~~~ASDFGHJKL:\"~~~~~?ZXCVBNM<>?~~~~~ "[o+65*f]),"undefined"==typeof p.text&&(p.text=""),"K_SHIFT"==p.id&&(w=p),q.test(p.text)||(B+=p.text)}t.valid=0<B.trim().length;t.shiftKey=w;if("desktop"!=b&&0<f&&null!=w)switch(w.sp=
"2",w.sk=null,i[f].id){case "ctrl":w.text="*Ctrl*";break;case "alt":w.text="*Alt*";break;case "ctrlalt":w.text="*AltGr*"}}for(f=0;8>f;f++){m=i[f].row;for(s=0;s<m.length;s++){A=m[s].key;for(n=0;n<A.length;n++)if(p=A[n],null!=p.sk){for(q=0;8>q;q++)for(l=0;l<p.sk.length;l++)if(p.sk[l].nextlayer==x[q]){i[q].valid||p.sk.splice(l,1);break}0==p.sk.length&&(p.sk=null)}}}return c};a._GenerateVisualKeyboard=function(d,e,h){e=g._CreateElement("DIV");if("object"!=typeof h||null==h)h=a.buildDefaultLayout(d,c.formFactor);
a.layout=h;a.layers=h.layer;a.fontFamily="font"in h?h.font:"";h.keyLabels="undefined"!=typeof b._ActiveKeyboard.KDU&&b._ActiveKeyboard.KDU;d=a.deviceDependentLayout(h,c.formFactor);a.ddOSK=!0;a.keyMap=d;e.appendChild(d);a._DivVKbdHelp=a._DivVKbd=e;a._Box.className=c.formFactor+" "+c.OS.toLowerCase()+" kmw-osk-frame";e.className=c.formFactor+" kmw-osk-inner-frame";"desktop"==c.formFactor&&a._Box.appendChild(a.controlBar());a._Box.appendChild(e);"desktop"==c.formFactor?a._Box.appendChild(a.resizeBar()):
a.adjustHeights()};b.BuildVisualKeyboard=b.buildOSK=function(d,e,c,g){var f=b._ActiveKeyboard,e=null,i="undefined"==typeof c?"desktop":c,g="undefined"==typeof g?"default":g;if(null!=d){e=d.toLowerCase().replace("keyboard_","");for(c=0;c<b._Keyboards.length;c++)if(e==b._Keyboards[c].KI.toLowerCase().replace("keyboard_","")){f=b._Keyboards[c];break}}if(!f)return null;e=f.KVKL;d=null;c=f.KV;"object"==typeof e&&("object"==typeof e[i]&&null!=e[i]?d=e[i]:"phone"==i&&"object"==typeof e.tablet&&null!=e.tablet?
d=e.tablet:"tablet"==i&&"object"==typeof e.phone&&null!=e.phone?d=e.phone:"object"==typeof e.desktop&&null!=e.desktop&&(d=e.desktop));null==d&&null!=c&&(d=a.buildDefaultLayout(c,i));null!=d&&(d.keyLabels="undefined"!=typeof f.KDU&&f.KDU);e=a.deviceDependentLayout(d,i);e.className="desktop kmw-osk-inner-frame";if(null!=d)for(var k,s,n,c=0;c<d.layer.length;c++){f=e.childNodes[c];f.style.height="100%";for(s=0;s<f.childNodes.length;s++){i=f.childNodes[s];for(n=0;n<i.childNodes.length;n++)k=i.childNodes[n],
k.style.height="100%",k.style.left="auto",k.style.padding="0%"}f.style.display="number"==typeof g?c==g&&0<=g?"block":"none":"string"==typeof g?d.layer[c].id==g?"block":"none":0==c?"block":"none"}else e.innerHTML="<p style='color:#c40; font-size:0.5em;margin:10px;'>No "+i+" layout is defined for "+f.KN+".</p>";e.style.border="1px solid #ccc";return e};a.adjustHeights=function(){var b=a._Box.firstChild.firstChild.childNodes,e=b[0].childNodes.length,h=a.getHeight(),f=Math.floor(h/e),i,l,k,s,n,q,p,A,
x,t=4;i=1;"Android"==c.OS&&"devicePixelRatio"in window&&(f/=window.devicePixelRatio);h=e*f;l=a._Box;k=l.style;k.height=k.maxHeight=h+3+"px";l=l.firstChild.firstChild;k=l.style;k.height=k.maxHeight=h+3+"px";"phone"==c.formFactor&&(t=2,i=0.6);"iOS"==c.OS&&(i/=g.getViewportScale());k.fontSize=i+"em";var o="iOS"==c.OS&&"phone"==c.formFactor&&g.landscapeView();for(i=0;i<b.length;i++){b[i].style.height=h+3+"px";for(l=0;l<e;l++){k=b[i].childNodes[l].style;k.bottom=(e-l-1)*f+"px";k.maxHeight=k.height=f+"px";
s=b[i].childNodes[l].childNodes;n=s.length;for(q=0;q<n;q++){p=s[q];for(x=0;x<p.childNodes.length&&!(0>p.childNodes[x].className.indexOf("key-label"));x++);A=p.childNodes[x].style;A.bottom=k.bottom;A.height=f-t+"px";o&&0<x&&(p.childNodes[0].style.fontSize="6px")}}}};a.controlBar=function(){var d=g._CreateElement("DIV"),c="";d.id="keymanweb_title_bar";d.className="kmw-title-bar";d.onmousedown=a._VMoveMouseDown;b._ActiveKeyboard&&(c=b._ActiveKeyboard.KN);var h=g._CreateElement("SPAN");h.className="kmw-title-bar-caption";
h.innerHTML=c;d.appendChild(h);c=a.closeButton=g._CreateElement("DIV");c.id="kmw-close-button";c.className="kmw-title-bar-image";c.onmousedown=a._CancelMouse;c.onclick=function(){a._Hide(!0)};d.appendChild(c);c=a.helpImg=g._CreateElement("DIV");c.id="kmw-help-image";c.className="kmw-title-bar-image";c.title="KeymanWeb Help";c.onclick=function(){g.callEvent("osk.helpclick",{});window.event&&(window.event.returnValue=!1);return!1};c.onmousedown=a._CancelMouse;d.appendChild(c);c=a.configImg=g._CreateElement("DIV");
c.id="kmw-config-image";c.className="kmw-title-bar-image";c.title="KeymanWeb Configuration Options";c.onclick=function(){g.callEvent("osk.configclick",{});window.event&&(window.event.returnValue=!1);return!1};c.onmousedown=a._CancelMouse;d.appendChild(c);c=a.pinImg=g._CreateElement("DIV");c.id="kmw-pin-image";c.className="kmw-title-bar-image";c.title="Pin the On Screen Keyboard to its default location on the active text box";c.onclick=function(){a.loadCookie();a.userPositioned=!1;a.saveCookie();a._Show();
a.doResizeMove();a.pinImg&&(a.pinImg.style.display="none");window.event&&(window.event.returnValue=!1);return!1};c.onmousedown=a._CancelMouse;d.appendChild(c);return d};a.showBuild=function(){g.alert("KeymanWeb Build "+b.build+'<br /><br /><span style="font-size:0.8em">Copyright &copy; 2013 Tavultesoft Pty Ltd</span>')};a.resizeBar=function(){var b=g._CreateElement("DIV");b.className="kmw-footer";b.onmousedown=a._CancelMouse;var c=g._CreateElement("DIV");c.className="kmw-footer-caption";c.innerHTML=
"Keyboard &copy; 2013 Tavultesoft Pty Ltd";c.id="keymanweb-osk-footer-caption";g.attachDOMEvent(c,"dblclick",function(b){b&&b.shiftKey&&a.showBuild()},!1);"onselectstart"in c&&(c.onselectstart=g.selectStartHandler);b.appendChild(c);c=g._CreateElement("DIV");c.className="kmw-footer-resize";c.onmousedown=a._VResizeMouseDown;c.onmouseover=c.onmouseout=a._VResizeMouseOut;b.appendChild(c);a.resizeIcon=c;return b};a._VKbdMouseOver=function(){b._IsActivatingKeymanWebUI=1};a._VKbdMouseOut=function(){b._IsActivatingKeymanWebUI=
0};a._VResizeMouseOver=a._VResizeMouseOut=function(d){d=b._GetEventObject(d);if(!d)return!1;d&&d.preventDefault&&d.preventDefault();var c=a.getRect();a.width=c.width;a.height=c.height;d.cancelBubble=!0;return!1};a._VResizeMouseDown=function(d){b._JustActivatedKeymanWebUI=1;d=b._GetEventObject(d);if(!d)return!0;a.resizing=1;var c,g;d.pageX?(c=d.pageX,g=d.pageY):d.clientX&&(c=d.clientX+document.body.scrollLeft,g=d.clientY+document.body.scrollTop);a._ResizeMouseX=c;a._ResizeMouseY=g;document.onmousemove!=
a._VResizeMouseMove&&document.onmousemove!=a._VMoveMouseMove&&(a._VPreviousMouseMove=document.onmousemove,a._VPreviousMouseUp=document.onmouseup);a._VPreviousCursor=document.body.style.cursor;a._VPreviousMouseButton="undefined"==typeof d.which?d.button:d.which;a._VOriginalWidth=a._DivVKbd.offsetWidth;a._VOriginalHeight=a._DivVKbd.offsetHeight;document.onmousemove=a._VResizeMouseMove;document.onmouseup=a._VResizeMoveMouseUp;document.body.style.cursor&&(document.body.style.cursor="se-resize");d&&d.preventDefault&&
d.preventDefault();d.cancelBubble=!0;return!1};a._VResizeMouseMove=function(d){var c,h,d=b._GetEventObject(d);if(!d)return!0;a.resizing=1;if(a._VPreviousMouseButton!=("undefined"==typeof d.which?d.button:d.which))return a._VResizeMoveMouseUp(d);d.pageX?(c=d.pageX,h=d.pageY):d.clientX&&(c=d.clientX+document.body.scrollLeft,h=d.clientY+document.body.scrollTop);c=a._VOriginalWidth+c-a._ResizeMouseX;h=a._VOriginalHeight+h-a._ResizeMouseY;c<0.2*screen.width&&(c=0.2*screen.width);h<0.1*screen.height&&(h=
0.1*screen.height);c>0.9*screen.width&&(c=0.9*screen.width);h>0.5*screen.height&&(c=0.5*screen.height);a._DivVKbd.style.width=c+"px";a._DivVKbd.style.height=h+"px";a._DivVKbd.style.fontSize=h/8+"px";g.showShim(a._DivVKbd,a.shim,a._DivVKbdHelp);d&&d.preventDefault&&d.preventDefault();d.cancelBubble=!0;return!1};a._VMoveMouseDown=function(d){var c,g;b._JustActivatedKeymanWebUI=1;d=b._GetEventObject(d);if(!d)return!0;a.resizing=1;d.pageX?(c=d.pageX,g=d.pageY):d.clientX&&(c=d.clientX+document.body.scrollLeft,
g=d.clientY+document.body.scrollTop);document.onmousemove!=a._VResizeMouseMove&&document.onmousemove!=a._VMoveMouseMove&&(a._VPreviousMouseMove=document.onmousemove,a._VPreviousMouseUp=document.onmouseup);a._VPreviousCursor=document.body.style.cursor;a._VPreviousMouseButton="undefined"==typeof d.which?d.button:d.which;a._VMoveX=c-a._Box.offsetLeft;a._VMoveY=g-a._Box.offsetTop;b.isCJK()&&(a.pinImg.style.left="15px");document.onmousemove=a._VMoveMouseMove;document.onmouseup=a._VResizeMoveMouseUp;document.body.style.cursor&&
(document.body.style.cursor="move");d&&d.preventDefault&&d.preventDefault();d.cancelBubble=!0;return!1};a._VMoveMouseMove=function(d){var c,h,d=b._GetEventObject(d);if(!d||a.noDrag)return!0;a.resizing=1;a.userPositioned=!0;a.pinImg.style.display="block";if(a._VPreviousMouseButton!=("undefined"==typeof d.which?d.button:d.which))return a._VResizeMoveMouseUp(d);d.pageX?(c=d.pageX,h=d.pageY):d.clientX&&(c=d.clientX+document.body.scrollLeft,h=d.clientY+document.body.scrollTop);a._Box.style.left=c-a._VMoveX+
"px";a._Box.style.top=h-a._VMoveY+"px";a._DivVKbd?g.showShim(a._DivVKbd,a.shim,a._DivVKbdHelp):g.showShim(a._Box,a.shim);d&&d.preventDefault&&d.preventDefault();c=a.getRect();a.width=c.width;a.height=c.height;d.cancelBubble=!0;return!1};a._VResizeMoveMouseUp=function(d){d=b._GetEventObject(d);if(!d)return!0;a.resizing=0;a.currentKey=null;document.onmousemove=a._VPreviousMouseMove;document.onmouseup=a._VPreviousMouseUp;document.body.style.cursor&&(document.body.style.cursor=a._VPreviousCursor);b._FocusLastActiveElement();
d&&d.preventDefault&&d.preventDefault();b._JustActivatedKeymanWebUI=0;b._IsActivatingKeymanWebUI=0;a._DivVKbd&&(a._VOriginalWidth=a._DivVKbd.offsetWidth,a._VOriginalHeight=a._DivVKbd.offsetHeight);a.doResizeMove();d.cancelBubble=!0;a.saveCookie();return!1};a.userLocated=function(){return a.userPositioned};a.show=function(b){0<arguments.length?(a._Enabled=b)?a._Show():a._Hide(!0):a._Visible?a._Hide(!0):a._Show()};a.doShow=function(a){return g.callEvent("osk.show",a)};a.doHide=function(a){return g.callEvent("osk.hide",
a)};a.doResizeMove=function(a){return g.callEvent("osk.resizemove",a)};a._Show=function(d,e){if(!(null==a._Box||null==b._ActiveElement))if(c.touchable||null!=b._ActiveKeyboard&&a._Enabled){var h=a._Box.style;c.touchable&&""==h.bottom&&(h.visibility="hidden");if(a.ddOSK){var f,i=-1,l=a._DivVKbd.childNodes[0].childNodes;for(f=0;f<l.length;f++)l[f].layer==a.layerId?(l[f].style.display="block",a.nextLayer=a.layerId,a.layerIndex=i=f,"string"==typeof a.layers[f].nextlayer&&(a.nextLayer=a.layers[f].nextlayer)):
l[f].style.display="none";c.touchable&&(h.position="fixed",h.left=h.bottom="0px",h.height=h.maxHeight=a._Box.firstChild.firstChild.style.height,h.border="none",h.borderTop="1px solid gray",a._Enabled=1,a._Visible=1,a._DivVKbd.style.fontSize="phone"==c.formFactor?"120%":"Android"==c.OS&&"tablet"==c.formFactor&&300>parseInt(h.height,10)?"120%":"200%",a.lgKey=a.getSpecialKey(i,"K_LOPT"),a.hkKey=a.getSpecialKey(i,"K_ROPT"),"iOS"==c.OS&&"phone"==c.formFactor&&a.adjustHeights());a.spaceBar=a.getSpecialKey(i,
"K_SPACE")}h.display="block";a.showLanguage();if("desktop"==c.formFactor&&(h.position="absolute",h.display="block",h.left="0px",a.loadCookie(),0<=d?(h.left=d+"px",h.top=e+"px"):a.userPositioned?(h.left=a.x+"px",h.top=a.y+"px"):(f=b._ActiveElement,""!=a.dfltX?h.left=a.dfltX:"undefined"!=typeof f&&null!=f&&(h.left=g._GetAbsoluteX(f)+"px"),""!=a.dfltY)?h.top=a.dfltY:"undefined"!=typeof f&&null!=f&&(h.top=g._GetAbsoluteY(f)+f.offsetHeight+"px"),a._Enabled=1,a._Visible=1,a._DivVKbd&&(a.width=a._DivVKbd.offsetWidth,
a.height=a._DivVKbd.offsetHeight),a.saveCookie(),f=a.pinImg,"undefined"!=typeof f&&null!=f))f.style.display=a.userPositioned?"block":"none";"hidden"==h.visibility&&window.setTimeout(function(){a._Box.style.visibility="visible"},0);c.touchable||(h={},h.x=a._Box.offsetLeft,h.y=a._Box.offsetTop,h.userLocated=a.userPositioned,a.doShow(h))}};a.adjustRowLengths=function(b){if(!(0<=b)){var e,f=a._DivVKbd.childNodes[0].childNodes;if(!(0>b||b>=f.length||f[b].aligned)&&"block"==f[b].style.display){e=a._DivVKbd.childNodes[0].offsetWidth-
6;"Windows"==c.OS&&(e-=g.landscapeView()?4:40);var i,k=f[b].childNodes,l,m,s;for(i=0;i<k.length;i++)l=k[i].childNodes,m=l.length,s=l[m-2].offsetLeft+l[m-2].offsetWidth,l=l[m-1],l.style.width=e-s+"px";f[b].aligned=!0}}};a.resetRowLengths=function(){var b,c=a._DivVKbd.childNodes[0].childNodes,g=-1;for(b=0;b<c.length;b++)"block"==c[b].style.display&&(g=b),c[b].aligned=!1;return g};a.getSpecialKey=function(b,c){var g,f;g=a._DivVKbd.childNodes[0].childNodes;if(0<=b&&b<g.length){g=g[b].childNodes;f=g[g.length-
1].childNodes;for(g=0;g<f.length;g++)if(f[g].keyId==c)return f[g]}return null};a.hide=function(){a._Enabled=0;a._Hide(!0)};a._Hide=function(d){a._Box&&("block"==a._Box.style.display&&a._DivVKbd)&&(a.width=a._DivVKbd.offsetWidth,a.height=a._DivVKbd.offsetHeight);if(d)a._Enabled=b.isCJK()||c.touchable?1:0,a.saveCookie();else if("desktop"==c.formFactor&&0<=document.body.className.indexOf("osk-always-visible"))return;a._Visible=0;if(a._Box&&c.touchable&&0<a._Box.offsetHeight){var e=a._Box.style;e.transition=
"string"==typeof e.MozBoxSizing?"opacity 0.8s linear":e.msTransition=e.WebkitTransition="opacity 0.5s linear 0";window.setTimeout(function(){var b=a._Box.style;if(a._Visible)b.transition=b.msTransition=b.MozTransition=b.WebkitTransition="";else{b.opacity="0";a._Box.addEventListener("transitionend",a.hideNow,false);a._Box.addEventListener("webkitTransitionEnd",a.hideNow,false)}},200)}else a._Box&&(a._Box.style.display="none"),g.hideShim(a.shim);e={};e.HiddenByUser=d;a.doHide(e);d&&b._FocusLastActiveElement()};
a.hideNow=function(){a._Box.removeEventListener("transitionend",a.hideNow,!1);a._Box.removeEventListener("webkitTransitionEnd",a.hideNow,!1);var b=a._Box.style;b.display="none";b.opacity="1";a._Visible=0;b.transition=b.msTransition=b.mozTransition=b.WebkitTransition="";a.hkKey&&"undefined"!=typeof a.hkKey&&a.highlightKey(a.hkKey.firstChild,!1)};a.prepare=function(){b.initialized?(a.ready||(a._Box=g._CreateElement("DIV"),document.body.appendChild(a._Box),g.linkStyleSheet(b.getStyleSheetPath("kmwosk.css")),
g.attachDOMEvent(a._Box,"mousedown",function(){b._IsActivatingKeymanWebUI=1}),c.touchable&&(g.attachDOMEvent(a._Box,"touchstart",function(a){b._IsActivatingKeymanWebUI=1;a.preventDefault();a.stopPropagation()}),g.attachDOMEvent(a._Box,"touchend",function(a){a.preventDefault();a.stopPropagation()}),g.attachDOMEvent(a._Box,"touchmove",function(a){a.preventDefault();a.stopPropagation()}),g.attachDOMEvent(a._Box,"touchcancel",function(a){a.preventDefault();a.stopPropagation()}),a.vpScale=g.getViewportScale())),
a.loadCookie(),a.ready=!0):window.setTimeout(a.prepare,200)};a._Load=function(){if(null==a._Box){if(99<=a.loadRetry)return;window.setTimeout(a._Load,100);a.loadRetry++}b._TitleElement&&(b._TitleElement.innerHTML="Tavultesoft KeymanWeb");a._Visible=0;a.layerId="default";var d=a._Box.style;d.zIndex="9999";d.display="none";d.width="auto";d.position="desktop"==c.formFactor?"absolute":"fixed";"phone"==c.formFactor&&(d.fontSize="1.6em");a._DivVKbd=a._DivVKbdHelp=null;a._Box.innerHTML="";a._Box.onmouseover=
a._VKbdMouseOver;a._Box.onmouseout=a._VKbdMouseOut;if(null==b._ActiveKeyboard&&!c.touchable){var e=g._CreateElement("DIV");e.className="kmw-title-bar";e.appendChild(a._TitleBarInterior());e.onmousedown=a._VMoveMouseDown;a._Box.appendChild(e);e=g._CreateElement("DIV");e.className="kmw-osk-none";a._Box.appendChild(e)}else{var f=e=null,i=null,d="";a._Box.className="";if(null!=b._ActiveKeyboard&&(e=b._ActiveKeyboard.KV,d=b._ActiveKeyboard.KH,f=b._ActiveKeyboard.KVKL,"undefined"!=typeof f&&null!=f&&(i=
f[c.formFactor],"undefined"==typeof i||null==i)))if("phone"==c.formFactor?i=f.tablet:"tablet"==c.formFactor&&(i=f.phone),"undefined"==typeof i||null==i)i=f.desktop;if(null!=e&&null!=e.BK){for(var f=e.BK,k=!0,l=0;l<f.length;l++)if(0<f[l].length){k=!1;break}k&&(e=null)}null!=e||""==d||c.touchable?(null==e&&(e={F:"Tahoma",BK:"`1234567890-=\u00a7~~qwertyuiop[]\\~~~asdfghjkl;'~~~~~?zxcvbnm,./~~~~~ ~!@#$%^&*()_+\u00a7~~QWERTYUIOP{}\\~~~ASDFGHJKL:\"~~~~~?ZXCVBNM<>?~~~~~ "}),a._GenerateVisualKeyboard(e,d,
i)):(a.ddOSK=!1,e=g._CreateElement("DIV"),e.className="kmw-title-bar",e.appendChild(a._TitleBarInterior()),e.onmousedown=a._VMoveMouseDown,a._Box.appendChild(e),e=g._CreateElement("DIV"),e.className="kmw-osk-static",e.innerHTML=d,a._Box.appendChild(e),b._ActiveKeyboard.KHF&&b._ActiveKeyboard.KHF(a._Box));b._TitleElement&&(b._TitleElement.innerHTML="<span style='font-weight:bold'>"+b._ActiveKeyboard.KN+"</span> - "+b._TitleElement.innerHTML,b._TitleElement.className="",b._TitleElement.style.color=
"#fff")}a.createKeyTip();d=a._Box.firstChild;e=" kmw-keyboard-"+(b._ActiveKeyboard?b._ActiveKeyboard.KI.replace("Keyboard_",""):"");"keymanweb_title_bar"==d.id&&(d=d.nextSibling);d.className="kmw-osk-inner-frame"+e;a.appendStyleSheet();a._Enabled&&a._Show()};a.appendStyleSheet=function(){if(null!=b._ActiveStub){a.styleSheet&&g.removeStyleSheet(a.styleSheet);var c=b._ActiveStub,e=c.KFont,c=c.KOskFont;g.addFontFaceStyleSheet(e);g.addFontFaceStyleSheet(c);b.alignInputs(!1);var f=a.addFontStyle(e,c);
"string"==typeof b._ActiveKeyboard.KCSS&&(f+=b._ActiveKeyboard.KCSS);a.styleSheet=g.addStyleSheet(f);a.waitForFonts(e,c)&&b.alignInputs(!0)}};a.addFontStyle=function(a,c){var g=b.baseFont;"undefined"!=typeof a&&"undefined"!=typeof a.family&&(g=a.family);var f=b.appliedFont,f=f.replace(RegExp("s?"+g+",?"),""),f=f.replace(/,$/,""),f=""==f?g:g+","+f,g=".keymanweb-font{\nfont-family:"+f+" !important;\n}\n";"undefined"!=typeof c?g=g+".kmw-key-text{\nfont-family:"+c.family+";\n}\n":"undefined"!=typeof a&&
(g=g+".kmw-key-text{\nfont-family:"+a.family+";\n}\n");b.appliedFont=f;return g};a._Unload=function(){a._VShift=a._DivVKbd=a._VKeySpans=a._Box=0};a.saveCookie=function(){var b=g.loadCookie("KeymanWeb_OnScreenKeyboard"),c=a.getPos();b.visible=a._Enabled?1:0;b.userSet=a.userPositioned?1:0;b.left=c.left;b.top=c.top;a._DivVKbd&&(b.width=a.width,b.height=a.height);g.saveCookie("KeymanWeb_OnScreenKeyboard",b)};a.loadCookie=function(){var b=g.loadCookie("KeymanWeb_OnScreenKeyboard");if("undefined"==typeof b||
null==b)return a.userPositioned=!1;a._Enabled=g.toNumber(b.visible,!0);a.userPositioned=g.toNumber(b.userSet,!1);a.x=g.toNumber(b.left,-1);a.y=g.toNumber(b.top,-1);var c=g.toNumber(b.width,0.3*screen.width),b=g.toNumber(b.height,0.15*screen.height);c<0.2*screen.width&&(c=0.2*screen.width);b<0.1*screen.height&&(b=0.1*screen.height);c>0.9*screen.width&&(c=0.9*screen.width);b>0.5*screen.height&&(c=0.5*screen.height);a._DivVKbd&&(a._DivVKbd.style.width=c+"px",a._DivVKbd.style.height=b+"px",a._DivVKbd.style.fontSize=
b/8+"px");if(-1==a.x||-1==a.y||!a._Box)a.userPositioned=!1;a.x<window.pageXOffset-0.8*c&&(a.x=window.pageXOffset-0.8*c);0>a.y&&(a.x=-1,a.y=-1,a.userPositioned=!1);a.userPositioned&&a._Box&&a.setPos({left:a.x,top:a.y});return!0};b.executePopupKey=function(c){if(!b._ActiveKeyboard)return!1;var c=c.replace("popup-",""),c=c.split("-"),e=1<c.length?c[0]:a.layerId,c=c[c.length-1];"undefined"==e&&(e=a.layerId);var g=b._LastActiveElement,j,e=a.getModifierState(e);null==b._ActiveElement&&(b._ActiveElement=
g);switch(c){case "K_LSHIFT":case "K_RSHIFT":case "K_SHIFT":return a.updateLayer("shift"),a._Show(),!0;case "K_LCONTROL":case "K_RCONTROL":case "K_LCTRL":case "K_RCTRL":case "K_CTRL":return a.updateLayer("ctrl"),a._Show(),!0;case "K_LMENU":case "K_RMENU":case "K_LALT":case "K_RALT":case "K_ALT":return a.updateLayer("alt"),a._Show(),!0;case "K_ALTGR":return a.updateLayer("ctrlalt"),a._Show(),!0}j={Ltarg:g,Lmodifiers:0,Lcode:f[c],LisVirtualKey:!0};"undefined"==typeof j.Lcode&&(j.Lcode=a.getVKDictionaryCode(c));
if(!j.Lcode&&"U_"==c.substr(0,2)){var k=parseInt(c.substr(2),16);isNaN(k)||(j.Lcode=k)}if(isNaN(j.Lcode)||!j.Lcode)return!1;j.vkCode=j.Lcode;"U_"==c.substr(0,2)&&(j.isVirtualKey=!1);j.Lmodifiers=16*e;if(!b._ActiveKeyboard||0==j.Lcode)return!1;if(b._ActiveKeyboard.gs(g,j))return!0;k=0;j=j.Lcode;"U_"==c.substr(0,2)&&32<j&&!(127<j&&!1>j)?k=String.fromCharCode(j):48<=j&&57>=j?k=i[e][0][j-48]:65<=j&&90>=j?k=String.fromCharCode(j+(e?0:32)):186<=j&&192>=j?k=i[e][1][j-186]:219<=j&&222>=j&&(k=i[e][2][j-219]);
k&&b.KO(0,g,k);return!0};b.touchMenuPos=function(){if(null==a.lgKey)return"";var b=g._GetAbsoluteX(a.lgKey)-g._GetAbsoluteX(a._DivVKbd)+a.lgKey.offsetWidth/2,c=g._GetAbsoluteY(a.lgKey)-g._GetAbsoluteY(a._DivVKbd);return b+","+c}})();(function(){var b=window.tavultesoft.keymanweb,f=b.osk,i=b.util,k=i.device;b.fullInitialization=!0;b.setDefaultDeviceOptions=function(a){""==a.attachType&&(a.attachType=k.touchable?"manual":"auto")};i.wait=function(a){var g=b.waiting;if(!("undefined"==typeof g||null==g||b.warned)){var c=g.firstChild.childNodes;a?(g.pending=!0,window.setTimeout(function(){g.pending&&(window.scrollTo(0,0),c[0].style.display="none",c[1].className="kmw-wait-text",c[1].innerHTML=a,c[2].style.display="block",g.style.display=
"block")},1E3)):g.pending&&(c[1].innerHTML="",g.pending=!1,g.style.display="none")}};b.getStyleSheetPath=function(a){return i.getOption("resources")+"osk/"+a};b.getKeyboardPath=function(a){return(/^(([.]\/)|([.][.]\/)|(\/))|(:)/.test(a)?"":b.options.keyboards)+a};b.keyboardUnavailable=function(a){return window.setTimeout(function(){i.wait(!1);var g=b._KeyboardStubs[a],c=g.KN,g=g.KL,c=c.replace(/\s*keyboard\s*/i,"");i.alert("Sorry, the "+c+" keyboard for "+g+" is not currently available!",b.setDfltKeyboard);
0<a&&(g=b._KeyboardStubs[0],b._SetActiveKeyboard(g.KI,g.KLC,!0))},1E4)};b.KC_=function(a,g,c){var d,e=c.body?c:c.ownerDocument;if(k.touchable)return b.getTextBeforeCaret(c)._kmwSubstr(-a)._kmwSubstr(0,g);if(b.legacy)return c.value._kmwSubstr(c.length-a,g);if(e&&(d=e.defaultView)&&d.getSelection&&("on"==e.designMode.toLowerCase()||"true"==c.contentEditable||"plaintext-only"==c.contentEditable||""===c.contentEditable)){if(c=d.getSelection(),3==c.focusNode.nodeType)return c.focusOffset>2*a?c.focusNode.substringData(c.focusOffset-
2*a,2*a)._kmwSubstr(-a)._kmwSubstr(0,g):c.focusNode.substringData(0,c.focusOffset)._kmwSubstr(-a)._kmwSubstr(0,g)}else{if(c.setSelectionRange){if(c._KeymanWebSelectionStart)d=c._KeymanWebSelectionStart;else{if(null===b._CachedSelectionStart||c.selectionStart!==b._LastCachedSelection)b._LastCachedSelection=c.selectionStart,b._CachedSelectionStart=c.value._kmwCodeUnitToCodePoint(c.selectionStart),b._CachedSelectionEnd=c.value._kmwCodeUnitToCodePoint(c.selectionEnd);d=b._CachedSelectionStart}return d<
a?c.value._kmwSubstr(0,d):c.value._kmwSubstring(d-a,d-a+g)}if(e&&(d=e.selection))return c=d.createRange(),c.moveStart("character",-2*a),c.text._kmwSubstr(-a)._kmwSubstring(0,g)}return""};b.alignInputs=function(a){if(k.touchable)for(var g=0;g<b.inputList.length;g++)a?(b.updateInput(b.inputList[g]),b.inputList[g].style.visibility="visible",0<b.inputList[g].base.textContent.length&&(b.inputList[g].base.style.visibility="hidden")):(b.inputList[g].style.visibility="hidden",b.inputList[g].base.style.visibility=
"visible")};f.highlightSubKeys=function(a,b,c){if(null!=a.subKeys){var d,e,h,j,k,l,m,s;h=document.getElementById("kmw-popup-keys");5<f.touchY-c&&null==h&&(f.subkeyDelayTimer&&window.clearTimeout(f.subkeyDelayTimer),f.showSubKeys(a),h=document.getElementById("kmw-popup-keys"));for(d=0;d<a.subKeys.length;d++)try{e=h.childNodes[d].firstChild,j=i._GetAbsoluteX(e),k=i._GetAbsoluteY(e),l=j+e.offsetWidth,m=k+e.offsetHeight,s=b>j&&b<l&&c>k&&c<m,f.highlightKey(e,s),s&&f.highlightKey(a,!1)}catch(n){}}};f.createKeyTip=
function(){"phone"==k.formFactor&&(null==f.keytip&&(f.keytip=i._CreateElement("DIV"),f.keytip.className="kmw-keytip"),f._Box.appendChild(f.keytip))};f.optionKey=function(a,g,c){c&&(0<=g.indexOf("K_LOPT")?f.showLanguageMenu():0<=g.indexOf("K_ROPT")&&(b._IsActivatingKeymanWebUI=0,f._Hide(!0),b.hideCaret(),b._LastActiveElement=0))};f.showKeyTip=function(a,b){if(null!=f.keytip)if(b){if(0<a.className.indexOf("kmw-key-default")&&0>a.id.indexOf("K_SPACE")&&0>a.id.indexOf("popup")){var c=a.firstChild,d=f.keytip,
e=d.style;d.textContent=c.textContent;e.fontFamily=i.getStyleValue(c,"font-family");var h=i.getStyleInt(c,"font-size");0!=h&&(e.fontSize=1.5*h+"px");h=i._GetAbsoluteX(a);i._GetAbsoluteY(a);var j=a.offsetWidth,k=1.5*c.offsetWidth+i.getStyleInt(d,"padding-left")+i.getStyleInt(d,"padding-right"),l=i.getStyleInt(a,"margin-right"),c=1.5*c.offsetHeight+i.getStyleInt(d,"padding-top")+i.getStyleInt(d,"padding-bottom"),d=i.getStyleInt(a,"margin-top");e.left=h-l+(j-k)/2+"px";e.top=i._GetAbsoluteY(a)-d-f._Box.offsetTop-
c+"px";e.display="block"}}else f.keytip.style.display="none"};b.handleRotationEvents=function(){"iOS"==k.OS&&i.attachDOMEvent(window,"orientationchange",b.rotateDevice);"Android"==k.OS&&(f.wasVisible=f.isVisible,"onmozorientationchange"in screen?i.attachDOMEvent(screen,"mozorientationchange",f.hideNow):i.attachDOMEvent(window,"orientationchange",f.hideNow),i.attachDOMEvent(window,"resize",function(){b.alignInputs(!0);f.hideLanguageList();f._Load();f.wasVisible&&f._Show()}))};b.rotateDevice=function(){f.hideLanguageList();
f._Visible&&(f.adjustHeights(),"phone"==k.formFactor&&"Android"==k.OS&&window.setTimeout(function(){window.scrollTo(0,1)},1E3))};f.waitForFonts=function(a,g){if("undefined"==typeof a&&"undefined"==typeof g||"undefined"==typeof a.files&&"undefined"==typeof g.files)return!0;var c=i.checkFontDescriptor(a),d=i.checkFontDescriptor(g);if(c&&d)return!0;b.fontCheckTimer=window.setInterval(function(){i.checkFontDescriptor(a)&&i.checkFontDescriptor(g)&&(window.clearInterval(b.fontCheckTimer),b.fontCheckTimer=
null,b.alignInputs(!0))},100);window.setTimeout(function(){b.fontCheckTimer&&(window.clearInterval(b.fontCheckTimer),b.fontCheckTimer=null,b.alignInputs(!0))},5E3);return!1}})();(function(){var b=window.tavultesoft.keymanweb,f=b.util,i=b.osk,k=f.device;b.TSS_LAYER=33;b.TSS_PLATFORM=31;b._BeepObjects=[];b._BeepTimeout=0;b.KSF=b.KSF=function(){b._IgnoreNextSelChange=1};b.KT=b.KT=function(a,g){b.cachedContext.reset();var c=b._LastActiveElement,d,e,f;d=!1;null!=c&&(d=c._KeymanWebSelectionStart,e=c._KeymanWebSelectionEnd,f=b._Selection,b._IsActivatingKeymanWebUI=1,b._IgnoreNextSelChange=100,b._FocusLastActiveElement(),b._IsMozillaEditableIframe(c,0)&&(c=c.documentElement),document.selection&&
null!=f&&f.select(),c._KeymanWebSelectionStart=d,c._KeymanWebSelectionEnd=e,b._IgnoreNextSelChange=0,null!=a&&b.KO(0,c,a),"undefined"!=typeof g&&b.KDO(0,c,g),c._KeymanWebSelectionStart=null,c._KeymanWebSelectionEnd=null,d=!0);return d};b.KR=b.KR=function(a){b.loadTimer&&a.KI==b._LoadingInternalName&&(window.clearTimeout(b.loadTimer),b.loadTimer=null);if(b.initialized){var g,c=b._ActiveStub;if(!c||!("KI"in c)||c.KI!=a.KI)for(g=0;g<b._KeyboardStubs.length;g++){c=b._KeyboardStubs[g];if(a.KI==c.KI)break;
c=null}null==b._ActiveStub&&null!=c&&(b._ActiveStub=c);for(g=0;g<b._Keyboards.length;g++)if(a.KI==b._Keyboards[g].KI)return;b._Keyboards=b._push(b._Keyboards,a);b._LoadingInternalName==a.KI&&(b.doBeforeKeyboardChange(a.KI,c.KLC),b._ActiveKeyboard=a,null!=b._LastActiveElement&&(b._JustActivatedKeymanWebUI=1,b._SetTargDir(b._LastActiveElement)),b._LoadingInternalName=null,a.KL="undefined"!=typeof c.KL?c.KL:"",a.KLC="undefined"!=typeof c.KLC?c.KLC:"",a.KR="undefined"!=typeof c.KR?c.KR:"",a.KRC="undefined"!=
typeof c.KRC?c.KRC:"",a.KC="undefined"!=typeof c.KC?c.KC:"",a.KCC="undefined"!=typeof c.KCC?c.KCC:"",a.KD="undefined"!=typeof c.KD?c.KD:"",a.KS="undefined"!=typeof c.KS?c.KS:0,String.kmwEnableSupplementaryPlane(c&&(c.KS&&1==c.KS||"Hieroglyphic"==a.KN)),b.saveCurrentKeyboard(a.KI,c.KLC),i._Load(),"function"==typeof f.wait&&f.wait(!1));b.doKeyboardLoaded(a.KI)}else b.deferredKR.push(a)};b.KRS=b.KRS=function(a){var g;if(b.initialized){null==b.dfltStub&&(b.dfltStub=a);"undefined"==typeof a.KLC&&(a.KLC=
"");"undefined"==typeof a.KL&&(a.KL="undefined");for(g=0;g<b._KeyboardStubs.length;g++)if(b._KeyboardStubs[g].KI==a.KI&&(""==a.KLC||b._KeyboardStubs[g].KLC==a.KLC))return 1;b._KeyboardStubs=b._push(b._KeyboardStubs,a);b.doKeyboardRegistered(a.KI,a.KL,a.KN,a.KLC)}else b.deferredKRS.push(a)};b.KC=b.KC=function(a,g,c){var d=b.cachedContext.get(a,g);if(null!==d)return d;c=b.KC_(a,g,c);b.cachedContext.set(a,g,c);return c};b.KN=b.KN=function(a,b){var c=this.KC(a+1,a+1,b);return!1===c?!0:c._kmwLength()<
a+1};b.KCM=b.KCM=function(a,b,c,d){a=this.KC(a,d,b);if(!1!==a&&a===c)return!0;this._DeadkeyResetMatched();return!1};b.KIK=b.KIK=function(a){return b._ActiveKeyboard.KM?!a.LisVirtualKey:b._USKeyCodeToCharCode(a)?!0:!1};b.KKM=b.KKM=function(a,b,c){var d=0,e=173==a.Lcode?189:a.Lcode;255<a.vkCode&&(e=a.vkCode);if(a.LisVirtualKey||255<e){if(16384==(b&16384)||255<e)d=c==e&&(b&127)==a.Lmodifiers}else 0==(b&16384)&&(d=e==c);d||this._DeadkeyResetMatched();return d};b.KKI=b.KKI=function(a){var b={};b.vk=a.LisVirtualKey;
b.code=a.Lcode;b.modifiers=a.Lmodifiers;return b};b.KDM=b.KDM=function(a,g,c){if(0==b._DeadKeys.length)return!1;a=b._SelPos(g)-a;for(g=0;g<b._DeadKeys.length;g++)if(b._DeadKeys[g].p==a&&b._DeadKeys[g].d==c)return b._DeadKeys[g].matched=1;this._DeadkeyResetMatched();return!1};b.KBR=b.KBR=function(){b.cachedContext.reset();var a;for(a=b._BeepTimeout=0;a<b._BeepObjects.length;a++)b._BeepObjects[a].e.style.backgroundColor=b._BeepObjects[a].c;b._BeepObjects=[]};b.KB=b.KB=function(a){b.cachedContext.reset();
a.body&&(a=a.body);if(a.style&&"undefined"!=typeof a.style.backgroundColor){for(var g=0;g<b._BeepObjects.length;g++)if(b._BeepObjects[g].e==a)return;b._BeepObjects=b._push(b._BeepObjects,{e:a,c:a.style.backgroundColor});a.style.backgroundColor="#000000";0==b._BeepTimeout&&(b._BeepTimeout=1,window.setTimeout(b.KBR,50))}};b.KA=b.KA=function(a,g,c){if(""==g)return 0;g=c._kmwIndexOf(g);b._AnyIndices[a]=g;return 0<=g};b.KO=b.KO=function(a,g,c){b.cachedContext.reset();if("oninserttext"in b)b.oninserttext(a,
c);var d=g.body?g:g.ownerDocument,e;if(0<=g.className.indexOf("keymanweb-input")){var f=b.getTextBeforeCaret(g),f=0<a?f._kmwSubstr(0,f._kmwLength()-a)+c:f+c;b.setTextBeforeCaret(g,f)}else{if(b.legacy)g.value=0<a?g.value._kmwSubstr(0,g.value._kmwLength()-a)+c:g.value+c;else if(d&&(e=d.defaultView)&&e.getSelection&&("on"==d.designMode.toLowerCase()||"true"==g.contentEditable||"plaintext-only"==g.contentEditable||""===g.contentEditable)){var i="on"==d.designMode.toLowerCase();if(i)var k=b._CacheCommands(d);
e=e.getSelection();f=e.focusNode.nodeValue?e.focusNode.substringData(0,e.focusOffset)._kmwLength():0;e.isCollapsed||e.deleteFromDocument();var l=e.getRangeAt(0);0<a&&(l.setStart(e.focusNode,e.focusOffset-e.focusNode.nodeValue.substr(0,e.focusOffset)._kmwSubstr(-a).length),l.deleteContents());if(0<c._kmwLength())if(3==e.focusNode.nodeType){l=e.focusOffset;e.focusNode.insertData(e.focusOffset,c);try{e.extend(e.focusNode,l+c.length)}catch(m){e.focusNode.parentNode.scrollIntoView(),e.extend(e.focusNode,
l+c.length)}}else{var s=d.createTextNode(c);l.insertNode(s);e.extend(s,c.length)}i&&b._CacheCommandsReset(d,k,null);e.collapseToEnd();0<=a&&(b._DeadkeyDeleteMatched(),b._DeadkeyAdjustPos(f,-a+c._kmwLength()))}else if(d&&(e=d.selection)){if(d.body.isContentEditable||"on"==d.designMode.toLowerCase())k=b._CacheCommands(d);l=e.createRange();""!=l.text?(e.clear(),a=0):l.collapse(!0);0<a?(l.moveStart("character",-2*a),i=l.text._kmwSubstr(-a),l.collapse(!1),l.moveStart("character",-i.length)):a=0;l.text=
c;if(d.body.isContentEditable||"on"==d.designMode.toLowerCase())l.moveStart("character",-c.length),b._CacheCommandsReset(d,k,l.select),l.moveStart("character",c.length),l.select();0<=a&&(b._DeadkeyDeleteMatched(),b._DeadkeyAdjustPos(f,-a+c._kmwLength()));b._Selection=e.createRange();b._Selection.select();b._Selection.scrollIntoView()}else g.setSelectionRange&&(null!=g._KeymanWebSelectionStart?(f=g._KeymanWebSelectionStart,d=g._KeymanWebSelectionEnd):(f=g.value._kmwCodeUnitToCodePoint(g.selectionStart),
d=g.value._kmwCodeUnitToCodePoint(g.selectionEnd)),"textarea"==g.type.toLowerCase()&&"undefined"!=typeof g.scrollTop&&(i=g.scrollTop,l=g.scrollLeft),0>a?(g.value=g.value._kmwSubstring(0,f)+c+g.value._kmwSubstring(d),a=0):g.value=f<a?c+g.value._kmwSubstring(d):g.value._kmwSubstring(0,f-a)+c+g.value._kmwSubstring(d),0<=a&&(b._DeadkeyDeleteMatched(),b._DeadkeyAdjustPos(f,-a+c._kmwLength())),"undefined"!=typeof i&&(g.scrollTop=i,g.scrollLeft=l),a=f-a+c._kmwLength(),a=g.value._kmwCodePointToCodeUnit(a),
g.setSelectionRange(a,a),g._KeymanWebSelectionStart=null,g._KeymanWebSelectionEnd=null);"function"==typeof b.refreshElementContent&&b.refreshElementContent(g)}};b.KDO=b.KDO=function(a,g,c){b.cachedContext.reset();var d={};0<=a&&b.KO(a,g,"");d.p=b._SelPos(g);d.d=c;b._DeadKeys=b._push(b._DeadKeys,d)};b.KIO=b.KIO=function(a,g,c,d){b.cachedContext.reset();b._AnyIndices[c-1]<g._kmwLength()&&b.KO(a,d,g._kmwCharAt(b._AnyIndices[c-1]))};b._CacheCommands=function(a){var g=[["backcolor",1],["fontname",1],["fontsize",
1],["forecolor",1],["bold",0],["italic",0],["strikethrough",0],["subscript",0],["superscript",0],["underline",0]];a.defaultView&&b._push(g,["hilitecolor",1]);for(var c=0;c<g.length;c++)b._push(g[c],g[c][1]?a.queryCommandValue(g[c][0]):a.queryCommandState(g[c][0]));return g};b._CacheCommandsReset=function(a,b,c){for(var d=0;d<b.length;d++)b[d][1]?a.queryCommandValue(b[d][0])!=b[d][2]&&(c&&c(),a.execCommand(b[d][0],!1,b[d][2])):a.queryCommandState(b[d][0])!=b[d][2]&&(c&&c(),a.execCommand(b[d][0],!1,
null))};b.KIFS=b.KIFS=function(a,g){var c=!0;if(a==b.TSS_LAYER)c=i.layerId===g;else if(a==b.TSS_PLATFORM){var d,e,f=g.split(" ");for(d=0;d<f.length;d++){e=f[d].toLowerCase();switch(e){case "touch":case "hardware":k.touchable!=("touch"==e)&&(c=!1)}switch(e){case "windows":case "android":case "ios":case "macosx":case "linux":k.OS.toLowerCase()!=e&&(c=!1)}switch(e){case "tablet":case "phone":case "desktop":k.formFactor!=e&&(c=!1)}switch(e){case "native":case "web":case "ie":case "chrome":case "firefox":case "safari":case "opera":k.browser!=
e&&(c=!1)}}}return c};b.KSETS=function(a,f){b.cachedContext.reset();return a==b.TSS_LAYER?i.showLayer(f):!1};b.KLOAD=function(a,g,c){b.cachedContext.reset();a=f.loadCookie("KeymanWeb_"+a+"_Option_"+g);return"undefined"!=typeof a[g]?unescape(a[g]):c};b.KSAVE=function(a,g){b.cachedContext.reset();var c=b._ActiveKeyboard;if(!c||"undefined"==typeof c.KI||""==c.KI)return!1;var c="KeymanWeb_"+c.KI+"_Option_"+a,d=escape(g);f.saveCookie(c,d);return!0};b.GetLastActiveElement=function(){return b._LastActiveElement};
b.FocusLastActiveElement=function(){b._FocusLastActiveElement()};b.HideHelp=function(){i._Hide(!0)};b.ShowHelp=function(a,b){i._Show(a,b)};b.ShowPinnedHelp=function(){i.userPositioned=!0;i._Show(-1,-1)};b.cachedContext={_cache:[],reset:function(){this._cache=[]},get:function(a,b){return"undefined"==typeof this._cache[a]||"undefined"==typeof this._cache[a][b]?null:this._cache[a][b]},set:function(a,b,c){"undefined"==typeof this._cache[a]&&(this._cache[a]=[]);this._cache[a][b]=c}}})();(function(){var b=window.tavultesoft.keymanweb,f=b._VKMap_FF_IE={};f.k61=187;f.k59=186;b._VKMap_Opera_IE={};b._VKMap_Safari_IE={};f=b._VKMap={};f.se={};f.se.k220=192;f.se.k187=189;f.se.k219=187;f.se.k221=219;f.se.k186=221;f.se.k191=220;f.se.k192=186;f.se.k189=191;f.uk={};f.uk.k223=192;f.uk.k192=222;f.uk.k222=226;f.uk.k220=220;var f={},i={};f.k192=96;f.k49=49;f.k50=50;f.k51=51;f.k52=52;f.k53=53;f.k54=54;f.k55=55;f.k56=56;f.k57=57;f.k48=48;f.k189=45;f.k187=61;f.k81=113;f.k87=119;f.k69=101;f.k82=114;
f.k84=116;f.k89=121;f.k85=117;f.k73=105;f.k79=111;f.k80=112;f.k219=91;f.k221=93;f.k220=92;f.k65=97;f.k83=115;f.k68=100;f.k70=102;f.k71=103;f.k72=104;f.k74=106;f.k75=107;f.k76=108;f.k186=59;f.k222=39;f.k90=122;f.k88=120;f.k67=99;f.k86=118;f.k66=98;f.k78=110;f.k77=109;f.k188=44;f.k190=46;f.k191=47;i.k192=126;i.k49=33;i.k50=64;i.k51=35;i.k52=36;i.k53=37;i.k54=94;i.k55=38;i.k56=42;i.k57=40;i.k48=41;i.k189=95;i.k187=43;i.k81=81;i.k87=87;i.k69=69;i.k82=82;i.k84=84;i.k89=89;i.k85=85;i.k73=73;i.k79=79;i.k80=
80;i.k219=123;i.k221=125;i.k220=124;i.k65=65;i.k83=83;i.k68=68;i.k70=70;i.k71=71;i.k72=72;i.k74=74;i.k75=75;i.k76=76;i.k186=58;i.k222=34;i.k90=90;i.k88=88;i.k67=67;i.k86=86;i.k66=66;i.k78=78;i.k77=77;i.k188=60;i.k190=62;i.k191=63;b._USCharCode=[f,i];b._USKeyCodeToCharCode=function(f){return b._USCharCode[f.Lmodifiers&16?1:0]["k"+f.Lcode]}})();window.dfltLayout={desktop:{font:"Tahoma,Helvetica",layer:[{id:"default",row:[{id:"1",key:[{id:"K_BKQUOTE"},{id:"K_1"},{id:"K_2"},{id:"K_3"},{id:"K_4"},{id:"K_5"},{id:"K_6"},{id:"K_7"},{id:"K_8"},{id:"K_9"},{id:"K_0"},{id:"K_HYPHEN"},{id:"K_EQUAL"},{id:"K_BKSP",text:"*BkSp*",sp:"1",width:"130"}]},{id:"2",key:[{id:"K_TAB",text:"*Tab*",sp:"1",width:"130"},{id:"K_Q"},{id:"K_W"},{id:"K_E"},{id:"K_R"},{id:"K_T"},{id:"K_Y"},{id:"K_U"},{id:"K_I"},{id:"K_O"},{id:"K_P"},{id:"K_LBRKT"},{id:"K_RBRKT"},{id:"K_BKSLASH"}]},
{id:"3",key:[{id:"K_CAPS",text:"*Caps*",sp:"1",width:"165"},{id:"K_A"},{id:"K_S"},{id:"K_D"},{id:"K_F"},{id:"K_G"},{id:"K_H"},{id:"K_J"},{id:"K_K"},{id:"K_L"},{id:"K_COLON"},{id:"K_QUOTE"},{id:"K_ENTER",text:"*Enter*",sp:"1",width:"165"}]},{id:"4",key:[{id:"K_SHIFT",text:"*Shift*",sp:"1",width:"130"},{id:"K_oE2"},{id:"K_Z"},{id:"K_X"},{id:"K_C"},{id:"K_V"},{id:"K_B"},{id:"K_N"},{id:"K_M"},{id:"K_COMMA"},{id:"K_PERIOD"},{id:"K_SLASH"},{id:"K_RSHIFT",text:"*Shift*",sp:"1",width:"130"}]},{id:"5",key:[{id:"K_LCONTROL",
text:"*Ctrl*",sp:"1",width:"170"},{id:"K_LALT",text:"*Alt*",sp:"1",width:"160"},{id:"K_SPACE",text:"",width:"770"},{id:"K_ALT",text:"*Alt*",sp:"1",width:"160"},{id:"K_RCONTROL",text:"*Ctrl*",sp:"1",width:"170"}]}]}]},tablet:{font:"Tahoma,Helvetica",layer:[{id:"default",row:[{id:"0",key:[{id:"K_1"},{id:"K_2"},{id:"K_3"},{id:"K_4"},{id:"K_5"},{id:"K_6"},{id:"K_7"},{id:"K_8"},{id:"K_9"},{id:"K_0"},{id:"K_HYPHEN"},{id:"K_EQUAL"},{sp:"10",width:"1"}]},{id:"1",key:[{id:"K_Q",pad:"25"},{id:"K_W"},{id:"K_E"},
{id:"K_R"},{id:"K_T"},{id:"K_Y"},{id:"K_U"},{id:"K_I"},{id:"K_O"},{id:"K_P"},{id:"K_LBRKT"},{id:"K_RBRKT"},{sp:"10",width:"1"}]},{id:"2",key:[{id:"K_A",pad:"50"},{id:"K_S"},{id:"K_D"},{id:"K_F"},{id:"K_G"},{id:"K_H"},{id:"K_J"},{id:"K_K"},{id:"K_L"},{id:"K_COLON"},{id:"K_QUOTE"},{id:"K_BKSLASH",width:"90"}]},{id:"3",key:[{id:"K_oE2",width:"90"},{id:"K_Z"},{id:"K_X"},{id:"K_C"},{id:"K_V"},{id:"K_B"},{id:"K_N"},{id:"K_M"},{id:"K_COMMA"},{id:"K_PERIOD"},{id:"K_SLASH"},{id:"K_BKQUOTE"},{sp:"10",width:"1"}]},
{id:"4",key:[{id:"K_SHIFT",text:"*Shift*",sp:"1",width:"200",sk:[{id:"K_LCONTROL",text:"*Ctrl*",sp:"1",width:"50",nextlayer:"ctrl"},{id:"K_LALT",text:"*Alt*",sp:"1",width:"50",nextlayer:"alt"},{id:"K_ALTGR",text:"*AltGr*",sp:"1",width:"50",nextlayer:"ctrlalt"}]},{id:"K_LOPT",text:"*Menu*",sp:"1",width:"150"},{id:"K_SPACE",text:"",width:"570"},{id:"K_BKSP",text:"*BkSp*",sp:"1",width:"150"},{id:"K_ENTER",text:"*Enter*",sp:"1",width:"200"}]}]}]},phone:{font:"Tahoma,Helvetica",layer:[{id:"default",row:[{id:"0",
key:[{id:"K_1"},{id:"K_2"},{id:"K_3"},{id:"K_4"},{id:"K_5"},{id:"K_6"},{id:"K_7"},{id:"K_8"},{id:"K_9"},{id:"K_0"},{id:"K_HYPHEN"},{id:"K_EQUAL"},{sp:"10",width:"1"}]},{id:"1",key:[{id:"K_Q",pad:"25"},{id:"K_W"},{id:"K_E"},{id:"K_R"},{id:"K_T"},{id:"K_Y"},{id:"K_U"},{id:"K_I"},{id:"K_O"},{id:"K_P"},{id:"K_LBRKT"},{id:"K_RBRKT"},{sp:"10",width:"1"}]},{id:"2",key:[{id:"K_A",pad:"50"},{id:"K_S"},{id:"K_D"},{id:"K_F"},{id:"K_G"},{id:"K_H"},{id:"K_J"},{id:"K_K"},{id:"K_L"},{id:"K_COLON"},{id:"K_QUOTE"},
{id:"K_BKSLASH",width:"90"}]},{id:"3",key:[{id:"K_oE2",width:"90"},{id:"K_Z"},{id:"K_X"},{id:"K_C"},{id:"K_V"},{id:"K_B"},{id:"K_N"},{id:"K_M"},{id:"K_COMMA"},{id:"K_PERIOD"},{id:"K_SLASH"},{id:"K_BKQUOTE"},{sp:"10",width:"1"}]},{id:"4",key:[{id:"K_SHIFT",text:"*Shift*",sp:"1",width:"200",sk:[{id:"K_LCONTROL",text:"*Ctrl*",sp:"1",width:"50",nextlayer:"ctrl"},{id:"K_LALT",text:"*Alt*",sp:"1",width:"50",nextlayer:"alt"},{id:"K_ALTGR",text:"*AltGr*",sp:"1",width:"50",nextlayer:"ctrlalt"}]},{id:"K_LOPT",
text:"*Menu*",width:"150",sp:"1"},{id:"K_SPACE",width:"570",text:""},{id:"K_BKSP",text:"*BkSp*",width:"150",sp:"1"},{id:"K_ENTER",text:"*Enter*",width:"200",sp:"1"}]}]}]}};(function(){var b=window.tavultesoft.keymanweb;if("complete"===document.readyState)b.init(null);else var f=window.setInterval(function(){"complete"===document.readyState&&(window.clearInterval(f),b.init(null))},10)})();