webshims-rails 1.10.9 → 1.10.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (71) hide show
  1. checksums.yaml +8 -8
  2. data/lib/webshims-rails/version.rb +2 -2
  3. data/vendor/assets/javascripts/webshims/polyfiller.js +8 -9
  4. data/vendor/assets/javascripts/webshims/shims/combos/1.js +24 -14
  5. data/vendor/assets/javascripts/webshims/shims/combos/10.js +61 -20
  6. data/vendor/assets/javascripts/webshims/shims/combos/11.js +54 -16
  7. data/vendor/assets/javascripts/webshims/shims/combos/12.js +9 -13
  8. data/vendor/assets/javascripts/webshims/shims/combos/13.js +8 -12
  9. data/vendor/assets/javascripts/webshims/shims/combos/14.js +10 -7
  10. data/vendor/assets/javascripts/webshims/shims/combos/15.js +40 -11
  11. data/vendor/assets/javascripts/webshims/shims/combos/16.js +49 -24
  12. data/vendor/assets/javascripts/webshims/shims/combos/17.js +128 -19
  13. data/vendor/assets/javascripts/webshims/shims/combos/18.js +131 -22
  14. data/vendor/assets/javascripts/webshims/shims/combos/19.js +133 -40
  15. data/vendor/assets/javascripts/webshims/shims/combos/2.js +31 -18
  16. data/vendor/assets/javascripts/webshims/shims/combos/20.js +132 -39
  17. data/vendor/assets/javascripts/webshims/shims/combos/21.js +116 -22
  18. data/vendor/assets/javascripts/webshims/shims/combos/23.js +9 -13
  19. data/vendor/assets/javascripts/webshims/shims/combos/24.js +48 -13
  20. data/vendor/assets/javascripts/webshims/shims/combos/25.js +133 -40
  21. data/vendor/assets/javascripts/webshims/shims/combos/26.js +7 -4
  22. data/vendor/assets/javascripts/webshims/shims/combos/27.js +1 -1
  23. data/vendor/assets/javascripts/webshims/shims/combos/28.js +121 -24
  24. data/vendor/assets/javascripts/webshims/shims/combos/29.js +4 -6
  25. data/vendor/assets/javascripts/webshims/shims/combos/3.js +30 -6
  26. data/vendor/assets/javascripts/webshims/shims/combos/30.js +30 -6
  27. data/vendor/assets/javascripts/webshims/shims/combos/31.js +22 -5
  28. data/vendor/assets/javascripts/webshims/shims/combos/4.js +15 -5
  29. data/vendor/assets/javascripts/webshims/shims/combos/5.js +128 -19
  30. data/vendor/assets/javascripts/webshims/shims/combos/6.js +128 -19
  31. data/vendor/assets/javascripts/webshims/shims/combos/7.js +39 -19
  32. data/vendor/assets/javascripts/webshims/shims/combos/8.js +39 -19
  33. data/vendor/assets/javascripts/webshims/shims/combos/9.js +61 -20
  34. data/vendor/assets/javascripts/webshims/shims/dom-extend.js +7 -4
  35. data/vendor/assets/javascripts/webshims/shims/es5.js +3 -3
  36. data/vendor/assets/javascripts/webshims/shims/form-core.js +15 -1
  37. data/vendor/assets/javascripts/webshims/shims/form-message.js +8 -1
  38. data/vendor/assets/javascripts/webshims/shims/form-number-date-api.js +74 -3
  39. data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +53 -15
  40. data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +10 -5
  41. data/vendor/assets/javascripts/webshims/shims/form-validation.js +48 -13
  42. data/vendor/assets/javascripts/webshims/shims/forms-picker.js +14 -2
  43. data/vendor/assets/javascripts/webshims/shims/geolocation.js +2 -2
  44. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ar.js +2 -2
  45. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ch-ZN.js +2 -2
  46. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-de.txt +2 -2
  47. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-el.js +2 -2
  48. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-en.txt +2 -2
  49. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-es.js +2 -2
  50. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-fr.js +2 -2
  51. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-he.js +2 -2
  52. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-hi.js +2 -2
  53. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-hu.js +2 -2
  54. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-it.js +2 -2
  55. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ja.js +2 -2
  56. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-lt.js +7 -4
  57. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-nl.js +2 -2
  58. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-pl.js +106 -0
  59. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-pt-PT.js +2 -2
  60. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-ru.js +2 -2
  61. data/vendor/assets/javascripts/webshims/shims/i18n/formcfg-sv.js +2 -2
  62. data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +8 -12
  63. data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +114 -20
  64. data/vendor/assets/javascripts/webshims/shims/mediaelement-yt.js +132 -17
  65. data/vendor/assets/javascripts/webshims/shims/range-ui.js +1 -1
  66. data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +38 -3
  67. data/vendor/assets/javascripts/webshims/shims/styles/shim.css +42 -13
  68. data/vendor/assets/javascripts/webshims/shims/swf/JarisFLVPlayer.swf +0 -0
  69. data/vendor/assets/javascripts/webshims/shims/swfmini.js +1 -1
  70. data/vendor/assets/javascripts/webshims/shims/track-ui.js +4 -6
  71. metadata +3 -2
@@ -8,7 +8,7 @@ var swfmini = function() {
8
8
 
9
9
  var UNDEF = "undefined",
10
10
  OBJECT = "object",
11
- webshims = jQuery.webshims || window.webshims,
11
+ 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",
@@ -1205,11 +1205,11 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
1205
1205
  }
1206
1206
 
1207
1207
  if(opts){
1208
- o.options = jQuery.extend(true, {}, o.options || {}, opts);
1208
+ o.options = $.extend(true, {}, o.options || {}, opts);
1209
1209
  opts = o.options;
1210
1210
  }
1211
1211
 
1212
- if(o._create && jQuery.isFunction(o._create)){
1212
+ if(o._create && $.isFunction(o._create)){
1213
1213
  o._create(opts);
1214
1214
  }
1215
1215
  return o;
@@ -1295,7 +1295,7 @@ if((!advancedObjectProperties || !Object.create || !Object.defineProperties || !
1295
1295
  };
1296
1296
 
1297
1297
  }
1298
- })(jQuery, jQuery.webshims);
1298
+ })(webshims.$, webshims);
1299
1299
 
1300
1300
 
1301
1301
 
@@ -1313,14 +1313,14 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1313
1313
  webshims.error("Webshims needs jQuery 1.8+ to work properly. Please update your jQuery version or downgrade webshims.");
1314
1314
  }
1315
1315
 
1316
- if(webshims.cfg.extendNative == 1){
1316
+ if(webshims.cfg.extendNative === 1){
1317
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");
1318
1318
  }
1319
1319
 
1320
1320
  if (!webshims.cfg.no$Switch) {
1321
1321
  var switch$ = function(){
1322
1322
  if (window.jQuery && (!window.$ || window.jQuery == window.$) && !window.jQuery.webshims) {
1323
- webshims.error("jQuery was included more than once. Make sure to include it only once or try the $.noConflict(extreme) feature! Webshims and other Plugins might not work properly..");
1323
+ webshims.error("jQuery was included more than once. Make sure to include it only once or try the $.noConflict(extreme) feature! Webshims and other Plugins might not work properly. Or set webshims.cfg.no$Switch to 'true'.");
1324
1324
  if (window.$) {
1325
1325
  window.$ = webshims.$;
1326
1326
  }
@@ -1862,6 +1862,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1862
1862
  setInterval(this.test, 600);
1863
1863
  $(this.test);
1864
1864
  webshims.ready('WINDOWLOAD', this.test);
1865
+ $(document).on('updatelayout', this.handler);
1865
1866
  $(window).bind('resize', this.handler);
1866
1867
  (function(){
1867
1868
  var oldAnimate = $.fn.animate;
@@ -1909,7 +1910,9 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1909
1910
 
1910
1911
  $(nativeElem).on('remove', function(e){
1911
1912
  if (!e.originalEvent) {
1912
- $(shadowElem).remove();
1913
+ setTimeout(function(){
1914
+ $(shadowElem).remove();
1915
+ }, 4);
1913
1916
  }
1914
1917
  });
1915
1918
 
@@ -2387,10 +2390,11 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
2387
2390
  }
2388
2391
  });
2389
2392
 
2390
- })(jQuery, document);
2393
+ })(webshims.$, document);
2391
2394
 
2392
- (function($, Modernizr, webshims){
2395
+ (function(Modernizr, webshims){
2393
2396
  "use strict";
2397
+ var $ = webshims.$;
2394
2398
  var hasNative = Modernizr.audio && Modernizr.video;
2395
2399
  var supportsLoop = false;
2396
2400
  var bugs = webshims.bugs;
@@ -2494,6 +2498,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2494
2498
  hasSwf = swfmini.hasFlashPlayerVersion('9.0.115');
2495
2499
  $('html').addClass(hasSwf ? 'swf' : 'no-swf');
2496
2500
  var mediaelement = webshims.mediaelement;
2501
+
2497
2502
  mediaelement.parseRtmp = function(data){
2498
2503
  var src = data.src.split('://');
2499
2504
  var paths = src[1].split('/');
@@ -2663,7 +2668,6 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2663
2668
  var src = getSrcObj(mediaElem, nodeName);
2664
2669
 
2665
2670
  if(!src.src){
2666
-
2667
2671
  $('source', mediaElem).each(function(){
2668
2672
  src = getSrcObj(this, nodeName);
2669
2673
  if(src.src){srces.push(src);}
@@ -2678,18 +2682,10 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2678
2682
  srces = [srces];
2679
2683
  }
2680
2684
  srces.forEach(function(src){
2681
- var source = document.createElement('source');
2682
2685
  if(typeof src == 'string'){
2683
2686
  src = {src: src};
2684
2687
  }
2685
- source.setAttribute('src', src.src);
2686
- if(src.type){
2687
- source.setAttribute('type', src.type);
2688
- }
2689
- if(src.media){
2690
- source.setAttribute('media', src.media);
2691
- }
2692
- mediaElem.append(source);
2688
+ mediaElem.append($(document.createElement('source')).attr(src));
2693
2689
  });
2694
2690
 
2695
2691
  }
@@ -2837,6 +2833,9 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2837
2833
 
2838
2834
  if(!_srces.length || !parent || parent.nodeType != 1 || stopParent.test(parent.nodeName || '')){return;}
2839
2835
  data = data || webshims.data(elem, 'mediaelement');
2836
+ if(mediaelement.sortMedia){
2837
+ _srces.sort(mediaelement.sortMedia);
2838
+ }
2840
2839
  stepSources(elem, data, options.preferFlash || undefined, _srces);
2841
2840
  };
2842
2841
  mediaelement.selectSource = selectSource;
@@ -3011,7 +3010,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
3011
3010
  }
3012
3011
  webshims.ready('track', loadTrackUi);
3013
3012
  });
3014
- })(jQuery, Modernizr, webshims);
3013
+ })(Modernizr, webshims);
3015
3014
  webshims.register('mediaelement-jaris', function($, webshims, window, document, undefined, options){
3016
3015
  "use strict";
3017
3016
 
@@ -3452,20 +3451,84 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
3452
3451
  };
3453
3452
  })();
3454
3453
 
3454
+
3455
+ var transformDimension = (function(){
3456
+ var dimCache = {};
3457
+ var getRealDims = function(data){
3458
+ var ret, poster, img;
3459
+ if(dimCache[data.currentSrc]){
3460
+ ret = dimCache[data.currentSrc];
3461
+ } else if(data.videoHeight && data.videoWidth){
3462
+ dimCache[data.currentSrc] = {
3463
+ width: data.videoWidth,
3464
+ height: data.videoHeight
3465
+ };
3466
+ ret = dimCache[data.currentSrc];
3467
+ } else if((poster = $.attr(data._elem, 'poster'))){
3468
+ ret = dimCache[poster];
3469
+ if(!ret){
3470
+ img = document.createElement('img');
3471
+ img.onload = function(){
3472
+ dimCache[poster] = {
3473
+ width: this.width,
3474
+ height: this.height
3475
+ };
3476
+
3477
+ if(dimCache[poster].height && dimCache[poster].width){
3478
+ setElementDimension(data, $.prop(data._elem, 'controls'));
3479
+ } else {
3480
+ delete dimCache[poster];
3481
+ }
3482
+ };
3483
+ img.src = poster;
3484
+ if(img.complete){
3485
+ img.onload();
3486
+ }
3487
+ }
3488
+ }
3489
+ return ret || {width: 300, height: data._elemNodeName == 'video' ? 150 : 50};
3490
+ };
3491
+ return function(data){
3492
+ var realDims, ratio;
3493
+ var ret = data.elemDimensions;
3494
+
3495
+ if(ret.width == 'auto' || ret.height == 'auto'){
3496
+ ret = $.extend({}, data.elemDimensions);
3497
+ realDims = getRealDims(data);
3498
+ ratio = realDims.width / realDims.height;
3499
+
3500
+ if(ret.width == 'auto' && ret.height == 'auto'){
3501
+ ret = realDims;
3502
+ } else if(ret.width == 'auto'){
3503
+ data.shadowElem.css({height: ret.height});
3504
+ ret.width = data.shadowElem.height() * ratio;
3505
+ } else {
3506
+ data.shadowElem.css({width: ret.width});
3507
+ ret.height = data.shadowElem.width() / ratio;
3508
+ }
3509
+ }
3510
+ return ret;
3511
+ };
3512
+ })();
3455
3513
  var setElementDimension = function(data, hasControls){
3456
- var cAttr;
3514
+ var dims;
3457
3515
  var elem = data._elem;
3458
3516
  var box = data.shadowElem;
3459
-
3460
3517
  $(elem)[hasControls ? 'addClass' : 'removeClass']('webshims-controls');
3461
- if(data._elemNodeName == 'audio' && !hasControls){
3462
- box.css({width: 0, height: 0});
3463
- } else {
3464
-
3465
- box.css({
3466
- width: elem.style.width || ((cAttr = $(elem).attr('width')) && cAttr+'px') || $(elem).width(),
3467
- height: elem.style.height|| ((cAttr = $(elem).attr('height')) && cAttr+'px') || $(elem).height()
3468
- });
3518
+
3519
+ if(data.isActive == 'third'){
3520
+ if(data._elemNodeName == 'audio' && !hasControls){
3521
+ box.css({width: 0, height: 0});
3522
+ } else {
3523
+ data.elemDimensions = {
3524
+ width: elem.style.width || $.attr(elem, 'width') || $(elem).width(),
3525
+ height: elem.style.height || $.attr(elem, 'height') || $(elem).height()
3526
+ };
3527
+ dims = transformDimension(data);
3528
+ dims.minWidth = elem.style.minWidth;
3529
+ dims.minHeight = elem.style.minHeight;
3530
+ box.css(dims);
3531
+ }
3469
3532
  }
3470
3533
  };
3471
3534
 
@@ -3493,6 +3556,27 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
3493
3556
  replaceVar = function(val){
3494
3557
  return (val.replace) ? val.replace(regs.A, '%26').replace(regs.a, '%26').replace(regs.e, '%3D').replace(regs.q, '%3F') : val;
3495
3558
  };
3559
+
3560
+ if('matchMedia' in window){
3561
+ var allowMediaSorting = false;
3562
+ try {
3563
+ allowMediaSorting = window.matchMedia('only all').matches;
3564
+ } catch(er){}
3565
+ if(allowMediaSorting){
3566
+ mediaelement.sortMedia = function(src1, src2){
3567
+ try {
3568
+ src1 = !src1.media || matchMedia( src1.media ).matches;
3569
+ src2 = !src2.media || matchMedia( src2.media ).matches;
3570
+ } catch(er){
3571
+ return 0;
3572
+ }
3573
+ return src1 == src2 ?
3574
+ 0 :
3575
+ src1 ? -1
3576
+ : 1;
3577
+ };
3578
+ }
3579
+ }
3496
3580
 
3497
3581
  mediaelement.createSWF = function( elem, canPlaySrc, data ){
3498
3582
  if(!hasFlash){
@@ -3544,7 +3628,9 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
3544
3628
  $(elem).data('attrs')
3545
3629
  );
3546
3630
  var setDimension = function(){
3547
- setElementDimension(data, $.prop(elem, 'controls'));
3631
+ if(data.isActive == 'third'){
3632
+ setElementDimension(data, $.prop(elem, 'controls'));
3633
+ }
3548
3634
  };
3549
3635
 
3550
3636
  var box;
@@ -3610,7 +3696,7 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
3610
3696
  }
3611
3697
  }));
3612
3698
 
3613
- setElementDimension(data, hasControls);
3699
+
3614
3700
 
3615
3701
  box.insertBefore(elem);
3616
3702
 
@@ -3626,17 +3712,20 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
3626
3712
 
3627
3713
  mediaelement.setActive(elem, 'third', data);
3628
3714
 
3715
+ setElementDimension(data, hasControls);
3716
+
3629
3717
  $(elem)
3630
- .on({'updatemediaelementdimensions': setDimension})
3631
- .onWSOff('updateshadowdom', setDimension)
3632
- .on('remove', function(e){
3633
- if(!e.originalEvent && mediaelement.jarisEvent[data.id] && mediaelement.jarisEvent[data.id].elem == elem){
3634
- delete mediaelement.jarisEvent[data.id];
3635
- clearTimeout(localConnectionTimer);
3636
- clearTimeout(data.flashBlock);
3718
+ .on({
3719
+ 'updatemediaelementdimensions loadedmetadata emptied': setDimension,
3720
+ 'remove': function(e){
3721
+ if(!e.originalEvent && mediaelement.jarisEvent[data.id] && mediaelement.jarisEvent[data.id].elem == elem){
3722
+ delete mediaelement.jarisEvent[data.id];
3723
+ clearTimeout(localConnectionTimer);
3724
+ clearTimeout(data.flashBlock);
3725
+ }
3637
3726
  }
3638
- box.remove();
3639
3727
  })
3728
+ .onWSOff('updateshadowdom', setDimension)
3640
3729
  ;
3641
3730
  }
3642
3731
 
@@ -3942,6 +4031,8 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
3942
4031
  limitedTo: ['', 'auto', 'metadata', 'none']
3943
4032
  });
3944
4033
 
4034
+ webshims.reflectProperties('source', ['type', 'media']);
4035
+
3945
4036
 
3946
4037
  ['autoplay', 'controls'].forEach(function(name){
3947
4038
  webshims.defineNodeNamesBooleanProperty(['audio', 'video'], name);
@@ -3977,6 +4068,8 @@ webshims.register('mediaelement-jaris', function($, webshims, window, document,
3977
4068
  }
3978
4069
 
3979
4070
  }, 'prop');
4071
+ } else if(!('media' in document.createElement('source'))){
4072
+ webshims.reflectProperties('source', ['media']);
3980
4073
  }
3981
4074
 
3982
4075
  });
@@ -8,7 +8,7 @@ var swfmini = function() {
8
8
 
9
9
  var UNDEF = "undefined",
10
10
  OBJECT = "object",
11
- webshims = jQuery.webshims || window.webshims,
11
+ 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",
@@ -510,14 +510,14 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
510
510
  webshims.error("Webshims needs jQuery 1.8+ to work properly. Please update your jQuery version or downgrade webshims.");
511
511
  }
512
512
 
513
- if(webshims.cfg.extendNative == 1){
513
+ if(webshims.cfg.extendNative === 1){
514
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");
515
515
  }
516
516
 
517
517
  if (!webshims.cfg.no$Switch) {
518
518
  var switch$ = function(){
519
519
  if (window.jQuery && (!window.$ || window.jQuery == window.$) && !window.jQuery.webshims) {
520
- webshims.error("jQuery was included more than once. Make sure to include it only once or try the $.noConflict(extreme) feature! Webshims and other Plugins might not work properly..");
520
+ webshims.error("jQuery was included more than once. Make sure to include it only once or try the $.noConflict(extreme) feature! Webshims and other Plugins might not work properly. Or set webshims.cfg.no$Switch to 'true'.");
521
521
  if (window.$) {
522
522
  window.$ = webshims.$;
523
523
  }
@@ -1059,6 +1059,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1059
1059
  setInterval(this.test, 600);
1060
1060
  $(this.test);
1061
1061
  webshims.ready('WINDOWLOAD', this.test);
1062
+ $(document).on('updatelayout', this.handler);
1062
1063
  $(window).bind('resize', this.handler);
1063
1064
  (function(){
1064
1065
  var oldAnimate = $.fn.animate;
@@ -1106,7 +1107,9 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1106
1107
 
1107
1108
  $(nativeElem).on('remove', function(e){
1108
1109
  if (!e.originalEvent) {
1109
- $(shadowElem).remove();
1110
+ setTimeout(function(){
1111
+ $(shadowElem).remove();
1112
+ }, 4);
1110
1113
  }
1111
1114
  });
1112
1115
 
@@ -1584,7 +1587,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
1584
1587
  }
1585
1588
  });
1586
1589
 
1587
- })(jQuery, document);
1590
+ })(webshims.$, document);
1588
1591
 
1589
1592
  webshims.register('form-core', function($, webshims, window, document, undefined, options){
1590
1593
  "use strict";
@@ -1663,6 +1666,7 @@ webshims.register('form-core', function($, webshims, window, document, undefined
1663
1666
  $.expr[":"][name] = $.expr.filters[name+"-element"];
1664
1667
  });
1665
1668
 
1669
+ //bug was partially fixed in 1.10.0 for IE9, but not IE8 (move to es5 as soon as 1.10.2 is used)
1666
1670
  var pseudoFocus = $.expr[":"].focus;
1667
1671
  $.expr[":"].focus = function(){
1668
1672
  try {
@@ -1685,10 +1689,18 @@ webshims.register('form-core', function($, webshims, window, document, undefined
1685
1689
  };
1686
1690
 
1687
1691
  var transClass = ('transitionDelay' in document.documentElement.style) ? '' : ' no-transition';
1692
+ var poCFG = webshims.cfg.wspopover;
1693
+ if(!poCFG.position && poCFG.position !== false){
1694
+ poCFG.position = {
1695
+ at: 'left bottom',
1696
+ my: 'left top',
1697
+ collision: 'fit flip'
1698
+ };
1699
+ }
1688
1700
  webshims.wsPopover = {
1689
1701
  id: 0,
1690
1702
  _create: function(){
1691
- this.options = $.extend({}, webshims.cfg.wspopover, this.options);
1703
+ this.options = $.extend(true, {}, poCFG, this.options);
1692
1704
  this.id = webshims.wsPopover.id++;
1693
1705
  this.eventns = '.wsoverlay' + this.id;
1694
1706
  this.timers = {};
@@ -1735,6 +1747,11 @@ webshims.register('form-core', function($, webshims, window, document, undefined
1735
1747
  var message = $(elem).data('errormessage') || elem.getAttribute('x-moz-errormessage') || '';
1736
1748
  if(key && message[key]){
1737
1749
  message = message[key];
1750
+ } else if(message) {
1751
+ validity = validity || $.prop(elem, 'validity') || {valid: 1};
1752
+ if(validity.valid){
1753
+ message = '';
1754
+ }
1738
1755
  }
1739
1756
  if(typeof message == 'object'){
1740
1757
  validity = validity || $.prop(elem, 'validity') || {valid: 1};
@@ -2112,8 +2129,9 @@ webshims.register('form-datalist', function($, webshims, window, document, undef
2112
2129
  })();
2113
2130
 
2114
2131
  });
2115
- (function($, Modernizr, webshims){
2132
+ (function(Modernizr, webshims){
2116
2133
  "use strict";
2134
+ var $ = webshims.$;
2117
2135
  var hasNative = Modernizr.audio && Modernizr.video;
2118
2136
  var supportsLoop = false;
2119
2137
  var bugs = webshims.bugs;
@@ -2217,6 +2235,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2217
2235
  hasSwf = swfmini.hasFlashPlayerVersion('9.0.115');
2218
2236
  $('html').addClass(hasSwf ? 'swf' : 'no-swf');
2219
2237
  var mediaelement = webshims.mediaelement;
2238
+
2220
2239
  mediaelement.parseRtmp = function(data){
2221
2240
  var src = data.src.split('://');
2222
2241
  var paths = src[1].split('/');
@@ -2386,7 +2405,6 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2386
2405
  var src = getSrcObj(mediaElem, nodeName);
2387
2406
 
2388
2407
  if(!src.src){
2389
-
2390
2408
  $('source', mediaElem).each(function(){
2391
2409
  src = getSrcObj(this, nodeName);
2392
2410
  if(src.src){srces.push(src);}
@@ -2401,18 +2419,10 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2401
2419
  srces = [srces];
2402
2420
  }
2403
2421
  srces.forEach(function(src){
2404
- var source = document.createElement('source');
2405
2422
  if(typeof src == 'string'){
2406
2423
  src = {src: src};
2407
2424
  }
2408
- source.setAttribute('src', src.src);
2409
- if(src.type){
2410
- source.setAttribute('type', src.type);
2411
- }
2412
- if(src.media){
2413
- source.setAttribute('media', src.media);
2414
- }
2415
- mediaElem.append(source);
2425
+ mediaElem.append($(document.createElement('source')).attr(src));
2416
2426
  });
2417
2427
 
2418
2428
  }
@@ -2560,6 +2570,9 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2560
2570
 
2561
2571
  if(!_srces.length || !parent || parent.nodeType != 1 || stopParent.test(parent.nodeName || '')){return;}
2562
2572
  data = data || webshims.data(elem, 'mediaelement');
2573
+ if(mediaelement.sortMedia){
2574
+ _srces.sort(mediaelement.sortMedia);
2575
+ }
2563
2576
  stepSources(elem, data, options.preferFlash || undefined, _srces);
2564
2577
  };
2565
2578
  mediaelement.selectSource = selectSource;
@@ -2734,4 +2747,4 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
2734
2747
  }
2735
2748
  webshims.ready('track', loadTrackUi);
2736
2749
  });
2737
- })(jQuery, Modernizr, webshims);
2750
+ })(Modernizr, webshims);