webshims-rails 1.12.5 → 1.12.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/lib/webshims-rails/version.rb +2 -2
  3. data/vendor/assets/javascripts/webshims/polyfiller.js +111 -132
  4. data/vendor/assets/javascripts/webshims/shims/combos/1.js +40 -37
  5. data/vendor/assets/javascripts/webshims/shims/combos/10.js +217 -36
  6. data/vendor/assets/javascripts/webshims/shims/combos/11.js +151 -29
  7. data/vendor/assets/javascripts/webshims/shims/combos/12.js +70 -93
  8. data/vendor/assets/javascripts/webshims/shims/combos/13.js +70 -93
  9. data/vendor/assets/javascripts/webshims/shims/combos/14.js +90 -13
  10. data/vendor/assets/javascripts/webshims/shims/combos/15.js +202 -59
  11. data/vendor/assets/javascripts/webshims/shims/combos/16.js +208 -70
  12. data/vendor/assets/javascripts/webshims/shims/combos/17.js +151 -29
  13. data/vendor/assets/javascripts/webshims/shims/combos/18.js +155 -30
  14. data/vendor/assets/javascripts/webshims/shims/combos/19.js +79 -20
  15. data/vendor/assets/javascripts/webshims/shims/combos/2.js +109 -47
  16. data/vendor/assets/javascripts/webshims/shims/combos/20.js +79 -20
  17. data/vendor/assets/javascripts/webshims/shims/combos/21.js +80 -87
  18. data/vendor/assets/javascripts/webshims/shims/combos/22.js +66 -83
  19. data/vendor/assets/javascripts/webshims/shims/combos/23.js +4 -10
  20. data/vendor/assets/javascripts/webshims/shims/combos/25.js +79 -20
  21. data/vendor/assets/javascripts/webshims/shims/combos/26.js +66 -7
  22. data/vendor/assets/javascripts/webshims/shims/combos/28.js +100 -25
  23. data/vendor/assets/javascripts/webshims/shims/combos/3.js +192 -47
  24. data/vendor/assets/javascripts/webshims/shims/combos/30.js +193 -49
  25. data/vendor/assets/javascripts/webshims/shims/combos/31.js +103 -36
  26. data/vendor/assets/javascripts/webshims/shims/combos/32.js +5 -3
  27. data/vendor/assets/javascripts/webshims/shims/combos/33.js +1 -2
  28. data/vendor/assets/javascripts/webshims/shims/combos/34.js +2048 -0
  29. data/vendor/assets/javascripts/webshims/shims/combos/4.js +156 -20
  30. data/vendor/assets/javascripts/webshims/shims/combos/5.js +151 -29
  31. data/vendor/assets/javascripts/webshims/shims/combos/6.js +152 -31
  32. data/vendor/assets/javascripts/webshims/shims/combos/7.js +199 -60
  33. data/vendor/assets/javascripts/webshims/shims/combos/8.js +197 -58
  34. data/vendor/assets/javascripts/webshims/shims/combos/9.js +218 -38
  35. data/vendor/assets/javascripts/webshims/shims/combos/97.js +1004 -0
  36. data/vendor/assets/javascripts/webshims/shims/combos/98.js +1283 -0
  37. data/vendor/assets/javascripts/webshims/shims/combos/99.js +204 -1248
  38. data/vendor/assets/javascripts/webshims/shims/dom-extend.js +66 -7
  39. data/vendor/assets/javascripts/webshims/shims/es5.js +4 -1
  40. data/vendor/assets/javascripts/webshims/shims/form-combat.js +3 -3
  41. data/vendor/assets/javascripts/webshims/shims/form-core.js +36 -27
  42. data/vendor/assets/javascripts/webshims/shims/form-datalist.js +1 -2
  43. data/vendor/assets/javascripts/webshims/shims/form-fixrangechange.js +137 -0
  44. data/vendor/assets/javascripts/webshims/shims/form-message.js +90 -13
  45. data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +129 -15
  46. data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +9 -10
  47. data/vendor/assets/javascripts/webshims/shims/form-shim-extend2.js +886 -985
  48. data/vendor/assets/javascripts/webshims/shims/form-validation.js +78 -174
  49. data/vendor/assets/javascripts/webshims/shims/form-validators.js +39 -26
  50. data/vendor/assets/javascripts/webshims/shims/forms-picker.js +45 -17
  51. data/vendor/assets/javascripts/webshims/shims/geolocation.js +10 -3
  52. data/vendor/assets/javascripts/webshims/shims/jme/b.js +71 -246
  53. data/vendor/assets/javascripts/webshims/shims/jme/c.js +133 -1002
  54. data/vendor/assets/javascripts/webshims/shims/jme/controls.css +62 -23
  55. data/vendor/assets/javascripts/webshims/shims/jme/controls.scss +73 -10
  56. data/vendor/assets/javascripts/webshims/shims/jme/mediacontrols-lazy.js +1117 -0
  57. data/vendor/assets/javascripts/webshims/shims/jme/p.js +603 -0
  58. data/vendor/assets/javascripts/webshims/shims/jpicker/jpicker.css +5 -2
  59. data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +4 -10
  60. data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +4 -1
  61. data/vendor/assets/javascripts/webshims/shims/range-ui.js +22 -14
  62. data/vendor/assets/javascripts/webshims/shims/styles/forms-ext.css +29 -344
  63. data/vendor/assets/javascripts/webshims/shims/styles/forms-picker.css +362 -0
  64. data/vendor/assets/javascripts/webshims/shims/styles/scss/forms-ext.scss +6 -483
  65. data/vendor/assets/javascripts/webshims/shims/styles/scss/forms-picker.scss +488 -0
  66. data/vendor/assets/javascripts/webshims/shims/styles/scss/shim-ext.scss +2 -0
  67. data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +10 -2
  68. data/vendor/assets/javascripts/webshims/shims/styles/shim.css +6 -2
  69. data/vendor/assets/javascripts/webshims/shims/swf/JarisFLVPlayer.swf +0 -0
  70. data/vendor/assets/javascripts/webshims/shims/track-ui.js +8 -1
  71. data/vendor/assets/javascripts/webshims/shims/track.js +66 -83
  72. metadata +12 -5
  73. data/vendor/assets/javascripts/webshims/shims/$ajax.js +0 -862
  74. data/vendor/assets/javascripts/webshims/shims/combos/24.js +0 -2087
@@ -1,3 +1,61 @@
1
+
2
+ //this might was already extended by ES5 shim feature
3
+ (function($){
4
+ "use strict";
5
+ var webshims = window.webshims;
6
+ if(webshims.defineProperties){return;}
7
+ var defineProperty = 'defineProperty';
8
+ var has = Object.prototype.hasOwnProperty;
9
+ var descProps = ['configurable', 'enumerable', 'writable'];
10
+ var extendUndefined = function(prop){
11
+ for(var i = 0; i < 3; i++){
12
+ if(prop[descProps[i]] === undefined && (descProps[i] !== 'writable' || prop.value !== undefined)){
13
+ prop[descProps[i]] = true;
14
+ }
15
+ }
16
+ };
17
+
18
+ var extendProps = function(props){
19
+ if(props){
20
+ for(var i in props){
21
+ if(has.call(props, i)){
22
+ extendUndefined(props[i]);
23
+ }
24
+ }
25
+ }
26
+ };
27
+
28
+ if(Object.create){
29
+ webshims.objectCreate = function(proto, props, opts){
30
+ extendProps(props);
31
+ var o = Object.create(proto, props);
32
+ if(opts){
33
+ o.options = $.extend(true, {}, o.options || {}, opts);
34
+ opts = o.options;
35
+ }
36
+ if(o._create && $.isFunction(o._create)){
37
+ o._create(opts);
38
+ }
39
+ return o;
40
+ };
41
+ }
42
+
43
+ if(Object[defineProperty]){
44
+ webshims[defineProperty] = function(obj, prop, desc){
45
+ extendUndefined(desc);
46
+ return Object[defineProperty](obj, prop, desc);
47
+ };
48
+ }
49
+ if(Object.defineProperties){
50
+ webshims.defineProperties = function(obj, props){
51
+ extendProps(props);
52
+ return Object.defineProperties(obj, props);
53
+ };
54
+ }
55
+ webshims.getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
56
+
57
+ webshims.getPrototypeOf = Object.getPrototypeOf;
58
+ })(window.webshims.$);
1
59
  //DOM-Extension helper
2
60
  webshims.register('dom-extend', function($, webshims, window, document, undefined){
3
61
  "use strict";
@@ -633,6 +691,13 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
633
691
  this.width = docObserve.getWidth();
634
692
  setInterval(this.test, 999);
635
693
  $(this.test);
694
+ if($.support.boxSizing == null){
695
+ $(function(){
696
+ if($.support.boxSizing){
697
+ docObserve.handler({type: 'boxsizing'});
698
+ }
699
+ });
700
+ }
636
701
  webshims.ready('WINDOWLOAD', this.test);
637
702
  $(document).on('updatelayout.webshim pageinit popupafteropen panelbeforeopen tabsactivate collapsibleexpand shown.bs.modal shown.bs.collapse slid.bs.carousel', this.handler);
638
703
  $(window).on('resize', this.handler);
@@ -644,13 +709,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
644
709
  webshims.docObserve = function(){
645
710
  webshims.ready('DOM', function(){
646
711
  docObserve.start();
647
- if($.support.boxSizing == null){
648
- $(function(){
649
- if($.support.boxSizing){
650
- docObserve.handler({type: 'boxsizing'});
651
- }
652
- });
653
- }
712
+
654
713
  });
655
714
  };
656
715
  return function(nativeElem, shadowElem, opts){
@@ -1181,27 +1240,27 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1181
1240
  /*
1182
1241
  * Selectors for all browsers
1183
1242
  */
1184
- var rElementsGroup = /^(?:form|fieldset)$/i;
1185
- var hasInvalid = function(elem){
1186
- var ret = false;
1187
- $(elem).jProp('elements').each(function(){
1188
- if(!rElementsGroup.test(this.nodeName || '')){
1189
- ret = $(this).is(':invalid');
1190
- if(ret){
1191
- return false;
1192
- }
1193
- }
1194
-
1195
- });
1196
- return ret;
1197
- };
1198
1243
 
1199
1244
  var extendSels = function(){
1200
1245
  var matches, matchesOverride;
1201
1246
  var exp = $.expr[":"];
1247
+ var rElementsGroup = /^(?:form|fieldset)$/i;
1248
+ var hasInvalid = function(elem){
1249
+ var ret = false;
1250
+ $(elem).jProp('elements').each(function(){
1251
+ if(!rElementsGroup.test(this.nodeName || '')){
1252
+ ret = exp.invalid(this);
1253
+ if(ret){
1254
+ return false;
1255
+ }
1256
+ }
1257
+
1258
+ });
1259
+ return ret;
1260
+ };
1202
1261
  $.extend(exp, {
1203
1262
  "valid-element": function(elem){
1204
- return rElementsGroup.test(elem.nodeName || '') ? !hasInvalid(elem) :!!($.prop(elem, 'willValidate') && isValid(elem));
1263
+ return rElementsGroup.test(elem.nodeName || '') ? !hasInvalid(elem) : !!($.prop(elem, 'willValidate') && isValid(elem));
1205
1264
  },
1206
1265
  "invalid-element": function(elem){
1207
1266
  return rElementsGroup.test(elem.nodeName || '') ? hasInvalid(elem) : !!($.prop(elem, 'willValidate') && !isValid(elem));
@@ -1256,27 +1315,36 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1256
1315
  };
1257
1316
  }
1258
1317
  };
1318
+ var formExtras = {
1319
+ noAutoCallback: true,
1320
+ options: options
1321
+ };
1322
+ var addModule = webshims.loader.addModule;
1323
+ var lazyLoadProxy = function(obj, fn, args){
1324
+ lazyLoad();
1325
+ webshims.ready('form-validation', function(){
1326
+ obj[fn].apply(obj, args);
1327
+ });
1328
+ };
1329
+
1330
+ var transClass = ('transitionDelay' in document.documentElement.style) ? '' : ' no-transition';
1331
+ var poCFG = webshims.cfg.wspopover;
1332
+
1333
+ addModule('form-validation', $.extend({d: ['form-message']}, formExtras));
1334
+
1335
+ addModule('form-validators', $.extend({}, formExtras));
1259
1336
 
1260
1337
  if($.expr.filters){
1261
1338
  extendSels();
1262
1339
  } else {
1263
1340
  webshims.ready('sizzle', extendSels);
1264
1341
  }
1265
-
1266
-
1342
+
1267
1343
  webshims.triggerInlineForm = function(elem, event){
1268
1344
  $(elem).trigger(event);
1269
1345
  };
1270
1346
 
1271
- var lazyLoadProxy = function(obj, fn, args){
1272
- lazyLoad();
1273
- webshims.ready('form-validation', function(){
1274
- obj[fn].apply(obj, args);
1275
- });
1276
- };
1277
-
1278
- var transClass = ('transitionDelay' in document.documentElement.style) ? '' : ' no-transition';
1279
- var poCFG = webshims.cfg.wspopover;
1347
+
1280
1348
  if(!poCFG.position && poCFG.position !== false){
1281
1349
  poCFG.position = {
1282
1350
  at: 'left bottom',
@@ -1398,7 +1466,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1398
1466
 
1399
1467
  webshims.ready('WINDOWLOAD', lazyLoad);
1400
1468
 
1401
- if(modules['form-number-date-ui'].loaded && modules['form-number-date-api'].test()){
1469
+ if(modules['form-number-date-ui'].loaded && !options.customMessages && (modules['form-number-date-api'].test() || (Modernizr.inputtypes.range && Modernizr.inputtypes.color))){
1402
1470
  webshims.isReady('form-number-date-ui', true);
1403
1471
  }
1404
1472
  });
@@ -1529,26 +1597,103 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1529
1597
  min: 1,
1530
1598
  max: 1
1531
1599
  };
1600
+ var toLocale = (function(){
1601
+ var monthFormatter;
1602
+ var transforms = {
1603
+ number: function(val){
1604
+ var num = val * 1;
1605
+ if(num.toLocaleString && !isNaN(num)){
1606
+ val = num.toLocaleString() || val;
1607
+ }
1608
+ return val;
1609
+ }
1610
+ };
1611
+ var _toLocale = function(val, elem, attr){
1612
+ var type, widget;
1613
+ if(valueVals[attr]){
1614
+ type = $.prop(elem, 'type');
1615
+ widget = $(elem).getShadowElement().data('wsWidget'+ type );
1616
+ if(widget && widget.formatValue){
1617
+ val = widget.formatValue(val, false);
1618
+ } else if(transforms[type]){
1619
+ val = transforms[type](val);
1620
+ }
1621
+ }
1622
+ return val;
1623
+ };
1624
+
1625
+ [{n: 'date', f: 'toLocaleDateString'}, {n: 'time', f: 'toLocaleTimeString'}, {n: 'datetime-local', f: 'toLocaleString'}].forEach(function(desc){
1626
+ transforms[desc.n] = function(val){
1627
+ var date = new Date(val);
1628
+ if(date && date[desc.f]){
1629
+ val = date[desc.f]() || val;
1630
+ }
1631
+ return val;
1632
+ };
1633
+ });
1634
+
1635
+ if(window.Intl && Intl.DateTimeFormat){
1636
+ monthFormatter = new Intl.DateTimeFormat(navigator.browserLanguage || navigator.language, {year: "numeric", month: "2-digit"}).format(new Date());
1637
+ if(monthFormatter && monthFormatter.format){
1638
+ transforms.month = function(val){
1639
+ var date = new Date(val);
1640
+ if(date){
1641
+ val = monthFormatter.format(date) || val;
1642
+ }
1643
+ return val;
1644
+ };
1645
+ }
1646
+ }
1647
+
1648
+ webshims.format = {};
1649
+
1650
+ ['date', 'number', 'month', 'time', 'datetime-local'].forEach(function(name){
1651
+ webshims.format[name] = function(val, opts){
1652
+ if(opts && opts.nodeType){
1653
+ return _toLocale(val, opts, name);
1654
+ }
1655
+ if(name == 'number' && opts && opts.toFixed ){
1656
+ val = (val * 1);
1657
+ if(!opts.fixOnlyFloat || val % 1){
1658
+ val = val.toFixed(opts.toFixed);
1659
+ }
1660
+ }
1661
+ if(webshims._format && webshims._format[name]){
1662
+ return webshims._format[name](val, opts);
1663
+ }
1664
+ return transforms[name](val);
1665
+ };
1666
+ });
1667
+
1668
+ return _toLocale;
1669
+ })();
1532
1670
 
1533
1671
  webshims.replaceValidationplaceholder = function(elem, message, name){
1534
- var type, widget;
1672
+ var val = $.prop(elem, 'title');
1673
+ if(message){
1674
+ if(name == 'patternMismatch' && !val){
1675
+ webshims.error('no title for patternMismatch provided. Always add a title attribute.');
1676
+ }
1677
+ if(val){
1678
+ val = '<span class="ws-titlevalue">'+ val.replace(lReg, '&lt;').replace(gReg, '&gt;') +'</span>';
1679
+ }
1680
+
1681
+ if(message.indexOf('{%title}') != -1){
1682
+ message = message.replace('{%title}', val);
1683
+ } else if(val) {
1684
+ message = message+' '+val;
1685
+ }
1686
+ }
1687
+
1535
1688
  if(message && message.indexOf('{%') != -1){
1536
- ['value', 'min', 'max', 'title', 'maxlength', 'minlength', 'label'].forEach(function(attr){
1689
+ ['value', 'min', 'max', 'maxlength', 'minlength', 'label'].forEach(function(attr){
1537
1690
  if(message.indexOf('{%'+attr) === -1){return;}
1538
1691
  var val = ((attr == 'label') ? $.trim($('label[for="'+ elem.id +'"]', elem.form).text()).replace(/\*$|:$/, '') : $.prop(elem, attr)) || '';
1539
1692
  val = ''+val;
1540
- if(name == 'patternMismatch' && attr == 'title' && !val){
1541
- webshims.error('no title for patternMismatch provided. Always add a title attribute.');
1542
- }
1543
1693
 
1544
- if(valueVals[attr]){
1545
- if(!widget){
1546
- widget = $(elem).getShadowElement().data('wsWidget'+ (type = $.prop(elem, 'type')));
1547
- }
1548
- if(widget && widget.formatValue){
1549
- val = widget.formatValue(val, false);
1550
- }
1551
- }
1694
+
1695
+ val = toLocale(val, elem, attr);
1696
+
1552
1697
  message = message.replace('{%'+ attr +'}', val.replace(lReg, '&lt;').replace(gReg, '&gt;'));
1553
1698
  if('value' == attr){
1554
1699
  message = message.replace('{%valueLen}', val.length);
@@ -1637,7 +1782,6 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1637
1782
  });
1638
1783
  ;webshims.register('form-datalist', function($, webshims, window, document, undefined, options){
1639
1784
  "use strict";
1640
- var doc = document;
1641
1785
  var lazyLoad = function(name){
1642
1786
  if(!name || typeof name != 'string'){
1643
1787
  name = 'DOM';
@@ -1932,4 +2076,4 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1932
2076
  initializeDatalist();
1933
2077
  })();
1934
2078
 
1935
- });
2079
+ });
@@ -1,3 +1,61 @@
1
+
2
+ //this might was already extended by ES5 shim feature
3
+ (function($){
4
+ "use strict";
5
+ var webshims = window.webshims;
6
+ if(webshims.defineProperties){return;}
7
+ var defineProperty = 'defineProperty';
8
+ var has = Object.prototype.hasOwnProperty;
9
+ var descProps = ['configurable', 'enumerable', 'writable'];
10
+ var extendUndefined = function(prop){
11
+ for(var i = 0; i < 3; i++){
12
+ if(prop[descProps[i]] === undefined && (descProps[i] !== 'writable' || prop.value !== undefined)){
13
+ prop[descProps[i]] = true;
14
+ }
15
+ }
16
+ };
17
+
18
+ var extendProps = function(props){
19
+ if(props){
20
+ for(var i in props){
21
+ if(has.call(props, i)){
22
+ extendUndefined(props[i]);
23
+ }
24
+ }
25
+ }
26
+ };
27
+
28
+ if(Object.create){
29
+ webshims.objectCreate = function(proto, props, opts){
30
+ extendProps(props);
31
+ var o = Object.create(proto, props);
32
+ if(opts){
33
+ o.options = $.extend(true, {}, o.options || {}, opts);
34
+ opts = o.options;
35
+ }
36
+ if(o._create && $.isFunction(o._create)){
37
+ o._create(opts);
38
+ }
39
+ return o;
40
+ };
41
+ }
42
+
43
+ if(Object[defineProperty]){
44
+ webshims[defineProperty] = function(obj, prop, desc){
45
+ extendUndefined(desc);
46
+ return Object[defineProperty](obj, prop, desc);
47
+ };
48
+ }
49
+ if(Object.defineProperties){
50
+ webshims.defineProperties = function(obj, props){
51
+ extendProps(props);
52
+ return Object.defineProperties(obj, props);
53
+ };
54
+ }
55
+ webshims.getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
56
+
57
+ webshims.getPrototypeOf = Object.getPrototypeOf;
58
+ })(window.webshims.$);
1
59
  //DOM-Extension helper
2
60
  webshims.register('dom-extend', function($, webshims, window, document, undefined){
3
61
  "use strict";
@@ -633,6 +691,13 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
633
691
  this.width = docObserve.getWidth();
634
692
  setInterval(this.test, 999);
635
693
  $(this.test);
694
+ if($.support.boxSizing == null){
695
+ $(function(){
696
+ if($.support.boxSizing){
697
+ docObserve.handler({type: 'boxsizing'});
698
+ }
699
+ });
700
+ }
636
701
  webshims.ready('WINDOWLOAD', this.test);
637
702
  $(document).on('updatelayout.webshim pageinit popupafteropen panelbeforeopen tabsactivate collapsibleexpand shown.bs.modal shown.bs.collapse slid.bs.carousel', this.handler);
638
703
  $(window).on('resize', this.handler);
@@ -644,13 +709,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
644
709
  webshims.docObserve = function(){
645
710
  webshims.ready('DOM', function(){
646
711
  docObserve.start();
647
- if($.support.boxSizing == null){
648
- $(function(){
649
- if($.support.boxSizing){
650
- docObserve.handler({type: 'boxsizing'});
651
- }
652
- });
653
- }
712
+
654
713
  });
655
714
  };
656
715
  return function(nativeElem, shadowElem, opts){
@@ -1181,27 +1240,27 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1181
1240
  /*
1182
1241
  * Selectors for all browsers
1183
1242
  */
1184
- var rElementsGroup = /^(?:form|fieldset)$/i;
1185
- var hasInvalid = function(elem){
1186
- var ret = false;
1187
- $(elem).jProp('elements').each(function(){
1188
- if(!rElementsGroup.test(this.nodeName || '')){
1189
- ret = $(this).is(':invalid');
1190
- if(ret){
1191
- return false;
1192
- }
1193
- }
1194
-
1195
- });
1196
- return ret;
1197
- };
1198
1243
 
1199
1244
  var extendSels = function(){
1200
1245
  var matches, matchesOverride;
1201
1246
  var exp = $.expr[":"];
1247
+ var rElementsGroup = /^(?:form|fieldset)$/i;
1248
+ var hasInvalid = function(elem){
1249
+ var ret = false;
1250
+ $(elem).jProp('elements').each(function(){
1251
+ if(!rElementsGroup.test(this.nodeName || '')){
1252
+ ret = exp.invalid(this);
1253
+ if(ret){
1254
+ return false;
1255
+ }
1256
+ }
1257
+
1258
+ });
1259
+ return ret;
1260
+ };
1202
1261
  $.extend(exp, {
1203
1262
  "valid-element": function(elem){
1204
- return rElementsGroup.test(elem.nodeName || '') ? !hasInvalid(elem) :!!($.prop(elem, 'willValidate') && isValid(elem));
1263
+ return rElementsGroup.test(elem.nodeName || '') ? !hasInvalid(elem) : !!($.prop(elem, 'willValidate') && isValid(elem));
1205
1264
  },
1206
1265
  "invalid-element": function(elem){
1207
1266
  return rElementsGroup.test(elem.nodeName || '') ? hasInvalid(elem) : !!($.prop(elem, 'willValidate') && !isValid(elem));
@@ -1256,27 +1315,36 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1256
1315
  };
1257
1316
  }
1258
1317
  };
1318
+ var formExtras = {
1319
+ noAutoCallback: true,
1320
+ options: options
1321
+ };
1322
+ var addModule = webshims.loader.addModule;
1323
+ var lazyLoadProxy = function(obj, fn, args){
1324
+ lazyLoad();
1325
+ webshims.ready('form-validation', function(){
1326
+ obj[fn].apply(obj, args);
1327
+ });
1328
+ };
1329
+
1330
+ var transClass = ('transitionDelay' in document.documentElement.style) ? '' : ' no-transition';
1331
+ var poCFG = webshims.cfg.wspopover;
1332
+
1333
+ addModule('form-validation', $.extend({d: ['form-message']}, formExtras));
1334
+
1335
+ addModule('form-validators', $.extend({}, formExtras));
1259
1336
 
1260
1337
  if($.expr.filters){
1261
1338
  extendSels();
1262
1339
  } else {
1263
1340
  webshims.ready('sizzle', extendSels);
1264
1341
  }
1265
-
1266
-
1342
+
1267
1343
  webshims.triggerInlineForm = function(elem, event){
1268
1344
  $(elem).trigger(event);
1269
1345
  };
1270
1346
 
1271
- var lazyLoadProxy = function(obj, fn, args){
1272
- lazyLoad();
1273
- webshims.ready('form-validation', function(){
1274
- obj[fn].apply(obj, args);
1275
- });
1276
- };
1277
-
1278
- var transClass = ('transitionDelay' in document.documentElement.style) ? '' : ' no-transition';
1279
- var poCFG = webshims.cfg.wspopover;
1347
+
1280
1348
  if(!poCFG.position && poCFG.position !== false){
1281
1349
  poCFG.position = {
1282
1350
  at: 'left bottom',
@@ -1398,13 +1466,12 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1398
1466
 
1399
1467
  webshims.ready('WINDOWLOAD', lazyLoad);
1400
1468
 
1401
- if(modules['form-number-date-ui'].loaded && modules['form-number-date-api'].test()){
1469
+ if(modules['form-number-date-ui'].loaded && !options.customMessages && (modules['form-number-date-api'].test() || (Modernizr.inputtypes.range && Modernizr.inputtypes.color))){
1402
1470
  webshims.isReady('form-number-date-ui', true);
1403
1471
  }
1404
1472
  });
1405
1473
  ;webshims.register('form-datalist', function($, webshims, window, document, undefined, options){
1406
1474
  "use strict";
1407
- var doc = document;
1408
1475
  var lazyLoad = function(name){
1409
1476
  if(!name || typeof name != 'string'){
1410
1477
  name = 'DOM';
@@ -1699,4 +1766,4 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1699
1766
  initializeDatalist();
1700
1767
  })();
1701
1768
 
1702
- });
1769
+ });