/*
jQuery UI Virtual Keyboard
Version 1.8.17 minified

Author: Jeremy Satterfield
Modified: Rob Garrison (Mottie on github)
-----------------------------------------
Licensed under the MIT License

Caret code from jquery.caret.1.02.js
Licensed under the MIT License:
http://www.opensource.org/licenses/mit-license.php
-----------------------------------------
*/

(function(d){d.keyboard=function(b,l){var a=this,e;a.$el=d(b);a.el=b;a.$el.data("keyboard",a);a.init=function(){a.options=e=d.extend(true,{},d.keyboard.defaultOptions,l);a.shiftActive=a.altActive=a.metaActive=a.sets=a.capsLock=false;a.lastKeyset=[false,false,false];a.temp=["",0,0];a.rows=["","-shift","-alt","-alt-shift"];a.acceptedKeys=[];a.mappedKeys={};d('<\!--[if lte IE 8]><script>$("body").addClass("oldie");<\/script><![endif]--\>').appendTo("body").remove();a.msie=d("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=d.keyboard.comboRegex;a.decimal=/^\./.test(e.display.dec)?true:false;a.checkCaret=e.lockInput||a.msie||a.opera?true:false;d.each("initialized visible change hidden canceled accepted beforeClose".split(" "),function(c,g){d.isFunction(e[g])&&a.$el.bind(g+".keyboard",e[g])});if(e.alwaysOpen)e.stayOpen= true;e.stayOpen||d(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");e.openOn&&a.$el.bind(e.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]);e.alwaysOpen&&a.reveal()};a.focusOn=function(){if(!a.isVisible||e.alwaysOpen)clearTimeout(a.timer),a.reveal(),e.usePreview||setTimeout(function(){a.preview.focus()},100)};a.reveal=function(){d(".ui-keyboard:not(.ui-keyboard-always-open)").hide();d(".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");e.usePreview||a.$el.unbind(e.openOn?e.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=e.position;c.of=c.of||a.$el.data("keyboardPosition")||a.$el;c.collision=e.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());e.usePreview&&a.$preview.width(a.width);a.preview.focus();a.isVisible=true;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); d('<div class="ui-keyboard-overlay"></div>').click(function(){d(this).remove();a.close();return false}).appendTo("body");e.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=e.usePreview?a.$keyboard.find(".ui-keyboard-preview"):a.$el;a.preview=a.$preview[0];a.$decBtn=a.$keyboard.find(".ui-keyboard-dec");a.wheel=d.isFunction(d.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 g=String.fromCharCode(c.charCode||c.which);if(a.checkCaret)a.lastCaret=a.$preview.caret();a.capsLock=g>=65&&g<=90&&!c.shiftKey||g>=97&&g<=122&&c.shiftKey?true:false;if(e.restrictInput){if((c.which===8||c.which===0)&&d.inArray(c.keyCode,a.alwaysAllowed))return;d.inArray(g,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(g)&&(a.insertText(a.mappedKeys[g]),c.preventDefault());a.checkMaxLength()}).bind("keyup.keyboard",function(c){switch(c.which){case 9:if(a.tab&&!e.lockInput)d.keyboard.keyaction.tab(a),a.tab=false;break;case 27:return a.close(),false}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:if(e.tabNavigation){a.close(e.autoAccept);break}else a.tab=true,c.preventDefault();break;case 13:if(c.shiftKey)return a.close(true),false;break;case 20:a.shiftActive=a.capsLock=!a.capsLock;a.showKeySet(this);break;case 86:if(c.ctrlKey||c.metaKey){if(e.preventPaste){c.preventDefault();break}a.checkCombos()}}}).bind("mouseup.keyboard",function(){if(a.checkCaret)a.lastCaret=a.$preview.caret()}).bind("blur.keyboard",function(){if(e.alwaysOpen)clearTimeout(a.timer),a.timer= setTimeout(function(){d(":focus")[0]!==a.el&&a.close(e.autoAccept)},300)});e.preventPaste&&(a.$preview.bind("contextmenu.keyboard",function(a){a.preventDefault()}),a.$el.bind("contextmenu.keyboard",function(a){a.preventDefault()}));e.appendLocally?a.$el.after(a.$keyboard):a.$keyboard.appendTo("body");a.$allKeys.bind(e.keyBinding+".keyboard",function(c){var g;g=d.data(this,"key");var b=g.action.split(":")[0];a.preview.focus();a.checkCaret&&a.$preview.caret(a.lastCaret.start,a.lastCaret.end);b.match("meta")&& (b="meta");if(d.keyboard.keyaction.hasOwnProperty(b)&&d(this).is(".ui-keyboard-actionkey")){if(d.keyboard.keyaction[b](a,this)===false)return}else if(typeof g.action!=="undefined"&&(g=a.wheel&&!d(this).is(".ui-keyboard-actionkey")?g.curTxt:g.action,a.insertText(g),!a.capsLock&&!e.stickyShift&&!c.shiftKey))a.shiftActive=false,a.showKeySet(this);a.checkCombos();a.checkMaxLength();a.$el.trigger("change.keyboard",[a,a.el]);e.usePreview&&a.preview.focus();c.preventDefault()}).bind("mouseenter.keyboard mouseleave.keyboard", function(c){var g=d(this),b=d.data(this,"key");c.type==="mouseenter"&&a.el.type!=="password"&&g.addClass("ui-state-hover").attr("title",function(c,g){return a.wheel&&g===""&&a.sets?e.wheelMessage:g});if(c.type==="mouseleave")b.curTxt=b.original,b.curNum=0,d.data(this,"key",b),g.removeClass(a.el.type==="password"?"":"ui-state-hover").attr("title",function(a,c){return c===e.wheelMessage?"":c}).find("span").text(b.original)}).bind("mousewheel.keyboard",function(c,g){if(a.wheel){var e,b=d(this),f=d.data(this, "key");e=f.layers||a.getLayers(b);f.curNum+=g>0?-1:1;if(f.curNum>e.length-1)f.curNum=0;if(f.curNum<0)f.curNum=e.length-1;f.layers=e;f.curTxt=e[f.curNum];d.data(this,"key",f);b.find("span").text(e[f.curNum]);return false}}).bind("mouseup.keyboard",function(){a.preview.focus()})};a.insertText=function(c){var g,e;e=a.$preview.val();var b=a.$preview.caret(),f=a.$preview.scrollLeft();g=a.$preview.scrollTop();var d=e.length;if(b.end<b.start)b.end=b.start;if(b.start>d)b.end=b.start=d;if(a.preview.tagName=== "TEXTAREA")a.msie&&e.substr(b.start,1)==="\n"&&(b.start+=1,b.end+=1),e=e.split("\n").length-1,a.preview.scrollTop=e>0?a.lineHeight*e:g;g=c==="bksp"&&b.start===b.end?true:false;c=c==="bksp"?"":c;e=b.start+(g?-1:c.length);f+=parseInt(a.$preview.css("fontSize"),10)*(c==="bksp"?-1:1);a.$preview.val(a.$preview.val().substr(0,b.start-(g?1:0))+c+a.$preview.val().substr(b.end)).caret(e,e).scrollLeft(f);if(a.checkCaret)a.lastCaret={start:e,end:e}};a.checkMaxLength=function(){var c,g=a.$preview.val();if(e.maxLength!== false&&g.length>e.maxLength)c=Math.min(a.$preview.caret().start,e.maxLength),a.$preview.val(g.substring(0,e.maxLength)),a.$preview.caret(c,c),a.lastCaret={start:c,end:c};a.$decBtn.length&&a.checkDecimal()};a.showKeySet=function(c){var g="",b=(a.shiftActive?1:0)+(a.altActive?2:0);if(!a.shiftActive)a.capsLock=false;if(a.metaActive){if(g=c&&c.name&&/meta/.test(c.name)?c.name:"",g===""?g=a.metaActive===true?"":a.metaActive:a.metaActive=g,!e.stickyShift&&a.lastKeyset[2]!==a.metaActive||(a.shiftActive|| a.altActive)&&!a.$keyboard.find(".ui-keyboard-keyset-"+g+a.rows[b]).length)a.shiftActive=a.altActive=false}else if(!e.stickyShift&&a.lastKeyset[2]!==a.metaActive&&a.shiftActive)a.shiftActive=a.altActive=false;b=(a.shiftActive?1:0)+(a.altActive?2:0);g=b===0&&!a.metaActive?"-default":g===""?"":"-"+g;a.$keyboard.find(".ui-keyboard-keyset"+g+a.rows[b]).length?(a.$keyboard.find(".ui-keyboard-alt, .ui-keyboard-shift, .ui-keyboard-actionkey[class*=meta]").removeClass(e.actionClass).end().find(".ui-keyboard-alt")[a.altActive? "addClass":"removeClass"](e.actionClass).end().find(".ui-keyboard-shift")[a.shiftActive?"addClass":"removeClass"](e.actionClass).end().find(".ui-keyboard-lock")[a.capsLock?"addClass":"removeClass"](e.actionClass).end().find(".ui-keyboard-keyset").hide().end().find(".ui-keyboard-keyset"+g+a.rows[b]).show().end().find(".ui-keyboard-actionkey.ui-keyboard"+g).addClass(e.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,d,h=a.$preview.val(),f=a.$preview.caret(),i=h.length;if(f.end<f.start)f.end=f.start;if(f.start>i)f.end=f.start=i;a.msie&&h.substr(f.start,1)==="\n"&&(f.start+=1,f.end+=1);e.useCombos&&(h=h.replace(a.regex,function(a,c,b){return e.combos.hasOwnProperty(c)?e.combos[c][b]||a:a}));if(e.restrictInput&&h!==""){d=h;b=a.acceptedKeys.length;for(c=0;c<b;c++)d!==""&&h.indexOf(a.acceptedKeys[c])>=0&&(d=d.replace(RegExp(a.acceptedKeys[c],"g"),""));d!==""&&(h= h.replace(d,""))}f.start+=h.length-i;f.end+=h.length-i;a.$preview.val(h);a.$preview.caret(f.start,f.end);a.preview.scrollTop=a.lineHeight*(h.substring(0,f.start).split("\n").length-1);a.lastCaret={start:f.start,end:f.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 d(this).find("span").text()}).get()};a.close=function(c){if(a.$keyboard.is(":visible")){clearTimeout(a.throttled);a.$el.trigger(e.alwaysOpen?"":"beforeClose.keyboard",[a,a.el,c||false]).val(c?e.alwaysOpen?a.$el.val():a.checkCombos():a.originalContent).scrollTop(a.el.scrollHeight).trigger(c?"accepted.keyboard":"canceled.keyboard",[a,a.el]).trigger(e.alwaysOpen? "":"hidden.keyboard",[a,a.el]).removeClass("ui-keyboard-overlay-input");!e.usePreview&&e.openOn!==""&&a.$el.bind(e.openOn+".keyboard",function(){a.focusOn()});d(".ui-keyboard-overlay").remove();if(!e.alwaysOpen)a.$keyboard.hide(),a.isVisible=false;!a.watermark&&a.el.value===""&&a.inPlaceholder!==""&&a.$el.addClass("ui-keyboard-placeholder").val(a.inPlaceholder)}return false};a.accept=function(){a.close(true)};a.escClose=function(c){c.target!==a.el&&(d(c.target).closest(".ui-keyboard").length||a.close(e.autoAccept? true:false),a.msie&&c.preventDefault())};a.keyBtn=d("<button />").attr({role:"button","aria-disabled":"false",tabindex:"-1"}).addClass("ui-keyboard-button ui-state-default ui-corner-all");a.addKey=function(c,b,l){var h,f,i,b=l===true?c:e.display[b]||c,k=l===true?c.charCodeAt(0):c;/\(.+\)/.test(b)&&(f=b.replace(/\(([^()]+)\)/,""),h=b.match(/\(([^()]+)\)/)[1],b=f,i=f.split(":"),f=i[0]!==""&&i.length>1?i[0]:f,a.mappedKeys[h]=f);i=b.split(":");i[0]===""&&i[1]===""&&(b=":");b=i[0]!==""&&i.length>1?d.trim(i[0]): b;h=i.length>1?d.trim(i[1]).replace(/_/g," ")||"":"";f=b.length>1?" ui-keyboard-widekey":"";f+=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+f).html("<span>"+b+"</span>").appendTo(a.temp[0])};a.buildKeyboard=function(){var b,g,l,h,f,i,k,j=0,o=d("<div />").addClass("ui-keyboard ui-widget-content ui-widget ui-corner-all ui-helper-clearfix"+(e.alwaysOpen? " ui-keyboard-always-open":"")).attr({role:"textbox"}).hide();e.usePreview?a.$preview=a.$el.clone(false).removeAttr("id").removeAttr("placeholder").removeClass("ui-keyboard-placeholder").addClass("ui-widget-content ui-keyboard-preview ui-corner-all").show():(a.$preview=a.$el,e.position.at=e.position.at2);a.$preview.attr(e.lockInput?{readonly:"readonly"}:{});e.usePreview&&d("<div />").append(a.$preview).appendTo(o);if(e.layout==="custom"||!d.keyboard.layouts.hasOwnProperty(e.layout))e.layout="custom", d.keyboard.layouts.custom=e.customLayout||{"default":["{cancel}"]};d.each(d.keyboard.layouts[e.layout],function(n,p){if(n!==""){j++;l=d("<div />").attr("name",n).addClass("ui-keyboard-keyset ui-keyboard-keyset-"+n).appendTo(o)[n==="default"?"show":"hide"]();for(g=0;g<p.length;g++){h=d.trim(p[g]).replace(/\{(\.?)[\s+]?:[\s+]?(\.?)\}/g,"{$1:$2}");i=h.split(/\s+/);for(f=0;f<i.length;f++)if(a.temp=[l,g,f],i[f].length!==0)if(/^\{\S+\}$/.test(i[f]))if(b=i[f].match(/^\{(\S+)\}$/)[1].toLowerCase(),/^sp:(\.?\d+)$/.test(b)&& (k=b.match(/^sp:(\.?\d+)$/)[1]||0,d("<span>&nbsp;</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(e.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(e.actionClass);break;case "combo":a.addKey("combo","combo").addClass(e.actionClass);break;case "dec":a.acceptedKeys.push(a.decimal? ".":",");a.addKey("dec","dec");break;case "e":case "enter":a.addKey("enter",b).addClass(e.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","&nbsp;");break;case "t":case "tab":a.addKey("tab",b);break;default:d.keyboard.keyaction.hasOwnProperty(b)&&a.addKey(b,b)}else a.acceptedKeys.push(i[f].split(":")[0]),a.addKey(i[f],i[f],true);l.find(".ui-keyboard-button:last").after('<br class="ui-keyboard-button-endrow">')}}}); if(j>1)a.sets=true;a.hasMappedKeys=!d.isEmptyObject(a.mappedKeys);return o};a.destroy=function(){d(document).unbind("mousedown.keyboard keyup.keyboard",a.escClose);a.$keyboard&&a.$keyboard.remove();var b=e.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()};d.keyboard.keyaction={accept:function(b){b.close(true);return false},alt:function(b,d){b.altActive=!b.altActive;b.showKeySet(d)},bksp:function(b){b.insertText("bksp")},cancel:function(b){b.close();return false},clear:function(b){b.$preview.val("")},combo:function(b){var d=!b.options.useCombos;b.options.useCombos=d;b.$keyboard.find(".ui-keyboard-combo")[d?"addClass":"removeClass"](b.options.actionClass);d&&b.checkCombos();return false},dec:function(b){b.insertText(b.decimal? ".":",")},enter:function(b){b.el.tagName!=="INPUT"&&b.insertText("\r\n")},lock:function(b,d){b.lastKeyset[0]=b.shiftActive=b.capsLock=!b.capsLock;b.showKeySet(d)},meta:function(b,l){b.metaActive=d(l).is("."+b.options.actionClass)?false:true;b.showKeySet(l)},shift:function(b,d){b.lastKeyset[0]=b.shiftActive=!b.shiftActive;b.showKeySet(d)},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")}};d.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(",")}};d.keyboard.defaultOptions={layout:"qwerty",customLayout:null,position:{of:null,my:"center top",at:"center top",at2:"center bottom"},usePreview:true,alwaysOpen:false,stayOpen:false,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:false, lockInput:false,restrictInput:false,tabNavigation:false,appendLocally:false,stickyShift:true,preventPaste:false,maxLength:false,openOn:"focus",keyBinding:"mousedown",useCombos:true,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};d.keyboard.comboRegex= /([`\'~\^\"ao])([a-z])/mig;d.fn.keyboard=function(b){return this.each(function(){new d.keyboard(this,b)})};d.fn.getkeyboard=function(){return this.data("keyboard")}})(jQuery);

(function(d,b,l,a){d.fn.caret=function(e,c){if(typeof this[0]!=="undefined"){var d,m,h,f,i,k;d=document.selection;var j=this[0],o=j.scrollTop;k=window.opera&&window.opera.toString()==="[object Opera]";var n=typeof j.selectionStart!=="undefined";typeof e==="number"&&typeof c==="number"&&(h=e,i=c);return typeof h!=="undefined"?(n?(j.tagName==="TEXTAREA"&&k&&(k=this.val(),d=k.substring(0,h).split("\n")[b]-1,h+=d>0?d:0,i+=d>0?d:0),j.selectionStart=h,j.selectionEnd=i):(d=j.createTextRange(),d.collapse(true), d.moveStart("character",h),d.moveEnd("character",i-h),d.select()),j.focus(),j.scrollTop=o,this):(n?(m=j.selectionStart,f=j.selectionEnd,j.tagName==="TEXTAREA"&&k&&(k=this.val(),d=k.substring(0,m).split("\n")[b]-1,m+=d>0?-d:0,f+=d>0?-d:0)):j.tagName==="TEXTAREA"?(k=this.val(),h=d[l](),i=h[a](),i.moveToElementText(j),i.setEndPoint("EndToEnd",h),m=i.text.replace(/\r\n/g,"\r")[b],f=m+h.text.replace(/\r\n/g,"\r")[b]):(k=this.val().replace(/\r\n/g,"\r"),h=d[l]()[a](),h.moveEnd("character",k[b]),m=h.text=== ""?k[b]:k.lastIndexOf(h.text),h=d[l]()[a](),h.moveStart("character",-k[b]),f=h.text[b]),h=j.value.substring(m,f),{start:m,end:f,text:h,replace:function(a){return j.value.substring(0,m)+a+j.value.substring(f,j.value[b])}})}}})(jQuery,"length","createRange","duplicate");

