webshims-rails 1.10.10 → 1.10.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. checksums.yaml +8 -8
  2. data/MIT_LICENSE.txt +3 -1
  3. data/lib/webshims-rails/version.rb +2 -2
  4. data/vendor/assets/javascripts/webshims/polyfiller.js +8 -9
  5. data/vendor/assets/javascripts/webshims/shims/combos/1.js +91 -58
  6. data/vendor/assets/javascripts/webshims/shims/combos/10.js +247 -101
  7. data/vendor/assets/javascripts/webshims/shims/combos/11.js +241 -96
  8. data/vendor/assets/javascripts/webshims/shims/combos/12.js +79 -58
  9. data/vendor/assets/javascripts/webshims/shims/combos/13.js +79 -12
  10. data/vendor/assets/javascripts/webshims/shims/combos/14.js +6 -5
  11. data/vendor/assets/javascripts/webshims/shims/combos/15.js +68 -75
  12. data/vendor/assets/javascripts/webshims/shims/combos/16.js +147 -133
  13. data/vendor/assets/javascripts/webshims/shims/combos/17.js +288 -143
  14. data/vendor/assets/javascripts/webshims/shims/combos/18.js +288 -143
  15. data/vendor/assets/javascripts/webshims/shims/combos/19.js +85 -63
  16. data/vendor/assets/javascripts/webshims/shims/combos/2.js +97 -91
  17. data/vendor/assets/javascripts/webshims/shims/combos/20.js +85 -17
  18. data/vendor/assets/javascripts/webshims/shims/combos/21.js +17 -17
  19. data/vendor/assets/javascripts/webshims/shims/combos/23.js +79 -58
  20. data/vendor/assets/javascripts/webshims/shims/combos/24.js +17 -16
  21. data/vendor/assets/javascripts/webshims/shims/combos/25.js +85 -63
  22. data/vendor/assets/javascripts/webshims/shims/combos/26.js +6 -5
  23. data/vendor/assets/javascripts/webshims/shims/combos/27.js +0 -46
  24. data/vendor/assets/javascripts/webshims/shims/combos/28.js +6 -5
  25. data/vendor/assets/javascripts/webshims/shims/combos/29.js +13 -6
  26. data/vendor/assets/javascripts/webshims/shims/combos/3.js +47 -31
  27. data/vendor/assets/javascripts/webshims/shims/combos/30.js +47 -59
  28. data/vendor/assets/javascripts/webshims/shims/combos/31.js +18 -33
  29. data/vendor/assets/javascripts/webshims/shims/combos/4.js +35 -31
  30. data/vendor/assets/javascripts/webshims/shims/combos/5.js +304 -157
  31. data/vendor/assets/javascripts/webshims/shims/combos/6.js +304 -185
  32. data/vendor/assets/javascripts/webshims/shims/combos/7.js +126 -117
  33. data/vendor/assets/javascripts/webshims/shims/combos/8.js +126 -89
  34. data/vendor/assets/javascripts/webshims/shims/combos/9.js +247 -129
  35. data/vendor/assets/javascripts/webshims/shims/dom-extend.js +6 -5
  36. data/vendor/assets/javascripts/webshims/shims/form-core.js +12 -0
  37. data/vendor/assets/javascripts/webshims/shims/form-datalist-lazy.js +3 -0
  38. data/vendor/assets/javascripts/webshims/shims/form-datalist.js +0 -28
  39. data/vendor/assets/javascripts/webshims/shims/form-message.js +29 -26
  40. data/vendor/assets/javascripts/webshims/shims/form-native-extend.js +16 -14
  41. data/vendor/assets/javascripts/webshims/shims/form-number-date-api.js +47 -47
  42. data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +241 -96
  43. data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +21 -16
  44. data/vendor/assets/javascripts/webshims/shims/form-validation.js +17 -16
  45. data/vendor/assets/javascripts/webshims/shims/forms-picker.js +173 -41
  46. data/vendor/assets/javascripts/webshims/shims/geolocation.js +17 -17
  47. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ar.js +35 -33
  48. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ch-ZN.js +32 -30
  49. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-de.txt +17 -13
  50. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-el.js +32 -30
  51. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-en.txt +4 -1
  52. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-es.js +30 -28
  53. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-fr.js +35 -32
  54. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-he.js +32 -30
  55. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-hi.js +32 -30
  56. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-hu.js +32 -30
  57. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-it.js +32 -30
  58. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ja.js +32 -30
  59. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-lt.js +37 -36
  60. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-nl.js +32 -30
  61. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-pl.js +5 -2
  62. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-pt-PT.js +33 -30
  63. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ru.js +3 -1
  64. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-sv.js +32 -30
  65. data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +79 -12
  66. data/vendor/assets/javascripts/webshims/shims/styles/forms.png +0 -0
  67. data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +126 -121
  68. data/vendor/assets/javascripts/webshims/shims/styles/shim.css +100 -111
  69. data/vendor/assets/javascripts/webshims/shims/swfmini.js +0 -46
  70. data/vendor/assets/javascripts/webshims/shims/track-ui.js +13 -6
  71. data/webshims-rails.gemspec +1 -0
  72. metadata +4 -3
@@ -165,52 +165,6 @@ var swfmini = function() {
165
165
  }
166
166
 
167
167
 
168
- /* Functions to abstract and display alternative content
169
- */
170
- function displayAltContent(obj) {
171
- if (ua.ie && ua.win && obj.readyState != 4) {
172
- // IE only: when a SWF is loading (AND: not available in cache) wait for the readyState of the object element to become 4 before removing it,
173
- // because you cannot properly cancel a loading SWF file without breaking browser load references, also obj.onreadystatechange doesn't work
174
- var el = createElement("div");
175
- obj.parentNode.insertBefore(el, obj); // insert placeholder div that will be replaced by the alternative content
176
- el.parentNode.replaceChild(abstractAltContent(obj), el);
177
- obj.style.display = "none";
178
- (function(){
179
- if (obj.readyState == 4) {
180
- obj.parentNode.removeChild(obj);
181
- }
182
- else {
183
- setTimeout(arguments.callee, 10);
184
- }
185
- })();
186
- }
187
- else {
188
- obj.parentNode.replaceChild(abstractAltContent(obj), obj);
189
- }
190
- }
191
-
192
- function abstractAltContent(obj) {
193
- var ac = createElement("div");
194
- if (ua.win && ua.ie) {
195
- ac.innerHTML = obj.innerHTML;
196
- }
197
- else {
198
- var nestedObj = obj.getElementsByTagName(OBJECT)[0];
199
- if (nestedObj) {
200
- var c = nestedObj.childNodes;
201
- if (c) {
202
- var cl = c.length;
203
- for (var i = 0; i < cl; i++) {
204
- if (!(c[i].nodeType == 1 && c[i].nodeName == "PARAM") && !(c[i].nodeType == 8)) {
205
- ac.appendChild(c[i].cloneNode(true));
206
- }
207
- }
208
- }
209
- }
210
- }
211
- return ac;
212
- }
213
-
214
168
  /* Cross-browser dynamic SWF creation
215
169
  */
216
170
  function createSWF(attObj, parObj, id) {
@@ -1302,8 +1256,9 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
1302
1256
  //DOM-Extension helper
1303
1257
  webshims.register('dom-extend', function($, webshims, window, document, undefined){
1304
1258
  "use strict";
1305
-
1306
- webshims.assumeARIA = $.support.getSetAttribute || Modernizr.canvas || Modernizr.video || Modernizr.boxsizing;
1259
+ var supportHrefNormalized = !('hrefNormalized' in $.support) || $.support.hrefNormalized;
1260
+ var supportGetSetAttribute = !('getSetAttribute' in $.support) || $.support.getSetAttribute;
1261
+ webshims.assumeARIA = supportGetSetAttribute || Modernizr.canvas || Modernizr.video || Modernizr.boxsizing;
1307
1262
 
1308
1263
  if($('<input type="email" />').attr('type') == 'text' || $('<form />').attr('novalidate') === "" || ('required' in $('<input />')[0].attributes)){
1309
1264
  webshims.error("IE browser modes are busted in IE10. Please test your HTML/CSS/JS with a real IE version or at least IETester or similiar tools");
@@ -1313,8 +1268,8 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1313
1268
  webshims.error("Webshims needs jQuery 1.8+ to work properly. Please update your jQuery version or downgrade webshims.");
1314
1269
  }
1315
1270
 
1316
- if(webshims.cfg.extendNative === 1){
1317
- webshims.warn("extendNative configuration will be set to false by default with next release. In case you rely on it set it to 'true' otherwise to 'false'. See http://bit.ly/16OOTQO");
1271
+ if(webshims.cfg.extendNative === undefined){
1272
+ webshims.warn("extendNative configuration was set to false by default with this release. In case you rely on it set it to 'true' otherwise to 'false'. See http://bit.ly/16OOTQO");
1318
1273
  }
1319
1274
 
1320
1275
  if (!webshims.cfg.no$Switch) {
@@ -1986,7 +1941,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1986
1941
 
1987
1942
  anchor.setAttribute('href', href+'' );
1988
1943
 
1989
- if(!$.support.hrefNormalized){
1944
+ if(!supportHrefNormalized){
1990
1945
  try {
1991
1946
  $(anchor).insertAfter(this);
1992
1947
  ret = anchor.getAttribute('href', 4);
@@ -2794,7 +2749,8 @@ webshims.register('filereader', function( $, webshims ){
2794
2749
  }
2795
2750
  });
2796
2751
  };
2797
- var options = webshims.cfg.mediaelement;
2752
+ var wsCfg = webshims.cfg;
2753
+ var options = wsCfg.mediaelement;
2798
2754
  var hasFullTrackSupport;
2799
2755
  var hasSwf;
2800
2756
  if(!options){
@@ -2881,7 +2837,7 @@ webshims.register('filereader', function( $, webshims ){
2881
2837
  }
2882
2838
  hasFullTrackSupport = Modernizr.track && !bugs.track;
2883
2839
 
2884
- webshims.register('mediaelement-core', function($, webshims, window, document, undefined){
2840
+ webshims.register('mediaelement-core', function($, webshims, window, document, undefined, options){
2885
2841
  hasSwf = swfmini.hasFlashPlayerVersion('9.0.115');
2886
2842
  $('html').addClass(hasSwf ? 'swf' : 'no-swf');
2887
2843
  var mediaelement = webshims.mediaelement;
@@ -2965,11 +2921,21 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2965
2921
  var loadTrackUi = function(){
2966
2922
  if(loadTrackUi.loaded){return;}
2967
2923
  loadTrackUi.loaded = true;
2968
- webshims.ready('WINDOWLOAD', function(){
2969
- loadThird();
2970
- webshims.loader.loadList(['track-ui']);
2971
- });
2924
+ if(!options.noAutoTrack){
2925
+ webshims.ready('WINDOWLOAD', function(){
2926
+ loadThird();
2927
+ webshims.loader.loadList(['track-ui']);
2928
+ });
2929
+ }
2972
2930
  };
2931
+ // var loadMediaGroup = function(){
2932
+ // if(!loadMediaGroup.loaded){
2933
+ // loadMediaGroup.loaded = true;
2934
+ // webshims.ready(window.MediaController ? 'WINDOWLOAD' : 'DOM', function(){
2935
+ // webshims.loader.loadList(['mediagroup']);
2936
+ // });
2937
+ // }
2938
+ // };
2973
2939
  var loadYt = (function(){
2974
2940
  var loaded;
2975
2941
  return function(){
@@ -2994,6 +2960,11 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2994
2960
  d: ['dom-support']
2995
2961
  });
2996
2962
 
2963
+
2964
+ // webshims.addModule('mediagroup', {
2965
+ // d: ['mediaelement', 'dom-support']
2966
+ // });
2967
+
2997
2968
  mediaelement.mimeTypes = {
2998
2969
  audio: {
2999
2970
  //ogm shouldn´t be used!
@@ -3292,8 +3263,6 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
3292
3263
 
3293
3264
  };
3294
3265
 
3295
-
3296
-
3297
3266
  webshims.ready('dom-support', function(){
3298
3267
  handleMedia = true;
3299
3268
 
@@ -3302,7 +3271,8 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
3302
3271
  }
3303
3272
 
3304
3273
  ['audio', 'video'].forEach(function(nodeName){
3305
- var supLoad = webshims.defineNodeNameProperty(nodeName, 'load', {
3274
+ var supLoad, supController;
3275
+ supLoad = webshims.defineNodeNameProperty(nodeName, 'load', {
3306
3276
  prop: {
3307
3277
  value: function(){
3308
3278
  var data = webshims.data(this, 'mediaelement');
@@ -3333,7 +3303,59 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
3333
3303
  }
3334
3304
  }
3335
3305
  });
3306
+
3307
+ // supController = webshims.defineNodeNameProperty(nodeName, 'controller', {
3308
+ // prop: {
3309
+ // get: function(type){
3310
+ // if(!loadMediaGroup.loaded){
3311
+ // loadMediaGroup();
3312
+ // }
3313
+ // if(mediaelement.controller){
3314
+ // return mediaelement.controller[nodeName].get.apply(this, arguments);
3315
+ // }
3316
+ // return supController.prop._supget && supController.prop._supget.apply(this, arguments);
3317
+ // },
3318
+ // set: function(){
3319
+ // var that = this;
3320
+ // var args = arguments;
3321
+ // if(!loadMediaGroup.loaded){
3322
+ // loadMediaGroup();
3323
+ // }
3324
+ // if(mediaelement.controller){
3325
+ // return mediaelement.controller[nodeName].set.apply(that, args);
3326
+ // } else {
3327
+ // webshims.ready('mediagroup', function(){
3328
+ // mediaelement.controller[nodeName].set.apply(that, args);
3329
+ // });
3330
+ // }
3331
+ // return supController.prop._supset && supController.prop._supset.apply(this, arguments);
3332
+ // }
3333
+ // }
3334
+ // });
3335
+
3336
+ // webshims.ready('mediagroup', function(){
3337
+ // mediaelement.controller[nodeName].sup = supController;
3338
+ // });
3336
3339
  });
3340
+
3341
+ // webshims.onNodeNamesPropertyModify(['audio', 'video'], ['mediaGroup'], {
3342
+ // set: function(){
3343
+ // var that = this;
3344
+ // var args = arguments;
3345
+ // if(!loadMediaGroup.loaded){
3346
+ // loadMediaGroup();
3347
+ // }
3348
+ // if(mediaelement.mediagroup){
3349
+ // mediaelement.mediagroup.set.apply(that, args);
3350
+ // } else {
3351
+ // webshims.ready('mediagroup', function(){
3352
+ // mediaelement.mediagroup.set.apply(that, args);
3353
+ // });
3354
+ // }
3355
+ // },
3356
+ // initAttr: true
3357
+ // });
3358
+
3337
3359
  webshims.onNodeNamesPropertyModify(['audio', 'video'], ['src', 'poster'], {
3338
3360
  set: function(){
3339
3361
  var elem = this;
@@ -3355,6 +3377,9 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
3355
3377
  if(!loadTrackUi.loaded && $('track', media).length){
3356
3378
  loadTrackUi();
3357
3379
  }
3380
+ // if(!loadMediaGroup.loaded && this.getAttribute('mediagroup')){
3381
+ // loadMediaGroup();
3382
+ // }
3358
3383
  media = null;
3359
3384
  });
3360
3385
  });
@@ -3370,9 +3395,6 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
3370
3395
  handleMedia = true;
3371
3396
  return false;
3372
3397
  }
3373
- if((!hasFullTrackSupport || webshims.modules.track.options.override) && !loadTrackUi.loaded && $('track', this).length){
3374
- loadTrackUi();
3375
- }
3376
3398
  })
3377
3399
  ;
3378
3400
  }
@@ -1,8 +1,9 @@
1
1
  //DOM-Extension helper
2
2
  webshims.register('dom-extend', function($, webshims, window, document, undefined){
3
3
  "use strict";
4
-
5
- webshims.assumeARIA = $.support.getSetAttribute || Modernizr.canvas || Modernizr.video || Modernizr.boxsizing;
4
+ var supportHrefNormalized = !('hrefNormalized' in $.support) || $.support.hrefNormalized;
5
+ var supportGetSetAttribute = !('getSetAttribute' in $.support) || $.support.getSetAttribute;
6
+ webshims.assumeARIA = supportGetSetAttribute || Modernizr.canvas || Modernizr.video || Modernizr.boxsizing;
6
7
 
7
8
  if($('<input type="email" />').attr('type') == 'text' || $('<form />').attr('novalidate') === "" || ('required' in $('<input />')[0].attributes)){
8
9
  webshims.error("IE browser modes are busted in IE10. Please test your HTML/CSS/JS with a real IE version or at least IETester or similiar tools");
@@ -12,8 +13,8 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
12
13
  webshims.error("Webshims needs jQuery 1.8+ to work properly. Please update your jQuery version or downgrade webshims.");
13
14
  }
14
15
 
15
- if(webshims.cfg.extendNative === 1){
16
- webshims.warn("extendNative configuration will be set to false by default with next release. In case you rely on it set it to 'true' otherwise to 'false'. See http://bit.ly/16OOTQO");
16
+ if(webshims.cfg.extendNative === undefined){
17
+ webshims.warn("extendNative configuration was set to false by default with this release. In case you rely on it set it to 'true' otherwise to 'false'. See http://bit.ly/16OOTQO");
17
18
  }
18
19
 
19
20
  if (!webshims.cfg.no$Switch) {
@@ -685,7 +686,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
685
686
 
686
687
  anchor.setAttribute('href', href+'' );
687
688
 
688
- if(!$.support.hrefNormalized){
689
+ if(!supportHrefNormalized){
689
690
  try {
690
691
  $(anchor).insertAfter(this);
691
692
  ret = anchor.getAttribute('href', 4);
@@ -165,52 +165,6 @@ var swfmini = function() {
165
165
  }
166
166
 
167
167
 
168
- /* Functions to abstract and display alternative content
169
- */
170
- function displayAltContent(obj) {
171
- if (ua.ie && ua.win && obj.readyState != 4) {
172
- // IE only: when a SWF is loading (AND: not available in cache) wait for the readyState of the object element to become 4 before removing it,
173
- // because you cannot properly cancel a loading SWF file without breaking browser load references, also obj.onreadystatechange doesn't work
174
- var el = createElement("div");
175
- obj.parentNode.insertBefore(el, obj); // insert placeholder div that will be replaced by the alternative content
176
- el.parentNode.replaceChild(abstractAltContent(obj), el);
177
- obj.style.display = "none";
178
- (function(){
179
- if (obj.readyState == 4) {
180
- obj.parentNode.removeChild(obj);
181
- }
182
- else {
183
- setTimeout(arguments.callee, 10);
184
- }
185
- })();
186
- }
187
- else {
188
- obj.parentNode.replaceChild(abstractAltContent(obj), obj);
189
- }
190
- }
191
-
192
- function abstractAltContent(obj) {
193
- var ac = createElement("div");
194
- if (ua.win && ua.ie) {
195
- ac.innerHTML = obj.innerHTML;
196
- }
197
- else {
198
- var nestedObj = obj.getElementsByTagName(OBJECT)[0];
199
- if (nestedObj) {
200
- var c = nestedObj.childNodes;
201
- if (c) {
202
- var cl = c.length;
203
- for (var i = 0; i < cl; i++) {
204
- if (!(c[i].nodeType == 1 && c[i].nodeName == "PARAM") && !(c[i].nodeType == 8)) {
205
- ac.appendChild(c[i].cloneNode(true));
206
- }
207
- }
208
- }
209
- }
210
- }
211
- return ac;
212
- }
213
-
214
168
  /* Cross-browser dynamic SWF creation
215
169
  */
216
170
  function createSWF(attObj, parObj, id) {
@@ -1,8 +1,9 @@
1
1
  //DOM-Extension helper
2
2
  webshims.register('dom-extend', function($, webshims, window, document, undefined){
3
3
  "use strict";
4
-
5
- webshims.assumeARIA = $.support.getSetAttribute || Modernizr.canvas || Modernizr.video || Modernizr.boxsizing;
4
+ var supportHrefNormalized = !('hrefNormalized' in $.support) || $.support.hrefNormalized;
5
+ var supportGetSetAttribute = !('getSetAttribute' in $.support) || $.support.getSetAttribute;
6
+ webshims.assumeARIA = supportGetSetAttribute || Modernizr.canvas || Modernizr.video || Modernizr.boxsizing;
6
7
 
7
8
  if($('<input type="email" />').attr('type') == 'text' || $('<form />').attr('novalidate') === "" || ('required' in $('<input />')[0].attributes)){
8
9
  webshims.error("IE browser modes are busted in IE10. Please test your HTML/CSS/JS with a real IE version or at least IETester or similiar tools");
@@ -12,8 +13,8 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
12
13
  webshims.error("Webshims needs jQuery 1.8+ to work properly. Please update your jQuery version or downgrade webshims.");
13
14
  }
14
15
 
15
- if(webshims.cfg.extendNative === 1){
16
- webshims.warn("extendNative configuration will be set to false by default with next release. In case you rely on it set it to 'true' otherwise to 'false'. See http://bit.ly/16OOTQO");
16
+ if(webshims.cfg.extendNative === undefined){
17
+ webshims.warn("extendNative configuration was set to false by default with this release. In case you rely on it set it to 'true' otherwise to 'false'. See http://bit.ly/16OOTQO");
17
18
  }
18
19
 
19
20
  if (!webshims.cfg.no$Switch) {
@@ -685,7 +686,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
685
686
 
686
687
  anchor.setAttribute('href', href+'' );
687
688
 
688
- if(!$.support.hrefNormalized){
689
+ if(!supportHrefNormalized){
689
690
  try {
690
691
  $(anchor).insertAfter(this);
691
692
  ret = anchor.getAttribute('href', 4);
@@ -858,7 +858,7 @@ webshims.register('track-ui', function($, webshims, window, document, undefined)
858
858
  var showTracks = {subtitles: 1, captions: 1, descriptions: 1};
859
859
  var mediaelement = webshims.mediaelement;
860
860
  var usesNativeTrack = function(){
861
- return !options.override && Modernizr.track;
861
+ return !options.override && Modernizr.texttrackapi;
862
862
  };
863
863
 
864
864
  var trackDisplay = {
@@ -989,7 +989,7 @@ webshims.register('track-ui', function($, webshims, window, document, undefined)
989
989
  track._lastFoundCue = {index: 0, time: 0};
990
990
  }
991
991
 
992
- if(Modernizr.track && !options.override && !track._shimActiveCues){
992
+ if(Modernizr.texttrackapi && !options.override && !track._shimActiveCues){
993
993
  track._shimActiveCues = mediaelement.createCueList();
994
994
  }
995
995
 
@@ -1069,6 +1069,11 @@ webshims.register('track-ui', function($, webshims, window, document, undefined)
1069
1069
  createUpdateFn('nodeName', 'addTextTrack', 'value');
1070
1070
  });
1071
1071
  })();
1072
+ $.propHooks.activeCues = {
1073
+ get: function(obj, value){
1074
+ return obj._shimActiveCues || obj.activeCues;
1075
+ }
1076
+ };
1072
1077
  }
1073
1078
 
1074
1079
  webshims.addReady(function(context, insertedElement){
@@ -1078,8 +1083,9 @@ webshims.register('track-ui', function($, webshims, window, document, undefined)
1078
1083
  return webshims.implement(this, 'trackui');
1079
1084
  })
1080
1085
  .each(function(){
1081
- var elem = $(this);
1086
+ var baseData, trackList, updateTimer, updateTimer2;
1082
1087
 
1088
+ var elem = $(this);
1083
1089
  var getDisplayCues = function(e){
1084
1090
  var track;
1085
1091
  var time;
@@ -1111,12 +1117,11 @@ webshims.register('track-ui', function($, webshims, window, document, undefined)
1111
1117
  clearTimeout(updateTimer);
1112
1118
  if(e && e.type == 'timeupdate'){
1113
1119
  getDisplayCues();
1114
- setTimeout(onUpdate, 90);
1120
+ updateTimer2 = setTimeout(onUpdate, 90);
1115
1121
  } else {
1116
1122
  updateTimer = setTimeout(getDisplayCues, 9);
1117
1123
  }
1118
1124
  };
1119
-
1120
1125
  var addTrackView = function(){
1121
1126
 
1122
1127
  elem
@@ -1124,7 +1129,6 @@ webshims.register('track-ui', function($, webshims, window, document, undefined)
1124
1129
  .on('play.trackview timeupdate.trackview updatetrackdisplay.trackview', onUpdate)
1125
1130
  ;
1126
1131
  };
1127
- var baseData, trackList, updateTimer;
1128
1132
 
1129
1133
  elem.on('remove', function(e){
1130
1134
  if(!e.originalEvent && baseData && baseData.trackDisplay){
@@ -1141,6 +1145,9 @@ webshims.register('track-ui', function($, webshims, window, document, undefined)
1141
1145
  if(!usesNativeTrack() || elem.is('.nonnative-api-active')){
1142
1146
  addTrackView();
1143
1147
  } else {
1148
+ clearTimeout(updateTimer);
1149
+ clearTimeout(updateTimer2);
1150
+
1144
1151
  trackList = elem.prop('textTracks');
1145
1152
  baseData = webshims.data(elem[0], 'mediaelementBase') || webshims.data(elem[0], 'mediaelementBase', {});
1146
1153
 
@@ -1,8 +1,9 @@
1
1
  //DOM-Extension helper
2
2
  webshims.register('dom-extend', function($, webshims, window, document, undefined){
3
3
  "use strict";
4
-
5
- webshims.assumeARIA = $.support.getSetAttribute || Modernizr.canvas || Modernizr.video || Modernizr.boxsizing;
4
+ var supportHrefNormalized = !('hrefNormalized' in $.support) || $.support.hrefNormalized;
5
+ var supportGetSetAttribute = !('getSetAttribute' in $.support) || $.support.getSetAttribute;
6
+ webshims.assumeARIA = supportGetSetAttribute || Modernizr.canvas || Modernizr.video || Modernizr.boxsizing;
6
7
 
7
8
  if($('<input type="email" />').attr('type') == 'text' || $('<form />').attr('novalidate') === "" || ('required' in $('<input />')[0].attributes)){
8
9
  webshims.error("IE browser modes are busted in IE10. Please test your HTML/CSS/JS with a real IE version or at least IETester or similiar tools");
@@ -12,8 +13,8 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
12
13
  webshims.error("Webshims needs jQuery 1.8+ to work properly. Please update your jQuery version or downgrade webshims.");
13
14
  }
14
15
 
15
- if(webshims.cfg.extendNative === 1){
16
- webshims.warn("extendNative configuration will be set to false by default with next release. In case you rely on it set it to 'true' otherwise to 'false'. See http://bit.ly/16OOTQO");
16
+ if(webshims.cfg.extendNative === undefined){
17
+ webshims.warn("extendNative configuration was set to false by default with this release. In case you rely on it set it to 'true' otherwise to 'false'. See http://bit.ly/16OOTQO");
17
18
  }
18
19
 
19
20
  if (!webshims.cfg.no$Switch) {
@@ -685,7 +686,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
685
686
 
686
687
  anchor.setAttribute('href', href+'' );
687
688
 
688
- if(!$.support.hrefNormalized){
689
+ if(!supportHrefNormalized){
689
690
  try {
690
691
  $(anchor).insertAfter(this);
691
692
  ret = anchor.getAttribute('href', 4);
@@ -1126,6 +1127,10 @@ webshims.register('form-core', function($, webshims, window, document, undefined
1126
1127
  options.customMessages = true;
1127
1128
  toLoad.push('form-message');
1128
1129
  }
1130
+ if(options.customDatalist){
1131
+ options.fD = true;
1132
+ toLoad.push('form-datalist');
1133
+ }
1129
1134
  if(options.addValidators){
1130
1135
  toLoad.push('form-validators');
1131
1136
  }
@@ -1264,6 +1269,14 @@ webshims.register('form-core', function($, webshims, window, document, undefined
1264
1269
  return false;
1265
1270
  }
1266
1271
  });
1272
+ if(typeof message == 'object'){
1273
+ if(validity.typeMismatch && message.badInput){
1274
+ message = message.badInput;
1275
+ }
1276
+ if(validity.badInput && message.typeMismatch){
1277
+ message = message.typeMismatch;
1278
+ }
1279
+ }
1267
1280
  }
1268
1281
  }
1269
1282
 
@@ -1344,9 +1357,8 @@ webshims.register('form-core', function($, webshims, window, document, undefined
1344
1357
 
1345
1358
  webshims.register('form-message', function($, webshims, window, document, undefined, options){
1346
1359
  "use strict";
1347
- if(options.overrideMessages){
1360
+ if(options.lazyCustomMessages){
1348
1361
  options.customMessages = true;
1349
- webshims.error('overrideMessages is deprecated. use customMessages instead.');
1350
1362
  }
1351
1363
  var validityMessages = webshims.validityMessages;
1352
1364
 
@@ -1356,7 +1368,10 @@ webshims.register('form-message', function($, webshims, window, document, undefi
1356
1368
  typeMismatch: {
1357
1369
  defaultMessage: 'Please enter a valid value.',
1358
1370
  email: 'Please enter an email address.',
1359
- url: 'Please enter a URL.',
1371
+ url: 'Please enter a URL.'
1372
+ },
1373
+ badInput: {
1374
+ defaultMessage: 'Please enter a valid value.',
1360
1375
  number: 'Please enter a number.',
1361
1376
  date: 'Please enter a date.',
1362
1377
  time: 'Please enter a time.',
@@ -1409,13 +1424,16 @@ webshims.register('form-message', function($, webshims, window, document, undefi
1409
1424
  typeMismatch: {
1410
1425
  defaultMessage: '{%value} ist in diesem Feld nicht zulässig.',
1411
1426
  email: '{%value} ist keine gültige E-Mail-Adresse.',
1412
- url: '{%value} ist kein(e) gültige(r) Webadresse/Pfad.',
1413
- number: '{%value} ist keine Nummer.',
1414
- date: '{%value} ist kein Datum.',
1415
- time: '{%value} ist keine Uhrzeit.',
1416
- month: '{%value} ist in diesem Feld nicht zulässig.',
1417
- range: '{%value} ist keine Nummer.',
1418
- "datetime-local": '{%value} ist kein Datum-Uhrzeit Format.'
1427
+ url: '{%value} ist kein(e) gültige(r) Webadresse/Pfad.'
1428
+ },
1429
+ badInput: {
1430
+ defaultMessage: 'Geben Sie einen zulässigen Wert ein.',
1431
+ number: 'Geben Sie eine Nummer ein.',
1432
+ date: 'Geben Sie ein Datum ein.',
1433
+ time: 'Geben Sie eine Uhrzeit ein.',
1434
+ month: 'Geben Sie einen Monat mit Jahr ein.',
1435
+ range: 'Geben Sie eine Nummer.',
1436
+ "datetime-local": 'Geben Sie ein Datum mit Uhrzeit ein.'
1419
1437
  },
1420
1438
  rangeUnderflow: {
1421
1439
  defaultMessage: '{%value} ist zu niedrig. {%min} ist der unterste Wert, den Sie benutzen können.'
@@ -1463,11 +1481,17 @@ webshims.register('form-message', function($, webshims, window, document, undefi
1463
1481
 
1464
1482
  webshims.createValidationMessage = function(elem, name){
1465
1483
  var widget;
1466
- var message = getMessageFromObj(currentValidationMessage[name], elem);
1467
1484
  var type = $.prop(elem, 'type');
1485
+ var message = getMessageFromObj(currentValidationMessage[name], elem);
1486
+ if(!message && name == 'badInput'){
1487
+ message = getMessageFromObj(currentValidationMessage.typeMismatch, elem);
1488
+ }
1489
+ if(!message && name == 'typeMismatch'){
1490
+ message = getMessageFromObj(currentValidationMessage.badInput, elem);
1491
+ }
1468
1492
  if(!message){
1469
1493
  message = getMessageFromObj(validityMessages[''][name], elem) || $.prop(elem, 'validationMessage');
1470
- webshims.info('could not find errormessage for: '+ name +' / '+ type +'. in language: '+$.webshims.activeLang());
1494
+ webshims.info('could not find errormessage for: '+ name +' / '+ type +'. in language: '+webshims.activeLang());
1471
1495
  }
1472
1496
  if(message){
1473
1497
  ['value', 'min', 'max', 'title', 'maxlength', 'label'].forEach(function(attr){
@@ -1510,20 +1534,14 @@ webshims.register('form-message', function($, webshims, window, document, undefi
1510
1534
  webshims.activeLang({
1511
1535
  register: 'form-core',
1512
1536
  callback: function(val){
1513
- $.each(validityMessages, function(i, val){
1514
- if(validityMessages[val]){
1515
- currentValidationMessage = validityMessages[val];
1516
- return false;
1517
- }
1518
- });
1537
+ if(validityMessages[val]){
1538
+ currentValidationMessage = validityMessages[val];
1539
+ }
1519
1540
  }
1520
1541
  });
1521
1542
 
1522
1543
  implementProperties.forEach(function(messageProp){
1523
- var skipNames = {
1524
- valid: 1,
1525
- badInput: 1
1526
- };
1544
+
1527
1545
  webshims.defineNodeNamesProperty(['fieldset', 'output', 'button'], messageProp, {
1528
1546
  prop: {
1529
1547
  value: '',
@@ -1552,16 +1570,14 @@ webshims.register('form-message', function($, webshims, window, document, undefi
1552
1570
  if(message){return message;}
1553
1571
  }
1554
1572
  $.each(validity, function(name, prop){
1555
- if(skipNames[name] || !prop){return;}
1573
+ if(name == 'valid' || !prop){return;}
1556
1574
 
1557
1575
  message = webshims.createValidationMessage(elem, name);
1558
1576
  if(message){
1559
1577
  return false;
1560
1578
  }
1561
1579
  });
1562
- if(!message && validity.badInput){
1563
- message = webshims.createValidationMessage(elem, 'typeMismatch') || webshims.createValidationMessage(elem, 'valueMissing');
1564
- }
1580
+
1565
1581
  return message || '';
1566
1582
  },
1567
1583
  writeable: false