/
jquery.keyboard.min.js
19 lines (15 loc) · 21.2 KB
/
jquery.keyboard.min.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/*
jQuery UI Virtual Keyboard
Version 1.8.14 minified
Author: Jeremy Satterfield
Modified: Rob Garrison (Mottie on github)
-----------------------------------------
Creative Commons Attribution-Share Alike 3.0 Unported License
http://creativecommons.org/licenses/by-sa/3.0/
Caret code from jquery.caret.1.02.js
Licensed under the MIT License:
http://www.opensource.org/licenses/mit-license.php
-----------------------------------------
*/
(function(e){e.keyboard=function(b,m){var a=this,d;a.$el=e(b);a.el=b;a.$el.data("keyboard",a);a.init=function(){a.options=d=e.extend(!0,{},e.keyboard.defaultOptions,m);a.shiftActive=a.altActive=a.metaActive=a.sets=a.capsLock=!1;a.lastKeyset=[!1,!1,!1];a.temp=["",0,0];a.rows=["","-shift","-alt","-alt-shift"];a.acceptedKeys=[];a.mappedKeys={};e('<\!--[if lte IE 8]><script>$("body").addClass("oldie");<\/script><![endif]--\>').appendTo("body").remove();a.msie=e("body").is(".oldie");a.opera=window.opera&& window.opera.toString()==="[object Opera]";a.inPlaceholder=a.$el.attr("placeholder")||"";a.watermark=typeof document.createElement("input").placeholder!=="undefined"&&a.inPlaceholder!=="";a.regex=e.keyboard.comboRegex;a.decimal=/^\./.test(d.display.dec)?!0:!1;a.checkCaret=d.lockInput||a.msie||a.opera?!0:!1;e.each("initialized visible change hidden canceled accepted beforeClose".split(" "),function(c,f){e.isFunction(d[f])&&a.$el.bind(f+".keyboard",d[f])});if(d.alwaysOpen)d.stayOpen=!0;d.stayOpen|| e(document).bind("mousedown.keyboard keyup.keyboard",function(c){a.isVisible&&(c.type==="mousedown"||c.type==="keyup"&&c.which===27)&&a.escClose(c)});a.$el.addClass("ui-keyboard-input ui-widget-content ui-corner-all").attr({"aria-haspopup":"true",role:"textbox"});(a.$el.is(":disabled")||a.$el.attr("readonly"))&&a.$el.addClass("ui-keyboard-nokeyboard");d.openOn&&a.$el.bind(d.openOn+".keyboard",function(){a.focusOn()});!a.watermark&&a.$el.val()===""&&a.inPlaceholder!==""&&a.$el.attr("placeholder")!== ""&&a.$el.addClass("ui-keyboard-placeholder").val(a.inPlaceholder);a.$el.trigger("initialized.keyboard",[a,a.el]);d.alwaysOpen&&a.reveal()};a.focusOn=function(){if(!a.isVisible||d.alwaysOpen)clearTimeout(a.timer),a.reveal(),d.usePreview||setTimeout(function(){a.preview.focus()},100)};a.reveal=function(){e(".ui-keyboard:not(.ui-keyboard-always-open)").hide();e(".ui-keyboard-has-focus").removeClass("ui-keyboard-has-focus");if(a.$el.is(":disabled")||a.$el.attr("readonly"))a.$el.addClass("ui-keyboard-nokeyboard"); else{a.$el.removeClass("ui-keyboard-nokeyboard");d.usePreview||a.$el.unbind(d.openOn?d.openOn+".keyboard":"");typeof a.$keyboard==="undefined"&&a.startup();!a.watermark&&a.el.value===a.inPlaceholder&&a.$el.removeClass("ui-keyboard-placeholder").val("");a.originalContent=a.$el.val();a.$preview.val(a.originalContent);var c;c=d.position;c.of=c.of||a.$el.data("keyboardPosition")||a.$el;c.collision=d.usePreview?c.collision||"fit fit":"flip flip";a.$keyboard.css({position:"absolute",left:0,top:0}).addClass("ui-keyboard-has-focus").show().position(c); if(typeof a.width==="undefined")a.width=Math.ceil(a.$keyboard.width());d.usePreview&&a.$preview.width(a.width);a.preview.focus();a.isVisible=!0;a.checkDecimal();a.lineHeight=parseInt(a.$preview.css("lineHeight"),10)||parseInt(a.$preview.css("font-size"),10)+4;if(a.msie){c=a.originalContent.length;c={start:c,end:c};if(!a.lastCaret)a.lastCaret=c;if(a.lastCaret.end===0&&a.lastCaret.start>0)a.lastCaret.end=a.lastCaret.start;if(a.lastCaret.start<0)a.lastCaret=c;a.$preview.caret(a.lastCaret.start,a.lastCaret.end); e('<div class="ui-keyboard-overlay"></div>').click(function(){e(this).remove();a.close();return!1}).appendTo("body");d.usePreview||a.$el.addClass("ui-keyboard-overlay-input")}a.$el.trigger("visible.keyboard",[a,a.el]);return a}};a.startup=function(){a.$keyboard=a.buildKeyboard();a.$allKeys=a.$keyboard.find(".ui-keyboard-button");a.$preview=d.usePreview?a.$keyboard.find(".ui-keyboard-preview"):a.$el;a.preview=a.$preview[0];a.$decBtn=a.$keyboard.find(".ui-keyboard-dec");a.wheel=e.isFunction(e.fn.mousewheel); a.alwaysAllowed=[20,33,34,35,36,37,38,39,40,45,46];a.lastCaret={start:0,end:0};a.$preview.bind("keypress.keyboard",function(c){var f=String.fromCharCode(c.charCode||c.which);if(a.checkCaret)a.lastCaret=a.$preview.caret();a.capsLock=f>=65&&f<=90&&!c.shiftKey||f>=97&&f<=122&&c.shiftKey?!0:!1;if(d.restrictInput){if((c.which===8||c.which===0)&&e.inArray(c.keyCode,a.alwaysAllowed))return;e.inArray(f,a.acceptedKeys)===-1&&c.preventDefault()}else if((c.ctrlKey||c.metaKey)&&(c.which===97||c.which===99||c.which=== 118||c.which>=120&&c.which<=122))return;a.hasMappedKeys&&a.mappedKeys.hasOwnProperty(f)&&(a.insertText(a.mappedKeys[f]),c.preventDefault());a.checkMaxLength()}).bind("keyup.keyboard",function(c){switch(c.which){case 9:if(a.tab&&!d.lockInput)e.keyboard.keyaction.tab(a),a.tab=!1;break;case 27:return a.close(),!1}clearTimeout(a.throttled);a.throttled=setTimeout(function(){a.checkCombos()},100);a.checkMaxLength();a.$el.trigger("change.keyboard",[a,a.el])}).bind("keydown.keyboard",function(c){switch(c.which){case 9:a.tab= !0;c.preventDefault();break;case 13:if(c.shiftKey)return a.close(!0),!1;break;case 20:a.shiftActive=a.capsLock=!a.capsLock;a.showKeySet(this);break;case 86:if(c.ctrlKey||c.metaKey){if(d.preventPaste){c.preventDefault();break}a.checkCombos()}}}).bind("mouseup.keyboard",function(){if(a.checkCaret)a.lastCaret=a.$preview.caret()}).bind("blur.keyboard",function(){if(d.alwaysOpen)clearTimeout(a.timer),a.timer=setTimeout(function(){e(":focus")[0]!==a.el&&a.close(d.autoAccept)},300)});d.preventPaste&&(a.$preview.bind("contextmenu.keyboard", function(a){a.preventDefault()}),a.$el.bind("contextmenu.keyboard",function(a){a.preventDefault()}));a.$keyboard.appendTo("body");a.$allKeys.bind(d.keyBinding+".keyboard",function(c){var f;f=e.data(this,"key");var b=f.action.split(":")[0];a.preview.focus();a.checkCaret&&a.$preview.caret(a.lastCaret.start,a.lastCaret.end);b.match("meta")&&(b="meta");if(e.keyboard.keyaction.hasOwnProperty(b)&&e(this).is(".ui-keyboard-actionkey")){if(e.keyboard.keyaction[b](a,this)===!1)return}else if(typeof f.action!== "undefined"&&(f=a.wheel&&!e(this).is(".ui-keyboard-actionkey")?f.curTxt:f.action,a.insertText(f),!a.capsLock&&!d.stickyShift&&!c.shiftKey))a.shiftActive=!1,a.showKeySet(this);a.checkCombos();a.checkMaxLength();a.$el.trigger("change.keyboard",[a,a.el]);d.usePreview&&a.preview.focus();c.preventDefault()}).bind("mouseenter.keyboard mouseleave.keyboard",function(c){var f=e(this),b=e.data(this,"key");c.type==="mouseenter"&&a.el.type!=="password"&&f.addClass("ui-state-hover").attr("title",function(c,f){return a.wheel&& f===""&&a.sets?d.wheelMessage:f});if(c.type==="mouseleave")b.curTxt=b.original,b.curNum=0,e.data(this,"key",b),f.removeClass(a.el.type==="password"?"":"ui-state-hover").attr("title",function(a,c){return c===d.wheelMessage?"":c}).find("span").text(b.original)}).bind("mousewheel.keyboard",function(c,f){if(a.wheel){var d,b=e(this),g=e.data(this,"key");d=g.layers||a.getLayers(b);g.curNum+=f>0?-1:1;if(g.curNum>d.length-1)g.curNum=0;if(g.curNum<0)g.curNum=d.length-1;g.layers=d;g.curTxt=d[g.curNum];e.data(this, "key",g);b.find("span").text(d[g.curNum]);return!1}}).bind("mouseup.keyboard",function(){a.preview.focus()})};a.insertText=function(c){var f,d;d=a.$preview.val();var b=a.$preview.caret(),g=a.$preview.scrollLeft();f=a.$preview.scrollTop();var e=d.length;if(b.end<b.start)b.end=b.start;if(b.start>e)b.end=b.start=e;if(a.preview.tagName==="TEXTAREA")a.msie&&d.substr(b.start,1)==="\n"&&(b.start+=1,b.end+=1),d=d.split("\n").length-1,a.preview.scrollTop=d>0?a.lineHeight*d:f;f=c==="bksp"&&b.start===b.end? !0:!1;c=c==="bksp"?"":c;d=b.start+(f?-1:c.length);g+=parseInt(a.$preview.css("fontSize"),10)*(c==="bksp"?-1:1);a.$preview.val(a.$preview.val().substr(0,b.start-(f?1:0))+c+a.$preview.val().substr(b.end)).caret(d,d).scrollLeft(g);if(a.checkCaret)a.lastCaret={start:d,end:d}};a.checkMaxLength=function(){var c,f=a.$preview.val();if(d.maxLength!==!1&&f.length>d.maxLength)c=Math.min(a.$preview.caret().start,d.maxLength),a.$preview.val(f.substring(0,d.maxLength)),a.$preview.caret(c,c),a.lastCaret={start:c, end:c};a.$decBtn.length&&a.checkDecimal()};a.showKeySet=function(c){var f="",b=(a.shiftActive?1:0)+(a.altActive?2:0);if(!a.shiftActive)a.capsLock=!1;if(a.metaActive){if(f=c&&c.name&&/meta/.test(c.name)?c.name:"",f===""?f=a.metaActive===!0?"":a.metaActive:a.metaActive=f,!d.stickyShift&&a.lastKeyset[2]!==a.metaActive||(a.shiftActive||a.altActive)&&!a.$keyboard.find(".ui-keyboard-keyset-"+f+a.rows[b]).length)a.shiftActive=a.altActive=!1}else if(!d.stickyShift&&a.lastKeyset[2]!==a.metaActive&&a.shiftActive)a.shiftActive= a.altActive=!1;b=(a.shiftActive?1:0)+(a.altActive?2:0);f=b===0&&!a.metaActive?"-default":f===""?"":"-"+f;a.$keyboard.find(".ui-keyboard-keyset"+f+a.rows[b]).length?(a.$keyboard.find(".ui-keyboard-alt, .ui-keyboard-shift, .ui-keyboard-actionkey[class*=meta]").removeClass(d.actionClass).end().find(".ui-keyboard-alt")[a.altActive?"addClass":"removeClass"](d.actionClass).end().find(".ui-keyboard-shift")[a.shiftActive?"addClass":"removeClass"](d.actionClass).end().find(".ui-keyboard-lock")[a.capsLock? "addClass":"removeClass"](d.actionClass).end().find(".ui-keyboard-keyset").hide().end().find(".ui-keyboard-keyset"+f+a.rows[b]).show().end().find(".ui-keyboard-actionkey.ui-keyboard"+f).addClass(d.actionClass),a.lastKeyset=[a.shiftActive,a.altActive,a.metaActive]):(a.shiftActive=a.lastKeyset[0],a.altActive=a.lastKeyset[1],a.metaActive=a.lastKeyset[2])};a.checkCombos=function(){var c,b,l,h=a.$preview.val(),g=a.$preview.caret(),i=h.length;if(g.end<g.start)g.end=g.start;if(g.start>i)g.end=g.start=i; a.msie&&h.substr(g.start,1)==="\n"&&(g.start+=1,g.end+=1);d.useCombos&&(h=h.replace(a.regex,function(a,c,b){return d.combos.hasOwnProperty(c)?d.combos[c][b]||a:a}));if(d.restrictInput){l=h.split("");b=l.length;for(c=0;c<b;c++)e.inArray(l[c],a.acceptedKeys)<0&&(h=h.replace(l[c],""))}g.start+=h.length-i;g.end+=h.length-i;a.$preview.val(h);a.$preview.caret(g.start,g.end);a.preview.scrollTop=a.lineHeight*(h.substring(0,g.start).split("\n").length-1);a.lastCaret={start:g.start,end:g.end};return h};a.checkDecimal= function(){a.decimal&&/\./g.test(a.preview.value)||!a.decimal&&/\,/g.test(a.preview.value)?a.$decBtn.attr({disabled:"disabled","aria-disabled":"true"}).removeClass("ui-state-default ui-state-hover").addClass("ui-state-disabled"):a.$decBtn.removeAttr("disabled").attr({"aria-disabled":"false"}).addClass("ui-state-default").removeClass("ui-state-disabled")};a.getLayers=function(a){var b;b=a.attr("data-pos");return a.closest(".ui-keyboard").find('button[data-pos="'+b+'"]').map(function(){return e(this).find("span").text()}).get()}; a.close=function(c){if(a.$keyboard.is(":visible")){clearTimeout(a.throttled);a.$el.trigger(d.alwaysOpen?"":"beforeClose.keyboard",[a,a.el,c||!1]).val(c?d.alwaysOpen?a.$el.val():a.checkCombos():a.originalContent).scrollTop(a.el.scrollHeight).trigger(c?"accepted.keyboard":"canceled.keyboard",[a,a.el]).trigger(d.alwaysOpen?"":"hidden.keyboard",[a,a.el]).removeClass("ui-keyboard-overlay-input");!d.usePreview&&d.openOn!==""&&a.$el.bind(d.openOn+".keyboard",function(){a.focusOn()});e(".ui-keyboard-overlay").remove(); if(!d.alwaysOpen)a.$keyboard.hide(),a.isVisible=!1;!a.watermark&&a.el.value===""&&a.inPlaceholder!==""&&a.$el.addClass("ui-keyboard-placeholder").val(a.inPlaceholder)}return!1};a.accept=function(){a.close(!0)};a.escClose=function(c){c.target!==a.el&&(e(c.target).closest(".ui-keyboard").length||a.close(d.autoAccept?!0:!1),a.msie&&c.preventDefault())};a.keyBtn=e("<button />").attr({role:"button","aria-disabled":"false"}).addClass("ui-keyboard-button ui-state-default ui-corner-all");a.addKey=function(c, b,l){var h,g,i,b=l===!0?c:d.display[b]||c,k=l===!0?c.charCodeAt(0):c;/\(.+\)/.test(b)&&(g=b.replace(/\(([^()]+)\)/,""),h=b.match(/\(([^()]+)\)/)[1],b=g,i=g.split(":"),g=i[0]!==""&&i.length>1?i[0]:g,a.mappedKeys[h]=g);i=b.split(":");i[0]===""&&i[1]===""&&(b=":");b=i[0]!==""&&i.length>1?e.trim(i[0]):b;h=i.length>1?e.trim(i[1]).replace(/_/g," ")||"":"";g=b.length>1?" ui-keyboard-widekey":"";g+=l?"":" ui-keyboard-actionkey";return a.keyBtn.clone().attr({"data-value":b,name:k,"data-pos":a.temp[1]+","+ a.temp[2],title:h}).data("key",{action:c,original:b,curTxt:b,curNum:0}).addClass("ui-keyboard-"+k+g).html("<span>"+b+"</span>").appendTo(a.temp[0])};a.buildKeyboard=function(){var b,f,l,h,g,i,k,j=0,m=e("<div />").addClass("ui-keyboard ui-widget-content ui-widget ui-corner-all ui-helper-clearfix"+(d.alwaysOpen?" ui-keyboard-always-open":"")).attr({role:"textbox"}).hide();d.usePreview?a.$preview=a.$el.clone(!1).removeAttr("id").removeAttr("placeholder").removeClass("ui-keyboard-placeholder").addClass("ui-widget-content ui-keyboard-preview ui-corner-all").show(): (a.$preview=a.$el,d.position.at=d.position.at2);a.$preview.attr(d.lockInput?{readonly:"readonly"}:{});d.usePreview&&e("<div />").append(a.$preview).appendTo(m);if(d.layout==="custom"||!e.keyboard.layouts.hasOwnProperty(d.layout))d.layout="custom",e.keyboard.layouts.custom=d.customLayout||{"default":["{cancel}"]};e.each(e.keyboard.layouts[d.layout],function(n,o){if(n!==""){j++;l=e("<div />").attr("name",n).addClass("ui-keyboard-keyset ui-keyboard-keyset-"+n).appendTo(m)[n==="default"?"show":"hide"](); for(f=0;f<o.length;f++){h=e.trim(o[f]).replace(/\{(\.?)[\s+]?:[\s+]?(\.?)\}/g,"{$1:$2}");i=h.split(/\s+/);for(g=0;g<i.length;g++)if(a.temp=[l,f,g],i[g].length!==0)if(/^\{\S+\}$/.test(i[g]))if(b=i[g].match(/^\{(\S+)\}$/)[1].toLowerCase(),/^sp:(\.?\d+)$/.test(b)&&(k=b.match(/^sp:(\.?\d+)$/)[1]||0,e("<span> </span>").css("margin","0 "+k+"em").appendTo(l)),/^meta\d+\:?(\w+)?/.test(b))a.addKey(b,b);else switch(b){case "a":case "accept":a.addKey("accept",b).addClass(d.actionClass);break;case "alt":case "altgr":a.addKey("alt", "alt");break;case "b":case "bksp":a.addKey("bksp",b);break;case "c":case "cancel":a.addKey("cancel",b).addClass(d.actionClass);break;case "combo":a.addKey("combo","combo").addClass(d.actionClass);break;case "dec":a.acceptedKeys.push(a.decimal?".":",");a.addKey("dec","dec");break;case "e":case "enter":a.addKey("enter",b).addClass(d.actionClass);break;case "s":case "shift":a.addKey("shift",b);break;case "sign":a.acceptedKeys.push("-");a.addKey("sign","sign");break;case "space":a.acceptedKeys.push(" "); a.addKey("space"," ");break;case "t":case "tab":a.addKey("tab",b);break;default:e.keyboard.keyaction.hasOwnProperty(b)&&a.addKey(b,b)}else a.acceptedKeys.push(i[g].split(":")[0]),a.addKey(i[g],i[g],!0);l.find(".ui-keyboard-button:last").after('<br class="ui-keyboard-button-endrow">')}}});if(j>1)a.sets=!0;a.hasMappedKeys=!e.isEmptyObject(a.mappedKeys);return m};a.destroy=function(){e(document).unbind("mousedown.keyboard keyup.keyboard",a.escClose);a.$keyboard&&a.$keyboard.remove();var b=d.openOn+ " accepted beforeClose blur canceled change contextmenu hidden initialized keydown keypress keyup visible".split(" ").join(".keyboard ");a.$el.removeClass("ui-keyboard-input ui-widget-content ui-corner-all ui-keyboard-placeholder ui-keyboard-notallowed ui-keyboard-always-open").removeAttr("aria-haspopup").removeAttr("role").unbind(b+".keyboard").removeData("keyboard")};a.init()};e.keyboard.keyaction={accept:function(b){b.close(!0);return!1},alt:function(b,e){b.altActive=!b.altActive;b.showKeySet(e)}, bksp:function(b){b.insertText("bksp")},cancel:function(b){b.close();return!1},clear:function(b){b.$preview.val("")},combo:function(b){var e=!b.options.useCombos;b.options.useCombos=e;b.$keyboard.find(".ui-keyboard-combo")[e?"addClass":"removeClass"](b.options.actionClass);e&&b.checkCombos();return!1},dec:function(b){b.insertText(b.decimal?".":",")},enter:function(b){b.el.tagName!=="INPUT"&&b.insertText("\r\n")},lock:function(b,e){b.lastKeyset[0]=b.shiftActive=b.capsLock=!b.capsLock;b.showKeySet(e)}, meta:function(b,m){b.metaActive=e(m).is("."+b.options.actionClass)?!1:!0;b.showKeySet(m)},shift:function(b,e){b.lastKeyset[0]=b.shiftActive=!b.shiftActive;b.showKeySet(e)},sign:function(b){/^\-?\d*\.?\d*$/.test(b.$preview.val())&&b.$preview.val(b.$preview.val()*-1)},space:function(b){b.insertText(" ")},tab:function(b){b.el.tagName!=="INPUT"&&b.insertText("\t")}};e.keyboard.layouts={alpha:{"default":["` 1 2 3 4 5 6 7 8 9 0 - = {bksp}","{tab} a b c d e f g h i j [ ] \\","k l m n o p q r s ; ' {enter}", "{shift} t u v w x y z , . / {shift}","{accept} {space} {cancel}"],shift:["~ ! @ # $ % ^ & * ( ) _ + {bksp}","{tab} A B C D E F G H I J { } |",'K L M N O P Q R S : " {enter}',"{shift} T U V W X Y Z < > ? {shift}","{accept} {space} {cancel}"]},qwerty:{"default":["` 1 2 3 4 5 6 7 8 9 0 - = {bksp}","{tab} q w e r t y u i o p [ ] \\","a s d f g h j k l ; ' {enter}","{shift} z x c v b n m , . / {shift}","{accept} {space} {cancel}"],shift:["~ ! @ # $ % ^ & * ( ) _ + {bksp}","{tab} Q W E R T Y U I O P { } |", 'A S D F G H J K L : " {enter}',"{shift} Z X C V B N M < > ? {shift}","{accept} {space} {cancel}"]},international:{"default":["` 1 2 3 4 5 6 7 8 9 0 - = {bksp}","{tab} q w e r t y u i o p [ ] \\","a s d f g h j k l ; ' {enter}","{shift} z x c v b n m , . / {shift}","{accept} {alt} {space} {alt} {cancel}"],shift:["~ ! @ # $ % ^ & * ( ) _ + {bksp}","{tab} Q W E R T Y U I O P { } |",'A S D F G H J K L : " {enter}',"{shift} Z X C V B N M < > ? {shift}","{accept} {alt} {space} {alt} {cancel}"],alt:["~ \u00a1 \u00b2 \u00b3 \u00a4 \u20ac \u00bc \u00bd \u00be \u2018 \u2019 \u00a5 \u00d7 {bksp}", "{tab} \u00e4 \u00e5 \u00e9 \u00ae \u00fe \u00fc \u00fa \u00ed \u00f3 \u00f6 \u00ab \u00bb \u00ac","\u00e1 \u00df \u00f0 f g h j k \u00f8 \u00b6 \u00b4 {enter}","{shift} \u00e6 x \u00a9 v b \u00f1 \u00b5 \u00e7 > \u00bf {shift}","{accept} {alt} {space} {alt} {cancel}"],"alt-shift":["~ \u00b9 \u00b2 \u00b3 \u00a3 \u20ac \u00bc \u00bd \u00be \u2018 \u2019 \u00a5 \u00f7 {bksp}","{tab} \u00c4 \u00c5 \u00c9 \u00ae \u00de \u00dc \u00da \u00cd \u00d3 \u00d6 \u00ab \u00bb \u00a6","\u00c4 \u00a7 \u00d0 F G H J K \u00d8 \u00b0 \u00a8 {enter}", "{shift} \u00c6 X \u00a2 V B \u00d1 \u00b5 \u00c7 . \u00bf {shift}","{accept} {alt} {space} {alt} {cancel}"]},dvorak:{"default":["` 1 2 3 4 5 6 7 8 9 0 [ ] {bksp}","{tab} ' , . p y f g c r l / = \\","a o e u i d h t n s - {enter}","{shift} ; q j k x b m w v z {shift}","{accept} {space} {cancel}"],shift:["~ ! @ # $ % ^ & * ( ) { } {bksp}",'{tab} " < > P Y F G C R L ? + |',"A O E U I D H T N S _ {enter}","{shift} : Q J K X B M W V Z {shift}","{accept} {space} {cancel}"]},num:{"default":"= ( ) {b},{clear} / * -,7 8 9 +,4 5 6 {sign},1 2 3 %,0 . {a} {c}".split(",")}}; e.keyboard.defaultOptions={layout:"qwerty",customLayout:null,position:{of:null,my:"center top",at:"center top",at2:"center bottom"},usePreview:!0,alwaysOpen:!1,stayOpen:!1,display:{a:"\u2714:Accept (Shift-Enter)",accept:"Accept:Accept (Shift-Enter)",alt:"AltGr:Alternate Graphemes",b:"\u2190:Backspace",bksp:"Bksp:Backspace",c:"\u2716:Cancel (Esc)",cancel:"Cancel:Cancel (Esc)",clear:"C:Clear",combo:"\u00f6:Toggle Combo Keys",dec:".:Decimal",e:"\u21b5:Enter",enter:"Enter:Enter",lock:"\u21ea Lock:Caps Lock", s:"\u21e7:Shift",shift:"Shift:Shift",sign:"\u00b1:Change Sign",space:" :Space",t:"\u21e5:Tab",tab:"\u21e5 Tab:Tab"},wheelMessage:"Use mousewheel to see other keys",actionClass:"ui-state-active",autoAccept:!1,lockInput:!1,restrictInput:!1,stickyShift:!0,preventPaste:!1,maxLength:!1,openOn:"focus",keyBinding:"mousedown",useCombos:!0,combos:{"`":{a:"\u00e0",A:"\u00c0",e:"\u00e8",E:"\u00c8",i:"\u00ec",I:"\u00cc",o:"\u00f2",O:"\u00d2",u:"\u00f9",U:"\u00d9",y:"\u1ef3",Y:"\u1ef2"},"'":{a:"\u00e1",A:"\u00c1", e:"\u00e9",E:"\u00c9",i:"\u00ed",I:"\u00cd",o:"\u00f3",O:"\u00d3",u:"\u00fa",U:"\u00da",y:"\u00fd",Y:"\u00dd"},'"':{a:"\u00e4",A:"\u00c4",e:"\u00eb",E:"\u00cb",i:"\u00ef",I:"\u00cf",o:"\u00f6",O:"\u00d6",u:"\u00fc",U:"\u00dc",y:"\u00ff",Y:"\u0178"},"^":{a:"\u00e2",A:"\u00c2",e:"\u00ea",E:"\u00ca",i:"\u00ee",I:"\u00ce",o:"\u00f4",O:"\u00d4",u:"\u00fb",U:"\u00db",y:"\u0177",Y:"\u0176"},"~":{a:"\u00e3",A:"\u00c3",e:"\u1ebd",E:"\u1ebc",i:"\u0129",I:"\u0128",o:"\u00f5",O:"\u00d5",u:"\u0169",U:"\u0168", y:"\u1ef9",Y:"\u1ef8",n:"\u00f1",N:"\u00d1"}},initialized:null,accepted:null,canceled:null,hidden:null,visible:null,beforeClose:null};e.keyboard.comboRegex=/([`\'~\^\"ao])([a-z])/mig;e.fn.keyboard=function(b){return this.each(function(){new e.keyboard(this,b)})};e.fn.getkeyboard=function(){return this.data("keyboard")}})(jQuery);
(function(e,b,m,a){e.fn.caret=function(d,c){if(typeof this[0]!=="undefined"){var f,e,h,g,i,k;f=document.selection;var j=this[0],p=j.scrollTop;k=window.opera&&window.opera.toString()==="[object Opera]";var n=typeof j.selectionStart!=="undefined";typeof d==="number"&&typeof c==="number"&&(h=d,i=c);return typeof h!=="undefined"?(n?(j.tagName==="TEXTAREA"&&k&&(k=this.val(),f=k.substring(0,h).split("\n")[b]-1,h+=f>0?f:0,i+=f>0?f:0),j.selectionStart=h,j.selectionEnd=i):(f=j.createTextRange(),f.collapse(!0), f.moveStart("character",h),f.moveEnd("character",i-h),f.select()),j.focus(),j.scrollTop=p,this):(n?(e=j.selectionStart,g=j.selectionEnd,j.tagName==="TEXTAREA"&&k&&(k=this.val(),f=k.substring(0,e).split("\n")[b]-1,e+=f>0?-f:0,g+=f>0?-f:0)):j.tagName==="TEXTAREA"?(k=this.val(),h=f[m](),i=h[a](),i.moveToElementText(j),i.setEndPoint("EndToEnd",h),e=i.text.replace(/\r\n/g,"\r")[b],g=e+h.text.replace(/\r\n/g,"\r")[b]):(k=this.val().replace(/\r\n/g,"\r"),h=f[m]()[a](),h.moveEnd("character",k[b]),e=h.text=== ""?k[b]:k.lastIndexOf(h.text),h=f[m]()[a](),h.moveStart("character",-k[b]),g=h.text[b]),h=j.value.substring(e,g),{start:e,end:g,text:h,replace:function(a){return j.value.substring(0,e)+a+j.value.substring(g,j.value[b])}})}}})(jQuery,"length","createRange","duplicate");