jquery-keypad-rails 1.5.0 → 1.5.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/build.me +1 -1
- data/lib/jquery/keypad/rails/version.rb +1 -1
- data/vendor/assets/javascripts/jquery.keypad.js +20 -48
- data/vendor/assets/javascripts/jquery.keypad.min.js +3 -4
- data/vendor/assets/stylesheets/jquery.keypad.alt.css +5 -27
- data/vendor/assets/stylesheets/jquery.keypad.css +6 -28
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ZDZhZWUxY2RmZGZlOTNjYWNkMzA2Yjg0OGE3OTIwZTM2ZWUwYjc1OA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZDBjOTg5MzM2NzgxMDdlZWM4MjJmOWMyMjExNDllYzBjMDc5NmFiYw==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
YmU3YmQ2MDE5OWU4NmFkMTQzMDU1MzI2MmU5OWFiMTdiZjcxMTk1ZTUyOTg1
|
10
|
+
YTZjZjBkYmM4MWEzN2I1M2ExYzYyYTFiOGE0MzFlN2U3ZjNjZTI5YWFmYWIw
|
11
|
+
ZTgwZjYxY2RhNjU3ZDBjNGEzNjU2YzEzNGQ1YjY3N2RjZjQ2Mzg=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ZWQ1MGZhZDM4Mjc3NTJhN2E3ZGU2MzM4ZGNkNjI2ZjAyMmE0N2I1ZTBjMWE2
|
14
|
+
OWQwMzQ5ODgwYjViOTc3MmE1N2ZiYjVhNjgxZmE5ZDc5NmNiZGI4YmMxN2Yz
|
15
|
+
OGNiYTViNzMyMTkyMzFkZDZhN2Q3MWY4MGY0NzBiMmJjMzc1YWE=
|
data/build.me
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
/* http://keith-wood.name/keypad.html
|
2
|
-
Keypad field entry extension for jQuery v1.5.
|
2
|
+
Keypad field entry extension for jQuery v1.5.1.
|
3
3
|
Written by Keith Wood (kbwood{at}iinet.com.au) August 2008.
|
4
|
-
|
5
|
-
MIT (http://dev.jquery.com/browser/trunk/jquery/MIT-LICENSE.txt) licenses.
|
4
|
+
Available under the MIT (https://github.com/jquery/jquery/blob/master/MIT-LICENSE.txt) license.
|
6
5
|
Please attribute the author if you use it. */
|
7
6
|
|
8
7
|
(function($) { // hide the namespace
|
@@ -104,7 +103,6 @@ $.extend(Keypad.prototype, {
|
|
104
103
|
_triggerClass: 'keypad-trigger', // The trigger marker class
|
105
104
|
_disableClass: 'keypad-disabled', // The disabled covering marker class
|
106
105
|
_inlineEntryClass: 'keypad-keyentry', // The inline entry marker class
|
107
|
-
_coverClass: 'keypad-cover', // The IE select cover marker class
|
108
106
|
_rtlClass: 'keypad-rtl', // The right-to-left marker class
|
109
107
|
_rowClass: 'keypad-row', // The keypad row marker class
|
110
108
|
_promptClass: 'keypad-prompt', // The prompt marker class
|
@@ -368,29 +366,19 @@ $.extend(Keypad.prototype, {
|
|
368
366
|
isFixed |= $(this).css('position') == 'fixed';
|
369
367
|
return !isFixed;
|
370
368
|
});
|
371
|
-
if (isFixed && $.browser.opera) { // correction for Opera when fixed and scrolled
|
372
|
-
plugin._pos[0] -= document.documentElement.scrollLeft;
|
373
|
-
plugin._pos[1] -= document.documentElement.scrollTop;
|
374
|
-
}
|
375
369
|
var offset = {left: plugin._pos[0], top: plugin._pos[1]};
|
376
370
|
plugin._pos = null;
|
377
371
|
// determine sizing offscreen
|
378
|
-
inst._mainDiv.css({position: 'absolute', display: 'block', top: '-1000px',
|
379
|
-
width: ($.browser.opera ? '1000px' : 'auto')});
|
372
|
+
inst._mainDiv.css({position: 'absolute', display: 'block', top: '-1000px', width: 'auto'});
|
380
373
|
plugin._updateKeypad(inst);
|
381
374
|
// and adjust position before showing
|
382
375
|
offset = plugin._checkOffset(inst, offset, isFixed);
|
383
376
|
inst._mainDiv.css({position: (isFixed ? 'fixed' : 'absolute'), display: 'none',
|
384
377
|
left: offset.left + 'px', top: offset.top + 'px'});
|
385
378
|
var duration = inst.options.duration;
|
386
|
-
duration = (duration == 'normal' && $.ui && $.ui.version >= '1.8' ? '_default' : duration);
|
387
379
|
var showAnim = inst.options.showAnim;
|
388
380
|
var postProcess = function() {
|
389
381
|
plugin._keypadShowing = true;
|
390
|
-
var borders = plugin._getBorders(inst._mainDiv);
|
391
|
-
inst._mainDiv.find('iframe.' + plugin._coverClass). // IE6- only
|
392
|
-
css({left: -borders[0], top: -borders[1],
|
393
|
-
width: inst._mainDiv.outerWidth(), height: inst._mainDiv.outerHeight()});
|
394
382
|
};
|
395
383
|
if ($.effects && ($.effects[showAnim] || ($.effects.effect && $.effects.effect[showAnim]))) {
|
396
384
|
var data = inst._mainDiv.data(); // Update old effects data
|
@@ -403,10 +391,7 @@ $.extend(Keypad.prototype, {
|
|
403
391
|
inst.options.showOptions, duration, postProcess);
|
404
392
|
}
|
405
393
|
else {
|
406
|
-
inst._mainDiv[showAnim || 'show']((showAnim ? duration :
|
407
|
-
}
|
408
|
-
if (!showAnim) {
|
409
|
-
postProcess();
|
394
|
+
inst._mainDiv[showAnim || 'show']((showAnim ? duration : 0), postProcess);
|
410
395
|
}
|
411
396
|
if (inst._input[0].type != 'hidden') {
|
412
397
|
inst._input[0].focus();
|
@@ -419,13 +404,10 @@ $.extend(Keypad.prototype, {
|
|
419
404
|
_updateKeypad: function(inst) {
|
420
405
|
var borders = this._getBorders(inst._mainDiv);
|
421
406
|
inst._mainDiv.empty().append(this._generateHTML(inst)).
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
(inst.options.useThemeRoller ? ' ui-widget ui-widget-content' : '') +
|
427
|
-
(inst.options.isRTL ? ' ' + this._rtlClass : '') + ' ' +
|
428
|
-
(inst._inline ? this._inlineClass : this._mainDivClass));
|
407
|
+
removeClass().addClass(inst.options.keypadClass +
|
408
|
+
(inst.options.useThemeRoller ? ' ui-widget ui-widget-content' : '') +
|
409
|
+
(inst.options.isRTL ? ' ' + this._rtlClass : '') + ' ' +
|
410
|
+
(inst._inline ? this._inlineClass : this._mainDivClass));
|
429
411
|
if ($.isFunction(inst.options.beforeShow)) {
|
430
412
|
inst.options.beforeShow.apply((inst._input ? inst._input[0] : null),
|
431
413
|
[inst._mainDiv, inst]);
|
@@ -437,8 +419,7 @@ $.extend(Keypad.prototype, {
|
|
437
419
|
@return (number[2]) the left and top borders */
|
438
420
|
_getBorders: function(elem) {
|
439
421
|
var convert = function(value) {
|
440
|
-
|
441
|
-
return {thin: 1 + extra, medium: 3 + extra, thick: 5 + extra}[value] || value;
|
422
|
+
return {thin: 1, medium: 3, thick: 5}[value] || value;
|
442
423
|
};
|
443
424
|
return [parseFloat(convert(elem.css('border-left-width'))),
|
444
425
|
parseFloat(convert(elem.css('border-top-width')))];
|
@@ -455,34 +436,29 @@ $.extend(Keypad.prototype, {
|
|
455
436
|
var browserHeight = window.innerHeight || document.documentElement.clientHeight;
|
456
437
|
var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;
|
457
438
|
var scrollY = document.documentElement.scrollTop || document.body.scrollTop;
|
458
|
-
|
459
|
-
|
460
|
-
|
461
|
-
|
462
|
-
|
463
|
-
|
464
|
-
});
|
465
|
-
inst._mainDiv.css('width', width);
|
466
|
-
}
|
439
|
+
// recalculate width as otherwise set to 100%
|
440
|
+
var width = 0;
|
441
|
+
inst._mainDiv.find(':not(div)').each(function() {
|
442
|
+
width = Math.max(width, this.offsetLeft + $(this).outerWidth(true));
|
443
|
+
});
|
444
|
+
inst._mainDiv.css('width', width + 1);
|
467
445
|
// reposition keypad panel horizontally if outside the browser window
|
468
446
|
if (inst.options.isRTL ||
|
469
447
|
(offset.left + inst._mainDiv.outerWidth() - scrollX) > browserWidth) {
|
470
448
|
offset.left = Math.max((isFixed ? 0 : scrollX),
|
471
449
|
pos[0] + (inst._input ? inst._input.outerWidth() : 0) -
|
472
|
-
(isFixed ? scrollX : 0) - inst._mainDiv.outerWidth()
|
473
|
-
(isFixed && $.browser.opera ? document.documentElement.scrollLeft : 0));
|
450
|
+
(isFixed ? scrollX : 0) - inst._mainDiv.outerWidth());
|
474
451
|
}
|
475
452
|
else {
|
476
|
-
offset.left
|
453
|
+
offset.left = Math.max((isFixed ? 0 : scrollX), offset.left - (isFixed ? scrollX : 0));
|
477
454
|
}
|
478
455
|
// reposition keypad panel vertically if outside the browser window
|
479
456
|
if ((offset.top + inst._mainDiv.outerHeight() - scrollY) > browserHeight) {
|
480
457
|
offset.top = Math.max((isFixed ? 0 : scrollY),
|
481
|
-
pos[1] - (isFixed ? scrollY : 0) - inst._mainDiv.outerHeight()
|
482
|
-
(isFixed && $.browser.opera ? document.documentElement.scrollTop : 0));
|
458
|
+
pos[1] - (isFixed ? scrollY : 0) - inst._mainDiv.outerHeight());
|
483
459
|
}
|
484
460
|
else {
|
485
|
-
offset.top
|
461
|
+
offset.top = Math.max((isFixed ? 0 : scrollY), offset.top - (isFixed ? scrollY : 0));
|
486
462
|
}
|
487
463
|
return offset;
|
488
464
|
},
|
@@ -508,14 +484,13 @@ $.extend(Keypad.prototype, {
|
|
508
484
|
}
|
509
485
|
if (this._keypadShowing) {
|
510
486
|
duration = (duration != null ? duration : inst.options.duration);
|
511
|
-
duration = (duration == 'normal' && $.ui && $.ui.version >= '1.8' ? '_default' : duration);
|
512
487
|
var showAnim = inst.options.showAnim;
|
513
488
|
if ($.effects && ($.effects[showAnim] || ($.effects.effect && $.effects.effect[showAnim]))) {
|
514
489
|
inst._mainDiv.hide(showAnim, inst.options.showOptions, duration);
|
515
490
|
}
|
516
491
|
else {
|
517
492
|
inst._mainDiv[(showAnim == 'slideDown' ? 'slideUp' :
|
518
|
-
(showAnim == 'fadeIn' ? 'fadeOut' : 'hide'))](showAnim ? duration :
|
493
|
+
(showAnim == 'fadeIn' ? 'fadeOut' : 'hide'))](showAnim ? duration : 0);
|
519
494
|
}
|
520
495
|
}
|
521
496
|
if ($.isFunction(inst.options.onClose)) {
|
@@ -737,9 +712,6 @@ $.extend(Keypad.prototype, {
|
|
737
712
|
}
|
738
713
|
html += '</div>';
|
739
714
|
}
|
740
|
-
html += '<div style="clear: both;"></div>' +
|
741
|
-
(!inst._inline && $.browser.msie && parseInt($.browser.version, 10) < 7 ?
|
742
|
-
'<iframe src="javascript:false;" class="' + plugin._coverClass + '"></iframe>' : '');
|
743
715
|
html = $(html);
|
744
716
|
var thisInst = inst;
|
745
717
|
var activeClasses = this._keyDownClass + (inst.options.useThemeRoller ? ' ui-state-active' : '');
|
@@ -1,7 +1,6 @@
|
|
1
1
|
/* http://keith-wood.name/keypad.html
|
2
|
-
Keypad field entry extension for jQuery v1.5.
|
2
|
+
Keypad field entry extension for jQuery v1.5.1.
|
3
3
|
Written by Keith Wood (kbwood{at}iinet.com.au) August 2008.
|
4
|
-
|
5
|
-
MIT (http://dev.jquery.com/browser/trunk/jquery/MIT-LICENSE.txt) licenses.
|
4
|
+
Available under the MIT (https://github.com/jquery/jquery/blob/master/MIT-LICENSE.txt) license.
|
6
5
|
Please attribute the author if you use it. */
|
7
|
-
(function($){function Keypad(){this._curInst=null;this._disabledFields=[];this._keypadShowing=false;this._keyCode=0;this._specialKeys=[];this.addKeyDef('CLOSE','close',function(a){l._curInst=(a._inline?a:l._curInst);l._hidePlugin()});this.addKeyDef('CLEAR','clear',function(a){l._clearValue(a)});this.addKeyDef('BACK','back',function(a){l._backValue(a)});this.addKeyDef('SHIFT','shift',function(a){l._shiftKeypad(a)});this.addKeyDef('SPACE_BAR','spacebar',function(a){l._selectValue(a,' ')},true);this.addKeyDef('SPACE','space');this.addKeyDef('HALF_SPACE','half-space');this.addKeyDef('ENTER','enter',function(a){l._selectValue(a,'\x0D')},true);this.addKeyDef('TAB','tab',function(a){l._selectValue(a,'\x09')},true);this.qwertyAlphabetic=['qwertyuiop','asdfghjkl','zxcvbnm'];this.qwertyLayout=['!@#$%^&*()_='+this.HALF_SPACE+this.SPACE+this.CLOSE,this.HALF_SPACE+'`~[]{}<>\\|/'+this.SPACE+'789','qwertyuiop\'"'+this.HALF_SPACE+'456',this.HALF_SPACE+'asdfghjkl;:'+this.SPACE+'123',this.SPACE+'zxcvbnm,.?'+this.SPACE+this.HALF_SPACE+'-0+',''+this.TAB+this.ENTER+this.SPACE_BAR+this.SHIFT+this.HALF_SPACE+this.BACK+this.CLEAR];this.regional=[];this.regional['']={buttonText:'...',buttonStatus:'Open the keypad',closeText:'Close',closeStatus:'Close the keypad',clearText:'Clear',clearStatus:'Erase all the text',backText:'Back',backStatus:'Erase the previous character',spacebarText:' ',spacebarStatus:'Space',enterText:'Enter',enterStatus:'Carriage return',tabText:'→',tabStatus:'Horizontal tab',shiftText:'Shift',shiftStatus:'Toggle upper/lower case characters',alphabeticLayout:this.qwertyAlphabetic,fullLayout:this.qwertyLayout,isAlphabetic:this.isAlphabetic,isNumeric:this.isNumeric,toUpper:this.toUpper,isRTL:false};this._defaults={showOn:'focus',buttonImage:'',buttonImageOnly:false,showAnim:'show',showOptions:{},duration:'normal',appendText:'',useThemeRoller:false,keypadClass:'',prompt:'',layout:['123'+this.CLOSE,'456'+this.CLEAR,'789'+this.BACK,this.SPACE+'0'],separator:'',target:null,keypadOnly:true,randomiseAlphabetic:false,randomiseNumeric:false,randomiseOther:false,randomiseAll:false,beforeShow:null,onKeypress:null,onClose:null};$.extend(this._defaults,this.regional['']);this.mainDiv=$('<div class="'+this._mainDivClass+'" style="display: none;"></div>')}$.extend(Keypad.prototype,{markerClassName:'hasKeypad',propertyName:'keypad',_mainDivClass:'keypad-popup',_inlineClass:'keypad-inline',_appendClass:'keypad-append',_triggerClass:'keypad-trigger',_disableClass:'keypad-disabled',_inlineEntryClass:'keypad-keyentry',_coverClass:'keypad-cover',_rtlClass:'keypad-rtl',_rowClass:'keypad-row',_promptClass:'keypad-prompt',_specialClass:'keypad-special',_namePrefixClass:'keypad-',_keyClass:'keypad-key',_keyDownClass:'keypad-key-down',setDefaults:function(a){$.extend(this._defaults,a||{});return this},addKeyDef:function(a,b,c,d){if(this._keyCode==32){throw'Only 32 special keys allowed';}this[a]=String.fromCharCode(this._keyCode++);this._specialKeys.push({code:this[a],id:a,name:b,action:c,noHighlight:d});return this},_attachPlugin:function(a,b){a=$(a);if(a.hasClass(this.markerClassName)){return}var c=!a[0].nodeName.toLowerCase().match(/input|textarea/);var d={options:$.extend({},this._defaults,b),_inline:c,_mainDiv:(c?$('<div class="'+this._inlineClass+'"></div>'):l.mainDiv),ucase:false};this._setInput(a,d);this._connectKeypad(a,d);if(c){a.append(d._mainDiv).bind('click.'+this.propertyName,function(){d._input.focus()});this._updateKeypad(d)}else if(a.is(':disabled')){this._disablePlugin(a)}},_setInput:function(a,b){b._input=$(!b._inline?a:b.options.target||'<input type="text" class="'+this._inlineEntryClass+'" disabled="disabled"/>');if(b._inline){a.find('input').remove();if(!b.options.target){a.append(b._input)}}},_connectKeypad:function(d,e){d=$(d);var f=e.options.appendText;if(f){d[e.options.isRTL?'before':'after']('<span class="'+this._appendClass+'">'+f+'</span>')}if(!e._inline){if(e.options.showOn=='focus'||e.options.showOn=='both'){d.bind('focus.'+this.propertyName,this._showPlugin).bind('keydown.'+this.propertyName,this._doKeyDown)}if(e.options.showOn=='button'||e.options.showOn=='both'){var g=e.options.buttonStatus;var h=e.options.buttonImage;var i=$(e.options.buttonImageOnly?$('<img src="'+h+'" alt="'+g+'" title="'+g+'"/>'):$('<button type="button" title="'+g+'"></button>').html(h==''?e.options.buttonText:$('<img src="'+h+'" alt="'+g+'" title="'+g+'"/>')));d[e.options.isRTL?'before':'after'](i);i.addClass(this._triggerClass).click(function(){if(l._keypadShowing&&l._lastField==d[0]){l._hidePlugin()}else{l._showPlugin(d[0])}return false})}}e.saveReadonly=d.attr('readonly');d.addClass(this.markerClassName).data(this.propertyName,e)[e.options.keypadOnly?'attr':'removeAttr']('readonly',true).bind('setData.'+this.propertyName,function(a,b,c){e.options[b]=c}).bind('getData.'+this.propertyName,function(a,b){return e.options[b]})},_optionPlugin:function(a,b,c){a=$(a);var d=a.data(this.propertyName);if(!b||(typeof b=='string'&&c==null)){var e=b;b=(d||{}).options;return(b&&e?b[e]:b)}if(!a.hasClass(this.markerClassName)){return}b=b||{};if(typeof b=='string'){var e=b;b={};b[e]=c}if(this._curInst==d){this._hidePlugin()}$.extend(d.options,b);this._setInput(a,d);this._updateKeypad(d)},_destroyPlugin:function(a){a=$(a);if(!a.hasClass(this.markerClassName)){return}var b=a.data(this.propertyName);if(this._curInst==b){this._hidePlugin()}a.siblings('.'+this._appendClass).remove().end().siblings('.'+this._triggerClass).remove().end().prev('.'+this._inlineEntryClass).remove();a.removeClass(this.markerClassName).empty().unbind('.'+this.propertyName).removeData(this.propertyName)[b.saveReadonly?'attr':'removeAttr']('readonly',true);b._input.removeData(this.propertyName)},_enablePlugin:function(b){b=$(b);if(!b.hasClass(this.markerClassName)){return}var c=b[0].nodeName.toLowerCase();if(c.match(/input|textarea/)){b[0].disabled=false;b.siblings('button.'+this._triggerClass).each(function(){this.disabled=false}).end().siblings('img.'+this._triggerClass).css({opacity:'1.0',cursor:''})}else if(c.match(/div|span/)){b.children('.'+this._disableClass).remove();var d=b.data(this.propertyName);d._mainDiv.find('button').removeAttr('disabled')}this._disabledFields=$.map(this._disabledFields,function(a){return(a==b[0]?null:a)})},_disablePlugin:function(b){b=$(b);if(!b.hasClass(this.markerClassName)){return}var c=b[0].nodeName.toLowerCase();if(c.match(/input|textarea/)){b[0].disabled=true;b.siblings('button.'+this._triggerClass).each(function(){this.disabled=true}).end().siblings('img.'+this._triggerClass).css({opacity:'0.5',cursor:'default'})}else if(c.match(/div|span/)){var d=b.children('.'+this._inlineClass);var e=d.offset();var f={left:0,top:0};d.parents().each(function(){if($(this).css('position')=='relative'){f=$(this).offset();return false}});b.prepend('<div class="'+this._disableClass+'" style="width: '+d.outerWidth()+'px; height: '+d.outerHeight()+'px; left: '+(e.left-f.left)+'px; top: '+(e.top-f.top)+'px;"></div>');var g=b.data(this.propertyName);g._mainDiv.find('button').attr('disabled','disabled')}this._disabledFields=$.map(this._disabledFields,function(a){return(a==b[0]?null:a)});this._disabledFields[this._disabledFields.length]=b[0]},_isDisabledPlugin:function(a){return(a&&$.inArray(a,this._disabledFields)>-1)},_showPlugin:function(b){b=b.target||b;if(l._isDisabledPlugin(b)||l._lastField==b){return}var c=$.data(b,l.propertyName);l._hidePlugin(null,'');l._lastField=b;l._pos=l._findPos(b);l._pos[1]+=b.offsetHeight;var d=false;$(b).parents().each(function(){d|=$(this).css('position')=='fixed';return!d});if(d&&$.browser.opera){l._pos[0]-=document.documentElement.scrollLeft;l._pos[1]-=document.documentElement.scrollTop}var e={left:l._pos[0],top:l._pos[1]};l._pos=null;c._mainDiv.css({position:'absolute',display:'block',top:'-1000px',width:($.browser.opera?'1000px':'auto')});l._updateKeypad(c);e=l._checkOffset(c,e,d);c._mainDiv.css({position:(d?'fixed':'absolute'),display:'none',left:e.left+'px',top:e.top+'px'});var f=c.options.duration;f=(f=='normal'&&$.ui&&$.ui.version>='1.8'?'_default':f);var g=c.options.showAnim;var h=function(){l._keypadShowing=true;var a=l._getBorders(c._mainDiv);c._mainDiv.find('iframe.'+l._coverClass).css({left:-a[0],top:-a[1],width:c._mainDiv.outerWidth(),height:c._mainDiv.outerHeight()})};if($.effects&&($.effects[g]||($.effects.effect&&$.effects.effect[g]))){var i=c._mainDiv.data();for(var j in i){if(j.match(/^ec\.storage\./)){i[j]=c._mainDiv.css(j.replace(/ec\.storage\./,''))}}c._mainDiv.data(i).show(g,c.options.showOptions,f,h)}else{c._mainDiv[g||'show']((g?f:''),h)}if(!g){h()}if(c._input[0].type!='hidden'){c._input[0].focus()}l._curInst=c},_updateKeypad:function(a){var b=this._getBorders(a._mainDiv);a._mainDiv.empty().append(this._generateHTML(a)).find('iframe.'+this._coverClass).css({left:-b[0],top:-b[1],width:a._mainDiv.outerWidth(),height:a._mainDiv.outerHeight()});a._mainDiv.removeClass().addClass(a.options.keypadClass+(a.options.useThemeRoller?' ui-widget ui-widget-content':'')+(a.options.isRTL?' '+this._rtlClass:'')+' '+(a._inline?this._inlineClass:this._mainDivClass));if($.isFunction(a.options.beforeShow)){a.options.beforeShow.apply((a._input?a._input[0]:null),[a._mainDiv,a])}},_getBorders:function(c){var d=function(a){var b=($.browser.msie?1:0);return{thin:1+b,medium:3+b,thick:5+b}[a]||a};return[parseFloat(d(c.css('border-left-width'))),parseFloat(d(c.css('border-top-width')))]},_checkOffset:function(a,b,c){var d=a._input?this._findPos(a._input[0]):null;var e=window.innerWidth||document.documentElement.clientWidth;var f=window.innerHeight||document.documentElement.clientHeight;var g=document.documentElement.scrollLeft||document.body.scrollLeft;var h=document.documentElement.scrollTop||document.body.scrollTop;if(($.browser.msie&&parseInt($.browser.version,10)<7)||$.browser.opera){var i=0;a._mainDiv.find(':not(div,iframe)').each(function(){i=Math.max(i,this.offsetLeft+$(this).outerWidth()+parseInt($(this).css('margin-right'),10))});a._mainDiv.css('width',i)}if(a.options.isRTL||(b.left+a._mainDiv.outerWidth()-g)>e){b.left=Math.max((c?0:g),d[0]+(a._input?a._input.outerWidth():0)-(c?g:0)-a._mainDiv.outerWidth()-(c&&$.browser.opera?document.documentElement.scrollLeft:0))}else{b.left-=(c?g:0)}if((b.top+a._mainDiv.outerHeight()-h)>f){b.top=Math.max((c?0:h),d[1]-(c?h:0)-a._mainDiv.outerHeight()-(c&&$.browser.opera?document.documentElement.scrollTop:0))}else{b.top-=(c?h:0)}return b},_findPos:function(a){while(a&&(a.type=='hidden'||a.nodeType!=1)){a=a.nextSibling}var b=$(a).offset();return[b.left,b.top]},_hidePlugin:function(a,b){var c=this._curInst;if(!c||(a&&c!=$.data(a,this.propertyName))){return}if(this._keypadShowing){b=(b!=null?b:c.options.duration);b=(b=='normal'&&$.ui&&$.ui.version>='1.8'?'_default':b);var d=c.options.showAnim;if($.effects&&($.effects[d]||($.effects.effect&&$.effects.effect[d]))){c._mainDiv.hide(d,c.options.showOptions,b)}else{c._mainDiv[(d=='slideDown'?'slideUp':(d=='fadeIn'?'fadeOut':'hide'))](d?b:'')}}if($.isFunction(c.options.onClose)){c.options.onClose.apply((c._input?c._input[0]:null),[c._input.val(),c])}if(this._keypadShowing){this._keypadShowing=false;this._lastField=null}if(c._inline){c._input.val('')}this._curInst=null},_doKeyDown:function(e){if(e.keyCode==9){l.mainDiv.stop(true,true);l._hidePlugin()}},_checkExternalClick:function(a){if(!l._curInst){return}var b=$(a.target);if(!b.parents().andSelf().hasClass(l._mainDivClass)&&!b.hasClass(l.markerClassName)&&!b.parents().andSelf().hasClass(l._triggerClass)&&l._keypadShowing){l._hidePlugin()}},_shiftKeypad:function(a){a.ucase=!a.ucase;this._updateKeypad(a);a._input.focus()},_clearValue:function(a){this._setValue(a,'',0);this._notifyKeypress(a,l.DEL)},_backValue:function(a){var b=a._input[0];var c=a._input.val();var d=[c.length,c.length];if(b.setSelectionRange){d=(a._input.attr('readonly')||a._input.attr('disabled')?d:[b.selectionStart,b.selectionEnd])}else if(b.createTextRange){d=(a._input.attr('readonly')||a._input.attr('disabled')?d:this._getIERange(b))}this._setValue(a,(c.length==0?'':c.substr(0,d[0]-1)+c.substr(d[1])),d[0]-1);this._notifyKeypress(a,l.BS)},_selectValue:function(a,b){this.insertValue(a._input[0],b);this._setValue(a,a._input.val());this._notifyKeypress(a,b)},insertValue:function(a,b){a=(a.jquery?a:$(a));var c=a[0];var d=a.val();var e=[d.length,d.length];if(c.setSelectionRange){e=(a.attr('readonly')||a.attr('disabled')?e:[c.selectionStart,c.selectionEnd])}else if(c.createTextRange){e=(a.attr('readonly')||a.attr('disabled')?e:this._getIERange(c))}a.val(d.substr(0,e[0])+b+d.substr(e[1]));pos=e[0]+b.length;if(a.is(':visible')){a.focus()}if(c.setSelectionRange){if(a.is(':visible')){c.setSelectionRange(pos,pos)}}else if(c.createTextRange){e=c.createTextRange();e.move('character',pos);e.select()}},_getIERange:function(e){e.focus();var f=document.selection.createRange().duplicate();var g=this._getIETextRange(e);g.setEndPoint('EndToStart',f);var h=function(a){var b=a.text;var c=b;var d=false;while(true){if(a.compareEndPoints('StartToEnd',a)==0){break}else{a.moveEnd('character',-1);if(a.text==b){c+='\r\n'}else{break}}}return c};var i=h(g);var j=h(f);return[i.length,i.length+j.length]},_getIETextRange:function(a){var b=(a.nodeName.toLowerCase()=='input');var c=(b?a.createTextRange():document.body.createTextRange());if(!b){c.moveToElementText(a)}return c},_setValue:function(a,b){var c=a._input.attr('maxlength');if(c>-1){b=b.substr(0,c)}a._input.val(b);if(!$.isFunction(a.options.onKeypress)){a._input.trigger('change')}},_notifyKeypress:function(a,b){if($.isFunction(a.options.onKeypress)){a.options.onKeypress.apply((a._input?a._input[0]:null),[b,a._input.val(),a])}},_generateHTML:function(b){var c=(!b.options.prompt?'':'<div class="'+this._promptClass+(b.options.useThemeRoller?' ui-widget-header ui-corner-all':'')+'">'+b.options.prompt+'</div>');var d=this._randomiseLayout(b);for(var i=0;i<d.length;i++){c+='<div class="'+this._rowClass+'">';var e=d[i].split(b.options.separator);for(var j=0;j<e.length;j++){if(b.ucase){e[j]=b.options.toUpper(e[j])}var f=this._specialKeys[e[j].charCodeAt(0)];if(f){c+=(f.action?'<button type="button" class="'+this._specialClass+' '+this._namePrefixClass+f.name+(b.options.useThemeRoller?' ui-corner-all ui-state-default'+(f.noHighlight?'':' ui-state-highlight'):'')+'" title="'+b.options[f.name+'Status']+'">'+(b.options[f.name+'Text']||' ')+'</button>':'<div class="'+this._namePrefixClass+f.name+'"></div>')}else{c+='<button type="button" class="'+this._keyClass+(b.options.useThemeRoller?' ui-corner-all ui-state-default':'')+'">'+(e[j]==' '?' ':e[j])+'</button>'}}c+='</div>'}c+='<div style="clear: both;"></div>'+(!b._inline&&$.browser.msie&&parseInt($.browser.version,10)<7?'<iframe src="javascript:false;" class="'+l._coverClass+'"></iframe>':'');c=$(c);var g=b;var h=this._keyDownClass+(b.options.useThemeRoller?' ui-state-active':'');c.find('button').mousedown(function(){$(this).addClass(h)}).mouseup(function(){$(this).removeClass(h)}).mouseout(function(){$(this).removeClass(h)}).filter('.'+this._keyClass).click(function(){l._selectValue(g,$(this).text())});$.each(this._specialKeys,function(i,a){c.find('.'+l._namePrefixClass+a.name).click(function(){a.action.apply(g._input,[g])})});return c},_randomiseLayout:function(b){if(!b.options.randomiseNumeric&&!b.options.randomiseAlphabetic&&!b.options.randomiseOther&&!b.options.randomiseAll){return b.options.layout}var c=[];var d=[];var e=[];var f=[];for(var i=0;i<b.options.layout.length;i++){f[i]='';var g=b.options.layout[i].split(b.options.separator);for(var j=0;j<g.length;j++){if(this._isControl(g[j])){continue}if(b.options.randomiseAll){e.push(g[j])}else if(b.options.isNumeric(g[j])){c.push(g[j])}else if(b.options.isAlphabetic(g[j])){d.push(g[j])}else{e.push(g[j])}}}if(b.options.randomiseNumeric){this._shuffle(c)}if(b.options.randomiseAlphabetic){this._shuffle(d)}if(b.options.randomiseOther||b.options.randomiseAll){this._shuffle(e)}var n=0;var a=0;var o=0;for(var i=0;i<b.options.layout.length;i++){var g=b.options.layout[i].split(b.options.separator);for(var j=0;j<g.length;j++){f[i]+=(this._isControl(g[j])?g[j]:(b.options.randomiseAll?e[o++]:(b.options.isNumeric(g[j])?c[n++]:(b.options.isAlphabetic(g[j])?d[a++]:e[o++]))))+b.options.separator}}return f},_isControl:function(a){return a<' '},isAlphabetic:function(a){return(a>='A'&&a<='Z')||(a>='a'&&a<='z')},isNumeric:function(a){return(a>='0'&&a<='9')},toUpper:function(a){return a.toUpperCase()},_shuffle:function(a){for(var i=a.length-1;i>0;i--){var j=Math.floor(Math.random()*a.length);var b=a[i];a[i]=a[j];a[j]=b}}});var k=['isDisabled'];function isNotChained(a,b){if(a=='option'&&(b.length==0||(b.length==1&&typeof b[0]=='string'))){return true}return $.inArray(a,k)>-1}$.fn.keypad=function(a){var b=Array.prototype.slice.call(arguments,1);if(isNotChained(a,b)){return l['_'+a+'Plugin'].apply(l,[this[0]].concat(b))}return this.each(function(){if(typeof a=='string'){if(!l['_'+a+'Plugin']){throw'Unknown command: '+a;}l['_'+a+'Plugin'].apply(l,[this].concat(b))}else{l._attachPlugin(this,a||{})}})};var l=$.keypad=new Keypad();$(function(){$(document.body).append(l.mainDiv).mousedown(l._checkExternalClick)})})(jQuery);
|
6
|
+
(function($){function Keypad(){this._curInst=null;this._disabledFields=[];this._keypadShowing=false;this._keyCode=0;this._specialKeys=[];this.addKeyDef('CLOSE','close',function(a){l._curInst=(a._inline?a:l._curInst);l._hidePlugin()});this.addKeyDef('CLEAR','clear',function(a){l._clearValue(a)});this.addKeyDef('BACK','back',function(a){l._backValue(a)});this.addKeyDef('SHIFT','shift',function(a){l._shiftKeypad(a)});this.addKeyDef('SPACE_BAR','spacebar',function(a){l._selectValue(a,' ')},true);this.addKeyDef('SPACE','space');this.addKeyDef('HALF_SPACE','half-space');this.addKeyDef('ENTER','enter',function(a){l._selectValue(a,'\x0D')},true);this.addKeyDef('TAB','tab',function(a){l._selectValue(a,'\x09')},true);this.qwertyAlphabetic=['qwertyuiop','asdfghjkl','zxcvbnm'];this.qwertyLayout=['!@#$%^&*()_='+this.HALF_SPACE+this.SPACE+this.CLOSE,this.HALF_SPACE+'`~[]{}<>\\|/'+this.SPACE+'789','qwertyuiop\'"'+this.HALF_SPACE+'456',this.HALF_SPACE+'asdfghjkl;:'+this.SPACE+'123',this.SPACE+'zxcvbnm,.?'+this.SPACE+this.HALF_SPACE+'-0+',''+this.TAB+this.ENTER+this.SPACE_BAR+this.SHIFT+this.HALF_SPACE+this.BACK+this.CLEAR];this.regional=[];this.regional['']={buttonText:'...',buttonStatus:'Open the keypad',closeText:'Close',closeStatus:'Close the keypad',clearText:'Clear',clearStatus:'Erase all the text',backText:'Back',backStatus:'Erase the previous character',spacebarText:' ',spacebarStatus:'Space',enterText:'Enter',enterStatus:'Carriage return',tabText:'→',tabStatus:'Horizontal tab',shiftText:'Shift',shiftStatus:'Toggle upper/lower case characters',alphabeticLayout:this.qwertyAlphabetic,fullLayout:this.qwertyLayout,isAlphabetic:this.isAlphabetic,isNumeric:this.isNumeric,toUpper:this.toUpper,isRTL:false};this._defaults={showOn:'focus',buttonImage:'',buttonImageOnly:false,showAnim:'show',showOptions:{},duration:'normal',appendText:'',useThemeRoller:false,keypadClass:'',prompt:'',layout:['123'+this.CLOSE,'456'+this.CLEAR,'789'+this.BACK,this.SPACE+'0'],separator:'',target:null,keypadOnly:true,randomiseAlphabetic:false,randomiseNumeric:false,randomiseOther:false,randomiseAll:false,beforeShow:null,onKeypress:null,onClose:null};$.extend(this._defaults,this.regional['']);this.mainDiv=$('<div class="'+this._mainDivClass+'" style="display: none;"></div>')}$.extend(Keypad.prototype,{markerClassName:'hasKeypad',propertyName:'keypad',_mainDivClass:'keypad-popup',_inlineClass:'keypad-inline',_appendClass:'keypad-append',_triggerClass:'keypad-trigger',_disableClass:'keypad-disabled',_inlineEntryClass:'keypad-keyentry',_rtlClass:'keypad-rtl',_rowClass:'keypad-row',_promptClass:'keypad-prompt',_specialClass:'keypad-special',_namePrefixClass:'keypad-',_keyClass:'keypad-key',_keyDownClass:'keypad-key-down',setDefaults:function(a){$.extend(this._defaults,a||{});return this},addKeyDef:function(a,b,c,d){if(this._keyCode==32){throw'Only 32 special keys allowed';}this[a]=String.fromCharCode(this._keyCode++);this._specialKeys.push({code:this[a],id:a,name:b,action:c,noHighlight:d});return this},_attachPlugin:function(a,b){a=$(a);if(a.hasClass(this.markerClassName)){return}var c=!a[0].nodeName.toLowerCase().match(/input|textarea/);var d={options:$.extend({},this._defaults,b),_inline:c,_mainDiv:(c?$('<div class="'+this._inlineClass+'"></div>'):l.mainDiv),ucase:false};this._setInput(a,d);this._connectKeypad(a,d);if(c){a.append(d._mainDiv).bind('click.'+this.propertyName,function(){d._input.focus()});this._updateKeypad(d)}else if(a.is(':disabled')){this._disablePlugin(a)}},_setInput:function(a,b){b._input=$(!b._inline?a:b.options.target||'<input type="text" class="'+this._inlineEntryClass+'" disabled="disabled"/>');if(b._inline){a.find('input').remove();if(!b.options.target){a.append(b._input)}}},_connectKeypad:function(d,e){d=$(d);var f=e.options.appendText;if(f){d[e.options.isRTL?'before':'after']('<span class="'+this._appendClass+'">'+f+'</span>')}if(!e._inline){if(e.options.showOn=='focus'||e.options.showOn=='both'){d.bind('focus.'+this.propertyName,this._showPlugin).bind('keydown.'+this.propertyName,this._doKeyDown)}if(e.options.showOn=='button'||e.options.showOn=='both'){var g=e.options.buttonStatus;var h=e.options.buttonImage;var i=$(e.options.buttonImageOnly?$('<img src="'+h+'" alt="'+g+'" title="'+g+'"/>'):$('<button type="button" title="'+g+'"></button>').html(h==''?e.options.buttonText:$('<img src="'+h+'" alt="'+g+'" title="'+g+'"/>')));d[e.options.isRTL?'before':'after'](i);i.addClass(this._triggerClass).click(function(){if(l._keypadShowing&&l._lastField==d[0]){l._hidePlugin()}else{l._showPlugin(d[0])}return false})}}e.saveReadonly=d.attr('readonly');d.addClass(this.markerClassName).data(this.propertyName,e)[e.options.keypadOnly?'attr':'removeAttr']('readonly',true).bind('setData.'+this.propertyName,function(a,b,c){e.options[b]=c}).bind('getData.'+this.propertyName,function(a,b){return e.options[b]})},_optionPlugin:function(a,b,c){a=$(a);var d=a.data(this.propertyName);if(!b||(typeof b=='string'&&c==null)){var e=b;b=(d||{}).options;return(b&&e?b[e]:b)}if(!a.hasClass(this.markerClassName)){return}b=b||{};if(typeof b=='string'){var e=b;b={};b[e]=c}if(this._curInst==d){this._hidePlugin()}$.extend(d.options,b);this._setInput(a,d);this._updateKeypad(d)},_destroyPlugin:function(a){a=$(a);if(!a.hasClass(this.markerClassName)){return}var b=a.data(this.propertyName);if(this._curInst==b){this._hidePlugin()}a.siblings('.'+this._appendClass).remove().end().siblings('.'+this._triggerClass).remove().end().prev('.'+this._inlineEntryClass).remove();a.removeClass(this.markerClassName).empty().unbind('.'+this.propertyName).removeData(this.propertyName)[b.saveReadonly?'attr':'removeAttr']('readonly',true);b._input.removeData(this.propertyName)},_enablePlugin:function(b){b=$(b);if(!b.hasClass(this.markerClassName)){return}var c=b[0].nodeName.toLowerCase();if(c.match(/input|textarea/)){b[0].disabled=false;b.siblings('button.'+this._triggerClass).each(function(){this.disabled=false}).end().siblings('img.'+this._triggerClass).css({opacity:'1.0',cursor:''})}else if(c.match(/div|span/)){b.children('.'+this._disableClass).remove();var d=b.data(this.propertyName);d._mainDiv.find('button').removeAttr('disabled')}this._disabledFields=$.map(this._disabledFields,function(a){return(a==b[0]?null:a)})},_disablePlugin:function(b){b=$(b);if(!b.hasClass(this.markerClassName)){return}var c=b[0].nodeName.toLowerCase();if(c.match(/input|textarea/)){b[0].disabled=true;b.siblings('button.'+this._triggerClass).each(function(){this.disabled=true}).end().siblings('img.'+this._triggerClass).css({opacity:'0.5',cursor:'default'})}else if(c.match(/div|span/)){var d=b.children('.'+this._inlineClass);var e=d.offset();var f={left:0,top:0};d.parents().each(function(){if($(this).css('position')=='relative'){f=$(this).offset();return false}});b.prepend('<div class="'+this._disableClass+'" style="width: '+d.outerWidth()+'px; height: '+d.outerHeight()+'px; left: '+(e.left-f.left)+'px; top: '+(e.top-f.top)+'px;"></div>');var g=b.data(this.propertyName);g._mainDiv.find('button').attr('disabled','disabled')}this._disabledFields=$.map(this._disabledFields,function(a){return(a==b[0]?null:a)});this._disabledFields[this._disabledFields.length]=b[0]},_isDisabledPlugin:function(a){return(a&&$.inArray(a,this._disabledFields)>-1)},_showPlugin:function(a){a=a.target||a;if(l._isDisabledPlugin(a)||l._lastField==a){return}var b=$.data(a,l.propertyName);l._hidePlugin(null,'');l._lastField=a;l._pos=l._findPos(a);l._pos[1]+=a.offsetHeight;var c=false;$(a).parents().each(function(){c|=$(this).css('position')=='fixed';return!c});var d={left:l._pos[0],top:l._pos[1]};l._pos=null;b._mainDiv.css({position:'absolute',display:'block',top:'-1000px',width:'auto'});l._updateKeypad(b);d=l._checkOffset(b,d,c);b._mainDiv.css({position:(c?'fixed':'absolute'),display:'none',left:d.left+'px',top:d.top+'px'});var e=b.options.duration;var f=b.options.showAnim;var g=function(){l._keypadShowing=true};if($.effects&&($.effects[f]||($.effects.effect&&$.effects.effect[f]))){var h=b._mainDiv.data();for(var i in h){if(i.match(/^ec\.storage\./)){h[i]=b._mainDiv.css(i.replace(/ec\.storage\./,''))}}b._mainDiv.data(h).show(f,b.options.showOptions,e,g)}else{b._mainDiv[f||'show']((f?e:0),g)}if(b._input[0].type!='hidden'){b._input[0].focus()}l._curInst=b},_updateKeypad:function(a){var b=this._getBorders(a._mainDiv);a._mainDiv.empty().append(this._generateHTML(a)).removeClass().addClass(a.options.keypadClass+(a.options.useThemeRoller?' ui-widget ui-widget-content':'')+(a.options.isRTL?' '+this._rtlClass:'')+' '+(a._inline?this._inlineClass:this._mainDivClass));if($.isFunction(a.options.beforeShow)){a.options.beforeShow.apply((a._input?a._input[0]:null),[a._mainDiv,a])}},_getBorders:function(b){var c=function(a){return{thin:1,medium:3,thick:5}[a]||a};return[parseFloat(c(b.css('border-left-width'))),parseFloat(c(b.css('border-top-width')))]},_checkOffset:function(a,b,c){var d=a._input?this._findPos(a._input[0]):null;var e=window.innerWidth||document.documentElement.clientWidth;var f=window.innerHeight||document.documentElement.clientHeight;var g=document.documentElement.scrollLeft||document.body.scrollLeft;var h=document.documentElement.scrollTop||document.body.scrollTop;var i=0;a._mainDiv.find(':not(div)').each(function(){i=Math.max(i,this.offsetLeft+$(this).outerWidth(true))});a._mainDiv.css('width',i+1);if(a.options.isRTL||(b.left+a._mainDiv.outerWidth()-g)>e){b.left=Math.max((c?0:g),d[0]+(a._input?a._input.outerWidth():0)-(c?g:0)-a._mainDiv.outerWidth())}else{b.left=Math.max((c?0:g),b.left-(c?g:0))}if((b.top+a._mainDiv.outerHeight()-h)>f){b.top=Math.max((c?0:h),d[1]-(c?h:0)-a._mainDiv.outerHeight())}else{b.top=Math.max((c?0:h),b.top-(c?h:0))}return b},_findPos:function(a){while(a&&(a.type=='hidden'||a.nodeType!=1)){a=a.nextSibling}var b=$(a).offset();return[b.left,b.top]},_hidePlugin:function(a,b){var c=this._curInst;if(!c||(a&&c!=$.data(a,this.propertyName))){return}if(this._keypadShowing){b=(b!=null?b:c.options.duration);var d=c.options.showAnim;if($.effects&&($.effects[d]||($.effects.effect&&$.effects.effect[d]))){c._mainDiv.hide(d,c.options.showOptions,b)}else{c._mainDiv[(d=='slideDown'?'slideUp':(d=='fadeIn'?'fadeOut':'hide'))](d?b:0)}}if($.isFunction(c.options.onClose)){c.options.onClose.apply((c._input?c._input[0]:null),[c._input.val(),c])}if(this._keypadShowing){this._keypadShowing=false;this._lastField=null}if(c._inline){c._input.val('')}this._curInst=null},_doKeyDown:function(e){if(e.keyCode==9){l.mainDiv.stop(true,true);l._hidePlugin()}},_checkExternalClick:function(a){if(!l._curInst){return}var b=$(a.target);if(!b.parents().andSelf().hasClass(l._mainDivClass)&&!b.hasClass(l.markerClassName)&&!b.parents().andSelf().hasClass(l._triggerClass)&&l._keypadShowing){l._hidePlugin()}},_shiftKeypad:function(a){a.ucase=!a.ucase;this._updateKeypad(a);a._input.focus()},_clearValue:function(a){this._setValue(a,'',0);this._notifyKeypress(a,l.DEL)},_backValue:function(a){var b=a._input[0];var c=a._input.val();var d=[c.length,c.length];if(b.setSelectionRange){d=(a._input.attr('readonly')||a._input.attr('disabled')?d:[b.selectionStart,b.selectionEnd])}else if(b.createTextRange){d=(a._input.attr('readonly')||a._input.attr('disabled')?d:this._getIERange(b))}this._setValue(a,(c.length==0?'':c.substr(0,d[0]-1)+c.substr(d[1])),d[0]-1);this._notifyKeypress(a,l.BS)},_selectValue:function(a,b){this.insertValue(a._input[0],b);this._setValue(a,a._input.val());this._notifyKeypress(a,b)},insertValue:function(a,b){a=(a.jquery?a:$(a));var c=a[0];var d=a.val();var e=[d.length,d.length];if(c.setSelectionRange){e=(a.attr('readonly')||a.attr('disabled')?e:[c.selectionStart,c.selectionEnd])}else if(c.createTextRange){e=(a.attr('readonly')||a.attr('disabled')?e:this._getIERange(c))}a.val(d.substr(0,e[0])+b+d.substr(e[1]));pos=e[0]+b.length;if(a.is(':visible')){a.focus()}if(c.setSelectionRange){if(a.is(':visible')){c.setSelectionRange(pos,pos)}}else if(c.createTextRange){e=c.createTextRange();e.move('character',pos);e.select()}},_getIERange:function(e){e.focus();var f=document.selection.createRange().duplicate();var g=this._getIETextRange(e);g.setEndPoint('EndToStart',f);var h=function(a){var b=a.text;var c=b;var d=false;while(true){if(a.compareEndPoints('StartToEnd',a)==0){break}else{a.moveEnd('character',-1);if(a.text==b){c+='\r\n'}else{break}}}return c};var i=h(g);var j=h(f);return[i.length,i.length+j.length]},_getIETextRange:function(a){var b=(a.nodeName.toLowerCase()=='input');var c=(b?a.createTextRange():document.body.createTextRange());if(!b){c.moveToElementText(a)}return c},_setValue:function(a,b){var c=a._input.attr('maxlength');if(c>-1){b=b.substr(0,c)}a._input.val(b);if(!$.isFunction(a.options.onKeypress)){a._input.trigger('change')}},_notifyKeypress:function(a,b){if($.isFunction(a.options.onKeypress)){a.options.onKeypress.apply((a._input?a._input[0]:null),[b,a._input.val(),a])}},_generateHTML:function(b){var c=(!b.options.prompt?'':'<div class="'+this._promptClass+(b.options.useThemeRoller?' ui-widget-header ui-corner-all':'')+'">'+b.options.prompt+'</div>');var d=this._randomiseLayout(b);for(var i=0;i<d.length;i++){c+='<div class="'+this._rowClass+'">';var e=d[i].split(b.options.separator);for(var j=0;j<e.length;j++){if(b.ucase){e[j]=b.options.toUpper(e[j])}var f=this._specialKeys[e[j].charCodeAt(0)];if(f){c+=(f.action?'<button type="button" class="'+this._specialClass+' '+this._namePrefixClass+f.name+(b.options.useThemeRoller?' ui-corner-all ui-state-default'+(f.noHighlight?'':' ui-state-highlight'):'')+'" title="'+b.options[f.name+'Status']+'">'+(b.options[f.name+'Text']||' ')+'</button>':'<div class="'+this._namePrefixClass+f.name+'"></div>')}else{c+='<button type="button" class="'+this._keyClass+(b.options.useThemeRoller?' ui-corner-all ui-state-default':'')+'">'+(e[j]==' '?' ':e[j])+'</button>'}}c+='</div>'}c=$(c);var g=b;var h=this._keyDownClass+(b.options.useThemeRoller?' ui-state-active':'');c.find('button').mousedown(function(){$(this).addClass(h)}).mouseup(function(){$(this).removeClass(h)}).mouseout(function(){$(this).removeClass(h)}).filter('.'+this._keyClass).click(function(){l._selectValue(g,$(this).text())});$.each(this._specialKeys,function(i,a){c.find('.'+l._namePrefixClass+a.name).click(function(){a.action.apply(g._input,[g])})});return c},_randomiseLayout:function(b){if(!b.options.randomiseNumeric&&!b.options.randomiseAlphabetic&&!b.options.randomiseOther&&!b.options.randomiseAll){return b.options.layout}var c=[];var d=[];var e=[];var f=[];for(var i=0;i<b.options.layout.length;i++){f[i]='';var g=b.options.layout[i].split(b.options.separator);for(var j=0;j<g.length;j++){if(this._isControl(g[j])){continue}if(b.options.randomiseAll){e.push(g[j])}else if(b.options.isNumeric(g[j])){c.push(g[j])}else if(b.options.isAlphabetic(g[j])){d.push(g[j])}else{e.push(g[j])}}}if(b.options.randomiseNumeric){this._shuffle(c)}if(b.options.randomiseAlphabetic){this._shuffle(d)}if(b.options.randomiseOther||b.options.randomiseAll){this._shuffle(e)}var n=0;var a=0;var o=0;for(var i=0;i<b.options.layout.length;i++){var g=b.options.layout[i].split(b.options.separator);for(var j=0;j<g.length;j++){f[i]+=(this._isControl(g[j])?g[j]:(b.options.randomiseAll?e[o++]:(b.options.isNumeric(g[j])?c[n++]:(b.options.isAlphabetic(g[j])?d[a++]:e[o++]))))+b.options.separator}}return f},_isControl:function(a){return a<' '},isAlphabetic:function(a){return(a>='A'&&a<='Z')||(a>='a'&&a<='z')},isNumeric:function(a){return(a>='0'&&a<='9')},toUpper:function(a){return a.toUpperCase()},_shuffle:function(a){for(var i=a.length-1;i>0;i--){var j=Math.floor(Math.random()*a.length);var b=a[i];a[i]=a[j];a[j]=b}}});var k=['isDisabled'];function isNotChained(a,b){if(a=='option'&&(b.length==0||(b.length==1&&typeof b[0]=='string'))){return true}return $.inArray(a,k)>-1}$.fn.keypad=function(a){var b=Array.prototype.slice.call(arguments,1);if(isNotChained(a,b)){return l['_'+a+'Plugin'].apply(l,[this[0]].concat(b))}return this.each(function(){if(typeof a=='string'){if(!l['_'+a+'Plugin']){throw'Unknown command: '+a;}l['_'+a+'Plugin'].apply(l,[this].concat(b))}else{l._attachPlugin(this,a||{})}})};var l=$.keypad=new Keypad();$(function(){$(document.body).append(l.mainDiv).mousedown(l._checkExternalClick)})})(jQuery);
|
@@ -1,4 +1,4 @@
|
|
1
|
-
/* Alternate style sheet for jQuery Keypad v1.5.
|
1
|
+
/* Alternate style sheet for jQuery Keypad v1.5.1. */
|
2
2
|
button.keypad-trigger {
|
3
3
|
width: 25px;
|
4
4
|
padding: 0px;
|
@@ -19,9 +19,9 @@ img.keypad-trigger {
|
|
19
19
|
background-color: #fff;
|
20
20
|
color: #000;
|
21
21
|
border: 1px solid #888;
|
22
|
-
border-radius: 0.25em;
|
23
22
|
-moz-border-radius: 0.25em;
|
24
23
|
-webkit-border-radius: 0.25em;
|
24
|
+
border-radius: 0.25em;
|
25
25
|
}
|
26
26
|
.keypad-keyentry {
|
27
27
|
display: none;
|
@@ -29,9 +29,9 @@ img.keypad-trigger {
|
|
29
29
|
.keypad-inline {
|
30
30
|
background-color: #fff;
|
31
31
|
border: 1px solid #888;
|
32
|
-
border-radius: 0.25em;
|
33
32
|
-moz-border-radius: 0.25em;
|
34
33
|
-webkit-border-radius: 0.25em;
|
34
|
+
border-radius: 0.25em;
|
35
35
|
}
|
36
36
|
.keypad-disabled {
|
37
37
|
position: absolute;
|
@@ -51,30 +51,19 @@ img.keypad-trigger {
|
|
51
51
|
margin: 0.125em;
|
52
52
|
}
|
53
53
|
.keypad-row {
|
54
|
-
clear: both;
|
55
|
-
float: left;
|
56
54
|
width: 100%;
|
57
55
|
}
|
58
56
|
.keypad-space {
|
59
|
-
|
57
|
+
display: inline-block;
|
60
58
|
margin: 0.125em;
|
61
59
|
width: 2em;
|
62
60
|
}
|
63
|
-
* html .keypad-space { /* IE6 */
|
64
|
-
margin: 0em;
|
65
|
-
width: 2.25em;
|
66
|
-
}
|
67
61
|
.keypad-half-space {
|
68
|
-
|
62
|
+
display: inline-block;
|
69
63
|
margin: 0.125em 0.0625em;
|
70
64
|
width: 1em;
|
71
65
|
}
|
72
|
-
* html .keypad-half-space { /* IE6 */
|
73
|
-
margin: 0em;
|
74
|
-
width: 1.125em;
|
75
|
-
}
|
76
66
|
.keypad-key, .keypad-special {
|
77
|
-
float: left;
|
78
67
|
margin: 0.125em;
|
79
68
|
padding: 0em;
|
80
69
|
width: 2em;
|
@@ -93,14 +82,3 @@ img.keypad-trigger {
|
|
93
82
|
.keypad-clear, .keypad-back, .keypad-close, .keypad-shift {
|
94
83
|
font-weight: bold;
|
95
84
|
}
|
96
|
-
.keypad-cover {
|
97
|
-
display: none;
|
98
|
-
display/**/: block;
|
99
|
-
position: absolute;
|
100
|
-
z-index: -1;
|
101
|
-
filter: mask();
|
102
|
-
top: -4px;
|
103
|
-
left: -4px;
|
104
|
-
width: 125px;
|
105
|
-
height: 200px;
|
106
|
-
}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
/* Main style sheet for jQuery Keypad v1.5.
|
1
|
+
/* Main style sheet for jQuery Keypad v1.5.1. */
|
2
2
|
button.keypad-trigger {
|
3
3
|
width: 25px;
|
4
4
|
padding: 0px;
|
@@ -19,9 +19,9 @@ img.keypad-trigger {
|
|
19
19
|
background-color: #fff;
|
20
20
|
color: #000;
|
21
21
|
border: 1px solid #888;
|
22
|
-
border-radius: 0.25em;
|
23
22
|
-moz-border-radius: 0.25em;
|
24
23
|
-webkit-border-radius: 0.25em;
|
24
|
+
border-radius: 0.25em;
|
25
25
|
}
|
26
26
|
.keypad-keyentry {
|
27
27
|
display: none;
|
@@ -29,9 +29,9 @@ img.keypad-trigger {
|
|
29
29
|
.keypad-inline {
|
30
30
|
background-color: #fff;
|
31
31
|
border: 1px solid #888;
|
32
|
-
border-radius: 0.25em;
|
33
32
|
-moz-border-radius: 0.25em;
|
34
33
|
-webkit-border-radius: 0.25em;
|
34
|
+
border-radius: 0.25em;
|
35
35
|
}
|
36
36
|
.keypad-disabled {
|
37
37
|
position: absolute;
|
@@ -51,37 +51,26 @@ img.keypad-trigger {
|
|
51
51
|
margin: 0.125em;
|
52
52
|
}
|
53
53
|
.keypad-row {
|
54
|
-
clear: both;
|
55
|
-
float: left;
|
56
54
|
width: 100%;
|
57
55
|
}
|
58
56
|
.keypad-space {
|
59
|
-
|
57
|
+
display: inline-block;
|
60
58
|
margin: 0.125em;
|
61
59
|
width: 2em;
|
62
60
|
}
|
63
|
-
* html .keypad-space { /* IE6 */
|
64
|
-
margin: 0em;
|
65
|
-
width: 2.25em;
|
66
|
-
}
|
67
61
|
.keypad-half-space {
|
68
|
-
|
62
|
+
display: inline-block;
|
69
63
|
margin: 0.125em 0.0625em;
|
70
64
|
width: 1em;
|
71
65
|
}
|
72
|
-
* html .keypad-half-space { /* IE6 */
|
73
|
-
margin: 0em;
|
74
|
-
width: 1.125em;
|
75
|
-
}
|
76
66
|
.keypad-key, .keypad-special {
|
77
|
-
float: left;
|
78
67
|
margin: 0.125em;
|
79
68
|
padding: 0em;
|
80
69
|
width: 2em;
|
81
70
|
background-color: #f4f4f4;
|
82
|
-
border-radius: 0.25em;
|
83
71
|
-moz-border-radius: 0.25em;
|
84
72
|
-webkit-border-radius: 0.25em;
|
73
|
+
border-radius: 0.25em;
|
85
74
|
text-align: center;
|
86
75
|
cursor: pointer;
|
87
76
|
}
|
@@ -115,14 +104,3 @@ img.keypad-trigger {
|
|
115
104
|
.keypad-shift {
|
116
105
|
background-color: #0aa;
|
117
106
|
}
|
118
|
-
.keypad-cover {
|
119
|
-
display: none;
|
120
|
-
display/**/: block;
|
121
|
-
position: absolute;
|
122
|
-
z-index: -1;
|
123
|
-
filter: mask();
|
124
|
-
top: -4px;
|
125
|
-
left: -4px;
|
126
|
-
width: 125px;
|
127
|
-
height: 200px;
|
128
|
-
}
|