webshims-rails 1.12.3 → 1.12.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/lib/webshims-rails/version.rb +2 -2
  3. data/vendor/assets/javascripts/webshims/polyfiller.js +75 -31
  4. data/vendor/assets/javascripts/webshims/shims/color-picker.js +14 -14
  5. data/vendor/assets/javascripts/webshims/shims/combos/1.js +83 -459
  6. data/vendor/assets/javascripts/webshims/shims/combos/10.js +92 -69
  7. data/vendor/assets/javascripts/webshims/shims/combos/11.js +90 -54
  8. data/vendor/assets/javascripts/webshims/shims/combos/12.js +104 -494
  9. data/vendor/assets/javascripts/webshims/shims/combos/13.js +66 -228
  10. data/vendor/assets/javascripts/webshims/shims/combos/14.js +2 -0
  11. data/vendor/assets/javascripts/webshims/shims/combos/15.js +42 -40
  12. data/vendor/assets/javascripts/webshims/shims/combos/16.js +105 -494
  13. data/vendor/assets/javascripts/webshims/shims/combos/17.js +90 -54
  14. data/vendor/assets/javascripts/webshims/shims/combos/18.js +90 -54
  15. data/vendor/assets/javascripts/webshims/shims/combos/19.js +123 -471
  16. data/vendor/assets/javascripts/webshims/shims/combos/2.js +85 -474
  17. data/vendor/assets/javascripts/webshims/shims/combos/20.js +85 -205
  18. data/vendor/assets/javascripts/webshims/shims/combos/21.js +103 -45
  19. data/vendor/assets/javascripts/webshims/shims/combos/22.js +41 -40
  20. data/vendor/assets/javascripts/webshims/shims/combos/23.js +63 -454
  21. data/vendor/assets/javascripts/webshims/shims/combos/24.js +52 -36
  22. data/vendor/assets/javascripts/webshims/shims/combos/25.js +123 -471
  23. data/vendor/assets/javascripts/webshims/shims/combos/26.js +2 -15
  24. data/vendor/assets/javascripts/webshims/shims/combos/27.js +38 -266
  25. data/vendor/assets/javascripts/webshims/shims/combos/28.js +20 -20
  26. data/vendor/assets/javascripts/webshims/shims/combos/3.js +24 -20
  27. data/vendor/assets/javascripts/webshims/shims/combos/30.js +24 -20
  28. data/vendor/assets/javascripts/webshims/shims/combos/31.js +22 -20
  29. data/vendor/assets/javascripts/webshims/shims/combos/4.js +4 -15
  30. data/vendor/assets/javascripts/webshims/shims/combos/5.js +90 -54
  31. data/vendor/assets/javascripts/webshims/shims/combos/6.js +90 -54
  32. data/vendor/assets/javascripts/webshims/shims/combos/7.js +87 -474
  33. data/vendor/assets/javascripts/webshims/shims/combos/8.js +87 -474
  34. data/vendor/assets/javascripts/webshims/shims/combos/9.js +92 -69
  35. data/vendor/assets/javascripts/webshims/shims/combos/99.js +1724 -0
  36. data/vendor/assets/javascripts/webshims/shims/dom-extend.js +2 -15
  37. data/vendor/assets/javascripts/webshims/shims/form-core.js +19 -4
  38. data/vendor/assets/javascripts/webshims/shims/form-datalist-lazy.js +39 -5
  39. data/vendor/assets/javascripts/webshims/shims/form-message.js +2 -0
  40. data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +69 -37
  41. data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +18 -20
  42. data/vendor/assets/javascripts/webshims/shims/form-shim-extend2.js +34 -16
  43. data/vendor/assets/javascripts/webshims/shims/form-validation.js +12 -9
  44. data/vendor/assets/javascripts/webshims/shims/form-validators.js +21 -5
  45. data/vendor/assets/javascripts/webshims/shims/forms-picker.js +16 -13
  46. data/vendor/assets/javascripts/webshims/shims/geolocation.js +3 -3
  47. data/vendor/assets/javascripts/webshims/shims/jajax.js +1262 -0
  48. data/vendor/assets/javascripts/webshims/shims/jme/b.js +576 -0
  49. data/vendor/assets/javascripts/webshims/shims/jme/c.js +1148 -0
  50. data/vendor/assets/javascripts/webshims/shims/jme/controls.css +373 -0
  51. data/vendor/assets/javascripts/webshims/shims/jme/controls.scss +711 -0
  52. data/vendor/assets/javascripts/webshims/shims/jme/jme.eot +0 -0
  53. data/vendor/assets/javascripts/webshims/shims/jme/jme.svg +36 -0
  54. data/vendor/assets/javascripts/webshims/shims/jme/jme.ttf +0 -0
  55. data/vendor/assets/javascripts/webshims/shims/jme/jme.woff +0 -0
  56. data/vendor/assets/javascripts/webshims/shims/jpicker/jpicker.css +16 -18
  57. data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +25 -188
  58. data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +58 -2
  59. data/vendor/assets/javascripts/webshims/shims/mediaelement-native-fix.js +130 -66
  60. data/vendor/assets/javascripts/webshims/shims/range-ui.js +21 -17
  61. data/vendor/assets/javascripts/webshims/shims/sizzle.js +1634 -1613
  62. data/vendor/assets/javascripts/webshims/shims/styles/forms-ext.css +5 -5
  63. data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +5 -1
  64. data/vendor/assets/javascripts/webshims/shims/styles/shim.css +13 -9
  65. data/vendor/assets/javascripts/webshims/shims/swfmini-embed.js +136 -0
  66. data/vendor/assets/javascripts/webshims/shims/swfmini.js +38 -266
  67. data/vendor/assets/javascripts/webshims/shims/track-ui.js +1 -3
  68. data/vendor/assets/javascripts/webshims/shims/track.js +41 -40
  69. metadata +13 -2
@@ -815,8 +815,8 @@ webshims.register('form-native-extend', function($, webshims, window, doc, undef
815
815
  }
816
816
 
817
817
  });;(function($){
818
-
819
- var id = 0;
818
+ "use strict";
819
+
820
820
  var isNumber = function(string){
821
821
  return (typeof string == 'number' || (string && string == string * 1));
822
822
  };
@@ -831,7 +831,7 @@ webshims.register('form-native-extend', function($, webshims, window, doc, undef
831
831
  _create: function(){
832
832
  var i;
833
833
 
834
- this.element.addClass('ws-range').attr({role: 'slider'}).append('<span class="ws-range-min ws-range-progress" /><span class="ws-range-rail ws-range-track"><span class="ws-range-thumb"><span><span data-value="" data-valuetext="" /></span></span></span>');
834
+ this.element.addClass(this.options.baseClass || 'ws-range').attr({role: 'slider'}).append('<span class="ws-range-min ws-range-progress" /><span class="ws-range-rail ws-range-track"><span class="ws-range-thumb"><span><span data-value="" data-valuetext="" /></span></span></span>');
835
835
  this.trail = $('.ws-range-track', this.element);
836
836
  this.range = $('.ws-range-progress', this.element);
837
837
  this.thumb = $('.ws-range-thumb', this.trail);
@@ -1016,10 +1016,12 @@ webshims.register('form-native-extend', function($, webshims, window, doc, undef
1016
1016
  },
1017
1017
  min: function(val){
1018
1018
  this.options.min = retDefault(val, 0);
1019
+ this.element.attr('aria-valuemin', this.options.min);
1019
1020
  this.value(this.options.value, true);
1020
1021
  },
1021
1022
  max: function(val){
1022
1023
  this.options.max = retDefault(val, 100);
1024
+ this.element.attr('aria-valuemax', this.options.max);
1023
1025
  this.value(this.options.value, true);
1024
1026
  },
1025
1027
  step: function(val){
@@ -1192,8 +1194,6 @@ webshims.register('form-native-extend', function($, webshims, window, doc, undef
1192
1194
  if(e.target == window){remove();}
1193
1195
  };
1194
1196
  var add = function(e){
1195
- var outerWidth;
1196
-
1197
1197
  if(isActive || (e.type == 'touchstart' && (!e.originalEvent || !e.originalEvent.touches || e.originalEvent.touches.length != 1))){
1198
1198
  return;
1199
1199
  }
@@ -1208,7 +1208,6 @@ webshims.register('form-native-extend', function($, webshims, window, doc, undef
1208
1208
  leftOffset = that.element.offset();
1209
1209
  widgetUnits = that.element[that.dirs.innerWidth]();
1210
1210
  if(!widgetUnits || !leftOffset){return;}
1211
- outerWidth = that.thumb[that.dirs.outerWidth]();
1212
1211
  leftOffset = leftOffset[that.dirs.pos];
1213
1212
  widgetUnits = 100 / widgetUnits;
1214
1213
 
@@ -1325,8 +1324,13 @@ webshims.register('form-native-extend', function($, webshims, window, doc, undef
1325
1324
  webshims.ready('WINDOWLOAD', function(){
1326
1325
  webshims.ready('dom-support', function(){
1327
1326
  if ($.fn.onWSOff) {
1328
- that.element.onWSOff('updateshadowdom', function(){
1327
+ var timer;
1328
+ var update = function(){
1329
1329
  that.updateMetrics();
1330
+ };
1331
+ that.element.onWSOff('updateshadowdom', function(){
1332
+ clearTimeout(timer);
1333
+ timer = setTimeout(update, 100);
1330
1334
  });
1331
1335
  }
1332
1336
  });
@@ -1337,26 +1341,26 @@ webshims.register('form-native-extend', function($, webshims, window, doc, undef
1337
1341
  }
1338
1342
  },
1339
1343
  posCenter: function(elem, outerWidth){
1340
- var temp;
1344
+ var temp, eS;
1345
+
1341
1346
  if(this.options.calcCenter && (!this._init || this.element[0].offsetWidth)){
1342
1347
  if(!elem){
1343
1348
  elem = this.thumb;
1344
1349
  }
1350
+ eS = elem[0].style;
1345
1351
  if(!outerWidth){
1346
1352
  outerWidth = elem[this.dirs.outerWidth]();
1347
1353
  }
1348
1354
  outerWidth = outerWidth / -2;
1349
- elem.css(this.dirs.marginLeft, outerWidth);
1350
-
1355
+ eS[this.dirs.marginLeft] = outerWidth +'px';
1356
+
1351
1357
  if(this.options.calcTrail && elem[0] == this.thumb[0]){
1352
1358
  temp = this.element[this.dirs.innerHeight]();
1353
- elem.css(this.dirs.marginTop, (elem[this.dirs.outerHeight]() - temp) / -2);
1354
- this.range.css(this.dirs.marginTop, (this.range[this.dirs.outerHeight]() - temp) / -2 );
1359
+ eS[this.dirs.marginTop] = ((elem[this.dirs.outerHeight]() - temp) / -2) + 'px';
1360
+ this.range[0].style[this.dirs.marginTop] = ((this.range[this.dirs.outerHeight]() - temp) / -2 ) +'px';
1355
1361
  outerWidth *= -1;
1356
- this.trail
1357
- .css(this.dirs.left, outerWidth)
1358
- .css(this.dirs.right, outerWidth)
1359
- ;
1362
+ this.trail[0].style[this.dirs.left] = outerWidth +'px';
1363
+ this.trail[0].style[this.dirs.right] = outerWidth +'px';
1360
1364
  }
1361
1365
  }
1362
1366
  },
@@ -1400,7 +1404,7 @@ webshims.register('form-native-extend', function($, webshims, window, doc, undef
1400
1404
  value: 50,
1401
1405
  input: $.noop,
1402
1406
  change: $.noop,
1403
- _change: $.noop,
1407
+ _change: $.noop,
1404
1408
  showLabels: true,
1405
1409
  options: {},
1406
1410
  calcCenter: true,
@@ -1430,7 +1434,7 @@ webshims.register('form-native-extend', function($, webshims, window, doc, undef
1430
1434
  if(!curCfg[selectName]){
1431
1435
  var labels = curCfg.date[opts.monthNames] || monthDigits;
1432
1436
  curCfg[selectName] = ('<option value=""></option>')+$.map(monthDigits, function(val, i){
1433
- return '<option value="'+val+'"]>'+labels[i]+'</option>';
1437
+ return '<option value="'+val+'">'+labels[i]+'</option>';
1434
1438
  }).join('');
1435
1439
  }
1436
1440
  return curCfg[selectName];
@@ -1834,8 +1838,12 @@ webshims.register('form-native-extend', function($, webshims, window, doc, undef
1834
1838
  var names;
1835
1839
  var p = val.split('-');
1836
1840
  if(p[0] && p[1]){
1837
- names = curCfg.date[options.monthNames] || curCfg.date.monthNames;
1838
- p[1] = names[(p[1] * 1) - 1];
1841
+
1842
+ if(!options || !options.monthSelect){
1843
+ names = curCfg.date[options.monthNames] || curCfg.date.monthNames;
1844
+ p[1] = names[(p[1] * 1) - 1];
1845
+ }
1846
+
1839
1847
  if(options && options.splitInput){
1840
1848
  val = [p[0] || '', p[1] || ''];
1841
1849
  } else if(p[1]){
@@ -2028,6 +2036,10 @@ webshims.register('form-native-extend', function($, webshims, window, doc, undef
2028
2036
  var type = (typeof val == 'object') ? 'valueAsDate' : 'valueAsNumber';
2029
2037
  return input.prop(type, val).prop('value');
2030
2038
  },
2039
+ asDate: function(val){
2040
+ var type = (typeof val == 'number') ? 'valueAsNumber' : 'value';
2041
+ return input.prop(type, val).prop('valueAsDate');
2042
+ },
2031
2043
  isValid: function(val, attrs){
2032
2044
  if(attrs && (attrs.nodeName || attrs.jquery)){
2033
2045
  attrs = {
@@ -2301,6 +2313,7 @@ webshims.register('form-native-extend', function($, webshims, window, doc, undef
2301
2313
  this.asNumber = helper.asNumber;
2302
2314
  this.asValue = helper.asValue;
2303
2315
  this.isValid = helper.isValid;
2316
+ this.asDate = helper.asDate;
2304
2317
 
2305
2318
 
2306
2319
  wsWidgetProto._create.apply(this, arguments);
@@ -2899,53 +2912,75 @@ webshims.register('form-native-extend', function($, webshims, window, doc, undef
2899
2912
  return $.css(this, 'display') != 'none';
2900
2913
  };
2901
2914
  var sizeInput = function(data){
2902
- var init;
2915
+ var init, parent, lastWidth, left, right, isRtl, hasButtons;
2916
+ var oriStyleO = data.orig.style;
2917
+ var styleO = data.element[0].style;
2918
+ if($.support.boxSizing == null && !$.isReady){
2919
+ $(function(){
2920
+ parent = data.orig.parentNode;
2921
+ });
2922
+ } else {
2923
+ parent = data.orig.parentNode;
2924
+ }
2903
2925
  var updateStyles = function(){
2904
- $(data.orig).removeClass('ws-important-hide');
2905
- $.style( data.orig, 'display', '' );
2906
- var hasButtons, marginR, marginL, left, right, isRtl;
2926
+ var curWidth, marginR, marginL, assignWidth;
2907
2927
  var correctWidth = 0.8;
2908
- if(!init || data.orig.offsetWidth){
2909
- hasButtons = data.buttonWrapper && data.buttonWrapper.filter(isVisible).length;
2910
-
2911
- isRtl = hasButtons && data.buttonWrapper.css('direction') == 'rtl';
2912
- if(isRtl){
2913
- left = 'Right';
2914
- right = 'Left';
2915
- } else {
2916
- left = 'Left';
2917
- right = 'Right';
2928
+
2929
+ if(parent){
2930
+ curWidth = parent.offsetWidth;
2931
+ }
2932
+
2933
+ if(!init || (curWidth && curWidth != lastWidth)){
2934
+ lastWidth = curWidth;
2935
+ oriStyleO.display = '';
2936
+ styleO.display = 'none';
2937
+
2938
+ if(!init){
2939
+ hasButtons = data.buttonWrapper && data.buttonWrapper.filter(isVisible).length;
2940
+ isRtl = hasButtons && data.buttonWrapper.css('direction') == 'rtl';
2941
+ if(isRtl){
2942
+ left = 'Right';
2943
+ right = 'Left';
2944
+ } else {
2945
+ left = 'Left';
2946
+ right = 'Right';
2947
+ }
2948
+ if(hasButtons){
2949
+ data.buttonWrapper[isRtl ? 'addClass' : 'removeClass']('ws-is-rtl');
2950
+ }
2918
2951
  }
2919
-
2952
+
2920
2953
  marginR = $.css( data.orig, 'margin'+right);
2921
-
2922
- data.element
2923
- .css('margin'+left, $.css( data.orig, 'margin'+left))
2924
- .css('margin'+right, hasButtons ? 0 : marginR)
2925
- ;
2954
+
2955
+ styleO['margin'+left] = $.css( data.orig, 'margin'+left);
2956
+ styleO['margin'+right] = hasButtons ? '0px' : marginR;
2957
+
2926
2958
 
2927
2959
  if(hasButtons){
2928
- data.buttonWrapper[isRtl ? 'addClass' : 'removeClass']('ws-is-rtl');
2960
+
2929
2961
  marginL = (parseInt(data.buttonWrapper.css('margin'+left), 10) || 0);
2930
- data.element.css('padding'+right, '');
2931
-
2962
+ styleO['padding'+right] = '';
2963
+
2932
2964
  if(marginL < 0){
2933
2965
  marginR = (parseInt(marginR, 10) || 0) + ((data.buttonWrapper.outerWidth() + marginL) * -1);
2934
- data.buttonWrapper.css('margin'+right, marginR);
2935
- data.element
2936
- .css('padding'+right, '')
2937
- .css('padding'+right, (parseInt( data.element.css('padding'+right), 10) || 0) + data.buttonWrapper.outerWidth())
2938
- ;
2966
+ data.buttonWrapper[0].style['margin'+right] = marginR+'px';
2967
+
2968
+ styleO['padding'+right] = ((parseInt( data.element.css('padding'+right), 10) || 0) + data.buttonWrapper.outerWidth()) +'px';
2969
+
2939
2970
  } else {
2940
- data.buttonWrapper.css('margin'+right, marginR);
2971
+ data.buttonWrapper[0].style['margin'+right] = marginR;
2941
2972
  correctWidth = data.buttonWrapper.outerWidth(true) + correctWidth;
2942
2973
  }
2943
2974
  }
2944
-
2945
- data.element.outerWidth( $(data.orig).outerWidth() - correctWidth );
2975
+
2976
+ assignWidth = $(data.orig).outerWidth() - correctWidth;
2977
+
2978
+ styleO.display = '';
2979
+ data.element.outerWidth(assignWidth);
2980
+ oriStyleO.display = 'none';
2981
+ init = true;
2946
2982
  }
2947
- init = true;
2948
- $(data.orig).addClass('ws-important-hide');
2983
+
2949
2984
  };
2950
2985
  data.element.onWSOff('updateshadowdom', updateStyles, true);
2951
2986
  };
@@ -3009,6 +3044,7 @@ webshims.register('form-native-extend', function($, webshims, window, doc, undef
3009
3044
  cNames = $.prop(this, 'className');
3010
3045
  if(opts.classes){
3011
3046
  cNames += ' '+opts.classes;
3047
+ $(this).addClass(opts.classes);
3012
3048
  }
3013
3049
 
3014
3050
  if(opts.splitInput || type == 'range'){
@@ -3081,7 +3117,7 @@ webshims.register('form-native-extend', function($, webshims, window, doc, undef
3081
3117
  if(opts.calculateWidth){
3082
3118
  sizeInput(data.shim);
3083
3119
  } else {
3084
- $(this).addClass('ws-important-hide');
3120
+ $(this).css('display', 'none');
3085
3121
  }
3086
3122
  }
3087
3123
 
@@ -5,7 +5,7 @@
5
5
  */
6
6
 
7
7
  var swfmini = function() {
8
-
8
+ var wasRemoved = function(){webshims.error('This method was removed from swfmini');};
9
9
  var UNDEF = "undefined",
10
10
  OBJECT = "object",
11
11
  webshims = window.webshims,
@@ -19,15 +19,8 @@ var swfmini = function() {
19
19
 
20
20
  plugin = false,
21
21
  domLoadFnArr = [main],
22
- objIdArr = [],
23
- listenersArr = [],
24
- storedAltContent,
25
- storedAltContentId,
26
- storedCallbackFn,
27
- storedCallbackObj,
22
+
28
23
  isDomLoaded = false,
29
- dynamicStylesheet,
30
- dynamicStylesheetMedia,
31
24
  autoHideShow = true,
32
25
 
33
26
  /* Centralized function for browser feature detection
@@ -75,11 +68,6 @@ var swfmini = function() {
75
68
 
76
69
  function callDomLoadFunctions() {
77
70
  if (isDomLoaded) { return; }
78
- try { // test if we can really add/remove elements to/from the DOM; we don't want to fire it too early
79
- var t = doc.getElementsByTagName("body")[0].appendChild(createElement("span"));
80
- t.parentNode.removeChild(t);
81
- }
82
- catch (e) { return; }
83
71
  isDomLoaded = true;
84
72
  var dl = domLoadFnArr.length;
85
73
  for (var i = 0; i < dl; i++) {
@@ -95,14 +83,7 @@ var swfmini = function() {
95
83
  domLoadFnArr[domLoadFnArr.length] = fn; // Array.push() is only available in IE5.5+
96
84
  }
97
85
  }
98
-
99
- /* Cross-browser onload
100
- - Based on James Edwards' solution: http://brothercake.com/site/resources/scripts/onload/
101
- - Will fire an event as soon as a web page including all of its assets are loaded
102
- */
103
- function addLoadEvent(fn) {
104
-
105
- }
86
+
106
87
 
107
88
  /* Main function
108
89
  - Will preferably execute onDomLoad, otherwise onload (as a fallback)
@@ -145,150 +126,13 @@ var swfmini = function() {
145
126
  })();
146
127
  }
147
128
  }
148
-
149
-
150
- function getObjectById(objectIdStr) {
151
- var r = null;
152
- var o = getElementById(objectIdStr);
153
- if (o && o.nodeName == "OBJECT") {
154
- if (typeof o.SetVariable != UNDEF) {
155
- r = o;
156
- }
157
- else {
158
- var n = o.getElementsByTagName(OBJECT)[0];
159
- if (n) {
160
- r = n;
161
- }
162
- }
163
- }
164
- return r;
165
- }
166
-
167
-
168
- /* Cross-browser dynamic SWF creation
169
- */
170
- function createSWF(attObj, parObj, id) {
171
- var r, el = getElementById(id);
172
- if (ua.wk && ua.wk < 312) { return r; }
173
- if (el) {
174
- if (typeof attObj.id == UNDEF) { // if no 'id' is defined for the object element, it will inherit the 'id' from the alternative content
175
- attObj.id = id;
176
- }
177
- if (ua.ie && ua.win) { // Internet Explorer + the HTML object element + W3C DOM methods do not combine: fall back to outerHTML
178
- var att = "";
179
- for (var i in attObj) {
180
- if (attObj[i] != Object.prototype[i]) { // filter out prototype additions from other potential libraries
181
- if (i.toLowerCase() == "data") {
182
- parObj.movie = attObj[i];
183
- }
184
- else if (i.toLowerCase() == "styleclass") { // 'class' is an ECMA4 reserved keyword
185
- att += ' class="' + attObj[i] + '"';
186
- }
187
- else if (i.toLowerCase() != "classid") {
188
- att += ' ' + i + '="' + attObj[i] + '"';
189
- }
190
- }
191
- }
192
- var par = "";
193
- for (var j in parObj) {
194
- if (parObj[j] != Object.prototype[j]) { // filter out prototype additions from other potential libraries
195
- par += '<param name="' + j + '" value="' + parObj[j] + '" />';
196
- }
197
- }
198
- el.outerHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"' + att + '>' + par + '</object>';
199
- objIdArr[objIdArr.length] = attObj.id; // stored to fix object 'leaks' on unload (dynamic publishing only)
200
- r = getElementById(attObj.id);
201
- }
202
- else { // well-behaving browsers
203
- var o = createElement(OBJECT);
204
- o.setAttribute("type", FLASH_MIME_TYPE);
205
- for (var m in attObj) {
206
- if (attObj[m] != Object.prototype[m]) { // filter out prototype additions from other potential libraries
207
- if (m.toLowerCase() == "styleclass") { // 'class' is an ECMA4 reserved keyword
208
- o.setAttribute("class", attObj[m]);
209
- }
210
- else if (m.toLowerCase() != "classid") { // filter out IE specific attribute
211
- o.setAttribute(m, attObj[m]);
212
- }
213
- }
214
- }
215
- for (var n in parObj) {
216
- if (parObj[n] != Object.prototype[n] && n.toLowerCase() != "movie") { // filter out prototype additions from other potential libraries and IE specific param element
217
- createObjParam(o, n, parObj[n]);
218
- }
219
- }
220
- el.parentNode.replaceChild(o, el);
221
- r = o;
222
- }
223
- }
224
- return r;
225
- }
226
-
227
- function createObjParam(el, pName, pValue) {
228
- var p = createElement("param");
229
- p.setAttribute("name", pName);
230
- p.setAttribute("value", pValue);
231
- el.appendChild(p);
232
- }
233
-
234
- /* Cross-browser SWF removal
235
- - Especially needed to safely and completely remove a SWF in Internet Explorer
236
- */
237
- function removeSWF(id) {
238
- var obj = getElementById(id);
239
- if (obj && obj.nodeName == "OBJECT") {
240
- if (ua.ie && ua.win) {
241
- obj.style.display = "none";
242
- (function(){
243
- if (obj.readyState == 4) {
244
- removeObjectInIE(id);
245
- }
246
- else {
247
- setTimeout(arguments.callee, 10);
248
- }
249
- })();
250
- }
251
- else {
252
- obj.parentNode.removeChild(obj);
253
- }
254
- }
255
- }
256
-
257
- function removeObjectInIE(id) {
258
- var obj = getElementById(id);
259
- if (obj) {
260
- for (var i in obj) {
261
- if (typeof obj[i] == "function") {
262
- obj[i] = null;
263
- }
264
- }
265
- obj.parentNode.removeChild(obj);
266
- }
267
- }
268
-
269
- /* Functions to optimize JavaScript compression
270
- */
271
- function getElementById(id) {
272
- var el = null;
273
- try {
274
- el = doc.getElementById(id);
275
- }
276
- catch (e) {}
277
- return el;
278
- }
129
+
279
130
 
280
131
  function createElement(el) {
281
132
  return doc.createElement(el);
282
133
  }
283
134
 
284
- /* Updated attachEvent function for Internet Explorer
285
- - Stores attachEvent information in an Array, so on unload the detachEvent functions can be called to avoid memory leaks
286
- */
287
- function addListener(target, eventType, fn) {
288
- target.attachEvent(eventType, fn);
289
- listenersArr[listenersArr.length] = [target, eventType, fn];
290
- }
291
-
135
+
292
136
  /* Flash Player and SWF content version matching
293
137
  */
294
138
  function hasPlayerVersion(rv) {
@@ -300,107 +144,43 @@ var swfmini = function() {
300
144
  }
301
145
 
302
146
 
303
-
304
- function setVisibility(id, isVisible) {
305
- if (!autoHideShow) { return; }
306
- var elem;
307
- var v = isVisible ? "visible" : "hidden";
308
- if (isDomLoaded && (elem && getElementById(id))) {
309
- getElementById(id).style.visibility = v;
310
- }
311
- }
312
147
 
313
- /* Release memory to avoid memory leaks caused by closures, fix hanging audio/video threads and force open sockets/NetConnections to disconnect (Internet Explorer only)
314
- */
315
- var cleanup = function() {
316
- if (ua.ie && ua.win && window.attachEvent) {
317
- window.attachEvent("onunload", function() {
318
- // remove listeners to avoid memory leaks
319
- var ll = listenersArr.length;
320
- for (var i = 0; i < ll; i++) {
321
- listenersArr[i][0].detachEvent(listenersArr[i][1], listenersArr[i][2]);
322
- }
323
- // cleanup dynamically embedded objects to fix audio/video threads and force open sockets and NetConnections to disconnect
324
- var il = objIdArr.length;
325
- for (var j = 0; j < il; j++) {
326
- removeSWF(objIdArr[j]);
327
- }
328
- // cleanup library's main closures to avoid memory leaks
329
- for (var k in ua) {
330
- ua[k] = null;
331
- }
332
- ua = null;
333
- for (var l in swfmini) {
334
- swfmini[l] = null;
335
- }
336
- swfmini = null;
337
- });
338
- }
339
- }();
340
-
148
+
149
+
341
150
  webshims.ready('DOM', callDomLoadFunctions);
342
-
151
+
152
+ webshims.loader.addModule('swfmini-embed', {d: ['swfmini']});
153
+ var loadEmbed = hasPlayerVersion('9.0.0') ?
154
+ function(){
155
+ webshims.loader.loadList(['swfmini-embed']);
156
+ return true;
157
+ } :
158
+ webshims.$.noop
159
+ ;
160
+
161
+ if(!Modernizr.video){
162
+ loadEmbed();
163
+ } else {
164
+ webshims.ready('WINDOWLOAD', loadEmbed);
165
+ }
166
+
343
167
  return {
344
168
  /* Public API
345
169
  - Reference: http://code.google.com/p/swfobject/wiki/documentation
346
170
  */
347
- registerObject: function() {
348
-
349
- },
171
+ registerObject: wasRemoved,
350
172
 
351
- getObjectById: function(objectIdStr) {
352
- if (ua.w3) {
353
- return getObjectById(objectIdStr);
354
- }
355
- },
173
+ getObjectById: wasRemoved,
356
174
 
357
175
  embedSWF: function(swfUrlStr, replaceElemIdStr, widthStr, heightStr, swfVersionStr, xiSwfUrlStr, flashvarsObj, parObj, attObj, callbackFn) {
358
- var callbackObj = {success:false, id:replaceElemIdStr};
359
- if (ua.w3 && !(ua.wk && ua.wk < 312) && swfUrlStr && replaceElemIdStr && widthStr && heightStr && swfVersionStr) {
360
- setVisibility(replaceElemIdStr, false);
361
- addDomLoadEvent(function() {
362
- widthStr += ""; // auto-convert to string
363
- heightStr += "";
364
- var att = {};
365
- if (attObj && typeof attObj === OBJECT) {
366
- for (var i in attObj) { // copy object to avoid the use of references, because web authors often reuse attObj for multiple SWFs
367
- att[i] = attObj[i];
368
- }
369
- }
370
- att.data = swfUrlStr;
371
- att.width = widthStr;
372
- att.height = heightStr;
373
- var par = {};
374
- if (parObj && typeof parObj === OBJECT) {
375
- for (var j in parObj) { // copy object to avoid the use of references, because web authors often reuse parObj for multiple SWFs
376
- par[j] = parObj[j];
377
- }
378
- }
379
- if (flashvarsObj && typeof flashvarsObj === OBJECT) {
380
- for (var k in flashvarsObj) { // copy object to avoid the use of references, because web authors often reuse flashvarsObj for multiple SWFs
381
- if (typeof par.flashvars != UNDEF) {
382
- par.flashvars += "&" + k + "=" + flashvarsObj[k];
383
- }
384
- else {
385
- par.flashvars = k + "=" + flashvarsObj[k];
386
- }
387
- }
388
- }
389
- if (hasPlayerVersion(swfVersionStr)) { // create SWF
390
- var obj = createSWF(att, par, replaceElemIdStr);
391
- if (att.id == replaceElemIdStr) {
392
- setVisibility(replaceElemIdStr, true);
393
- }
394
- callbackObj.success = true;
395
- callbackObj.ref = obj;
396
- }
397
- else { // show alternative content
398
- setVisibility(replaceElemIdStr, true);
399
- }
400
- if (callbackFn) { callbackFn(callbackObj); }
176
+ var args = arguments;
177
+ if(loadEmbed()){
178
+ webshims.ready('swfmini-embed', function(){
179
+ swfmini.embedSWF.apply(swfmini, args);
401
180
  });
181
+ } else if(callbackFn) {
182
+ callbackFn({success:false, id:replaceElemIdStr});
402
183
  }
403
- else if (callbackFn) { callbackFn(callbackObj); }
404
184
  },
405
185
 
406
186
  switchOffAutoHideShow: function() {
@@ -424,31 +204,23 @@ var swfmini = function() {
424
204
  }
425
205
  },
426
206
 
427
- showExpressInstall: function() {
428
-
429
- },
207
+ showExpressInstall: wasRemoved,
430
208
 
431
- removeSWF: function(objElemIdStr) {
432
- if (ua.w3) {
433
- removeSWF(objElemIdStr);
434
- }
435
- },
209
+ removeSWF: wasRemoved,
436
210
 
437
- createCSS: function() {
438
-
439
- },
211
+ createCSS: wasRemoved,
440
212
 
441
213
  addDomLoadEvent: addDomLoadEvent,
442
214
 
443
- addLoadEvent: addLoadEvent,
215
+ addLoadEvent: wasRemoved,
444
216
 
445
217
 
446
218
  // For internal usage only
447
- expressInstallCallback: function() {
448
-
449
- }
219
+ expressInstallCallback: wasRemoved
450
220
  };
451
221
  }();
222
+
223
+ webshims.isReady('swfmini', true);
452
224
  ;//DOM-Extension helper
453
225
  webshims.register('dom-extend', function($, webshims, window, document, undefined){
454
226
  "use strict";
@@ -1067,7 +839,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1067
839
  $.each({ Height: "getHeight", Width: "getWidth" }, function(name, type){
1068
840
  var body = document.body;
1069
841
  var doc = document.documentElement;
1070
- docObserve[type] = function(){
842
+ docObserve[type] = function (){
1071
843
  return Math.max(
1072
844
  body[ "scroll" + name ], doc[ "scroll" + name ],
1073
845
  body[ "offset" + name ], doc[ "offset" + name ],
@@ -1082,24 +854,11 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1082
854
  this._create();
1083
855
  this.height = docObserve.getHeight();
1084
856
  this.width = docObserve.getWidth();
1085
- setInterval(this.test, 600);
857
+ setInterval(this.test, 999);
1086
858
  $(this.test);
1087
859
  webshims.ready('WINDOWLOAD', this.test);
1088
860
  $(document).on('updatelayout.webshim pageinit popupafteropen panelbeforeopen tabsactivate collapsibleexpand shown.bs.modal shown.bs.collapse slid.bs.carousel', this.handler);
1089
861
  $(window).on('resize', this.handler);
1090
- (function(){
1091
- var oldAnimate = $.fn.animate;
1092
- var animationTimer;
1093
-
1094
- $.fn.animate = function(){
1095
- clearTimeout(animationTimer);
1096
- animationTimer = setTimeout(function(){
1097
- docObserve.test();
1098
- }, 99);
1099
-
1100
- return oldAnimate.apply(this, arguments);
1101
- };
1102
- })();
1103
862
  }
1104
863
  }
1105
864
  };
@@ -1594,8 +1353,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1594
1353
 
1595
1354
  })();
1596
1355
  });
1597
- ;
1598
- webshims.register('form-core', function($, webshims, window, document, undefined, options){
1356
+ ;webshims.register('form-core', function($, webshims, window, document, undefined, options){
1599
1357
  "use strict";
1600
1358
 
1601
1359
  webshims.capturingEventPrevented = function(e){
@@ -1621,6 +1379,7 @@ webshims.register('form-core', function($, webshims, window, document, undefined
1621
1379
  webshims.capturingEvents(['invalid'], true);
1622
1380
  }
1623
1381
 
1382
+ var modules = webshims.modules;
1624
1383
  var isValid = function(elem){
1625
1384
  return ($.prop(elem, 'validity') || {valid: 1}).valid;
1626
1385
  };
@@ -1630,10 +1389,12 @@ webshims.register('form-core', function($, webshims, window, document, undefined
1630
1389
  options.customMessages = true;
1631
1390
  toLoad.push('form-message');
1632
1391
  }
1633
- if(options.customDatalist){
1392
+
1393
+ if(webshims._getAutoEnhance(options.customDatalist)){
1634
1394
  options.fD = true;
1635
1395
  toLoad.push('form-datalist');
1636
1396
  }
1397
+
1637
1398
  if(options.addValidators){
1638
1399
  toLoad.push('form-validators');
1639
1400
  }
@@ -1647,7 +1408,7 @@ webshims.register('form-core', function($, webshims, window, document, undefined
1647
1408
  var hasInvalid = function(elem){
1648
1409
  var ret = false;
1649
1410
  $(elem).jProp('elements').each(function(){
1650
- if(!rElementsGroup.test(elem.nodeName || '')){
1411
+ if(!rElementsGroup.test(this.nodeName || '')){
1651
1412
  ret = $(this).is(':invalid');
1652
1413
  if(ret){
1653
1414
  return false;
@@ -1842,14 +1603,27 @@ webshims.register('form-core', function($, webshims, window, document, undefined
1842
1603
  }
1843
1604
  return message;
1844
1605
  };
1845
-
1606
+
1607
+ $.event.special.valuevalidation = {
1608
+ setup: function(){
1609
+ var data = $(this).data() || $.data(this, {});
1610
+ if(!('valuevalidation' in data)){
1611
+ data.valuevalidation = true;
1612
+ }
1613
+ }
1614
+ };
1846
1615
 
1847
1616
  $(document).on('focusin.lazyloadvalidation', function(e){
1848
1617
  if('form' in e.target){
1849
1618
  lazyLoad();
1850
1619
  }
1851
1620
  });
1621
+
1852
1622
  webshims.ready('WINDOWLOAD', lazyLoad);
1623
+
1624
+ if(modules['form-number-date-ui'].loaded && modules['form-number-date-api'].test()){
1625
+ webshims.isReady('form-number-date-ui', true);
1626
+ }
1853
1627
  });
1854
1628
  ;webshims.register('form-message', function($, webshims, window, document, undefined, options){
1855
1629
  "use strict";
@@ -1985,9 +1759,11 @@ webshims.register('form-core', function($, webshims, window, document, undefined
1985
1759
  ['value', 'min', 'max', 'title', 'maxlength', 'minlength', 'label'].forEach(function(attr){
1986
1760
  if(message.indexOf('{%'+attr) === -1){return;}
1987
1761
  var val = ((attr == 'label') ? $.trim($('label[for="'+ elem.id +'"]', elem.form).text()).replace(/\*$|:$/, '') : $.prop(elem, attr)) || '';
1762
+ val = ''+val;
1988
1763
  if(name == 'patternMismatch' && attr == 'title' && !val){
1989
1764
  webshims.error('no title for patternMismatch provided. Always add a title attribute.');
1990
1765
  }
1766
+
1991
1767
  if(valueVals[attr]){
1992
1768
  if(!widget){
1993
1769
  widget = $(elem).getShadowElement().data('wsWidget'+ (type = $.prop(elem, 'type')));
@@ -2381,7 +2157,6 @@ webshims.register('form-core', function($, webshims, window, document, undefined
2381
2157
 
2382
2158
  });;(function(Modernizr, webshims){
2383
2159
  "use strict";
2384
- var $ = webshims.$;
2385
2160
  var hasNative = Modernizr.audio && Modernizr.video;
2386
2161
  var supportsLoop = false;
2387
2162
  var bugs = webshims.bugs;
@@ -2394,6 +2169,7 @@ webshims.register('form-core', function($, webshims, window, document, undefined
2394
2169
  }
2395
2170
  });
2396
2171
  };
2172
+
2397
2173
  var wsCfg = webshims.cfg;
2398
2174
  var options = wsCfg.mediaelement;
2399
2175
  var hasFullTrackSupport;
@@ -2402,74 +2178,36 @@ webshims.register('form-core', function($, webshims, window, document, undefined
2402
2178
  webshims.error("mediaelement wasn't implemented but loaded");
2403
2179
  return;
2404
2180
  }
2181
+
2405
2182
  if(hasNative){
2406
2183
  var videoElem = document.createElement('video');
2407
2184
  Modernizr.videoBuffered = ('buffered' in videoElem);
2408
2185
  Modernizr.mediaDefaultMuted = ('defaultMuted' in videoElem);
2409
2186
  supportsLoop = ('loop' in videoElem);
2410
-
2187
+ Modernizr.mediaLoop = supportsLoop;
2188
+
2411
2189
  webshims.capturingEvents(['play', 'playing', 'waiting', 'paused', 'ended', 'durationchange', 'loadedmetadata', 'canplay', 'volumechange']);
2412
2190
 
2413
- if(!Modernizr.videoBuffered ){
2191
+ if( !Modernizr.videoBuffered || !supportsLoop || (!Modernizr.mediaDefaultMuted && navigator.userAgent.indexOf('MSIE') != -1 && 'ActiveXObject' in window) ){
2414
2192
  webshims.addPolyfill('mediaelement-native-fix', {
2415
2193
  d: ['dom-support']
2416
2194
  });
2417
2195
  webshims.loader.loadList(['mediaelement-native-fix']);
2418
2196
  }
2419
-
2420
- if(!options.preferFlash){
2421
- var noSwitch = {
2422
- 1: 1
2423
- };
2424
- var switchOptions = function(e){
2425
- var media, error, parent;
2426
- if(!options.preferFlash &&
2427
- ($(e.target).is('audio, video') || ((parent = e.target.parentNode) && $('source', parent).last()[0] == e.target)) &&
2428
- (media = $(e.target).closest('audio, video')) && (error = media.prop('error')) && !noSwitch[error.code]
2429
- ){
2430
-
2431
- $(function(){
2432
- if(hasSwf && !options.preferFlash){
2433
- loadSwf();
2434
- webshims.ready('WINDOWLOAD '+swfType, function(){
2435
- setTimeout(function(){
2436
- if(!options.preferFlash && webshims.mediaelement.createSWF && !media.is('.nonnative-api-active')){
2437
- options.preferFlash = true;
2438
- document.removeEventListener('error', switchOptions, true);
2439
- $('audio, video').each(function(){
2440
- webshims.mediaelement.selectSource(this);
2441
- });
2442
- webshims.error("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src+" Mediaerror: "+ media.prop('error')+ 'first error: '+ error);
2443
- }
2444
- }, 9);
2445
- });
2446
- } else{
2447
- document.removeEventListener('error', switchOptions, true);
2448
- }
2449
- });
2450
- }
2451
- };
2452
- document.addEventListener('error', switchOptions, true);
2453
- $('audio, video').each(function(){
2454
- var error = $.prop(this, 'error');
2455
- if(error && !noSwitch[error]){
2456
- switchOptions({target: this});
2457
- return false;
2458
- }
2459
- });
2460
- }
2461
2197
  }
2462
2198
 
2463
2199
  if(Modernizr.track && !bugs.track){
2464
2200
  (function(){
2465
-
2466
- if(!bugs.track){
2467
- bugs.track = typeof $('<track />')[0].readyState != 'number';
2468
- }
2469
-
2470
2201
  if(!bugs.track){
2202
+
2203
+ if(window.VTTCue && !window.TextTrackCue){
2204
+ window.TextTrackCue = window.VTTCue;
2205
+ } else if(!window.VTTCue){
2206
+ window.VTTCue = window.TextTrackCue;
2207
+ }
2208
+
2471
2209
  try {
2472
- new TextTrackCue(2, 3, '');
2210
+ new VTTCue(2, 3, '');
2473
2211
  } catch(e){
2474
2212
  bugs.track = true;
2475
2213
  }
@@ -2505,6 +2243,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2505
2243
  }
2506
2244
  data.streamId = data.streamId.join('/');
2507
2245
  };
2246
+
2508
2247
  var getSrcObj = function(elem, nodeName){
2509
2248
  elem = $(elem);
2510
2249
  var src = {src: elem.attr('src') || '', elem: elem, srcProp: elem.prop('src')};
@@ -2574,14 +2313,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2574
2313
  });
2575
2314
  }
2576
2315
  };
2577
- // var loadMediaGroup = function(){
2578
- // if(!loadMediaGroup.loaded){
2579
- // loadMediaGroup.loaded = true;
2580
- // webshims.ready(window.MediaController ? 'WINDOWLOAD' : 'DOM', function(){
2581
- // webshims.loader.loadList(['mediagroup']);
2582
- // });
2583
- // }
2584
- // };
2316
+
2585
2317
  var loadYt = (function(){
2586
2318
  var loaded;
2587
2319
  return function(){
@@ -2606,10 +2338,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2606
2338
  d: ['dom-support']
2607
2339
  });
2608
2340
 
2609
-
2610
- // webshims.addModule('mediagroup', {
2611
- // d: ['mediaelement', 'dom-support']
2612
- // });
2341
+
2613
2342
 
2614
2343
  mediaelement.mimeTypes = {
2615
2344
  audio: {
@@ -2643,7 +2372,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2643
2372
 
2644
2373
  mediaelement.mimeTypes.source = $.extend({}, mediaelement.mimeTypes.audio, mediaelement.mimeTypes.video);
2645
2374
 
2646
- mediaelement.getTypeForSrc = function(src, nodeName, data){
2375
+ mediaelement.getTypeForSrc = function(src, nodeName){
2647
2376
  if(src.indexOf('youtube.com/watch?') != -1 || src.indexOf('youtube.com/v/') != -1){
2648
2377
  return 'video/youtube';
2649
2378
  }
@@ -2681,32 +2410,13 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2681
2410
  }
2682
2411
  return srces;
2683
2412
  } else {
2684
- mediaElem.removeAttr('src').removeAttr('type').find('source').remove();
2685
- if(!$.isArray(srces)){
2686
- srces = [srces];
2687
- }
2688
- srces.forEach(function(src){
2689
- if(typeof src == 'string'){
2690
- src = {src: src};
2691
- }
2692
- mediaElem.append($(document.createElement('source')).attr(src));
2693
- });
2694
-
2413
+ webshims.error('setting sources was removed.');
2695
2414
  }
2696
2415
  };
2697
2416
 
2698
2417
 
2699
- $.fn.loadMediaSrc = function(srces, poster){
2700
- return this.each(function(){
2701
- if(poster !== undefined){
2702
- $(this).removeAttr('poster');
2703
- if(poster){
2704
- $.attr(this, 'poster', poster);
2705
- }
2706
- }
2707
- mediaelement.srces(this, srces);
2708
- $(this).mediaLoad();
2709
- });
2418
+ $.fn.loadMediaSrc = function(){
2419
+ webshims.error('loadMediaSrc was removed.');
2710
2420
  };
2711
2421
 
2712
2422
  mediaelement.swfMimeTypes = ['video/3gpp', 'video/x-msvideo', 'video/quicktime', 'video/x-m4v', 'video/mp4', 'video/m4p', 'video/x-flv', 'video/flv', 'audio/mpeg', 'audio/aac', 'audio/mp4', 'audio/x-m4a', 'audio/m4a', 'audio/mp3', 'audio/x-fla', 'audio/fla', 'youtube/flv', 'video/jarisplayer', 'jarisplayer/jarisplayer', 'video/youtube', 'video/rtmp', 'audio/rtmp'];
@@ -2782,8 +2492,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2782
2492
  var readyType = hasSwf ? swfType : 'mediaelement-yt';
2783
2493
  return function( mediaElem, ret, data ){
2784
2494
  //readd to ready
2785
-
2786
-
2495
+
2787
2496
  webshims.ready(readyType, function(){
2788
2497
  if(mediaelement.createSWF && $(mediaElem).parent()[0]){
2789
2498
  mediaelement.createSWF( mediaElem, ret, data );
@@ -2859,7 +2568,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2859
2568
 
2860
2569
  });
2861
2570
 
2862
- var handleMedia = false;
2571
+ var handleMedia = false;
2863
2572
  var initMediaElements = function(){
2864
2573
  var testFixMedia = function(){
2865
2574
  if(webshims.implement(this, 'mediaelement')){
@@ -2867,50 +2576,6 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2867
2576
  if(!Modernizr.mediaDefaultMuted && $.attr(this, 'muted') != null){
2868
2577
  $.prop(this, 'muted', true);
2869
2578
  }
2870
- //fixes for FF 12 and IE9/10 || does not hurt, if run in other browsers
2871
- if(hasNative && (!supportsLoop || ('ActiveXObject' in window))){
2872
- var bufferTimer;
2873
- var lastBuffered;
2874
- var elem = this;
2875
- var getBufferedString = function(){
2876
- var buffered = $.prop(elem, 'buffered');
2877
- if(!buffered){return;}
2878
- var bufferString = "";
2879
- for(var i = 0, len = buffered.length; i < len;i++){
2880
- bufferString += buffered.end(i);
2881
- }
2882
- return bufferString;
2883
- };
2884
- var testBuffer = function(){
2885
- var buffered = getBufferedString();
2886
- if(buffered != lastBuffered){
2887
- lastBuffered = buffered;
2888
- webshims.info('needed to trigger progress manually');
2889
- $(elem).triggerHandler('progress');
2890
- }
2891
- };
2892
-
2893
- $(this)
2894
- .on({
2895
- 'play loadstart progress': function(e){
2896
- if(e.type == 'progress'){
2897
- lastBuffered = getBufferedString();
2898
- }
2899
- clearTimeout(bufferTimer);
2900
- bufferTimer = setTimeout(testBuffer, 400);
2901
- },
2902
- 'emptied stalled mediaerror abort suspend': function(e){
2903
- if(e.type == 'emptied'){
2904
- lastBuffered = false;
2905
- }
2906
- clearTimeout(bufferTimer);
2907
- }
2908
- })
2909
- ;
2910
- if('ActiveXObject' in window && $.prop(this, 'paused') && !$.prop(this, 'readyState') && $(this).is('audio[preload="none"][controls]:not([autoplay],.nonnative-api-active)')){
2911
- $(this).prop('preload', 'metadata').mediaLoad();
2912
- }
2913
- }
2914
2579
  }
2915
2580
 
2916
2581
  };
@@ -2923,7 +2588,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2923
2588
  }
2924
2589
 
2925
2590
  ['audio', 'video'].forEach(function(nodeName){
2926
- var supLoad, supController;
2591
+ var supLoad;
2927
2592
  supLoad = webshims.defineNodeNameProperty(nodeName, 'load', {
2928
2593
  prop: {
2929
2594
  value: function(){
@@ -2956,58 +2621,8 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2956
2621
  }
2957
2622
  }
2958
2623
  });
2959
-
2960
- // supController = webshims.defineNodeNameProperty(nodeName, 'controller', {
2961
- // prop: {
2962
- // get: function(type){
2963
- // if(!loadMediaGroup.loaded){
2964
- // loadMediaGroup();
2965
- // }
2966
- // if(mediaelement.controller){
2967
- // return mediaelement.controller[nodeName].get.apply(this, arguments);
2968
- // }
2969
- // return supController.prop._supget && supController.prop._supget.apply(this, arguments);
2970
- // },
2971
- // set: function(){
2972
- // var that = this;
2973
- // var args = arguments;
2974
- // if(!loadMediaGroup.loaded){
2975
- // loadMediaGroup();
2976
- // }
2977
- // if(mediaelement.controller){
2978
- // return mediaelement.controller[nodeName].set.apply(that, args);
2979
- // } else {
2980
- // webshims.ready('mediagroup', function(){
2981
- // mediaelement.controller[nodeName].set.apply(that, args);
2982
- // });
2983
- // }
2984
- // return supController.prop._supset && supController.prop._supset.apply(this, arguments);
2985
- // }
2986
- // }
2987
- // });
2988
-
2989
- // webshims.ready('mediagroup', function(){
2990
- // mediaelement.controller[nodeName].sup = supController;
2991
- // });
2992
2624
  });
2993
-
2994
- // webshims.onNodeNamesPropertyModify(['audio', 'video'], ['mediaGroup'], {
2995
- // set: function(){
2996
- // var that = this;
2997
- // var args = arguments;
2998
- // if(!loadMediaGroup.loaded){
2999
- // loadMediaGroup();
3000
- // }
3001
- // if(mediaelement.mediagroup){
3002
- // mediaelement.mediagroup.set.apply(that, args);
3003
- // } else {
3004
- // webshims.ready('mediagroup', function(){
3005
- // mediaelement.mediagroup.set.apply(that, args);
3006
- // });
3007
- // }
3008
- // },
3009
- // initAttr: true
3010
- // });
2625
+
3011
2626
 
3012
2627
  webshims.onNodeNamesPropertyModify(['audio', 'video'], ['src', 'poster'], {
3013
2628
  set: function(){
@@ -3030,9 +2645,6 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
3030
2645
  if(!loadTrackUi.loaded && $('track', media).length){
3031
2646
  loadTrackUi();
3032
2647
  }
3033
- // if(!loadMediaGroup.loaded && this.getAttribute('mediagroup')){
3034
- // loadMediaGroup();
3035
- // }
3036
2648
  media = null;
3037
2649
  });
3038
2650
  });
@@ -3072,4 +2684,5 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
3072
2684
  }
3073
2685
  webshims.ready('track', loadTrackUi);
3074
2686
  });
2687
+
3075
2688
  })(Modernizr, webshims);