webshims-rails 1.14.1 → 1.14.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (163) hide show
  1. checksums.yaml +4 -4
  2. data/lib/webshims-rails/version.rb +2 -2
  3. data/vendor/assets/javascripts/webshims/extras/modernizr-custom.js +0 -0
  4. data/vendor/assets/javascripts/webshims/polyfiller.js +3 -8
  5. data/vendor/assets/javascripts/webshims/shims/FlashCanvas/canvas2png.js +0 -0
  6. data/vendor/assets/javascripts/webshims/shims/FlashCanvas/flashcanvas.js +0 -0
  7. data/vendor/assets/javascripts/webshims/shims/FlashCanvas/flashcanvas.swf +0 -0
  8. data/vendor/assets/javascripts/webshims/shims/FlashCanvas/proxy.php +0 -0
  9. data/vendor/assets/javascripts/webshims/shims/FlashCanvas/save.php +0 -0
  10. data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/canvas2png.js +0 -0
  11. data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/flash10canvas.swf +0 -0
  12. data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/flash9canvas.swf +0 -0
  13. data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/flashcanvas.js +0 -0
  14. data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/proxy.php +0 -0
  15. data/vendor/assets/javascripts/webshims/shims/FlashCanvasPro/save.php +0 -0
  16. data/vendor/assets/javascripts/webshims/shims/color-picker.js +2 -2
  17. data/vendor/assets/javascripts/webshims/shims/combos/1.js +66 -43
  18. data/vendor/assets/javascripts/webshims/shims/combos/10.js +66 -31
  19. data/vendor/assets/javascripts/webshims/shims/combos/11.js +66 -31
  20. data/vendor/assets/javascripts/webshims/shims/combos/12.js +96 -59
  21. data/vendor/assets/javascripts/webshims/shims/combos/13.js +96 -59
  22. data/vendor/assets/javascripts/webshims/shims/combos/14.js +0 -0
  23. data/vendor/assets/javascripts/webshims/shims/combos/15.js +4 -1
  24. data/vendor/assets/javascripts/webshims/shims/combos/16.js +70 -44
  25. data/vendor/assets/javascripts/webshims/shims/combos/17.js +66 -31
  26. data/vendor/assets/javascripts/webshims/shims/combos/18.js +1241 -1126
  27. data/vendor/assets/javascripts/webshims/shims/combos/19.js +1272 -1214
  28. data/vendor/assets/javascripts/webshims/shims/combos/2.js +66 -43
  29. data/vendor/assets/javascripts/webshims/shims/combos/20.js +1272 -1214
  30. data/vendor/assets/javascripts/webshims/shims/combos/21.js +61 -92
  31. data/vendor/assets/javascripts/webshims/shims/combos/22.js +30 -16
  32. data/vendor/assets/javascripts/webshims/shims/combos/23.js +66 -43
  33. data/vendor/assets/javascripts/webshims/shims/combos/25.js +41 -85
  34. data/vendor/assets/javascripts/webshims/shims/combos/26.js +1556 -2316
  35. data/vendor/assets/javascripts/webshims/shims/combos/27.js +12 -10
  36. data/vendor/assets/javascripts/webshims/shims/combos/28.js +4 -1
  37. data/vendor/assets/javascripts/webshims/shims/combos/29.js +0 -0
  38. data/vendor/assets/javascripts/webshims/shims/combos/3.js +0 -0
  39. data/vendor/assets/javascripts/webshims/shims/combos/30.js +0 -0
  40. data/vendor/assets/javascripts/webshims/shims/combos/31.js +0 -0
  41. data/vendor/assets/javascripts/webshims/shims/combos/32.js +1175 -1095
  42. data/vendor/assets/javascripts/webshims/shims/combos/33.js +0 -0
  43. data/vendor/assets/javascripts/webshims/shims/combos/34.js +30 -16
  44. data/vendor/assets/javascripts/webshims/shims/combos/4.js +0 -0
  45. data/vendor/assets/javascripts/webshims/shims/combos/5.js +66 -31
  46. data/vendor/assets/javascripts/webshims/shims/combos/6.js +66 -31
  47. data/vendor/assets/javascripts/webshims/shims/combos/7.js +66 -43
  48. data/vendor/assets/javascripts/webshims/shims/combos/8.js +66 -43
  49. data/vendor/assets/javascripts/webshims/shims/combos/9.js +66 -31
  50. data/vendor/assets/javascripts/webshims/shims/combos/97.js +63 -28
  51. data/vendor/assets/javascripts/webshims/shims/combos/98.js +149 -74
  52. data/vendor/assets/javascripts/webshims/shims/combos/99.js +149 -74
  53. data/vendor/assets/javascripts/webshims/shims/combos/comboinfo.json +1 -1
  54. data/vendor/assets/javascripts/webshims/shims/details.js +0 -0
  55. data/vendor/assets/javascripts/webshims/shims/dom-extend.js +0 -0
  56. data/vendor/assets/javascripts/webshims/shims/es5.js +1175 -1095
  57. data/vendor/assets/javascripts/webshims/shims/excanvas.js +0 -0
  58. data/vendor/assets/javascripts/webshims/shims/filereader.js +10 -9
  59. data/vendor/assets/javascripts/webshims/shims/form-combat.js +0 -0
  60. data/vendor/assets/javascripts/webshims/shims/form-core.js +0 -0
  61. data/vendor/assets/javascripts/webshims/shims/form-datalist-lazy.js +0 -0
  62. data/vendor/assets/javascripts/webshims/shims/form-datalist.js +0 -0
  63. data/vendor/assets/javascripts/webshims/shims/form-fixrangechange.js +0 -0
  64. data/vendor/assets/javascripts/webshims/shims/form-message.js +0 -0
  65. data/vendor/assets/javascripts/webshims/shims/form-native-extend.js +0 -0
  66. data/vendor/assets/javascripts/webshims/shims/form-number-date-api.js +0 -0
  67. data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +40 -11
  68. data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +4 -1
  69. data/vendor/assets/javascripts/webshims/shims/form-shim-extend2.js +2 -1
  70. data/vendor/assets/javascripts/webshims/shims/form-validation.js +80 -47
  71. data/vendor/assets/javascripts/webshims/shims/form-validators.js +19 -8
  72. data/vendor/assets/javascripts/webshims/shims/forms-picker.js +21 -1
  73. data/vendor/assets/javascripts/webshims/shims/geolocation.js +0 -0
  74. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ar.js +0 -0
  75. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ch-CN.js +0 -0
  76. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-cs.js +0 -0
  77. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-de.js +0 -0
  78. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-el.js +0 -0
  79. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-en.js +0 -0
  80. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-es.js +0 -0
  81. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-fa.js +130 -0
  82. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-fr.js +0 -0
  83. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-he.js +0 -0
  84. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-hi.js +0 -0
  85. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-hu.js +0 -0
  86. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-it.js +0 -0
  87. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ja.js +0 -0
  88. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-lt.js +0 -0
  89. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-nl.js +0 -0
  90. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-pl.js +0 -0
  91. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-pt-BR.js +0 -0
  92. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-pt-PT.js +0 -0
  93. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-pt.js +0 -0
  94. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ru.js +0 -0
  95. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-sv.js +0 -0
  96. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-zh-CN.js +0 -0
  97. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-zh-TW.js +130 -0
  98. data/vendor/assets/javascripts/webshims/shims/jajax.js +0 -0
  99. data/vendor/assets/javascripts/webshims/shims/jme/_icons.scss +186 -0
  100. data/vendor/assets/javascripts/webshims/shims/jme/b.js +63 -28
  101. data/vendor/assets/javascripts/webshims/shims/jme/c.js +86 -46
  102. data/vendor/assets/javascripts/webshims/shims/jme/controls.css +317 -211
  103. data/vendor/assets/javascripts/webshims/shims/jme/controls.scss +59 -223
  104. data/vendor/assets/javascripts/webshims/shims/jme/jme.eot +0 -0
  105. data/vendor/assets/javascripts/webshims/shims/jme/jme.svg +0 -0
  106. data/vendor/assets/javascripts/webshims/shims/jme/jme.ttf +0 -0
  107. data/vendor/assets/javascripts/webshims/shims/jme/jme.woff +0 -0
  108. data/vendor/assets/javascripts/webshims/shims/jme/mediacontrols-lazy.js +66 -14
  109. data/vendor/assets/javascripts/webshims/shims/jme/p.js +0 -0
  110. data/vendor/assets/javascripts/webshims/shims/jpicker/ChangeLog.txt +0 -0
  111. data/vendor/assets/javascripts/webshims/shims/jpicker/ReadMe.txt +0 -0
  112. data/vendor/assets/javascripts/webshims/shims/jpicker/images/AlphaBar.png +0 -0
  113. data/vendor/assets/javascripts/webshims/shims/jpicker/images/Bars.png +0 -0
  114. data/vendor/assets/javascripts/webshims/shims/jpicker/images/Maps.png +0 -0
  115. data/vendor/assets/javascripts/webshims/shims/jpicker/images/NoColor.png +0 -0
  116. data/vendor/assets/javascripts/webshims/shims/jpicker/images/bar-opacity.png +0 -0
  117. data/vendor/assets/javascripts/webshims/shims/jpicker/images/map-opacity.png +0 -0
  118. data/vendor/assets/javascripts/webshims/shims/jpicker/images/mappoint.gif +0 -0
  119. data/vendor/assets/javascripts/webshims/shims/jpicker/images/picker.gif +0 -0
  120. data/vendor/assets/javascripts/webshims/shims/jpicker/images/preview-opacity.png +0 -0
  121. data/vendor/assets/javascripts/webshims/shims/jpicker/images/rangearrows.gif +0 -0
  122. data/vendor/assets/javascripts/webshims/shims/jpicker/jpicker.css +55 -48
  123. data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +66 -43
  124. data/vendor/assets/javascripts/webshims/shims/mediaelement-debug.js +833 -0
  125. data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +31 -76
  126. data/vendor/assets/javascripts/webshims/shims/mediaelement-native-fix.js +0 -0
  127. data/vendor/assets/javascripts/webshims/shims/mediaelement-yt.js +0 -0
  128. data/vendor/assets/javascripts/webshims/shims/moxie/flash/Moxie.cdn.swf +0 -0
  129. data/vendor/assets/javascripts/webshims/shims/moxie/flash/Moxie.min.swf +0 -0
  130. data/vendor/assets/javascripts/webshims/shims/moxie/js/moxie.js +1542 -2303
  131. data/vendor/assets/javascripts/webshims/shims/moxie/silverlight/Moxie.cdn.xap +0 -0
  132. data/vendor/assets/javascripts/webshims/shims/moxie/silverlight/Moxie.min.xap +0 -0
  133. data/vendor/assets/javascripts/webshims/shims/picture.js +160 -79
  134. data/vendor/assets/javascripts/webshims/shims/plugins/jquery.ui.position.js +0 -0
  135. data/vendor/assets/javascripts/webshims/shims/promise.js +0 -0
  136. data/vendor/assets/javascripts/webshims/shims/range-ui.js +26 -20
  137. data/vendor/assets/javascripts/webshims/shims/sizzle.js +0 -0
  138. data/vendor/assets/javascripts/webshims/shims/styles/color-picker.png +0 -0
  139. data/vendor/assets/javascripts/webshims/shims/styles/forms-ext.css +444 -326
  140. data/vendor/assets/javascripts/webshims/shims/styles/forms-picker.css +379 -300
  141. data/vendor/assets/javascripts/webshims/shims/styles/progress.gif +0 -0
  142. data/vendor/assets/javascripts/webshims/shims/styles/progress.png +0 -0
  143. data/vendor/assets/javascripts/webshims/shims/styles/scss/_api-forms-ext.scss +8 -8
  144. data/vendor/assets/javascripts/webshims/shims/styles/scss/_api-shim.scss +0 -0
  145. data/vendor/assets/javascripts/webshims/shims/styles/scss/_extends.scss +0 -14
  146. data/vendor/assets/javascripts/webshims/shims/styles/scss/forms-ext.scss +104 -85
  147. data/vendor/assets/javascripts/webshims/shims/styles/scss/forms-picker.scss +20 -32
  148. data/vendor/assets/javascripts/webshims/shims/styles/scss/shim-ext.scss +0 -0
  149. data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +14 -34
  150. data/vendor/assets/javascripts/webshims/shims/styles/shim-ext.css +920 -728
  151. data/vendor/assets/javascripts/webshims/shims/styles/shim.css +471 -391
  152. data/vendor/assets/javascripts/webshims/shims/styles/widget.eot +0 -0
  153. data/vendor/assets/javascripts/webshims/shims/styles/widget.svg +0 -0
  154. data/vendor/assets/javascripts/webshims/shims/styles/widget.ttf +0 -0
  155. data/vendor/assets/javascripts/webshims/shims/styles/widget.woff +0 -0
  156. data/vendor/assets/javascripts/webshims/shims/swf/JarisFLVPlayer.swf +0 -0
  157. data/vendor/assets/javascripts/webshims/shims/swfmini-embed.js +0 -0
  158. data/vendor/assets/javascripts/webshims/shims/swfmini.js +0 -0
  159. data/vendor/assets/javascripts/webshims/shims/track-ui.js +0 -0
  160. data/vendor/assets/javascripts/webshims/shims/track.js +30 -16
  161. metadata +8 -4
  162. data/vendor/assets/javascripts/webshims/shims/styles/config.rb +0 -12
  163. data/vendor/assets/javascripts/webshims/shims/swf/filereader.swf +0 -0
@@ -2383,7 +2383,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
2383
2383
 
2384
2384
  var wsCfg = webshims.cfg;
2385
2385
  var options = wsCfg.mediaelement;
2386
- var hasSwf;
2386
+ var isIE = navigator.userAgent.indexOf('MSIE') != -1;
2387
2387
  if(!options){
2388
2388
  webshims.error("mediaelement wasn't implemented but loaded");
2389
2389
  return;
@@ -2398,7 +2398,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
2398
2398
 
2399
2399
  webshims.capturingEvents(['play', 'playing', 'waiting', 'paused', 'ended', 'durationchange', 'loadedmetadata', 'canplay', 'volumechange']);
2400
2400
 
2401
- if( !Modernizr.videoBuffered || !supportsLoop || (!Modernizr.mediaDefaultMuted && navigator.userAgent.indexOf('MSIE') != -1 && 'ActiveXObject' in window) ){
2401
+ if( !Modernizr.videoBuffered || !supportsLoop || (!Modernizr.mediaDefaultMuted && isIE && 'ActiveXObject' in window) ){
2402
2402
  webshims.addPolyfill('mediaelement-native-fix', {
2403
2403
  d: ['dom-support']
2404
2404
  });
@@ -2426,7 +2426,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
2426
2426
  }
2427
2427
 
2428
2428
  webshims.register('mediaelement-core', function($, webshims, window, document, undefined, options){
2429
- hasSwf = swfmini.hasFlashPlayerVersion('10.0.3');
2429
+ var hasSwf = swfmini.hasFlashPlayerVersion('10.0.3');
2430
2430
  var mediaelement = webshims.mediaelement;
2431
2431
 
2432
2432
  mediaelement.parseRtmp = function(data){
@@ -2488,11 +2488,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2488
2488
  }
2489
2489
  }
2490
2490
  }
2491
-
2492
- if(!src.container){
2493
- $(elem).attr('data-wsrecheckmimetype', '');
2494
- }
2495
-
2491
+
2496
2492
  tmp = elem.attr('media');
2497
2493
  if(tmp){
2498
2494
  src.media = tmp;
@@ -2622,11 +2618,6 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2622
2618
  }
2623
2619
  };
2624
2620
 
2625
-
2626
- $.fn.loadMediaSrc = function(){
2627
- webshims.error('loadMediaSrc was removed.');
2628
- };
2629
-
2630
2621
  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'];
2631
2622
 
2632
2623
  mediaelement.canThirdPlaySrces = function(mediaElem, srces){
@@ -2684,7 +2675,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2684
2675
  message = "can't play sources";
2685
2676
  }
2686
2677
  $(elem).pause().data('mediaerror', message);
2687
- webshims.error('mediaelementError: '+ message);
2678
+ webshims.error('mediaelementError: '+ message +'. Run the following line in your console to get more info: webshim.mediaelement.loadDebugger();');
2688
2679
  setTimeout(function(){
2689
2680
  if($(elem).data('mediaerror')){
2690
2681
  $(elem).addClass('media-error').trigger('mediaerror');
@@ -2716,36 +2707,49 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2716
2707
  }
2717
2708
  };
2718
2709
  })();
2719
-
2720
- var stepSources = function(elem, data, useSwf, _srces, _noLoop){
2721
- var ret;
2722
- if(useSwf || (useSwf !== false && data && data.isActive == 'third')){
2723
- ret = mediaelement.canThirdPlaySrces(elem, _srces);
2724
- if(!ret){
2725
- if(_noLoop){
2726
- mediaelement.setError(elem, false);
2727
- } else {
2728
- stepSources(elem, data, false, _srces, true);
2729
- }
2730
- } else {
2731
- handleThird(elem, ret, data);
2710
+
2711
+ var activate = {
2712
+ native: function(elem, src, data){
2713
+ if(data && data.isActive == 'third') {
2714
+ mediaelement.setActive(elem, 'html5', data);
2732
2715
  }
2733
- } else {
2734
- ret = mediaelement.canNativePlaySrces(elem, _srces);
2735
- if(!ret){
2736
- if(_noLoop){
2737
- mediaelement.setError(elem, false);
2738
- if(data && data.isActive == 'third') {
2739
- mediaelement.setActive(elem, 'html5', data);
2740
- }
2741
- } else {
2742
- stepSources(elem, data, true, _srces, true);
2743
- }
2744
- } else if(data && data.isActive == 'third') {
2716
+ },
2717
+ third: handleThird
2718
+ };
2719
+
2720
+ var stepSources = function(elem, data, srces){
2721
+ var i, src;
2722
+ var testOrder = [{test: 'canNativePlaySrces', activate: 'native'}, {test: 'canThirdPlaySrces', activate: 'third'}];
2723
+ if(options.preferFlash || (data && data.isActive == 'third') ){
2724
+ testOrder.reverse();
2725
+ }
2726
+ for(i = 0; i < 2; i++){
2727
+ src = mediaelement[testOrder[i].test](elem, srces);
2728
+ if(src){
2729
+ activate[testOrder[i].activate](elem, src, data);
2730
+ break;
2731
+ }
2732
+ }
2733
+
2734
+ if(!src){
2735
+ mediaelement.setError(elem, false);
2736
+ if(data && data.isActive == 'third') {
2745
2737
  mediaelement.setActive(elem, 'html5', data);
2746
2738
  }
2747
2739
  }
2748
2740
  };
2741
+ var allowedPreload = {'metadata': 1, 'auto': 1, '': 1};
2742
+ var fixPreload = function(elem){
2743
+ var preload, img;
2744
+ if(elem.getAttribute('preload') == 'none'){
2745
+ if(allowedPreload[(preload = $.attr(elem, 'data-preload'))]){
2746
+ $.attr(elem, 'preload', preload);
2747
+ } else if(hasNative && (preload = elem.getAttribute('poster'))){
2748
+ img = document.createElement('img');
2749
+ img.src = preload;
2750
+ }
2751
+ }
2752
+ };
2749
2753
  var stopParent = /^(?:embed|object|datalist)$/i;
2750
2754
  var selectSource = function(elem, data){
2751
2755
  var baseData = webshims.data(elem, 'mediaelementBase') || webshims.data(elem, 'mediaelementBase', {});
@@ -2761,7 +2765,9 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2761
2765
  if(mediaelement.sortMedia){
2762
2766
  _srces.sort(mediaelement.sortMedia);
2763
2767
  }
2764
- stepSources(elem, data, options.preferFlash || undefined, _srces);
2768
+ fixPreload(elem);
2769
+ stepSources(elem, data, _srces);
2770
+
2765
2771
  };
2766
2772
  mediaelement.selectSource = selectSource;
2767
2773
 
@@ -2772,20 +2778,22 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2772
2778
  setTimeout(function(){
2773
2779
  if( $.prop(e.target, 'paused') || !$.prop(e.target, 'loop') ){return;}
2774
2780
  $(e.target).prop('currentTime', 0).play();
2775
- }, 1);
2781
+ });
2776
2782
 
2777
2783
  });
2778
2784
 
2779
2785
  var handleMedia = false;
2786
+
2780
2787
  var initMediaElements = function(){
2781
2788
  var testFixMedia = function(){
2789
+
2782
2790
  if(webshims.implement(this, 'mediaelement')){
2783
2791
  selectSource(this);
2784
2792
  if(!Modernizr.mediaDefaultMuted && $.attr(this, 'muted') != null){
2785
2793
  $.prop(this, 'muted', true);
2786
2794
  }
2795
+
2787
2796
  }
2788
-
2789
2797
  };
2790
2798
 
2791
2799
  webshims.ready('dom-support', function(){
@@ -2801,6 +2809,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2801
2809
  prop: {
2802
2810
  value: function(){
2803
2811
  var data = webshims.data(this, 'mediaelement');
2812
+
2804
2813
  selectSource(this, data);
2805
2814
  if(hasNative && (!data || data.isActive == 'html5') && supLoad.prop._supvalue){
2806
2815
  supLoad.prop._supvalue.apply(this, arguments);
@@ -2812,6 +2821,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2812
2821
  }
2813
2822
  }
2814
2823
  });
2824
+
2815
2825
  nativeCanPlayType[nodeName] = webshims.defineNodeNameProperty(nodeName, 'canPlayType', {
2816
2826
  prop: {
2817
2827
  value: function(type){
@@ -2828,6 +2838,9 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2828
2838
  ret = 'maybe';
2829
2839
  }
2830
2840
  }
2841
+ if(!ret && hasYt && type == 'video/youtube'){
2842
+ ret = 'maybe';
2843
+ }
2831
2844
  return ret;
2832
2845
  }
2833
2846
  }
@@ -2877,8 +2890,18 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2877
2890
  });
2878
2891
  }
2879
2892
  };
2880
-
2881
2893
 
2894
+ mediaelement.loadDebugger = function(){
2895
+ webshims.ready('dom-support', function(){
2896
+ webshims.loader.loadScript('mediaelement-debug');
2897
+ });
2898
+ };
2899
+
2900
+ if(({noCombo: 1, media: 1})[webshims.cfg.debug]){
2901
+ $(document).on('mediaerror', function(e){
2902
+ mediaelement.loadDebugger();
2903
+ });
2904
+ }
2882
2905
  //set native implementation ready, before swf api is retested
2883
2906
  if(hasNative){
2884
2907
  webshims.isReady('mediaelement-core', true);
@@ -2086,7 +2086,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
2086
2086
 
2087
2087
  var wsCfg = webshims.cfg;
2088
2088
  var options = wsCfg.mediaelement;
2089
- var hasSwf;
2089
+ var isIE = navigator.userAgent.indexOf('MSIE') != -1;
2090
2090
  if(!options){
2091
2091
  webshims.error("mediaelement wasn't implemented but loaded");
2092
2092
  return;
@@ -2101,7 +2101,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
2101
2101
 
2102
2102
  webshims.capturingEvents(['play', 'playing', 'waiting', 'paused', 'ended', 'durationchange', 'loadedmetadata', 'canplay', 'volumechange']);
2103
2103
 
2104
- if( !Modernizr.videoBuffered || !supportsLoop || (!Modernizr.mediaDefaultMuted && navigator.userAgent.indexOf('MSIE') != -1 && 'ActiveXObject' in window) ){
2104
+ if( !Modernizr.videoBuffered || !supportsLoop || (!Modernizr.mediaDefaultMuted && isIE && 'ActiveXObject' in window) ){
2105
2105
  webshims.addPolyfill('mediaelement-native-fix', {
2106
2106
  d: ['dom-support']
2107
2107
  });
@@ -2129,7 +2129,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
2129
2129
  }
2130
2130
 
2131
2131
  webshims.register('mediaelement-core', function($, webshims, window, document, undefined, options){
2132
- hasSwf = swfmini.hasFlashPlayerVersion('10.0.3');
2132
+ var hasSwf = swfmini.hasFlashPlayerVersion('10.0.3');
2133
2133
  var mediaelement = webshims.mediaelement;
2134
2134
 
2135
2135
  mediaelement.parseRtmp = function(data){
@@ -2191,11 +2191,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2191
2191
  }
2192
2192
  }
2193
2193
  }
2194
-
2195
- if(!src.container){
2196
- $(elem).attr('data-wsrecheckmimetype', '');
2197
- }
2198
-
2194
+
2199
2195
  tmp = elem.attr('media');
2200
2196
  if(tmp){
2201
2197
  src.media = tmp;
@@ -2325,11 +2321,6 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2325
2321
  }
2326
2322
  };
2327
2323
 
2328
-
2329
- $.fn.loadMediaSrc = function(){
2330
- webshims.error('loadMediaSrc was removed.');
2331
- };
2332
-
2333
2324
  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'];
2334
2325
 
2335
2326
  mediaelement.canThirdPlaySrces = function(mediaElem, srces){
@@ -2387,7 +2378,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2387
2378
  message = "can't play sources";
2388
2379
  }
2389
2380
  $(elem).pause().data('mediaerror', message);
2390
- webshims.error('mediaelementError: '+ message);
2381
+ webshims.error('mediaelementError: '+ message +'. Run the following line in your console to get more info: webshim.mediaelement.loadDebugger();');
2391
2382
  setTimeout(function(){
2392
2383
  if($(elem).data('mediaerror')){
2393
2384
  $(elem).addClass('media-error').trigger('mediaerror');
@@ -2419,36 +2410,49 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2419
2410
  }
2420
2411
  };
2421
2412
  })();
2422
-
2423
- var stepSources = function(elem, data, useSwf, _srces, _noLoop){
2424
- var ret;
2425
- if(useSwf || (useSwf !== false && data && data.isActive == 'third')){
2426
- ret = mediaelement.canThirdPlaySrces(elem, _srces);
2427
- if(!ret){
2428
- if(_noLoop){
2429
- mediaelement.setError(elem, false);
2430
- } else {
2431
- stepSources(elem, data, false, _srces, true);
2432
- }
2433
- } else {
2434
- handleThird(elem, ret, data);
2413
+
2414
+ var activate = {
2415
+ native: function(elem, src, data){
2416
+ if(data && data.isActive == 'third') {
2417
+ mediaelement.setActive(elem, 'html5', data);
2435
2418
  }
2436
- } else {
2437
- ret = mediaelement.canNativePlaySrces(elem, _srces);
2438
- if(!ret){
2439
- if(_noLoop){
2440
- mediaelement.setError(elem, false);
2441
- if(data && data.isActive == 'third') {
2442
- mediaelement.setActive(elem, 'html5', data);
2443
- }
2444
- } else {
2445
- stepSources(elem, data, true, _srces, true);
2446
- }
2447
- } else if(data && data.isActive == 'third') {
2419
+ },
2420
+ third: handleThird
2421
+ };
2422
+
2423
+ var stepSources = function(elem, data, srces){
2424
+ var i, src;
2425
+ var testOrder = [{test: 'canNativePlaySrces', activate: 'native'}, {test: 'canThirdPlaySrces', activate: 'third'}];
2426
+ if(options.preferFlash || (data && data.isActive == 'third') ){
2427
+ testOrder.reverse();
2428
+ }
2429
+ for(i = 0; i < 2; i++){
2430
+ src = mediaelement[testOrder[i].test](elem, srces);
2431
+ if(src){
2432
+ activate[testOrder[i].activate](elem, src, data);
2433
+ break;
2434
+ }
2435
+ }
2436
+
2437
+ if(!src){
2438
+ mediaelement.setError(elem, false);
2439
+ if(data && data.isActive == 'third') {
2448
2440
  mediaelement.setActive(elem, 'html5', data);
2449
2441
  }
2450
2442
  }
2451
2443
  };
2444
+ var allowedPreload = {'metadata': 1, 'auto': 1, '': 1};
2445
+ var fixPreload = function(elem){
2446
+ var preload, img;
2447
+ if(elem.getAttribute('preload') == 'none'){
2448
+ if(allowedPreload[(preload = $.attr(elem, 'data-preload'))]){
2449
+ $.attr(elem, 'preload', preload);
2450
+ } else if(hasNative && (preload = elem.getAttribute('poster'))){
2451
+ img = document.createElement('img');
2452
+ img.src = preload;
2453
+ }
2454
+ }
2455
+ };
2452
2456
  var stopParent = /^(?:embed|object|datalist)$/i;
2453
2457
  var selectSource = function(elem, data){
2454
2458
  var baseData = webshims.data(elem, 'mediaelementBase') || webshims.data(elem, 'mediaelementBase', {});
@@ -2464,7 +2468,9 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2464
2468
  if(mediaelement.sortMedia){
2465
2469
  _srces.sort(mediaelement.sortMedia);
2466
2470
  }
2467
- stepSources(elem, data, options.preferFlash || undefined, _srces);
2471
+ fixPreload(elem);
2472
+ stepSources(elem, data, _srces);
2473
+
2468
2474
  };
2469
2475
  mediaelement.selectSource = selectSource;
2470
2476
 
@@ -2475,20 +2481,22 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2475
2481
  setTimeout(function(){
2476
2482
  if( $.prop(e.target, 'paused') || !$.prop(e.target, 'loop') ){return;}
2477
2483
  $(e.target).prop('currentTime', 0).play();
2478
- }, 1);
2484
+ });
2479
2485
 
2480
2486
  });
2481
2487
 
2482
2488
  var handleMedia = false;
2489
+
2483
2490
  var initMediaElements = function(){
2484
2491
  var testFixMedia = function(){
2492
+
2485
2493
  if(webshims.implement(this, 'mediaelement')){
2486
2494
  selectSource(this);
2487
2495
  if(!Modernizr.mediaDefaultMuted && $.attr(this, 'muted') != null){
2488
2496
  $.prop(this, 'muted', true);
2489
2497
  }
2498
+
2490
2499
  }
2491
-
2492
2500
  };
2493
2501
 
2494
2502
  webshims.ready('dom-support', function(){
@@ -2504,6 +2512,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2504
2512
  prop: {
2505
2513
  value: function(){
2506
2514
  var data = webshims.data(this, 'mediaelement');
2515
+
2507
2516
  selectSource(this, data);
2508
2517
  if(hasNative && (!data || data.isActive == 'html5') && supLoad.prop._supvalue){
2509
2518
  supLoad.prop._supvalue.apply(this, arguments);
@@ -2515,6 +2524,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2515
2524
  }
2516
2525
  }
2517
2526
  });
2527
+
2518
2528
  nativeCanPlayType[nodeName] = webshims.defineNodeNameProperty(nodeName, 'canPlayType', {
2519
2529
  prop: {
2520
2530
  value: function(type){
@@ -2531,6 +2541,9 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2531
2541
  ret = 'maybe';
2532
2542
  }
2533
2543
  }
2544
+ if(!ret && hasYt && type == 'video/youtube'){
2545
+ ret = 'maybe';
2546
+ }
2534
2547
  return ret;
2535
2548
  }
2536
2549
  }
@@ -2580,8 +2593,18 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2580
2593
  });
2581
2594
  }
2582
2595
  };
2583
-
2584
2596
 
2597
+ mediaelement.loadDebugger = function(){
2598
+ webshims.ready('dom-support', function(){
2599
+ webshims.loader.loadScript('mediaelement-debug');
2600
+ });
2601
+ };
2602
+
2603
+ if(({noCombo: 1, media: 1})[webshims.cfg.debug]){
2604
+ $(document).on('mediaerror', function(e){
2605
+ mediaelement.loadDebugger();
2606
+ });
2607
+ }
2585
2608
  //set native implementation ready, before swf api is retested
2586
2609
  if(hasNative){
2587
2610
  webshims.isReady('mediaelement-core', true);
@@ -1232,6 +1232,23 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1232
1232
  return val * 1;
1233
1233
  };
1234
1234
  var createOpts = ['step', 'min', 'max', 'readonly', 'title', 'disabled', 'tabindex'];
1235
+ var normalizeTouch = (function(){
1236
+ var types = {
1237
+ touchstart: 1,
1238
+ touchend: 1,
1239
+ touchmove: 1
1240
+ };
1241
+ var normalize = ['pageX', 'pageY'];
1242
+ return function(e){
1243
+ if(types[e.type] && e.originalEvent && e.originalEvent.touches && e.originalEvent.touches.length){
1244
+ for(var i = 0; i < normalize.length; i++){
1245
+ e[normalize[i]] = e.originalEvent.touches[0][normalize[i]];
1246
+ }
1247
+
1248
+ }
1249
+ return e;
1250
+ };
1251
+ })();
1235
1252
  var rangeProto = {
1236
1253
  _create: function(){
1237
1254
  var i;
@@ -1550,23 +1567,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1550
1567
  }
1551
1568
  };
1552
1569
  })();
1553
- var normalizeTouch = (function(){
1554
- var types = {
1555
- touchstart: 1,
1556
- touchend: 1,
1557
- touchmove: 1
1558
- };
1559
- var normalize = ['pageX', 'pageY'];
1560
- return function(e){
1561
- if(types[e.type] && e.originalEvent && e.originalEvent.touches && e.originalEvent.touches.length){
1562
- for(var i = 0; i < normalize.length; i++){
1563
- e[normalize[i]] = e.originalEvent.touches[0][normalize[i]];
1564
- }
1565
-
1566
- }
1567
- return e;
1568
- };
1569
- })();
1570
+
1570
1571
  var updateValue = function(val, animate){
1571
1572
  if(val != o.value){
1572
1573
  that.value(val, false, animate);
@@ -1586,7 +1587,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1586
1587
  }
1587
1588
  };
1588
1589
  var remove = function(e){
1589
- if(e && e.type == 'mouseup'){
1590
+ if(e && (e.type == 'mouseup' || e.type == 'touchend')){
1590
1591
  eventTimer.call('input', o.value);
1591
1592
  eventTimer.call('change', o.value);
1592
1593
  }
@@ -1607,6 +1608,8 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1607
1608
  $(document).off('mousemove touchmove', setValueFromPos).off('mouseup touchend', remove);
1608
1609
  $(window).off('blur', removeWin);
1609
1610
  if(!o.readonly && !o.disabled){
1611
+ eventTimer.init('input', o.value);
1612
+ eventTimer.init('change', o.value);
1610
1613
  normalizeTouch(e);
1611
1614
  that.element.trigger('focus');
1612
1615
  that.addRemoveClass('ws-active', true);
@@ -1642,8 +1645,10 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1642
1645
  'touchstart mousedown': add,
1643
1646
  focus: function(e){
1644
1647
  if(!o.disabled && !hasFocus){
1645
- eventTimer.init('input', o.value);
1646
- eventTimer.init('change', o.value);
1648
+ if(!isActive){
1649
+ eventTimer.init('input', o.value);
1650
+ eventTimer.init('change', o.value);
1651
+ }
1647
1652
  that.addRemoveClass('ws-focus', true);
1648
1653
  that.updateMetrics();
1649
1654
  }
@@ -1829,6 +1834,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1829
1834
  obj._create.call(obj);
1830
1835
  });
1831
1836
  };
1837
+ $.fn.rangeUI.normalizeTouch = normalizeTouch;
1832
1838
  if(window.webshims && webshims.isReady){
1833
1839
  webshims.isReady('range-ui', true);
1834
1840
  }
@@ -2536,11 +2542,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
2536
2542
  if( steps[this.type] && typeof steps[this.type].start == 'object'){
2537
2543
  steps[this.type].start = this.asNumber(steps[this.type].start);
2538
2544
  }
2539
-
2540
- if(!webshims.picker[this.type]){
2541
- o.buttonOnly = false;
2542
- }
2543
-
2545
+
2544
2546
  for(i = 0; i < createOpts.length; i++){
2545
2547
  if(o[createOpts[i]] != null){
2546
2548
  this[createOpts[i]](o[createOpts[i]], o[createOpts[i]]);
@@ -2770,7 +2772,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
2770
2772
  wsWidgetProto._create.apply(this, arguments);
2771
2773
  this._init = false;
2772
2774
 
2773
- this.buttonWrapper.html('<span unselectable="on" class="step-controls"><span class="step-up"></span><span class="step-down"></span></span>');
2775
+ this.buttonWrapper.html('<span unselectable="on" class="step-controls"><span class="step-up step-control"></span><span class="step-down step-control"></span></span>');
2774
2776
 
2775
2777
  if(this.type == 'number'){
2776
2778
  this.inputElements.attr('inputmode', 'numeric');
@@ -2953,7 +2955,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
2953
2955
  }
2954
2956
 
2955
2957
  touch = changedTouches[0];
2956
- if(Math.abs(touchData.x - touch.pageX) > 40 || Math.abs(touchData.y - touch.pageY) > 40 || Date.now() - touchData.now > 600){
2958
+ if(Math.abs(touchData.x - touch.pageX) > 40 || Math.abs(touchData.y - touch.pageY) > 40 || Date.now() - touchData.now > 300){
2957
2959
  return;
2958
2960
  }
2959
2961
  e.preventDefault();
@@ -3151,7 +3153,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
3151
3153
  }
3152
3154
  };
3153
3155
  return function(prop){
3154
- if(prop == 'value' && !data.options.inlinePicker){return;}
3156
+ if(prop == 'value' && (!data.options.inlinePicker || data._handledValue )){return;}
3155
3157
  popover.isDirty = true;
3156
3158
 
3157
3159
  if(popover.isVisible){
@@ -3210,6 +3212,13 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
3210
3212
  }
3211
3213
  show();
3212
3214
  };
3215
+ var toogle = function(){
3216
+ if(popover.openedByFocus || !popover.isVisible){
3217
+ open();
3218
+ } else {
3219
+ popover.hide();
3220
+ }
3221
+ }
3213
3222
 
3214
3223
 
3215
3224
  options.containerElements.push(popover.element[0]);
@@ -3250,7 +3259,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
3250
3259
  }
3251
3260
 
3252
3261
 
3253
- opener.wsTouchClick(open);
3262
+ opener.wsTouchClick(toogle);
3254
3263
 
3255
3264
  if(options.inlinePicker){
3256
3265
  popover.openedByFocus = true;
@@ -3602,9 +3611,9 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
3602
3611
  }
3603
3612
 
3604
3613
  data.shim.element.on('change input', stopPropagation).addClass(cNames+' '+webshims.shadowClass);
3605
-
3614
+
3606
3615
  if(data.shim.buttonWrapper){
3607
-
3616
+
3608
3617
  data.shim.buttonWrapper.addClass('input-button-size-'+(data.shim.buttonWrapper.children().filter(isVisible).length)+' '+webshims.shadowClass);
3609
3618
 
3610
3619
  if(data.shim.buttonWrapper.filter(isVisible).length){
@@ -3761,6 +3770,32 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
3761
3770
  ;
3762
3771
  });
3763
3772
  };
3773
+
3774
+
3775
+ if($('<input />').prop('labels') == null){
3776
+ webshims.defineNodeNamesProperty('button, input, keygen, meter, output, progress, select, textarea', 'labels', {
3777
+ prop: {
3778
+ get: function(){
3779
+ if(this.type == 'hidden'){return null;}
3780
+ var id = this.id;
3781
+ var labels = $(this)
3782
+ .closest('label')
3783
+ .filter(function(){
3784
+ var hFor = (this.attributes['for'] || {});
3785
+ return (!hFor.specified || hFor.value == id);
3786
+ })
3787
+ ;
3788
+
3789
+ if(id) {
3790
+ labels = labels.add('label[for="'+ id +'"]');
3791
+ }
3792
+ return labels.get();
3793
+ },
3794
+ writeable: false
3795
+ }
3796
+ });
3797
+ }
3798
+
3764
3799
  if(formcfg._isLoading){
3765
3800
  $(formcfg).one('change', init);
3766
3801
  } else {