webshims-rails 0.4.6 → 0.4.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (90) hide show
  1. data/lib/webshims-rails/version.rb +2 -2
  2. data/vendor/assets/javascripts/webshims/extras/mousepress.js +1 -1
  3. data/vendor/assets/javascripts/webshims/minified/extras/mousepress.js +1 -1
  4. data/vendor/assets/javascripts/webshims/minified/polyfiller.js +1 -1
  5. data/vendor/assets/javascripts/webshims/minified/shims/combos/1.js +1 -1
  6. data/vendor/assets/javascripts/webshims/minified/shims/combos/10.js +1 -1
  7. data/vendor/assets/javascripts/webshims/minified/shims/combos/11.js +1 -1
  8. data/vendor/assets/javascripts/webshims/minified/shims/combos/12.js +1 -1
  9. data/vendor/assets/javascripts/webshims/minified/shims/combos/13.js +1 -1
  10. data/vendor/assets/javascripts/webshims/minified/shims/combos/14.js +1 -1
  11. data/vendor/assets/javascripts/webshims/minified/shims/combos/15.js +1 -1
  12. data/vendor/assets/javascripts/webshims/minified/shims/combos/16.js +1 -1
  13. data/vendor/assets/javascripts/webshims/minified/shims/combos/17.js +1 -1
  14. data/vendor/assets/javascripts/webshims/minified/shims/combos/18.js +1 -1
  15. data/vendor/assets/javascripts/webshims/minified/shims/combos/19.js +1 -1
  16. data/vendor/assets/javascripts/webshims/minified/shims/combos/2.js +1 -1
  17. data/vendor/assets/javascripts/webshims/minified/shims/combos/20.js +1 -1
  18. data/vendor/assets/javascripts/webshims/minified/shims/combos/21.js +1 -1
  19. data/vendor/assets/javascripts/webshims/minified/shims/combos/22.js +1 -1
  20. data/vendor/assets/javascripts/webshims/minified/shims/combos/23.js +1 -1
  21. data/vendor/assets/javascripts/webshims/minified/shims/combos/24.js +1 -1
  22. data/vendor/assets/javascripts/webshims/minified/shims/combos/25.js +1 -1
  23. data/vendor/assets/javascripts/webshims/minified/shims/combos/26.js +1 -1
  24. data/vendor/assets/javascripts/webshims/minified/shims/combos/27.js +1 -1
  25. data/vendor/assets/javascripts/webshims/minified/shims/combos/3.js +1 -1
  26. data/vendor/assets/javascripts/webshims/minified/shims/combos/4.js +1 -1
  27. data/vendor/assets/javascripts/webshims/minified/shims/combos/5.js +1 -1
  28. data/vendor/assets/javascripts/webshims/minified/shims/combos/59.js +1 -1
  29. data/vendor/assets/javascripts/webshims/minified/shims/combos/6.js +1 -1
  30. data/vendor/assets/javascripts/webshims/minified/shims/combos/7.js +1 -1
  31. data/vendor/assets/javascripts/webshims/minified/shims/combos/8.js +1 -1
  32. data/vendor/assets/javascripts/webshims/minified/shims/combos/9.js +1 -1
  33. data/vendor/assets/javascripts/webshims/minified/shims/dom-extend.js +1 -1
  34. data/vendor/assets/javascripts/webshims/minified/shims/es5.js +1 -1
  35. data/vendor/assets/javascripts/webshims/minified/shims/form-core.js +1 -1
  36. data/vendor/assets/javascripts/webshims/minified/shims/form-datalist.js +1 -1
  37. data/vendor/assets/javascripts/webshims/minified/shims/form-number-date-ui.js +1 -1
  38. data/vendor/assets/javascripts/webshims/minified/shims/form-shim-extend.js +1 -1
  39. data/vendor/assets/javascripts/webshims/minified/shims/geolocation.js +1 -1
  40. data/vendor/assets/javascripts/webshims/minified/shims/json-storage.js +1 -1
  41. data/vendor/assets/javascripts/webshims/minified/shims/mediaelement-core.js +1 -1
  42. data/vendor/assets/javascripts/webshims/minified/shims/mediaelement-jaris.js +1 -1
  43. data/vendor/assets/javascripts/webshims/minified/shims/mediaelement-swf.js +1 -1
  44. data/vendor/assets/javascripts/webshims/minified/shims/mediaelement-yt.js +1 -1
  45. data/vendor/assets/javascripts/webshims/minified/shims/track-ui.js +1 -1
  46. data/vendor/assets/javascripts/webshims/minified/shims/track.js +1 -1
  47. data/vendor/assets/javascripts/webshims/polyfiller.js +10 -7
  48. data/vendor/assets/javascripts/webshims/shims/combos/1.js +51 -48
  49. data/vendor/assets/javascripts/webshims/shims/combos/10.js +126 -105
  50. data/vendor/assets/javascripts/webshims/shims/combos/11.js +50 -47
  51. data/vendor/assets/javascripts/webshims/shims/combos/12.js +97 -86
  52. data/vendor/assets/javascripts/webshims/shims/combos/13.js +49 -45
  53. data/vendor/assets/javascripts/webshims/shims/combos/14.js +2 -2
  54. data/vendor/assets/javascripts/webshims/shims/combos/15.js +1 -1
  55. data/vendor/assets/javascripts/webshims/shims/combos/16.js +168 -155
  56. data/vendor/assets/javascripts/webshims/shims/combos/17.js +168 -155
  57. data/vendor/assets/javascripts/webshims/shims/combos/18.js +9 -24
  58. data/vendor/assets/javascripts/webshims/shims/combos/19.js +121 -116
  59. data/vendor/assets/javascripts/webshims/shims/combos/2.js +82 -93
  60. data/vendor/assets/javascripts/webshims/shims/combos/20.js +75 -57
  61. data/vendor/assets/javascripts/webshims/shims/combos/21.js +11 -24
  62. data/vendor/assets/javascripts/webshims/shims/combos/22.js +77 -60
  63. data/vendor/assets/javascripts/webshims/shims/combos/23.js +59 -65
  64. data/vendor/assets/javascripts/webshims/shims/combos/24.js +169 -157
  65. data/vendor/assets/javascripts/webshims/shims/combos/25.js +99 -87
  66. data/vendor/assets/javascripts/webshims/shims/combos/26.js +170 -156
  67. data/vendor/assets/javascripts/webshims/shims/combos/27.js +128 -106
  68. data/vendor/assets/javascripts/webshims/shims/combos/3.js +83 -95
  69. data/vendor/assets/javascripts/webshims/shims/combos/4.js +71 -69
  70. data/vendor/assets/javascripts/webshims/shims/combos/5.js +71 -69
  71. data/vendor/assets/javascripts/webshims/shims/combos/59.js +72 -71
  72. data/vendor/assets/javascripts/webshims/shims/combos/6.js +8 -22
  73. data/vendor/assets/javascripts/webshims/shims/combos/7.js +8 -22
  74. data/vendor/assets/javascripts/webshims/shims/combos/8.js +97 -86
  75. data/vendor/assets/javascripts/webshims/shims/combos/9.js +124 -102
  76. data/vendor/assets/javascripts/webshims/shims/dom-extend.js +49 -45
  77. data/vendor/assets/javascripts/webshims/shims/es5.js +2 -3
  78. data/vendor/assets/javascripts/webshims/shims/form-core.js +72 -70
  79. data/vendor/assets/javascripts/webshims/shims/form-datalist.js +1 -2
  80. data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +8 -22
  81. data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +11 -24
  82. data/vendor/assets/javascripts/webshims/shims/geolocation.js +1 -1
  83. data/vendor/assets/javascripts/webshims/shims/json-storage.js +1 -1
  84. data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +48 -41
  85. data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +26 -15
  86. data/vendor/assets/javascripts/webshims/shims/mediaelement-swf.js +27 -16
  87. data/vendor/assets/javascripts/webshims/shims/mediaelement-yt.js +18 -6
  88. data/vendor/assets/javascripts/webshims/shims/track-ui.js +2 -1
  89. data/vendor/assets/javascripts/webshims/shims/track.js +2 -1
  90. metadata +2 -2
@@ -1,6 +1,7 @@
1
1
  //additional tests for partial implementation of forms features
2
2
  (function($){
3
3
  "use strict";
4
+ var isWebkit = /webkit/i.test(navigator.userAgent);
4
5
  var Modernizr = window.Modernizr;
5
6
  var webshims = $.webshims;
6
7
  var bugs = webshims.bugs;
@@ -43,80 +44,80 @@
43
44
 
44
45
  if(!Modernizr.formvalidation || bugs.bustedValidity){
45
46
  testRequiredFind();
46
- return;
47
- }
48
-
49
- //create delegatable events
50
- webshims.capturingEvents(['input']);
51
- webshims.capturingEvents(['invalid'], true);
52
-
53
- if(window.opera || window.testGoodWithFix){
54
-
55
- form.appendTo('head');
56
-
57
- testRequiredFind();
58
- bugs.validationMessage = !(inputElem.prop('validationMessage'));
47
+ } else {
48
+ //create delegatable events
49
+ webshims.capturingEvents(['input']);
50
+ webshims.capturingEvents(['invalid'], true);
59
51
 
60
- webshims.reTest(['form-native-extend', 'form-message']);
61
-
62
- form.remove();
52
+ if(window.opera || window.testGoodWithFix){
63
53
 
64
- $(function(){
65
- onDomextend(function(){
66
-
67
- //Opera shows native validation bubbles in case of input.checkValidity()
68
- // Opera 11.6/12 hasn't fixed this issue right, it's buggy
69
- var preventDefault = function(e){
70
- e.preventDefault();
71
- };
54
+ form.appendTo('head');
55
+
56
+ testRequiredFind();
57
+ bugs.validationMessage = !(inputElem.prop('validationMessage'));
58
+
59
+ webshims.reTest(['form-native-extend', 'form-message']);
60
+
61
+ form.remove();
72
62
 
73
- ['form', 'input', 'textarea', 'select'].forEach(function(name){
74
- var desc = webshims.defineNodeNameProperty(name, 'checkValidity', {
75
- prop: {
76
- value: function(){
77
- if (!webshims.fromSubmit) {
78
- $(this).on('invalid.checkvalidity', preventDefault);
79
- }
80
-
81
- webshims.fromCheckValidity = true;
82
- var ret = desc.prop._supvalue.apply(this, arguments);
83
- if (!webshims.fromSubmit) {
84
- $(this).unbind('invalid.checkvalidity', preventDefault);
63
+ $(function(){
64
+ onDomextend(function(){
65
+
66
+ //Opera shows native validation bubbles in case of input.checkValidity()
67
+ // Opera 11.6/12 hasn't fixed this issue right, it's buggy
68
+ var preventDefault = function(e){
69
+ e.preventDefault();
70
+ };
71
+
72
+ ['form', 'input', 'textarea', 'select'].forEach(function(name){
73
+ var desc = webshims.defineNodeNameProperty(name, 'checkValidity', {
74
+ prop: {
75
+ value: function(){
76
+ if (!webshims.fromSubmit) {
77
+ $(this).on('invalid.checkvalidity', preventDefault);
78
+ }
79
+
80
+ webshims.fromCheckValidity = true;
81
+ var ret = desc.prop._supvalue.apply(this, arguments);
82
+ if (!webshims.fromSubmit) {
83
+ $(this).unbind('invalid.checkvalidity', preventDefault);
84
+ }
85
+ webshims.fromCheckValidity = false;
86
+ return ret;
85
87
  }
86
- webshims.fromCheckValidity = false;
87
- return ret;
88
88
  }
89
- }
89
+ });
90
90
  });
91
+
91
92
  });
92
-
93
93
  });
94
- });
94
+ }
95
+
96
+ if(isWebkit && !webshims.bugs.bustedValidity){
97
+ (function(){
98
+ var elems = /^(?:textarea|input)$/i;
99
+ var form = false;
100
+
101
+ document.addEventListener('contextmenu', function(e){
102
+ if(elems.test( e.target.nodeName || '') && (form = e.target.form)){
103
+ setTimeout(function(){
104
+ form = false;
105
+ }, 1);
106
+ }
107
+ }, false);
108
+
109
+ $(window).on('invalid', function(e){
110
+ if(e.originalEvent && form && form == e.target.form){
111
+ e.wrongWebkitInvalid = true;
112
+ e.stopImmediatePropagation();
113
+ }
114
+ });
115
+
116
+ })();
117
+ }
95
118
  }
96
119
 
97
- if($.browser.webkit && !webshims.bugs.bustedValidity){
98
- (function(){
99
- var elems = /^(?:textarea|input)$/i;
100
- var form = false;
101
-
102
- document.addEventListener('contextmenu', function(e){
103
- if(elems.test( e.target.nodeName || '') && (form = e.target.form)){
104
- setTimeout(function(){
105
- form = false;
106
- }, 1);
107
- }
108
- }, false);
109
-
110
- $(window).on('invalid', function(e){
111
- if(e.originalEvent && form && form == e.target.form){
112
- e.wrongWebkitInvalid = true;
113
- e.stopImmediatePropagation();
114
- }
115
- });
116
-
117
- })();
118
- }
119
- })(jQuery);
120
+
120
121
 
121
122
  jQuery.webshims.register('form-core', function($, webshims, window, document, undefined, options){
122
123
  "use strict";
@@ -231,7 +232,7 @@ jQuery.webshims.register('form-core', function($, webshims, window, document, un
231
232
  return false;
232
233
  };
233
234
 
234
- if(Modernizr.formvalidation && $.browser.webkit && !webshims.bugs.bustedValidity && webshims.browserVersion < 27){
235
+ if(Modernizr.formvalidation && isWebkit && !webshims.bugs.bustedValidity){
235
236
  (function(){
236
237
  var retriggerRadioValidity = function(){
237
238
  var validity;
@@ -410,7 +411,7 @@ jQuery.webshims.register('form-core', function($, webshims, window, document, un
410
411
 
411
412
 
412
413
  var setRoot = function(){
413
- webshims.scrollRoot = ($.browser.webkit || document.compatMode == 'BackCompat') ?
414
+ webshims.scrollRoot = (isWebkit || document.compatMode == 'BackCompat') ?
414
415
  $(document.body) :
415
416
  $(document.documentElement)
416
417
  ;
@@ -432,7 +433,7 @@ jQuery.webshims.register('form-core', function($, webshims, window, document, un
432
433
 
433
434
  /* some extra validation UI */
434
435
  webshims.validityAlert = (function(){
435
- var alertElem = (!$.browser.msie || parseInt($.browser.version, 10) > 7) ? 'span' : 'label';
436
+ var alertElem = 'span';
436
437
  var errorBubble;
437
438
  var hideTimer = false;
438
439
  var focusTimer = false;
@@ -547,7 +548,7 @@ jQuery.webshims.register('form-core', function($, webshims, window, document, un
547
548
  errorBubble = api.errorBubble = $('<'+alertElem+' class="validity-alert-wrapper" role="alert"><span class="validity-alert"><span class="va-arrow"><span class="va-arrow-box"></span></span><span class="va-box"></span></span></'+alertElem+'>').css({position: 'absolute', display: 'none'});
548
549
  webshims.ready('DOM', function(){
549
550
  errorBubble.appendTo('body');
550
- if($.fn.bgIframe && $.browser.msie && parseInt($.browser.version, 10) < 7){
551
+ if($.fn.bgIframe){
551
552
  errorBubble.bgIframe();
552
553
  }
553
554
  });
@@ -627,8 +628,9 @@ jQuery.webshims.register('form-core', function($, webshims, window, document, un
627
628
  });
628
629
  });
629
630
  }
630
-
631
631
  });
632
+
633
+ })(jQuery);
632
634
  jQuery.webshims.register('form-message', function($, webshims, window, document, undefined, options){
633
635
  "use strict";
634
636
  var validityMessages = webshims.validityMessages;
@@ -1,6 +1,7 @@
1
1
  //additional tests for partial implementation of forms features
2
2
  (function($){
3
3
  "use strict";
4
+ var isWebkit = /webkit/i.test(navigator.userAgent);
4
5
  var Modernizr = window.Modernizr;
5
6
  var webshims = $.webshims;
6
7
  var bugs = webshims.bugs;
@@ -43,80 +44,80 @@
43
44
 
44
45
  if(!Modernizr.formvalidation || bugs.bustedValidity){
45
46
  testRequiredFind();
46
- return;
47
- }
48
-
49
- //create delegatable events
50
- webshims.capturingEvents(['input']);
51
- webshims.capturingEvents(['invalid'], true);
52
-
53
- if(window.opera || window.testGoodWithFix){
54
-
55
- form.appendTo('head');
56
-
57
- testRequiredFind();
58
- bugs.validationMessage = !(inputElem.prop('validationMessage'));
47
+ } else {
48
+ //create delegatable events
49
+ webshims.capturingEvents(['input']);
50
+ webshims.capturingEvents(['invalid'], true);
59
51
 
60
- webshims.reTest(['form-native-extend', 'form-message']);
61
-
62
- form.remove();
52
+ if(window.opera || window.testGoodWithFix){
63
53
 
64
- $(function(){
65
- onDomextend(function(){
66
-
67
- //Opera shows native validation bubbles in case of input.checkValidity()
68
- // Opera 11.6/12 hasn't fixed this issue right, it's buggy
69
- var preventDefault = function(e){
70
- e.preventDefault();
71
- };
54
+ form.appendTo('head');
55
+
56
+ testRequiredFind();
57
+ bugs.validationMessage = !(inputElem.prop('validationMessage'));
58
+
59
+ webshims.reTest(['form-native-extend', 'form-message']);
60
+
61
+ form.remove();
72
62
 
73
- ['form', 'input', 'textarea', 'select'].forEach(function(name){
74
- var desc = webshims.defineNodeNameProperty(name, 'checkValidity', {
75
- prop: {
76
- value: function(){
77
- if (!webshims.fromSubmit) {
78
- $(this).on('invalid.checkvalidity', preventDefault);
79
- }
80
-
81
- webshims.fromCheckValidity = true;
82
- var ret = desc.prop._supvalue.apply(this, arguments);
83
- if (!webshims.fromSubmit) {
84
- $(this).unbind('invalid.checkvalidity', preventDefault);
63
+ $(function(){
64
+ onDomextend(function(){
65
+
66
+ //Opera shows native validation bubbles in case of input.checkValidity()
67
+ // Opera 11.6/12 hasn't fixed this issue right, it's buggy
68
+ var preventDefault = function(e){
69
+ e.preventDefault();
70
+ };
71
+
72
+ ['form', 'input', 'textarea', 'select'].forEach(function(name){
73
+ var desc = webshims.defineNodeNameProperty(name, 'checkValidity', {
74
+ prop: {
75
+ value: function(){
76
+ if (!webshims.fromSubmit) {
77
+ $(this).on('invalid.checkvalidity', preventDefault);
78
+ }
79
+
80
+ webshims.fromCheckValidity = true;
81
+ var ret = desc.prop._supvalue.apply(this, arguments);
82
+ if (!webshims.fromSubmit) {
83
+ $(this).unbind('invalid.checkvalidity', preventDefault);
84
+ }
85
+ webshims.fromCheckValidity = false;
86
+ return ret;
85
87
  }
86
- webshims.fromCheckValidity = false;
87
- return ret;
88
88
  }
89
- }
89
+ });
90
90
  });
91
+
91
92
  });
92
-
93
93
  });
94
- });
94
+ }
95
+
96
+ if(isWebkit && !webshims.bugs.bustedValidity){
97
+ (function(){
98
+ var elems = /^(?:textarea|input)$/i;
99
+ var form = false;
100
+
101
+ document.addEventListener('contextmenu', function(e){
102
+ if(elems.test( e.target.nodeName || '') && (form = e.target.form)){
103
+ setTimeout(function(){
104
+ form = false;
105
+ }, 1);
106
+ }
107
+ }, false);
108
+
109
+ $(window).on('invalid', function(e){
110
+ if(e.originalEvent && form && form == e.target.form){
111
+ e.wrongWebkitInvalid = true;
112
+ e.stopImmediatePropagation();
113
+ }
114
+ });
115
+
116
+ })();
117
+ }
95
118
  }
96
119
 
97
- if($.browser.webkit && !webshims.bugs.bustedValidity){
98
- (function(){
99
- var elems = /^(?:textarea|input)$/i;
100
- var form = false;
101
-
102
- document.addEventListener('contextmenu', function(e){
103
- if(elems.test( e.target.nodeName || '') && (form = e.target.form)){
104
- setTimeout(function(){
105
- form = false;
106
- }, 1);
107
- }
108
- }, false);
109
-
110
- $(window).on('invalid', function(e){
111
- if(e.originalEvent && form && form == e.target.form){
112
- e.wrongWebkitInvalid = true;
113
- e.stopImmediatePropagation();
114
- }
115
- });
116
-
117
- })();
118
- }
119
- })(jQuery);
120
+
120
121
 
121
122
  jQuery.webshims.register('form-core', function($, webshims, window, document, undefined, options){
122
123
  "use strict";
@@ -231,7 +232,7 @@ jQuery.webshims.register('form-core', function($, webshims, window, document, un
231
232
  return false;
232
233
  };
233
234
 
234
- if(Modernizr.formvalidation && $.browser.webkit && !webshims.bugs.bustedValidity && webshims.browserVersion < 27){
235
+ if(Modernizr.formvalidation && isWebkit && !webshims.bugs.bustedValidity){
235
236
  (function(){
236
237
  var retriggerRadioValidity = function(){
237
238
  var validity;
@@ -410,7 +411,7 @@ jQuery.webshims.register('form-core', function($, webshims, window, document, un
410
411
 
411
412
 
412
413
  var setRoot = function(){
413
- webshims.scrollRoot = ($.browser.webkit || document.compatMode == 'BackCompat') ?
414
+ webshims.scrollRoot = (isWebkit || document.compatMode == 'BackCompat') ?
414
415
  $(document.body) :
415
416
  $(document.documentElement)
416
417
  ;
@@ -432,7 +433,7 @@ jQuery.webshims.register('form-core', function($, webshims, window, document, un
432
433
 
433
434
  /* some extra validation UI */
434
435
  webshims.validityAlert = (function(){
435
- var alertElem = (!$.browser.msie || parseInt($.browser.version, 10) > 7) ? 'span' : 'label';
436
+ var alertElem = 'span';
436
437
  var errorBubble;
437
438
  var hideTimer = false;
438
439
  var focusTimer = false;
@@ -547,7 +548,7 @@ jQuery.webshims.register('form-core', function($, webshims, window, document, un
547
548
  errorBubble = api.errorBubble = $('<'+alertElem+' class="validity-alert-wrapper" role="alert"><span class="validity-alert"><span class="va-arrow"><span class="va-arrow-box"></span></span><span class="va-box"></span></span></'+alertElem+'>').css({position: 'absolute', display: 'none'});
548
549
  webshims.ready('DOM', function(){
549
550
  errorBubble.appendTo('body');
550
- if($.fn.bgIframe && $.browser.msie && parseInt($.browser.version, 10) < 7){
551
+ if($.fn.bgIframe){
551
552
  errorBubble.bgIframe();
552
553
  }
553
554
  });
@@ -627,8 +628,9 @@ jQuery.webshims.register('form-core', function($, webshims, window, document, un
627
628
  });
628
629
  });
629
630
  }
630
-
631
631
  });
632
+
633
+ })(jQuery);
632
634
  jQuery.webshims.register('form-native-extend', function($, webshims, window, doc, undefined, options){
633
635
  "use strict";
634
636
  var Modernizr = window.Modernizr;
@@ -1,6 +1,7 @@
1
1
  //additional tests for partial implementation of forms features
2
2
  (function($){
3
3
  "use strict";
4
+ var isWebkit = /webkit/i.test(navigator.userAgent);
4
5
  var Modernizr = window.Modernizr;
5
6
  var webshims = $.webshims;
6
7
  var bugs = webshims.bugs;
@@ -43,80 +44,80 @@
43
44
 
44
45
  if(!Modernizr.formvalidation || bugs.bustedValidity){
45
46
  testRequiredFind();
46
- return;
47
- }
48
-
49
- //create delegatable events
50
- webshims.capturingEvents(['input']);
51
- webshims.capturingEvents(['invalid'], true);
52
-
53
- if(window.opera || window.testGoodWithFix){
54
-
55
- form.appendTo('head');
56
-
57
- testRequiredFind();
58
- bugs.validationMessage = !(inputElem.prop('validationMessage'));
59
-
60
- webshims.reTest(['form-native-extend', 'form-message']);
47
+ } else {
48
+ //create delegatable events
49
+ webshims.capturingEvents(['input']);
50
+ webshims.capturingEvents(['invalid'], true);
61
51
 
62
- form.remove();
52
+ if(window.opera || window.testGoodWithFix){
63
53
 
64
- $(function(){
65
- onDomextend(function(){
66
-
67
- //Opera shows native validation bubbles in case of input.checkValidity()
68
- // Opera 11.6/12 hasn't fixed this issue right, it's buggy
69
- var preventDefault = function(e){
70
- e.preventDefault();
71
- };
54
+ form.appendTo('head');
55
+
56
+ testRequiredFind();
57
+ bugs.validationMessage = !(inputElem.prop('validationMessage'));
58
+
59
+ webshims.reTest(['form-native-extend', 'form-message']);
60
+
61
+ form.remove();
72
62
 
73
- ['form', 'input', 'textarea', 'select'].forEach(function(name){
74
- var desc = webshims.defineNodeNameProperty(name, 'checkValidity', {
75
- prop: {
76
- value: function(){
77
- if (!webshims.fromSubmit) {
78
- $(this).on('invalid.checkvalidity', preventDefault);
79
- }
80
-
81
- webshims.fromCheckValidity = true;
82
- var ret = desc.prop._supvalue.apply(this, arguments);
83
- if (!webshims.fromSubmit) {
84
- $(this).unbind('invalid.checkvalidity', preventDefault);
63
+ $(function(){
64
+ onDomextend(function(){
65
+
66
+ //Opera shows native validation bubbles in case of input.checkValidity()
67
+ // Opera 11.6/12 hasn't fixed this issue right, it's buggy
68
+ var preventDefault = function(e){
69
+ e.preventDefault();
70
+ };
71
+
72
+ ['form', 'input', 'textarea', 'select'].forEach(function(name){
73
+ var desc = webshims.defineNodeNameProperty(name, 'checkValidity', {
74
+ prop: {
75
+ value: function(){
76
+ if (!webshims.fromSubmit) {
77
+ $(this).on('invalid.checkvalidity', preventDefault);
78
+ }
79
+
80
+ webshims.fromCheckValidity = true;
81
+ var ret = desc.prop._supvalue.apply(this, arguments);
82
+ if (!webshims.fromSubmit) {
83
+ $(this).unbind('invalid.checkvalidity', preventDefault);
84
+ }
85
+ webshims.fromCheckValidity = false;
86
+ return ret;
85
87
  }
86
- webshims.fromCheckValidity = false;
87
- return ret;
88
88
  }
89
- }
89
+ });
90
90
  });
91
+
91
92
  });
92
-
93
93
  });
94
- });
94
+ }
95
+
96
+ if(isWebkit && !webshims.bugs.bustedValidity){
97
+ (function(){
98
+ var elems = /^(?:textarea|input)$/i;
99
+ var form = false;
100
+
101
+ document.addEventListener('contextmenu', function(e){
102
+ if(elems.test( e.target.nodeName || '') && (form = e.target.form)){
103
+ setTimeout(function(){
104
+ form = false;
105
+ }, 1);
106
+ }
107
+ }, false);
108
+
109
+ $(window).on('invalid', function(e){
110
+ if(e.originalEvent && form && form == e.target.form){
111
+ e.wrongWebkitInvalid = true;
112
+ e.stopImmediatePropagation();
113
+ }
114
+ });
115
+
116
+ })();
117
+ }
95
118
  }
96
119
 
97
- if($.browser.webkit && !webshims.bugs.bustedValidity){
98
- (function(){
99
- var elems = /^(?:textarea|input)$/i;
100
- var form = false;
101
-
102
- document.addEventListener('contextmenu', function(e){
103
- if(elems.test( e.target.nodeName || '') && (form = e.target.form)){
104
- setTimeout(function(){
105
- form = false;
106
- }, 1);
107
- }
108
- }, false);
109
-
110
- $(window).on('invalid', function(e){
111
- if(e.originalEvent && form && form == e.target.form){
112
- e.wrongWebkitInvalid = true;
113
- e.stopImmediatePropagation();
114
- }
115
- });
116
-
117
- })();
118
- }
119
- })(jQuery);
120
+
120
121
 
121
122
  jQuery.webshims.register('form-core', function($, webshims, window, document, undefined, options){
122
123
  "use strict";
@@ -231,7 +232,7 @@ jQuery.webshims.register('form-core', function($, webshims, window, document, un
231
232
  return false;
232
233
  };
233
234
 
234
- if(Modernizr.formvalidation && $.browser.webkit && !webshims.bugs.bustedValidity && webshims.browserVersion < 27){
235
+ if(Modernizr.formvalidation && isWebkit && !webshims.bugs.bustedValidity){
235
236
  (function(){
236
237
  var retriggerRadioValidity = function(){
237
238
  var validity;
@@ -410,7 +411,7 @@ jQuery.webshims.register('form-core', function($, webshims, window, document, un
410
411
 
411
412
 
412
413
  var setRoot = function(){
413
- webshims.scrollRoot = ($.browser.webkit || document.compatMode == 'BackCompat') ?
414
+ webshims.scrollRoot = (isWebkit || document.compatMode == 'BackCompat') ?
414
415
  $(document.body) :
415
416
  $(document.documentElement)
416
417
  ;
@@ -432,7 +433,7 @@ jQuery.webshims.register('form-core', function($, webshims, window, document, un
432
433
 
433
434
  /* some extra validation UI */
434
435
  webshims.validityAlert = (function(){
435
- var alertElem = (!$.browser.msie || parseInt($.browser.version, 10) > 7) ? 'span' : 'label';
436
+ var alertElem = 'span';
436
437
  var errorBubble;
437
438
  var hideTimer = false;
438
439
  var focusTimer = false;
@@ -547,7 +548,7 @@ jQuery.webshims.register('form-core', function($, webshims, window, document, un
547
548
  errorBubble = api.errorBubble = $('<'+alertElem+' class="validity-alert-wrapper" role="alert"><span class="validity-alert"><span class="va-arrow"><span class="va-arrow-box"></span></span><span class="va-box"></span></span></'+alertElem+'>').css({position: 'absolute', display: 'none'});
548
549
  webshims.ready('DOM', function(){
549
550
  errorBubble.appendTo('body');
550
- if($.fn.bgIframe && $.browser.msie && parseInt($.browser.version, 10) < 7){
551
+ if($.fn.bgIframe){
551
552
  errorBubble.bgIframe();
552
553
  }
553
554
  });
@@ -627,8 +628,9 @@ jQuery.webshims.register('form-core', function($, webshims, window, document, un
627
628
  });
628
629
  });
629
630
  }
630
-
631
631
  });
632
+
633
+ })(jQuery);
632
634
  jQuery.webshims.register('form-native-extend', function($, webshims, window, doc, undefined, options){
633
635
  "use strict";
634
636
  var Modernizr = window.Modernizr;
@@ -1280,7 +1282,6 @@ jQuery.webshims.register('form-datalist', function($, webshims, window, document
1280
1282
  range: 1,
1281
1283
  date: 1
1282
1284
  };
1283
- var lteie6 = ($.browser.msie && parseInt($.browser.version, 10) < 7);
1284
1285
  var globStoredOptions = {};
1285
1286
  var getStoredOptions = function(name){
1286
1287
  if(!name){return [];}
@@ -1564,7 +1565,7 @@ jQuery.webshims.register('form-datalist', function($, webshims, window, document
1564
1565
  this.arrayOptions = allOptions;
1565
1566
  this.shadowList.html('<div class="datalist-outer-box"><div class="datalist-box"><ul role="list">'+ list.join("\n") +'</ul></div></div>');
1566
1567
 
1567
- if($.fn.bgIframe && lteie6){
1568
+ if($.fn.bgIframe){
1568
1569
  this.shadowList.bgIframe();
1569
1570
  }
1570
1571