webshims-rails 1.10.3 → 1.10.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (83) hide show
  1. checksums.yaml +8 -8
  2. data/lib/webshims-rails/version.rb +2 -2
  3. data/vendor/assets/javascripts/webshims/polyfiller.js +96 -73
  4. data/vendor/assets/javascripts/webshims/shims/color-picker.js +2415 -0
  5. data/vendor/assets/javascripts/webshims/shims/combos/1.js +248 -745
  6. data/vendor/assets/javascripts/webshims/shims/combos/10.js +771 -1206
  7. data/vendor/assets/javascripts/webshims/shims/combos/11.js +679 -1201
  8. data/vendor/assets/javascripts/webshims/shims/combos/12.js +46 -65
  9. data/vendor/assets/javascripts/webshims/shims/combos/13.js +45 -64
  10. data/vendor/assets/javascripts/webshims/shims/combos/14.js +94 -7
  11. data/vendor/assets/javascripts/webshims/shims/combos/15.js +557 -1189
  12. data/vendor/assets/javascripts/webshims/shims/combos/16.js +598 -1249
  13. data/vendor/assets/javascripts/webshims/shims/combos/17.js +697 -1208
  14. data/vendor/assets/javascripts/webshims/shims/combos/18.js +697 -1208
  15. data/vendor/assets/javascripts/webshims/shims/combos/19.js +145 -78
  16. data/vendor/assets/javascripts/webshims/shims/combos/2.js +472 -1280
  17. data/vendor/assets/javascripts/webshims/shims/combos/20.js +144 -77
  18. data/vendor/assets/javascripts/webshims/shims/combos/21.js +14 -15
  19. data/vendor/assets/javascripts/webshims/shims/combos/22.js +2 -2
  20. data/vendor/assets/javascripts/webshims/shims/combos/23.js +45 -64
  21. data/vendor/assets/javascripts/webshims/shims/combos/24.js +848 -0
  22. data/vendor/assets/javascripts/webshims/shims/combos/25.js +4373 -0
  23. data/vendor/assets/javascripts/webshims/shims/combos/26.js +1516 -0
  24. data/vendor/assets/javascripts/webshims/shims/combos/27.js +884 -0
  25. data/vendor/assets/javascripts/webshims/shims/combos/28.js +2067 -0
  26. data/vendor/assets/javascripts/webshims/shims/combos/29.js +1156 -0
  27. data/vendor/assets/javascripts/webshims/shims/combos/3.js +313 -700
  28. data/vendor/assets/javascripts/webshims/shims/combos/30.js +1868 -0
  29. data/vendor/assets/javascripts/webshims/shims/combos/31.js +1663 -0
  30. data/vendor/assets/javascripts/webshims/shims/combos/4.js +111 -20
  31. data/vendor/assets/javascripts/webshims/shims/combos/5.js +747 -1321
  32. data/vendor/assets/javascripts/webshims/shims/combos/6.js +837 -1809
  33. data/vendor/assets/javascripts/webshims/shims/combos/7.js +435 -1239
  34. data/vendor/assets/javascripts/webshims/shims/combos/8.js +360 -766
  35. data/vendor/assets/javascripts/webshims/shims/combos/9.js +843 -1676
  36. data/vendor/assets/javascripts/webshims/shims/details.js +1 -1
  37. data/vendor/assets/javascripts/webshims/shims/dom-extend.js +90 -3
  38. data/vendor/assets/javascripts/webshims/shims/filereader.js +386 -0
  39. data/vendor/assets/javascripts/webshims/shims/form-core.js +201 -680
  40. data/vendor/assets/javascripts/webshims/shims/form-datalist-lazy.js +418 -0
  41. data/vendor/assets/javascripts/webshims/shims/form-datalist.js +69 -467
  42. data/vendor/assets/javascripts/webshims/shims/form-message.js +21 -17
  43. data/vendor/assets/javascripts/webshims/shims/form-native-extend.js +19 -82
  44. data/vendor/assets/javascripts/webshims/shims/form-number-date-api.js +17 -6
  45. data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +570 -1185
  46. data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +181 -28
  47. data/vendor/assets/javascripts/webshims/shims/form-validation.js +599 -0
  48. data/vendor/assets/javascripts/webshims/{extras/custom-validity.js → shims/form-validators.js} +33 -38
  49. data/vendor/assets/javascripts/webshims/shims/forms-picker.js +865 -0
  50. data/vendor/assets/javascripts/webshims/shims/geolocation.js +2 -2
  51. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-de.txt +37 -34
  52. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-en.txt +88 -48
  53. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-lt.js +74 -0
  54. data/vendor/assets/javascripts/webshims/shims/jpicker/ChangeLog.txt +121 -0
  55. data/vendor/assets/javascripts/webshims/shims/jpicker/ReadMe.txt +47 -0
  56. data/vendor/assets/javascripts/webshims/shims/jpicker/images/AlphaBar.png +0 -0
  57. data/vendor/assets/javascripts/webshims/shims/jpicker/images/Bars.png +0 -0
  58. data/vendor/assets/javascripts/webshims/shims/jpicker/images/Maps.png +0 -0
  59. data/vendor/assets/javascripts/webshims/shims/jpicker/images/NoColor.png +0 -0
  60. data/vendor/assets/javascripts/webshims/shims/jpicker/images/Thumbs.db +0 -0
  61. data/vendor/assets/javascripts/webshims/shims/jpicker/images/bar-opacity.png +0 -0
  62. data/vendor/assets/javascripts/webshims/shims/jpicker/images/map-opacity.png +0 -0
  63. data/vendor/assets/javascripts/webshims/shims/jpicker/images/mappoint.gif +0 -0
  64. data/vendor/assets/javascripts/webshims/shims/jpicker/images/picker.gif +0 -0
  65. data/vendor/assets/javascripts/webshims/shims/jpicker/images/preview-opacity.png +0 -0
  66. data/vendor/assets/javascripts/webshims/shims/jpicker/images/rangearrows.gif +0 -0
  67. data/vendor/assets/javascripts/webshims/shims/jpicker/jpicker.css +257 -0
  68. data/vendor/assets/javascripts/webshims/shims/json-storage.js +4 -4
  69. data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +44 -63
  70. data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +10 -11
  71. data/vendor/assets/javascripts/webshims/shims/mediaelement-native-fix.js +2 -1
  72. data/vendor/assets/javascripts/webshims/shims/mediaelement-yt.js +5 -3
  73. data/vendor/assets/javascripts/webshims/shims/range-ui.js +110 -17
  74. data/vendor/assets/javascripts/webshims/shims/styles/forms.png +0 -0
  75. data/vendor/assets/javascripts/webshims/shims/styles/range-track.png +0 -0
  76. data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +104 -21
  77. data/vendor/assets/javascripts/webshims/shims/styles/shim.css +90 -16
  78. data/vendor/assets/javascripts/webshims/shims/styles/vertical-range.png +0 -0
  79. data/vendor/assets/javascripts/webshims/shims/swf/filereader.swf +0 -0
  80. data/vendor/assets/javascripts/webshims/shims/swfmini.js +1 -1
  81. data/vendor/assets/javascripts/webshims/shims/track-ui.js +35 -3
  82. data/vendor/assets/javascripts/webshims/shims/track.js +1 -1
  83. metadata +33 -3
@@ -8,7 +8,7 @@ var swfmini = function() {
8
8
 
9
9
  var UNDEF = "undefined",
10
10
  OBJECT = "object",
11
- webshims = jQuery.webshims,
11
+ webshims = jQuery.webshims || window.webshims,
12
12
  SHOCKWAVE_FLASH = "Shockwave Flash",
13
13
  SHOCKWAVE_FLASH_AX = "ShockwaveFlash.ShockwaveFlash",
14
14
  FLASH_MIME_TYPE = "application/x-shockwave-flash",
@@ -501,7 +501,7 @@ var swfmini = function() {
501
501
  var hasNative = Modernizr.audio && Modernizr.video;
502
502
  var supportsLoop = false;
503
503
  var bugs = webshims.bugs;
504
-
504
+ var swfType = 'mediaelement-jaris';
505
505
  var loadSwf = function(){
506
506
  webshims.ready(swfType, function(){
507
507
  if(!webshims.mediaelement.createSWF){
@@ -511,7 +511,7 @@ var swfmini = function() {
511
511
  });
512
512
  };
513
513
  var options = webshims.cfg.mediaelement;
514
- var swfType = 'mediaelement-jaris';
514
+ var hasFullTrackSupport;
515
515
  var hasSwf;
516
516
  if(!options){
517
517
  webshims.error("mediaelement wasn't implemented but loaded");
@@ -524,14 +524,11 @@ var swfmini = function() {
524
524
 
525
525
  webshims.capturingEvents(['play', 'playing', 'waiting', 'paused', 'ended', 'durationchange', 'loadedmetadata', 'canplay', 'volumechange']);
526
526
 
527
- if(!Modernizr.videoBuffered){
527
+ if(!Modernizr.videoBuffered ){
528
528
  webshims.addPolyfill('mediaelement-native-fix', {
529
- f: 'mediaelement',
530
- test: Modernizr.videoBuffered,
531
529
  d: ['dom-support']
532
530
  });
533
-
534
- webshims.reTest('mediaelement-native-fix');
531
+ webshims.loader.loadList(['mediaelement-native-fix']);
535
532
  }
536
533
  }
537
534
 
@@ -542,9 +539,9 @@ var swfmini = function() {
542
539
  };
543
540
  var switchOptions = function(e){
544
541
  var media;
545
- var parent = e.target.parentNode;
542
+ var parent;
546
543
  if(!options.preferFlash &&
547
- ($(e.target).is('audio, video') || (parent && $('source:last', parent)[0] == e.target)) &&
544
+ ($(e.target).is('audio, video') || ((parent = e.target.parentNode) && $('source:last', parent)[0] == e.target)) &&
548
545
  (media = $(e.target).closest('audio, video')) && !noSwitch[media.prop('error')]
549
546
  ){
550
547
  $(function(){
@@ -558,7 +555,7 @@ var swfmini = function() {
558
555
  $('audio, video').each(function(){
559
556
  webshims.mediaelement.selectSource(this);
560
557
  });
561
- webshims.info("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src+" Mediaerror: "+ media.prop('error'));
558
+ webshims.error("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src+" Mediaerror: "+ media.prop('error'));
562
559
  }
563
560
  }, 9);
564
561
  });
@@ -593,43 +590,9 @@ var swfmini = function() {
593
590
  bugs.track = true;
594
591
  }
595
592
  }
596
-
597
- var trackOptions = webshims.cfg.track;
598
- var trackListener = function(e){
599
- $(e.target).filter('track').each(changeApi);
600
- };
601
- var changeApi = function(){
602
- if(bugs.track || (!trackOptions.override && $.prop(this, 'readyState') == 3)){
603
- trackOptions.override = true;
604
- webshims.reTest('track');
605
- document.removeEventListener('error', trackListener, true);
606
- if(this && $.nodeName(this, 'track')){
607
- webshims.error("track support was overwritten. Please check your vtt including your vtt mime-type");
608
- } else {
609
- webshims.info("track support was overwritten. due to bad browser support");
610
- }
611
- return false;
612
- }
613
- };
614
- var detectTrackError = function(){
615
- document.addEventListener('error', trackListener, true);
616
-
617
- if(bugs.track){
618
- changeApi();
619
- } else {
620
- $('track').each(changeApi);
621
- }
622
- };
623
- if(!trackOptions.override){
624
- if(webshims.isReady('track')){
625
- detectTrackError();
626
- } else {
627
- $(detectTrackError);
628
- }
629
- }
630
593
  })();
631
-
632
594
  }
595
+ hasFullTrackSupport = Modernizr.track && !bugs.track;
633
596
 
634
597
  webshims.register('mediaelement-core', function($, webshims, window, document, undefined){
635
598
  hasSwf = swfmini.hasFlashPlayerVersion('9.0.115');
@@ -714,7 +677,8 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
714
677
  var loadTrackUi = function(){
715
678
  if(loadTrackUi.loaded){return;}
716
679
  loadTrackUi.loaded = true;
717
- $(function(){
680
+ webshims.ready('WINDOWLOAD', function(){
681
+ loadThird();
718
682
  webshims.loader.loadList(['track-ui']);
719
683
  });
720
684
  };
@@ -887,27 +851,40 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
887
851
  }
888
852
  return ret;
889
853
  };
890
-
854
+ var emptyType = (/^\s*application\/octet\-stream\s*$/i);
855
+ var getRemoveEmptyType = function(){
856
+ var ret = emptyType.test($.attr(this, 'type') || '');
857
+ if(ret){
858
+ $(this).removeAttr('type');
859
+ }
860
+ return ret;
861
+ };
891
862
  mediaelement.setError = function(elem, message){
892
- if(!message){
893
- message = "can't play sources";
863
+ if($('source', elem).filter(getRemoveEmptyType).length){
864
+ webshims.error('"application/octet-stream" is a useless mimetype for audio/video. Please change this attribute.');
865
+ try {
866
+ $(elem).mediaLoad();
867
+ } catch(er){}
868
+ } else {
869
+ if(!message){
870
+ message = "can't play sources";
871
+ }
872
+ $(elem).pause().data('mediaerror', message);
873
+ webshims.error('mediaelementError: '+ message);
874
+ setTimeout(function(){
875
+ if($(elem).data('mediaerror')){
876
+ $(elem).trigger('mediaerror');
877
+ }
878
+ }, 1);
894
879
  }
895
880
 
896
- $(elem).pause().data('mediaerror', message);
897
- webshims.error('mediaelementError: '+ message);
898
- setTimeout(function(){
899
- if($(elem).data('mediaerror')){
900
- $(elem).trigger('mediaerror');
901
- }
902
- }, 1);
881
+
903
882
  };
904
883
 
905
884
  var handleThird = (function(){
906
885
  var requested;
907
886
  return function( mediaElem, ret, data ){
908
- if(!requested){
909
- loadTrackUi();
910
- }
887
+
911
888
  webshims.ready(hasSwf ? swfType : 'mediaelement-yt', function(){
912
889
  if(mediaelement.createSWF){
913
890
  mediaelement.createSWF( mediaElem, ret, data );
@@ -1052,6 +1029,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
1052
1029
  var buffered = getBufferedString();
1053
1030
  if(buffered != lastBuffered){
1054
1031
  lastBuffered = buffered;
1032
+ webshims.info('needed to trigger progress manually');
1055
1033
  $(elem).triggerHandler('progress');
1056
1034
  }
1057
1035
  };
@@ -1103,11 +1081,14 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
1103
1081
  $('video, audio', context)
1104
1082
  .add(insertedElement.filter('video, audio'))
1105
1083
  .each(function(){
1106
- if(!mediaelement.canNativePlaySrces(this) || (!loadTrackUi.loaded && $('track', this).length)){
1084
+ if(!mediaelement.canNativePlaySrces(this)){
1107
1085
  loadThird();
1108
1086
  handleMedia = true;
1109
1087
  return false;
1110
1088
  }
1089
+ if((!hasFullTrackSupport || webshims.modules.track.options.override) && !loadTrackUi.loaded && $('track', this).length){
1090
+ loadTrackUi();
1091
+ }
1111
1092
  })
1112
1093
  ;
1113
1094
  }
@@ -1115,7 +1096,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
1115
1096
  }
1116
1097
  };
1117
1098
 
1118
- if(Modernizr.track && !bugs.track){
1099
+ if(hasFullTrackSupport){
1119
1100
  webshims.defineProperty(TextTrack.prototype, 'shimActiveCues', {
1120
1101
  get: function(){
1121
1102
  return this._shimActiveCues || this.activeCues;
@@ -1130,10 +1111,10 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
1130
1111
  } else {
1131
1112
  webshims.ready(swfType, initMediaElements);
1132
1113
  }
1133
- webshims.ready('WINDOWLOAD mediaelement', loadTrackUi);
1114
+ webshims.ready('track', loadTrackUi);
1134
1115
  });
1135
- })(jQuery, Modernizr, jQuery.webshims);
1136
- jQuery.webshims.register('track', function($, webshims, window, document, undefined){
1116
+ })(jQuery, Modernizr, webshims);
1117
+ webshims.register('track', function($, webshims, window, document, undefined){
1137
1118
  "use strict";
1138
1119
  var mediaelement = webshims.mediaelement;
1139
1120
  var id = new Date().getTime();
@@ -3,7 +3,7 @@
3
3
  var hasNative = Modernizr.audio && Modernizr.video;
4
4
  var supportsLoop = false;
5
5
  var bugs = webshims.bugs;
6
-
6
+ var swfType = 'mediaelement-jaris';
7
7
  var loadSwf = function(){
8
8
  webshims.ready(swfType, function(){
9
9
  if(!webshims.mediaelement.createSWF){
@@ -13,7 +13,7 @@
13
13
  });
14
14
  };
15
15
  var options = webshims.cfg.mediaelement;
16
- var swfType = 'mediaelement-jaris';
16
+ var hasFullTrackSupport;
17
17
  var hasSwf;
18
18
  if(!options){
19
19
  webshims.error("mediaelement wasn't implemented but loaded");
@@ -26,14 +26,11 @@
26
26
 
27
27
  webshims.capturingEvents(['play', 'playing', 'waiting', 'paused', 'ended', 'durationchange', 'loadedmetadata', 'canplay', 'volumechange']);
28
28
 
29
- if(!Modernizr.videoBuffered){
29
+ if(!Modernizr.videoBuffered ){
30
30
  webshims.addPolyfill('mediaelement-native-fix', {
31
- f: 'mediaelement',
32
- test: Modernizr.videoBuffered,
33
31
  d: ['dom-support']
34
32
  });
35
-
36
- webshims.reTest('mediaelement-native-fix');
33
+ webshims.loader.loadList(['mediaelement-native-fix']);
37
34
  }
38
35
  }
39
36
 
@@ -44,9 +41,9 @@
44
41
  };
45
42
  var switchOptions = function(e){
46
43
  var media;
47
- var parent = e.target.parentNode;
44
+ var parent;
48
45
  if(!options.preferFlash &&
49
- ($(e.target).is('audio, video') || (parent && $('source:last', parent)[0] == e.target)) &&
46
+ ($(e.target).is('audio, video') || ((parent = e.target.parentNode) && $('source:last', parent)[0] == e.target)) &&
50
47
  (media = $(e.target).closest('audio, video')) && !noSwitch[media.prop('error')]
51
48
  ){
52
49
  $(function(){
@@ -60,7 +57,7 @@
60
57
  $('audio, video').each(function(){
61
58
  webshims.mediaelement.selectSource(this);
62
59
  });
63
- webshims.info("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src+" Mediaerror: "+ media.prop('error'));
60
+ webshims.error("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src+" Mediaerror: "+ media.prop('error'));
64
61
  }
65
62
  }, 9);
66
63
  });
@@ -95,43 +92,9 @@
95
92
  bugs.track = true;
96
93
  }
97
94
  }
98
-
99
- var trackOptions = webshims.cfg.track;
100
- var trackListener = function(e){
101
- $(e.target).filter('track').each(changeApi);
102
- };
103
- var changeApi = function(){
104
- if(bugs.track || (!trackOptions.override && $.prop(this, 'readyState') == 3)){
105
- trackOptions.override = true;
106
- webshims.reTest('track');
107
- document.removeEventListener('error', trackListener, true);
108
- if(this && $.nodeName(this, 'track')){
109
- webshims.error("track support was overwritten. Please check your vtt including your vtt mime-type");
110
- } else {
111
- webshims.info("track support was overwritten. due to bad browser support");
112
- }
113
- return false;
114
- }
115
- };
116
- var detectTrackError = function(){
117
- document.addEventListener('error', trackListener, true);
118
-
119
- if(bugs.track){
120
- changeApi();
121
- } else {
122
- $('track').each(changeApi);
123
- }
124
- };
125
- if(!trackOptions.override){
126
- if(webshims.isReady('track')){
127
- detectTrackError();
128
- } else {
129
- $(detectTrackError);
130
- }
131
- }
132
95
  })();
133
-
134
96
  }
97
+ hasFullTrackSupport = Modernizr.track && !bugs.track;
135
98
 
136
99
  webshims.register('mediaelement-core', function($, webshims, window, document, undefined){
137
100
  hasSwf = swfmini.hasFlashPlayerVersion('9.0.115');
@@ -216,7 +179,8 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
216
179
  var loadTrackUi = function(){
217
180
  if(loadTrackUi.loaded){return;}
218
181
  loadTrackUi.loaded = true;
219
- $(function(){
182
+ webshims.ready('WINDOWLOAD', function(){
183
+ loadThird();
220
184
  webshims.loader.loadList(['track-ui']);
221
185
  });
222
186
  };
@@ -389,27 +353,40 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
389
353
  }
390
354
  return ret;
391
355
  };
392
-
356
+ var emptyType = (/^\s*application\/octet\-stream\s*$/i);
357
+ var getRemoveEmptyType = function(){
358
+ var ret = emptyType.test($.attr(this, 'type') || '');
359
+ if(ret){
360
+ $(this).removeAttr('type');
361
+ }
362
+ return ret;
363
+ };
393
364
  mediaelement.setError = function(elem, message){
394
- if(!message){
395
- message = "can't play sources";
365
+ if($('source', elem).filter(getRemoveEmptyType).length){
366
+ webshims.error('"application/octet-stream" is a useless mimetype for audio/video. Please change this attribute.');
367
+ try {
368
+ $(elem).mediaLoad();
369
+ } catch(er){}
370
+ } else {
371
+ if(!message){
372
+ message = "can't play sources";
373
+ }
374
+ $(elem).pause().data('mediaerror', message);
375
+ webshims.error('mediaelementError: '+ message);
376
+ setTimeout(function(){
377
+ if($(elem).data('mediaerror')){
378
+ $(elem).trigger('mediaerror');
379
+ }
380
+ }, 1);
396
381
  }
397
382
 
398
- $(elem).pause().data('mediaerror', message);
399
- webshims.error('mediaelementError: '+ message);
400
- setTimeout(function(){
401
- if($(elem).data('mediaerror')){
402
- $(elem).trigger('mediaerror');
403
- }
404
- }, 1);
383
+
405
384
  };
406
385
 
407
386
  var handleThird = (function(){
408
387
  var requested;
409
388
  return function( mediaElem, ret, data ){
410
- if(!requested){
411
- loadTrackUi();
412
- }
389
+
413
390
  webshims.ready(hasSwf ? swfType : 'mediaelement-yt', function(){
414
391
  if(mediaelement.createSWF){
415
392
  mediaelement.createSWF( mediaElem, ret, data );
@@ -554,6 +531,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
554
531
  var buffered = getBufferedString();
555
532
  if(buffered != lastBuffered){
556
533
  lastBuffered = buffered;
534
+ webshims.info('needed to trigger progress manually');
557
535
  $(elem).triggerHandler('progress');
558
536
  }
559
537
  };
@@ -605,11 +583,14 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
605
583
  $('video, audio', context)
606
584
  .add(insertedElement.filter('video, audio'))
607
585
  .each(function(){
608
- if(!mediaelement.canNativePlaySrces(this) || (!loadTrackUi.loaded && $('track', this).length)){
586
+ if(!mediaelement.canNativePlaySrces(this)){
609
587
  loadThird();
610
588
  handleMedia = true;
611
589
  return false;
612
590
  }
591
+ if((!hasFullTrackSupport || webshims.modules.track.options.override) && !loadTrackUi.loaded && $('track', this).length){
592
+ loadTrackUi();
593
+ }
613
594
  })
614
595
  ;
615
596
  }
@@ -617,7 +598,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
617
598
  }
618
599
  };
619
600
 
620
- if(Modernizr.track && !bugs.track){
601
+ if(hasFullTrackSupport){
621
602
  webshims.defineProperty(TextTrack.prototype, 'shimActiveCues', {
622
603
  get: function(){
623
604
  return this._shimActiveCues || this.activeCues;
@@ -632,10 +613,10 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
632
613
  } else {
633
614
  webshims.ready(swfType, initMediaElements);
634
615
  }
635
- webshims.ready('WINDOWLOAD mediaelement', loadTrackUi);
616
+ webshims.ready('track', loadTrackUi);
636
617
  });
637
- })(jQuery, Modernizr, jQuery.webshims);
638
- jQuery.webshims.register('track', function($, webshims, window, document, undefined){
618
+ })(jQuery, Modernizr, webshims);
619
+ webshims.register('track', function($, webshims, window, document, undefined){
639
620
  "use strict";
640
621
  var mediaelement = webshims.mediaelement;
641
622
  var id = new Date().getTime();
@@ -802,10 +802,10 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
802
802
 
803
803
 
804
804
  //DOM-Extension helper
805
- jQuery.webshims.register('dom-extend', function($, webshims, window, document, undefined){
805
+ webshims.register('dom-extend', function($, webshims, window, document, undefined){
806
806
  "use strict";
807
807
 
808
- webshims.assumeARIA = Modernizr.localstorage || Modernizr.video || Modernizr.boxsizing;
808
+ webshims.assumeARIA = $.support.getSetAttribute || Modernizr.canvas || Modernizr.video || Modernizr.boxsizing;
809
809
 
810
810
  if($('<input type="email" />').attr('type') == 'text' || $('<form />').attr('novalidate') === "" || ('required' in $('<input />')[0].attributes)){
811
811
  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");
@@ -814,6 +814,57 @@ jQuery.webshims.register('dom-extend', function($, webshims, window, document, u
814
814
  if(!$.parseHTML){
815
815
  webshims.error("Webshims needs jQuery 1.8+ to work properly. Please update your jQuery version or downgrade webshims.");
816
816
  }
817
+ if (!webshims.cfg.no$Switch) {
818
+ var switch$ = function(){
819
+ if (window.jQuery && (!window.$ || window.jQuery == window.$) && !window.jQuery.webshims) {
820
+ webshims.error("jQuery was included more than once. Make sure to include it only once! Webshims and other Plugins might not work properly.");
821
+ if (window.$) {
822
+ window.$ = webshims.$;
823
+ }
824
+ window.jQuery = webshims.$;
825
+ }
826
+ if(webshims.M != Modernizr){
827
+ webshims.error("Modernizr was included more than once. Make sure to include it only once! Webshims and other scripts might not work properly.");
828
+ for(var i in Modernizr){
829
+ if(!(i in webshims.M)){
830
+ webshims.M[i] = Modernizr[i];
831
+ }
832
+ }
833
+ Modernizr = webshims.M;
834
+ }
835
+ };
836
+ switch$();
837
+ setTimeout(switch$, 90);
838
+ $(switch$);
839
+ }
840
+ // (function(){
841
+ // var hostNames = {
842
+ // 'afarkas.github.io': 1,
843
+ // localhost: 1,
844
+ // '127.0.0.1': 1
845
+ // };
846
+ //
847
+ // if( webshims.debug && (hostNames[location.hostname] || location.protocol == 'file:') ){
848
+ // var list = $('<ul class="webshims-debug-list" />');
849
+ // webshims.errorLog.push = function(message){
850
+ // list.appendTo('body');
851
+ // $('<li style="display: none;">'+ message +'</li>')
852
+ // .appendTo(list)
853
+ // .slideDown()
854
+ // .delay(3000)
855
+ // .slideUp(function(){
856
+ // $(this).remove();
857
+ // if(!$('li', list).length){
858
+ // list.detach();
859
+ // }
860
+ // })
861
+ // ;
862
+ // };
863
+ // $.each(webshims.errorLog, function(i, message){
864
+ // webshims.errorLog.push(message);
865
+ // });
866
+ // }
867
+ // })();
817
868
 
818
869
  //shortcus
819
870
  var modules = webshims.modules;
@@ -831,6 +882,24 @@ jQuery.webshims.register('dom-extend', function($, webshims, window, document, u
831
882
  return (_argless) ? oldVal.call($(elem)) : oldVal.call($(elem), val);
832
883
  };
833
884
 
885
+ //jquery mobile and jquery ui
886
+ if(!$.widget){
887
+ (function(){
888
+ var _cleanData = $.cleanData;
889
+ $.cleanData = function( elems ) {
890
+ if(!$.widget){
891
+ for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
892
+ try {
893
+ $( elem ).triggerHandler( "remove" );
894
+ // http://bugs.jquery.com/ticket/8235
895
+ } catch( e ) {}
896
+ }
897
+ }
898
+ _cleanData( elems );
899
+ };
900
+ })();
901
+ }
902
+
834
903
 
835
904
  $.fn.val = function(val){
836
905
  var elem = this[0];
@@ -864,6 +933,18 @@ jQuery.webshims.register('dom-extend', function($, webshims, window, document, u
864
933
  return this.on(evt, fn).each(fn);
865
934
  };
866
935
 
936
+ $.fn.onWSOff = function(evt, fn, trigger, evtDel){
937
+ if(!evtDel){
938
+ evtDel = document;
939
+ }
940
+ $(evtDel)[trigger ? 'onTrigger' : 'on'](evt, fn);
941
+ this.on('remove', function(e){
942
+ if(!e.originalEvent){
943
+ $(evtDel).off(evt, fn);
944
+ }
945
+ });
946
+ };
947
+
867
948
  var dataID = '_webshimsLib'+ (Math.round(Math.random() * 1000));
868
949
  var elementData = function(elem, key, val){
869
950
  elem = elem.jquery ? elem[0] : elem;
@@ -1225,7 +1306,7 @@ jQuery.webshims.register('dom-extend', function($, webshims, window, document, u
1225
1306
  implement: function(elem, type){
1226
1307
  var data = elementData(elem, 'implemented') || elementData(elem, 'implemented', {});
1227
1308
  if(data[type]){
1228
- webshims.info(type +' already implemented for element #'+elem.id);
1309
+ webshims.warn(type +' already implemented for element #'+elem.id);
1229
1310
  return false;
1230
1311
  }
1231
1312
  data[type] = true;
@@ -1369,6 +1450,12 @@ jQuery.webshims.register('dom-extend', function($, webshims, window, document, u
1369
1450
  shadowFocusElementData = $.data(opts.shadowFocusElement, dataID) || $.data(opts.shadowFocusElement, dataID, shadowFocusElementData);
1370
1451
  }
1371
1452
 
1453
+ $(nativeElem).on('remove', function(e){
1454
+ if (!e.originalEvent) {
1455
+ $(shadowElem).remove();
1456
+ }
1457
+ });
1458
+
1372
1459
  nativeData.hasShadow = shadowElem;
1373
1460
  shadowFocusElementData.nativeElement = shadowData.nativeElement = nativeElem;
1374
1461
  shadowFocusElementData.shadowData = shadowData.shadowData = nativeData.shadowData = {
@@ -2099,7 +2186,7 @@ if (!('sessionStorage' in window)) {window.sessionStorage = new Storage('session
2099
2186
  $.webshims.isReady('json-storage', true);
2100
2187
  };
2101
2188
  var storageCFG = $.webshims.cfg['json-storage'];
2102
- $.webshims.swfLocalStorage = {
2189
+ webshims.swfLocalStorage = {
2103
2190
  show: function(){
2104
2191
  if(storageCFG.exceededMessage){
2105
2192
  $('#swflocalstorageshim-wrapper').prepend('<div class="polyfill-exceeded-message">'+ storageCFG.exceededMessage +'</div>');
@@ -2130,14 +2217,14 @@ if (!('sessionStorage' in window)) {window.sessionStorage = new Storage('session
2130
2217
  //
2131
2218
  // };
2132
2219
 
2133
- $.webshims.ready('DOM swfmini', function(){
2220
+ webshims.ready('DOM swfmini', function(){
2134
2221
 
2135
2222
  var swfmini = window.swfmini;
2136
2223
  if(runStart || (('localStorage' in window) && document.getElementById('swflocalstorageshim')) ){return;}
2137
2224
  runStart = true;
2138
2225
  if(swfmini && swfmini.hasFlashPlayerVersion('8.0.0')){
2139
2226
  $('body').append('<div id="swflocalstorageshim-wrapper"><div id="swflocalstorageshim" /></div>');
2140
- swfmini.embedSWF($.webshims.cfg.basePath +'swf/localStorage.swf' +($.webshims.cfg.addCacheBuster || ''), 'swflocalstorageshim', '295', '198', '8.0.0', null, {allowscriptaccess: 'always'}, {name: 'swflocalstorageshim'}, function(e){
2227
+ swfmini.embedSWF(webshims.cfg.basePath +'swf/localStorage.swf' +(webshims.cfg.addCacheBuster || ''), 'swflocalstorageshim', '295', '198', '8.0.0', null, {allowscriptaccess: 'always'}, {name: 'swflocalstorageshim'}, function(e){
2141
2228
  if(!e.success && !window.localStorage){
2142
2229
  localStorageSwfCallback();
2143
2230
  }
@@ -2145,7 +2232,7 @@ if (!('sessionStorage' in window)) {window.sessionStorage = new Storage('session
2145
2232
  clearTimeout(swfTimer);
2146
2233
  swfTimer = setTimeout(function(){
2147
2234
  if(!('localStorage' in window)){
2148
- $.webshims.warn('Add your development-directory to the local-trusted security sandbox: http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html');
2235
+ webshims.warn('Add your development-directory to the local-trusted security sandbox: http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html');
2149
2236
  }
2150
2237
  localStorageSwfCallback();
2151
2238
  }, (location.protocol.indexOf('file') === 0) ? 500 : 9999);