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 CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- YjhiZDFlNGJlY2M3YzRmZDhkY2VlN2M5MTJmN2U0OWM0NDNjODM4Mg==
4
+ ZDZhZWUxY2RmZGZlOTNjYWNkMzA2Yjg0OGE3OTIwZTM2ZWUwYjc1OA==
5
5
  data.tar.gz: !binary |-
6
- YzI2OTlmNDhkNTk5ODkzMzZlNGJkMzVmM2QyMTU4Y2YyMTg1YzBhNw==
6
+ ZDBjOTg5MzM2NzgxMDdlZWM4MjJmOWMyMjExNDllYzBjMDc5NmFiYw==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ODkzNGZlNTE1MjAzYTc5NDU2YTFhZmI4ZWNlMzMyNmUzMTczOGQ2OGMxNjUy
10
- NDljNDE0NTkxMGNlMDNjYWI4MDRjN2U5M2FlYmMxNGIwNmJjMzc5ODU5NjU2
11
- Zjc5ZmRlZjRmNzQxODJjY2U5YWZmYTNmN2U2MDQ4YjdmMzFkM2Y=
9
+ YmU3YmQ2MDE5OWU4NmFkMTQzMDU1MzI2MmU5OWFiMTdiZjcxMTk1ZTUyOTg1
10
+ YTZjZjBkYmM4MWEzN2I1M2ExYzYyYTFiOGE0MzFlN2U3ZjNjZTI5YWFmYWIw
11
+ ZTgwZjYxY2RhNjU3ZDBjNGEzNjU2YzEzNGQ1YjY3N2RjZjQ2Mzg=
12
12
  data.tar.gz: !binary |-
13
- ZmQ2MzEwM2MzYzJjNjNhNjdlNzcxZjFkYmZlYjBmNzUwNmNkMjcxNjcwYWQ0
14
- ODU5MzE2NWU0NzVmMDBiOTc2ZjJlZjEwODk1MTYzYjE5Y2EzMTU2YzgyNTI3
15
- OTkzM2YxMTFjNTZmNDViMWQ5MWVjMDVlNGUxNGQ1MTExYTkyZDk=
13
+ ZWQ1MGZhZDM4Mjc3NTJhN2E3ZGU2MzM4ZGNkNjI2ZjAyMmE0N2I1ZTBjMWE2
14
+ OWQwMzQ5ODgwYjViOTc3MmE1N2ZiYjVhNjgxZmE5ZDc5NmNiZGI4YmMxN2Yz
15
+ OGNiYTViNzMyMTkyMzFkZDZhN2Q3MWY4MGY0NzBiMmJjMzc1YWE=
data/build.me CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/bin/bash
2
2
 
3
- VER=1.5.0
3
+ VER=1.5.1
4
4
 
5
5
  rm build/*
6
6
  pushd build
@@ -1,7 +1,7 @@
1
1
  module Jquery
2
2
  module Keypad
3
3
  module Rails
4
- VERSION = "1.5.0"
4
+ VERSION = "1.5.1"
5
5
  end
6
6
  end
7
7
  end
@@ -1,8 +1,7 @@
1
1
  /* http://keith-wood.name/keypad.html
2
- Keypad field entry extension for jQuery v1.5.0.
2
+ Keypad field entry extension for jQuery v1.5.1.
3
3
  Written by Keith Wood (kbwood{at}iinet.com.au) August 2008.
4
- Dual licensed under the GPL (http://dev.jquery.com/browser/trunk/jquery/GPL-LICENSE.txt) and
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 : ''), postProcess);
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
- find('iframe.' + this._coverClass). // IE6- only
423
- css({left: -borders[0], top: -borders[1],
424
- width: inst._mainDiv.outerWidth(), height: inst._mainDiv.outerHeight()});
425
- inst._mainDiv.removeClass().addClass(inst.options.keypadClass +
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
- var extra = ($.browser.msie ? 1 : 0);
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
- if (($.browser.msie && parseInt($.browser.version, 10) < 7) || $.browser.opera) {
459
- // recalculate width as otherwise set to 100%
460
- var width = 0;
461
- inst._mainDiv.find(':not(div,iframe)').each(function() {
462
- width = Math.max(width, this.offsetLeft + $(this).outerWidth() +
463
- parseInt($(this).css('margin-right'), 10));
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 -= (isFixed ? scrollX : 0);
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 -= (isFixed ? scrollY : 0);
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.0.
2
+ Keypad field entry extension for jQuery v1.5.1.
3
3
  Written by Keith Wood (kbwood{at}iinet.com.au) August 2008.
4
- Dual licensed under the GPL (http://dev.jquery.com/browser/trunk/jquery/GPL-LICENSE.txt) and
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:'&nbsp;',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']||'&nbsp;')+'</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]==' '?'&nbsp;':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:'&nbsp;',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']||'&nbsp;')+'</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]==' '?'&nbsp;':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.0. */
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
- float: left;
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
- float: left;
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.0. */
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
- float: left;
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
- float: left;
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
- }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jquery-keypad-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.0
4
+ version: 1.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jay Lawrence