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);
@@ -2407,7 +2362,8 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
2407
2362
  }
2408
2363
  });
2409
2364
  };
2410
- var options = webshims.cfg.mediaelement;
2365
+ var wsCfg = webshims.cfg;
2366
+ var options = wsCfg.mediaelement;
2411
2367
  var hasFullTrackSupport;
2412
2368
  var hasSwf;
2413
2369
  if(!options){
@@ -2494,7 +2450,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
2494
2450
  }
2495
2451
  hasFullTrackSupport = Modernizr.track && !bugs.track;
2496
2452
 
2497
- webshims.register('mediaelement-core', function($, webshims, window, document, undefined){
2453
+ webshims.register('mediaelement-core', function($, webshims, window, document, undefined, options){
2498
2454
  hasSwf = swfmini.hasFlashPlayerVersion('9.0.115');
2499
2455
  $('html').addClass(hasSwf ? 'swf' : 'no-swf');
2500
2456
  var mediaelement = webshims.mediaelement;
@@ -2578,11 +2534,21 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2578
2534
  var loadTrackUi = function(){
2579
2535
  if(loadTrackUi.loaded){return;}
2580
2536
  loadTrackUi.loaded = true;
2581
- webshims.ready('WINDOWLOAD', function(){
2582
- loadThird();
2583
- webshims.loader.loadList(['track-ui']);
2584
- });
2537
+ if(!options.noAutoTrack){
2538
+ webshims.ready('WINDOWLOAD', function(){
2539
+ loadThird();
2540
+ webshims.loader.loadList(['track-ui']);
2541
+ });
2542
+ }
2585
2543
  };
2544
+ // var loadMediaGroup = function(){
2545
+ // if(!loadMediaGroup.loaded){
2546
+ // loadMediaGroup.loaded = true;
2547
+ // webshims.ready(window.MediaController ? 'WINDOWLOAD' : 'DOM', function(){
2548
+ // webshims.loader.loadList(['mediagroup']);
2549
+ // });
2550
+ // }
2551
+ // };
2586
2552
  var loadYt = (function(){
2587
2553
  var loaded;
2588
2554
  return function(){
@@ -2607,6 +2573,11 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2607
2573
  d: ['dom-support']
2608
2574
  });
2609
2575
 
2576
+
2577
+ // webshims.addModule('mediagroup', {
2578
+ // d: ['mediaelement', 'dom-support']
2579
+ // });
2580
+
2610
2581
  mediaelement.mimeTypes = {
2611
2582
  audio: {
2612
2583
  //ogm shouldn´t be used!
@@ -2905,8 +2876,6 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2905
2876
 
2906
2877
  };
2907
2878
 
2908
-
2909
-
2910
2879
  webshims.ready('dom-support', function(){
2911
2880
  handleMedia = true;
2912
2881
 
@@ -2915,7 +2884,8 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2915
2884
  }
2916
2885
 
2917
2886
  ['audio', 'video'].forEach(function(nodeName){
2918
- var supLoad = webshims.defineNodeNameProperty(nodeName, 'load', {
2887
+ var supLoad, supController;
2888
+ supLoad = webshims.defineNodeNameProperty(nodeName, 'load', {
2919
2889
  prop: {
2920
2890
  value: function(){
2921
2891
  var data = webshims.data(this, 'mediaelement');
@@ -2946,7 +2916,59 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2946
2916
  }
2947
2917
  }
2948
2918
  });
2919
+
2920
+ // supController = webshims.defineNodeNameProperty(nodeName, 'controller', {
2921
+ // prop: {
2922
+ // get: function(type){
2923
+ // if(!loadMediaGroup.loaded){
2924
+ // loadMediaGroup();
2925
+ // }
2926
+ // if(mediaelement.controller){
2927
+ // return mediaelement.controller[nodeName].get.apply(this, arguments);
2928
+ // }
2929
+ // return supController.prop._supget && supController.prop._supget.apply(this, arguments);
2930
+ // },
2931
+ // set: function(){
2932
+ // var that = this;
2933
+ // var args = arguments;
2934
+ // if(!loadMediaGroup.loaded){
2935
+ // loadMediaGroup();
2936
+ // }
2937
+ // if(mediaelement.controller){
2938
+ // return mediaelement.controller[nodeName].set.apply(that, args);
2939
+ // } else {
2940
+ // webshims.ready('mediagroup', function(){
2941
+ // mediaelement.controller[nodeName].set.apply(that, args);
2942
+ // });
2943
+ // }
2944
+ // return supController.prop._supset && supController.prop._supset.apply(this, arguments);
2945
+ // }
2946
+ // }
2947
+ // });
2948
+
2949
+ // webshims.ready('mediagroup', function(){
2950
+ // mediaelement.controller[nodeName].sup = supController;
2951
+ // });
2949
2952
  });
2953
+
2954
+ // webshims.onNodeNamesPropertyModify(['audio', 'video'], ['mediaGroup'], {
2955
+ // set: function(){
2956
+ // var that = this;
2957
+ // var args = arguments;
2958
+ // if(!loadMediaGroup.loaded){
2959
+ // loadMediaGroup();
2960
+ // }
2961
+ // if(mediaelement.mediagroup){
2962
+ // mediaelement.mediagroup.set.apply(that, args);
2963
+ // } else {
2964
+ // webshims.ready('mediagroup', function(){
2965
+ // mediaelement.mediagroup.set.apply(that, args);
2966
+ // });
2967
+ // }
2968
+ // },
2969
+ // initAttr: true
2970
+ // });
2971
+
2950
2972
  webshims.onNodeNamesPropertyModify(['audio', 'video'], ['src', 'poster'], {
2951
2973
  set: function(){
2952
2974
  var elem = this;
@@ -2968,6 +2990,9 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2968
2990
  if(!loadTrackUi.loaded && $('track', media).length){
2969
2991
  loadTrackUi();
2970
2992
  }
2993
+ // if(!loadMediaGroup.loaded && this.getAttribute('mediagroup')){
2994
+ // loadMediaGroup();
2995
+ // }
2971
2996
  media = null;
2972
2997
  });
2973
2998
  });
@@ -2983,9 +3008,6 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2983
3008
  handleMedia = true;
2984
3009
  return false;
2985
3010
  }
2986
- if((!hasFullTrackSupport || webshims.modules.track.options.override) && !loadTrackUi.loaded && $('track', this).length){
2987
- loadTrackUi();
2988
- }
2989
3011
  })
2990
3012
  ;
2991
3013
  }
@@ -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) {
@@ -499,8 +453,9 @@ var swfmini = function() {
499
453
  //DOM-Extension helper
500
454
  webshims.register('dom-extend', function($, webshims, window, document, undefined){
501
455
  "use strict";
502
-
503
- webshims.assumeARIA = $.support.getSetAttribute || Modernizr.canvas || Modernizr.video || Modernizr.boxsizing;
456
+ var supportHrefNormalized = !('hrefNormalized' in $.support) || $.support.hrefNormalized;
457
+ var supportGetSetAttribute = !('getSetAttribute' in $.support) || $.support.getSetAttribute;
458
+ webshims.assumeARIA = supportGetSetAttribute || Modernizr.canvas || Modernizr.video || Modernizr.boxsizing;
504
459
 
505
460
  if($('<input type="email" />').attr('type') == 'text' || $('<form />').attr('novalidate') === "" || ('required' in $('<input />')[0].attributes)){
506
461
  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");
@@ -510,8 +465,8 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
510
465
  webshims.error("Webshims needs jQuery 1.8+ to work properly. Please update your jQuery version or downgrade webshims.");
511
466
  }
512
467
 
513
- if(webshims.cfg.extendNative === 1){
514
- 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");
468
+ if(webshims.cfg.extendNative === undefined){
469
+ 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");
515
470
  }
516
471
 
517
472
  if (!webshims.cfg.no$Switch) {
@@ -1183,7 +1138,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1183
1138
 
1184
1139
  anchor.setAttribute('href', href+'' );
1185
1140
 
1186
- if(!$.support.hrefNormalized){
1141
+ if(!supportHrefNormalized){
1187
1142
  try {
1188
1143
  $(anchor).insertAfter(this);
1189
1144
  ret = anchor.getAttribute('href', 4);
@@ -1624,6 +1579,10 @@ webshims.register('form-core', function($, webshims, window, document, undefined
1624
1579
  options.customMessages = true;
1625
1580
  toLoad.push('form-message');
1626
1581
  }
1582
+ if(options.customDatalist){
1583
+ options.fD = true;
1584
+ toLoad.push('form-datalist');
1585
+ }
1627
1586
  if(options.addValidators){
1628
1587
  toLoad.push('form-validators');
1629
1588
  }
@@ -1762,6 +1721,14 @@ webshims.register('form-core', function($, webshims, window, document, undefined
1762
1721
  return false;
1763
1722
  }
1764
1723
  });
1724
+ if(typeof message == 'object'){
1725
+ if(validity.typeMismatch && message.badInput){
1726
+ message = message.badInput;
1727
+ }
1728
+ if(validity.badInput && message.typeMismatch){
1729
+ message = message.typeMismatch;
1730
+ }
1731
+ }
1765
1732
  }
1766
1733
  }
1767
1734
 
@@ -1938,34 +1905,6 @@ webshims.register('form-datalist', function($, webshims, window, document, undef
1938
1905
  }
1939
1906
  };
1940
1907
 
1941
- if(formsCFG.customDatalist && (!listSupport || !('selectedOption' in $('<input />')[0]))){
1942
- //currently not supported x-browser (FF4 has not implemented and is not polyfilled )
1943
- inputListProto.selectedOption = {
1944
- prop: {
1945
- writeable: false,
1946
- get: function(){
1947
- var elem = this;
1948
- var list = $.prop(elem, 'list');
1949
- var ret = null;
1950
- var value, options;
1951
- if(!list){return ret;}
1952
- value = $.prop(elem, 'value');
1953
- if(!value){return ret;}
1954
- options = $.prop(list, 'options');
1955
- if(!options.length){return ret;}
1956
- $.each(options, function(i, option){
1957
- if(value == $.prop(option, 'value')){
1958
- ret = option;
1959
- return false;
1960
- }
1961
- });
1962
- return ret;
1963
- }
1964
- }
1965
- };
1966
- }
1967
-
1968
-
1969
1908
  if(listSupport){
1970
1909
  //options only return options, if option-elements are rooted: but this makes this part of HTML5 less backwards compatible
1971
1910
  if(!($('<datalist><select><option></option></select></datalist>').prop('options') || []).length ){
@@ -2144,7 +2083,8 @@ webshims.register('form-datalist', function($, webshims, window, document, undef
2144
2083
  }
2145
2084
  });
2146
2085
  };
2147
- var options = webshims.cfg.mediaelement;
2086
+ var wsCfg = webshims.cfg;
2087
+ var options = wsCfg.mediaelement;
2148
2088
  var hasFullTrackSupport;
2149
2089
  var hasSwf;
2150
2090
  if(!options){
@@ -2231,7 +2171,7 @@ webshims.register('form-datalist', function($, webshims, window, document, undef
2231
2171
  }
2232
2172
  hasFullTrackSupport = Modernizr.track && !bugs.track;
2233
2173
 
2234
- webshims.register('mediaelement-core', function($, webshims, window, document, undefined){
2174
+ webshims.register('mediaelement-core', function($, webshims, window, document, undefined, options){
2235
2175
  hasSwf = swfmini.hasFlashPlayerVersion('9.0.115');
2236
2176
  $('html').addClass(hasSwf ? 'swf' : 'no-swf');
2237
2177
  var mediaelement = webshims.mediaelement;
@@ -2315,11 +2255,21 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2315
2255
  var loadTrackUi = function(){
2316
2256
  if(loadTrackUi.loaded){return;}
2317
2257
  loadTrackUi.loaded = true;
2318
- webshims.ready('WINDOWLOAD', function(){
2319
- loadThird();
2320
- webshims.loader.loadList(['track-ui']);
2321
- });
2258
+ if(!options.noAutoTrack){
2259
+ webshims.ready('WINDOWLOAD', function(){
2260
+ loadThird();
2261
+ webshims.loader.loadList(['track-ui']);
2262
+ });
2263
+ }
2322
2264
  };
2265
+ // var loadMediaGroup = function(){
2266
+ // if(!loadMediaGroup.loaded){
2267
+ // loadMediaGroup.loaded = true;
2268
+ // webshims.ready(window.MediaController ? 'WINDOWLOAD' : 'DOM', function(){
2269
+ // webshims.loader.loadList(['mediagroup']);
2270
+ // });
2271
+ // }
2272
+ // };
2323
2273
  var loadYt = (function(){
2324
2274
  var loaded;
2325
2275
  return function(){
@@ -2344,6 +2294,11 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2344
2294
  d: ['dom-support']
2345
2295
  });
2346
2296
 
2297
+
2298
+ // webshims.addModule('mediagroup', {
2299
+ // d: ['mediaelement', 'dom-support']
2300
+ // });
2301
+
2347
2302
  mediaelement.mimeTypes = {
2348
2303
  audio: {
2349
2304
  //ogm shouldn´t be used!
@@ -2642,8 +2597,6 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2642
2597
 
2643
2598
  };
2644
2599
 
2645
-
2646
-
2647
2600
  webshims.ready('dom-support', function(){
2648
2601
  handleMedia = true;
2649
2602
 
@@ -2652,7 +2605,8 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2652
2605
  }
2653
2606
 
2654
2607
  ['audio', 'video'].forEach(function(nodeName){
2655
- var supLoad = webshims.defineNodeNameProperty(nodeName, 'load', {
2608
+ var supLoad, supController;
2609
+ supLoad = webshims.defineNodeNameProperty(nodeName, 'load', {
2656
2610
  prop: {
2657
2611
  value: function(){
2658
2612
  var data = webshims.data(this, 'mediaelement');
@@ -2683,7 +2637,59 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2683
2637
  }
2684
2638
  }
2685
2639
  });
2640
+
2641
+ // supController = webshims.defineNodeNameProperty(nodeName, 'controller', {
2642
+ // prop: {
2643
+ // get: function(type){
2644
+ // if(!loadMediaGroup.loaded){
2645
+ // loadMediaGroup();
2646
+ // }
2647
+ // if(mediaelement.controller){
2648
+ // return mediaelement.controller[nodeName].get.apply(this, arguments);
2649
+ // }
2650
+ // return supController.prop._supget && supController.prop._supget.apply(this, arguments);
2651
+ // },
2652
+ // set: function(){
2653
+ // var that = this;
2654
+ // var args = arguments;
2655
+ // if(!loadMediaGroup.loaded){
2656
+ // loadMediaGroup();
2657
+ // }
2658
+ // if(mediaelement.controller){
2659
+ // return mediaelement.controller[nodeName].set.apply(that, args);
2660
+ // } else {
2661
+ // webshims.ready('mediagroup', function(){
2662
+ // mediaelement.controller[nodeName].set.apply(that, args);
2663
+ // });
2664
+ // }
2665
+ // return supController.prop._supset && supController.prop._supset.apply(this, arguments);
2666
+ // }
2667
+ // }
2668
+ // });
2669
+
2670
+ // webshims.ready('mediagroup', function(){
2671
+ // mediaelement.controller[nodeName].sup = supController;
2672
+ // });
2686
2673
  });
2674
+
2675
+ // webshims.onNodeNamesPropertyModify(['audio', 'video'], ['mediaGroup'], {
2676
+ // set: function(){
2677
+ // var that = this;
2678
+ // var args = arguments;
2679
+ // if(!loadMediaGroup.loaded){
2680
+ // loadMediaGroup();
2681
+ // }
2682
+ // if(mediaelement.mediagroup){
2683
+ // mediaelement.mediagroup.set.apply(that, args);
2684
+ // } else {
2685
+ // webshims.ready('mediagroup', function(){
2686
+ // mediaelement.mediagroup.set.apply(that, args);
2687
+ // });
2688
+ // }
2689
+ // },
2690
+ // initAttr: true
2691
+ // });
2692
+
2687
2693
  webshims.onNodeNamesPropertyModify(['audio', 'video'], ['src', 'poster'], {
2688
2694
  set: function(){
2689
2695
  var elem = this;
@@ -2705,6 +2711,9 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2705
2711
  if(!loadTrackUi.loaded && $('track', media).length){
2706
2712
  loadTrackUi();
2707
2713
  }
2714
+ // if(!loadMediaGroup.loaded && this.getAttribute('mediagroup')){
2715
+ // loadMediaGroup();
2716
+ // }
2708
2717
  media = null;
2709
2718
  });
2710
2719
  });
@@ -2720,9 +2729,6 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2720
2729
  handleMedia = true;
2721
2730
  return false;
2722
2731
  }
2723
- if((!hasFullTrackSupport || webshims.modules.track.options.override) && !loadTrackUi.loaded && $('track', this).length){
2724
- loadTrackUi();
2725
- }
2726
2732
  })
2727
2733
  ;
2728
2734
  }