webshims-rails 1.12.3 → 1.12.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/lib/webshims-rails/version.rb +2 -2
  3. data/vendor/assets/javascripts/webshims/polyfiller.js +75 -31
  4. data/vendor/assets/javascripts/webshims/shims/color-picker.js +14 -14
  5. data/vendor/assets/javascripts/webshims/shims/combos/1.js +83 -459
  6. data/vendor/assets/javascripts/webshims/shims/combos/10.js +92 -69
  7. data/vendor/assets/javascripts/webshims/shims/combos/11.js +90 -54
  8. data/vendor/assets/javascripts/webshims/shims/combos/12.js +104 -494
  9. data/vendor/assets/javascripts/webshims/shims/combos/13.js +66 -228
  10. data/vendor/assets/javascripts/webshims/shims/combos/14.js +2 -0
  11. data/vendor/assets/javascripts/webshims/shims/combos/15.js +42 -40
  12. data/vendor/assets/javascripts/webshims/shims/combos/16.js +105 -494
  13. data/vendor/assets/javascripts/webshims/shims/combos/17.js +90 -54
  14. data/vendor/assets/javascripts/webshims/shims/combos/18.js +90 -54
  15. data/vendor/assets/javascripts/webshims/shims/combos/19.js +123 -471
  16. data/vendor/assets/javascripts/webshims/shims/combos/2.js +85 -474
  17. data/vendor/assets/javascripts/webshims/shims/combos/20.js +85 -205
  18. data/vendor/assets/javascripts/webshims/shims/combos/21.js +103 -45
  19. data/vendor/assets/javascripts/webshims/shims/combos/22.js +41 -40
  20. data/vendor/assets/javascripts/webshims/shims/combos/23.js +63 -454
  21. data/vendor/assets/javascripts/webshims/shims/combos/24.js +52 -36
  22. data/vendor/assets/javascripts/webshims/shims/combos/25.js +123 -471
  23. data/vendor/assets/javascripts/webshims/shims/combos/26.js +2 -15
  24. data/vendor/assets/javascripts/webshims/shims/combos/27.js +38 -266
  25. data/vendor/assets/javascripts/webshims/shims/combos/28.js +20 -20
  26. data/vendor/assets/javascripts/webshims/shims/combos/3.js +24 -20
  27. data/vendor/assets/javascripts/webshims/shims/combos/30.js +24 -20
  28. data/vendor/assets/javascripts/webshims/shims/combos/31.js +22 -20
  29. data/vendor/assets/javascripts/webshims/shims/combos/4.js +4 -15
  30. data/vendor/assets/javascripts/webshims/shims/combos/5.js +90 -54
  31. data/vendor/assets/javascripts/webshims/shims/combos/6.js +90 -54
  32. data/vendor/assets/javascripts/webshims/shims/combos/7.js +87 -474
  33. data/vendor/assets/javascripts/webshims/shims/combos/8.js +87 -474
  34. data/vendor/assets/javascripts/webshims/shims/combos/9.js +92 -69
  35. data/vendor/assets/javascripts/webshims/shims/combos/99.js +1724 -0
  36. data/vendor/assets/javascripts/webshims/shims/dom-extend.js +2 -15
  37. data/vendor/assets/javascripts/webshims/shims/form-core.js +19 -4
  38. data/vendor/assets/javascripts/webshims/shims/form-datalist-lazy.js +39 -5
  39. data/vendor/assets/javascripts/webshims/shims/form-message.js +2 -0
  40. data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +69 -37
  41. data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +18 -20
  42. data/vendor/assets/javascripts/webshims/shims/form-shim-extend2.js +34 -16
  43. data/vendor/assets/javascripts/webshims/shims/form-validation.js +12 -9
  44. data/vendor/assets/javascripts/webshims/shims/form-validators.js +21 -5
  45. data/vendor/assets/javascripts/webshims/shims/forms-picker.js +16 -13
  46. data/vendor/assets/javascripts/webshims/shims/geolocation.js +3 -3
  47. data/vendor/assets/javascripts/webshims/shims/jajax.js +1262 -0
  48. data/vendor/assets/javascripts/webshims/shims/jme/b.js +576 -0
  49. data/vendor/assets/javascripts/webshims/shims/jme/c.js +1148 -0
  50. data/vendor/assets/javascripts/webshims/shims/jme/controls.css +373 -0
  51. data/vendor/assets/javascripts/webshims/shims/jme/controls.scss +711 -0
  52. data/vendor/assets/javascripts/webshims/shims/jme/jme.eot +0 -0
  53. data/vendor/assets/javascripts/webshims/shims/jme/jme.svg +36 -0
  54. data/vendor/assets/javascripts/webshims/shims/jme/jme.ttf +0 -0
  55. data/vendor/assets/javascripts/webshims/shims/jme/jme.woff +0 -0
  56. data/vendor/assets/javascripts/webshims/shims/jpicker/jpicker.css +16 -18
  57. data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +25 -188
  58. data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +58 -2
  59. data/vendor/assets/javascripts/webshims/shims/mediaelement-native-fix.js +130 -66
  60. data/vendor/assets/javascripts/webshims/shims/range-ui.js +21 -17
  61. data/vendor/assets/javascripts/webshims/shims/sizzle.js +1634 -1613
  62. data/vendor/assets/javascripts/webshims/shims/styles/forms-ext.css +5 -5
  63. data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +5 -1
  64. data/vendor/assets/javascripts/webshims/shims/styles/shim.css +13 -9
  65. data/vendor/assets/javascripts/webshims/shims/swfmini-embed.js +136 -0
  66. data/vendor/assets/javascripts/webshims/shims/swfmini.js +38 -266
  67. data/vendor/assets/javascripts/webshims/shims/track-ui.js +1 -3
  68. data/vendor/assets/javascripts/webshims/shims/track.js +41 -40
  69. metadata +13 -2
@@ -96,22 +96,18 @@ var isPlaceholderOptionSelected = function(select){
96
96
  var emptyJ = $([]);
97
97
  var getGroupElements = function(elem){
98
98
  elem = $(elem);
99
- var name;
100
- var form;
99
+ var name, form;
101
100
  var ret = emptyJ;
102
101
  if(elem[0].type == 'radio'){
103
- form = elem.prop('form');
104
102
  name = elem[0].name;
105
103
  if(!name){
106
104
  ret = elem;
107
- } else if(form){
108
- ret = $(form[name]);
109
105
  } else {
106
+ form = elem.prop('form');
110
107
  ret = $(document.getElementsByName(name)).filter(function(){
111
- return !$.prop(this, 'form');
108
+ return this.type == 'radio' && this.name == name && $.prop(this, 'form') == form;
112
109
  });
113
110
  }
114
- ret = ret.filter('[type="radio"]');
115
111
  }
116
112
  return ret;
117
113
  };
@@ -488,21 +484,23 @@ webshims.defineNodeNameProperty('form', 'noValidate', {
488
484
  }
489
485
  });
490
486
 
491
- webshims.defineNodeNamesProperty(['input', 'textarea'], 'minLength', {
492
- prop: {
493
- set: function(val){
494
- val *= 1;
495
- if(val < 0){
496
- throw('INDEX_SIZE_ERR');
487
+ ['minlength', 'minLength'].forEach(function(propName){
488
+ webshims.defineNodeNamesProperty(['input', 'textarea'], propName, {
489
+ prop: {
490
+ set: function(val){
491
+ val *= 1;
492
+ if(val < 0){
493
+ throw('INDEX_SIZE_ERR');
494
+ }
495
+ this.setAttribute('minlength', val || 0);
496
+ },
497
+ get: function(){
498
+ var val = this.getAttribute('minlength');
499
+ return val == null ? -1 : (val * 1) || 0;
497
500
  }
498
- this.setAttribute('minlength', val || 0);
499
- },
500
- get: function(){
501
- var val = this.getAttribute('minlength');
502
- return val == null ? -1 : (val * 1) || 0;
503
501
  }
504
- }
505
- })
502
+ });
503
+ });
506
504
 
507
505
  if(Modernizr.inputtypes.date && /webkit/i.test(navigator.userAgent)){
508
506
  (function(){
@@ -862,7 +860,7 @@ webshims.defineNodeNamesBooleanProperty(['input', 'textarea', 'select'], 'requir
862
860
  set: function(value){
863
861
  $(this).getShadowFocusElement().attr('aria-required', !!(value)+'');
864
862
  },
865
- initAttr: Modernizr.localstorage //only if we have aria-support
863
+ initAttr: true
866
864
  });
867
865
 
868
866
  webshims.reflectProperties(['input'], ['pattern']);
@@ -1738,8 +1736,7 @@ if(!('setSelectionRange' in document.createElement('input'))){
1738
1736
  return $( hasLabel(elem) ? '<span class="placeholder-text"></span>' : '<label for="'+ elem.prop('id') +'" class="placeholder-text"></label>');
1739
1737
  },
1740
1738
  pHolder = (function(){
1741
- var delReg = /\n|\r|\f|\t/g,
1742
- allowedPlaceholder = {
1739
+ var allowedPlaceholder = {
1743
1740
  text: 1,
1744
1741
  search: 1,
1745
1742
  url: 1,
@@ -1807,20 +1804,39 @@ if(!('setSelectionRange' in document.createElement('input'))){
1807
1804
  var size = (parseInt($.css(elem, 'padding'+ side), 10) || 0) + Math.max((parseInt($.css(elem, 'margin'+ side), 10) || 0), 0) + (parseInt($.css(elem, 'border'+ side +'Width'), 10) || 0);
1808
1805
  data.text.css('padding'+ side, size);
1809
1806
  });
1810
-
1807
+
1811
1808
  $(elem)
1812
- .onWSOff('updateshadowdom', function(){
1813
- var height, width;
1814
- if((width = elem.offsetWidth) || (height = elem.offsetHeight)){
1815
- data.text
1816
- .css({
1817
- width: width,
1818
- height: height
1819
- })
1820
- .css($(elem).position())
1821
- ;
1822
- }
1823
- }, true)
1809
+ .onWSOff('updateshadowdom', (function(){
1810
+ var lastWidth, init, timer;
1811
+ var jelm = $(elem);
1812
+ var lastPos = {};
1813
+ return function(){
1814
+ var width, fn;
1815
+
1816
+ if((width = elem.offsetWidth)){
1817
+
1818
+ fn = function(){
1819
+ var pos = jelm.position();
1820
+ if(width !== lastWidth){
1821
+ lastWidth = width;
1822
+ data.text[0].style.width = width +'px';
1823
+ }
1824
+ if(pos.top !== lastPos.top || pos.left !== lastPos.left){
1825
+ lastPos = pos;
1826
+ data.text[0].style.top = pos.top +'px';
1827
+ data.text[0].style.left = pos.left +'px';
1828
+ }
1829
+ };
1830
+ if(!init){
1831
+ fn();
1832
+ init = true;
1833
+ } else {
1834
+ clearTimeout(timer);
1835
+ timer = setTimeout(fn, 99);
1836
+ }
1837
+ }
1838
+ };
1839
+ })(), true)
1824
1840
  ;
1825
1841
 
1826
1842
  } else {
@@ -5,7 +5,7 @@
5
5
  */
6
6
 
7
7
  var swfmini = function() {
8
-
8
+ var wasRemoved = function(){webshims.error('This method was removed from swfmini');};
9
9
  var UNDEF = "undefined",
10
10
  OBJECT = "object",
11
11
  webshims = window.webshims,
@@ -19,15 +19,8 @@ var swfmini = function() {
19
19
 
20
20
  plugin = false,
21
21
  domLoadFnArr = [main],
22
- objIdArr = [],
23
- listenersArr = [],
24
- storedAltContent,
25
- storedAltContentId,
26
- storedCallbackFn,
27
- storedCallbackObj,
22
+
28
23
  isDomLoaded = false,
29
- dynamicStylesheet,
30
- dynamicStylesheetMedia,
31
24
  autoHideShow = true,
32
25
 
33
26
  /* Centralized function for browser feature detection
@@ -75,11 +68,6 @@ var swfmini = function() {
75
68
 
76
69
  function callDomLoadFunctions() {
77
70
  if (isDomLoaded) { return; }
78
- try { // test if we can really add/remove elements to/from the DOM; we don't want to fire it too early
79
- var t = doc.getElementsByTagName("body")[0].appendChild(createElement("span"));
80
- t.parentNode.removeChild(t);
81
- }
82
- catch (e) { return; }
83
71
  isDomLoaded = true;
84
72
  var dl = domLoadFnArr.length;
85
73
  for (var i = 0; i < dl; i++) {
@@ -95,14 +83,7 @@ var swfmini = function() {
95
83
  domLoadFnArr[domLoadFnArr.length] = fn; // Array.push() is only available in IE5.5+
96
84
  }
97
85
  }
98
-
99
- /* Cross-browser onload
100
- - Based on James Edwards' solution: http://brothercake.com/site/resources/scripts/onload/
101
- - Will fire an event as soon as a web page including all of its assets are loaded
102
- */
103
- function addLoadEvent(fn) {
104
-
105
- }
86
+
106
87
 
107
88
  /* Main function
108
89
  - Will preferably execute onDomLoad, otherwise onload (as a fallback)
@@ -145,150 +126,13 @@ var swfmini = function() {
145
126
  })();
146
127
  }
147
128
  }
148
-
149
-
150
- function getObjectById(objectIdStr) {
151
- var r = null;
152
- var o = getElementById(objectIdStr);
153
- if (o && o.nodeName == "OBJECT") {
154
- if (typeof o.SetVariable != UNDEF) {
155
- r = o;
156
- }
157
- else {
158
- var n = o.getElementsByTagName(OBJECT)[0];
159
- if (n) {
160
- r = n;
161
- }
162
- }
163
- }
164
- return r;
165
- }
166
-
167
-
168
- /* Cross-browser dynamic SWF creation
169
- */
170
- function createSWF(attObj, parObj, id) {
171
- var r, el = getElementById(id);
172
- if (ua.wk && ua.wk < 312) { return r; }
173
- if (el) {
174
- if (typeof attObj.id == UNDEF) { // if no 'id' is defined for the object element, it will inherit the 'id' from the alternative content
175
- attObj.id = id;
176
- }
177
- if (ua.ie && ua.win) { // Internet Explorer + the HTML object element + W3C DOM methods do not combine: fall back to outerHTML
178
- var att = "";
179
- for (var i in attObj) {
180
- if (attObj[i] != Object.prototype[i]) { // filter out prototype additions from other potential libraries
181
- if (i.toLowerCase() == "data") {
182
- parObj.movie = attObj[i];
183
- }
184
- else if (i.toLowerCase() == "styleclass") { // 'class' is an ECMA4 reserved keyword
185
- att += ' class="' + attObj[i] + '"';
186
- }
187
- else if (i.toLowerCase() != "classid") {
188
- att += ' ' + i + '="' + attObj[i] + '"';
189
- }
190
- }
191
- }
192
- var par = "";
193
- for (var j in parObj) {
194
- if (parObj[j] != Object.prototype[j]) { // filter out prototype additions from other potential libraries
195
- par += '<param name="' + j + '" value="' + parObj[j] + '" />';
196
- }
197
- }
198
- el.outerHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"' + att + '>' + par + '</object>';
199
- objIdArr[objIdArr.length] = attObj.id; // stored to fix object 'leaks' on unload (dynamic publishing only)
200
- r = getElementById(attObj.id);
201
- }
202
- else { // well-behaving browsers
203
- var o = createElement(OBJECT);
204
- o.setAttribute("type", FLASH_MIME_TYPE);
205
- for (var m in attObj) {
206
- if (attObj[m] != Object.prototype[m]) { // filter out prototype additions from other potential libraries
207
- if (m.toLowerCase() == "styleclass") { // 'class' is an ECMA4 reserved keyword
208
- o.setAttribute("class", attObj[m]);
209
- }
210
- else if (m.toLowerCase() != "classid") { // filter out IE specific attribute
211
- o.setAttribute(m, attObj[m]);
212
- }
213
- }
214
- }
215
- for (var n in parObj) {
216
- if (parObj[n] != Object.prototype[n] && n.toLowerCase() != "movie") { // filter out prototype additions from other potential libraries and IE specific param element
217
- createObjParam(o, n, parObj[n]);
218
- }
219
- }
220
- el.parentNode.replaceChild(o, el);
221
- r = o;
222
- }
223
- }
224
- return r;
225
- }
226
-
227
- function createObjParam(el, pName, pValue) {
228
- var p = createElement("param");
229
- p.setAttribute("name", pName);
230
- p.setAttribute("value", pValue);
231
- el.appendChild(p);
232
- }
233
-
234
- /* Cross-browser SWF removal
235
- - Especially needed to safely and completely remove a SWF in Internet Explorer
236
- */
237
- function removeSWF(id) {
238
- var obj = getElementById(id);
239
- if (obj && obj.nodeName == "OBJECT") {
240
- if (ua.ie && ua.win) {
241
- obj.style.display = "none";
242
- (function(){
243
- if (obj.readyState == 4) {
244
- removeObjectInIE(id);
245
- }
246
- else {
247
- setTimeout(arguments.callee, 10);
248
- }
249
- })();
250
- }
251
- else {
252
- obj.parentNode.removeChild(obj);
253
- }
254
- }
255
- }
256
-
257
- function removeObjectInIE(id) {
258
- var obj = getElementById(id);
259
- if (obj) {
260
- for (var i in obj) {
261
- if (typeof obj[i] == "function") {
262
- obj[i] = null;
263
- }
264
- }
265
- obj.parentNode.removeChild(obj);
266
- }
267
- }
268
-
269
- /* Functions to optimize JavaScript compression
270
- */
271
- function getElementById(id) {
272
- var el = null;
273
- try {
274
- el = doc.getElementById(id);
275
- }
276
- catch (e) {}
277
- return el;
278
- }
129
+
279
130
 
280
131
  function createElement(el) {
281
132
  return doc.createElement(el);
282
133
  }
283
134
 
284
- /* Updated attachEvent function for Internet Explorer
285
- - Stores attachEvent information in an Array, so on unload the detachEvent functions can be called to avoid memory leaks
286
- */
287
- function addListener(target, eventType, fn) {
288
- target.attachEvent(eventType, fn);
289
- listenersArr[listenersArr.length] = [target, eventType, fn];
290
- }
291
-
135
+
292
136
  /* Flash Player and SWF content version matching
293
137
  */
294
138
  function hasPlayerVersion(rv) {
@@ -300,107 +144,43 @@ var swfmini = function() {
300
144
  }
301
145
 
302
146
 
303
-
304
- function setVisibility(id, isVisible) {
305
- if (!autoHideShow) { return; }
306
- var elem;
307
- var v = isVisible ? "visible" : "hidden";
308
- if (isDomLoaded && (elem && getElementById(id))) {
309
- getElementById(id).style.visibility = v;
310
- }
311
- }
312
147
 
313
- /* Release memory to avoid memory leaks caused by closures, fix hanging audio/video threads and force open sockets/NetConnections to disconnect (Internet Explorer only)
314
- */
315
- var cleanup = function() {
316
- if (ua.ie && ua.win && window.attachEvent) {
317
- window.attachEvent("onunload", function() {
318
- // remove listeners to avoid memory leaks
319
- var ll = listenersArr.length;
320
- for (var i = 0; i < ll; i++) {
321
- listenersArr[i][0].detachEvent(listenersArr[i][1], listenersArr[i][2]);
322
- }
323
- // cleanup dynamically embedded objects to fix audio/video threads and force open sockets and NetConnections to disconnect
324
- var il = objIdArr.length;
325
- for (var j = 0; j < il; j++) {
326
- removeSWF(objIdArr[j]);
327
- }
328
- // cleanup library's main closures to avoid memory leaks
329
- for (var k in ua) {
330
- ua[k] = null;
331
- }
332
- ua = null;
333
- for (var l in swfmini) {
334
- swfmini[l] = null;
335
- }
336
- swfmini = null;
337
- });
338
- }
339
- }();
340
-
148
+
149
+
341
150
  webshims.ready('DOM', callDomLoadFunctions);
342
-
151
+
152
+ webshims.loader.addModule('swfmini-embed', {d: ['swfmini']});
153
+ var loadEmbed = hasPlayerVersion('9.0.0') ?
154
+ function(){
155
+ webshims.loader.loadList(['swfmini-embed']);
156
+ return true;
157
+ } :
158
+ webshims.$.noop
159
+ ;
160
+
161
+ if(!Modernizr.video){
162
+ loadEmbed();
163
+ } else {
164
+ webshims.ready('WINDOWLOAD', loadEmbed);
165
+ }
166
+
343
167
  return {
344
168
  /* Public API
345
169
  - Reference: http://code.google.com/p/swfobject/wiki/documentation
346
170
  */
347
- registerObject: function() {
348
-
349
- },
171
+ registerObject: wasRemoved,
350
172
 
351
- getObjectById: function(objectIdStr) {
352
- if (ua.w3) {
353
- return getObjectById(objectIdStr);
354
- }
355
- },
173
+ getObjectById: wasRemoved,
356
174
 
357
175
  embedSWF: function(swfUrlStr, replaceElemIdStr, widthStr, heightStr, swfVersionStr, xiSwfUrlStr, flashvarsObj, parObj, attObj, callbackFn) {
358
- var callbackObj = {success:false, id:replaceElemIdStr};
359
- if (ua.w3 && !(ua.wk && ua.wk < 312) && swfUrlStr && replaceElemIdStr && widthStr && heightStr && swfVersionStr) {
360
- setVisibility(replaceElemIdStr, false);
361
- addDomLoadEvent(function() {
362
- widthStr += ""; // auto-convert to string
363
- heightStr += "";
364
- var att = {};
365
- if (attObj && typeof attObj === OBJECT) {
366
- for (var i in attObj) { // copy object to avoid the use of references, because web authors often reuse attObj for multiple SWFs
367
- att[i] = attObj[i];
368
- }
369
- }
370
- att.data = swfUrlStr;
371
- att.width = widthStr;
372
- att.height = heightStr;
373
- var par = {};
374
- if (parObj && typeof parObj === OBJECT) {
375
- for (var j in parObj) { // copy object to avoid the use of references, because web authors often reuse parObj for multiple SWFs
376
- par[j] = parObj[j];
377
- }
378
- }
379
- if (flashvarsObj && typeof flashvarsObj === OBJECT) {
380
- for (var k in flashvarsObj) { // copy object to avoid the use of references, because web authors often reuse flashvarsObj for multiple SWFs
381
- if (typeof par.flashvars != UNDEF) {
382
- par.flashvars += "&" + k + "=" + flashvarsObj[k];
383
- }
384
- else {
385
- par.flashvars = k + "=" + flashvarsObj[k];
386
- }
387
- }
388
- }
389
- if (hasPlayerVersion(swfVersionStr)) { // create SWF
390
- var obj = createSWF(att, par, replaceElemIdStr);
391
- if (att.id == replaceElemIdStr) {
392
- setVisibility(replaceElemIdStr, true);
393
- }
394
- callbackObj.success = true;
395
- callbackObj.ref = obj;
396
- }
397
- else { // show alternative content
398
- setVisibility(replaceElemIdStr, true);
399
- }
400
- if (callbackFn) { callbackFn(callbackObj); }
176
+ var args = arguments;
177
+ if(loadEmbed()){
178
+ webshims.ready('swfmini-embed', function(){
179
+ swfmini.embedSWF.apply(swfmini, args);
401
180
  });
181
+ } else if(callbackFn) {
182
+ callbackFn({success:false, id:replaceElemIdStr});
402
183
  }
403
- else if (callbackFn) { callbackFn(callbackObj); }
404
184
  },
405
185
 
406
186
  switchOffAutoHideShow: function() {
@@ -424,31 +204,23 @@ var swfmini = function() {
424
204
  }
425
205
  },
426
206
 
427
- showExpressInstall: function() {
428
-
429
- },
207
+ showExpressInstall: wasRemoved,
430
208
 
431
- removeSWF: function(objElemIdStr) {
432
- if (ua.w3) {
433
- removeSWF(objElemIdStr);
434
- }
435
- },
209
+ removeSWF: wasRemoved,
436
210
 
437
- createCSS: function() {
438
-
439
- },
211
+ createCSS: wasRemoved,
440
212
 
441
213
  addDomLoadEvent: addDomLoadEvent,
442
214
 
443
- addLoadEvent: addLoadEvent,
215
+ addLoadEvent: wasRemoved,
444
216
 
445
217
 
446
218
  // For internal usage only
447
- expressInstallCallback: function() {
448
-
449
- }
219
+ expressInstallCallback: wasRemoved
450
220
  };
451
221
  }();
222
+
223
+ webshims.isReady('swfmini', true);
452
224
  ;// Copyright 2009-2012 by contributors, MIT License
453
225
  // vim: ts=4 sts=4 sw=4 expandtab
454
226
 
@@ -2513,7 +2285,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
2513
2285
  $.each({ Height: "getHeight", Width: "getWidth" }, function(name, type){
2514
2286
  var body = document.body;
2515
2287
  var doc = document.documentElement;
2516
- docObserve[type] = function(){
2288
+ docObserve[type] = function (){
2517
2289
  return Math.max(
2518
2290
  body[ "scroll" + name ], doc[ "scroll" + name ],
2519
2291
  body[ "offset" + name ], doc[ "offset" + name ],
@@ -2528,24 +2300,11 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
2528
2300
  this._create();
2529
2301
  this.height = docObserve.getHeight();
2530
2302
  this.width = docObserve.getWidth();
2531
- setInterval(this.test, 600);
2303
+ setInterval(this.test, 999);
2532
2304
  $(this.test);
2533
2305
  webshims.ready('WINDOWLOAD', this.test);
2534
2306
  $(document).on('updatelayout.webshim pageinit popupafteropen panelbeforeopen tabsactivate collapsibleexpand shown.bs.modal shown.bs.collapse slid.bs.carousel', this.handler);
2535
2307
  $(window).on('resize', this.handler);
2536
- (function(){
2537
- var oldAnimate = $.fn.animate;
2538
- var animationTimer;
2539
-
2540
- $.fn.animate = function(){
2541
- clearTimeout(animationTimer);
2542
- animationTimer = setTimeout(function(){
2543
- docObserve.test();
2544
- }, 99);
2545
-
2546
- return oldAnimate.apply(this, arguments);
2547
- };
2548
- })();
2549
2308
  }
2550
2309
  }
2551
2310
  };
@@ -3431,7 +3190,6 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
3431
3190
  });
3432
3191
  ;(function(Modernizr, webshims){
3433
3192
  "use strict";
3434
- var $ = webshims.$;
3435
3193
  var hasNative = Modernizr.audio && Modernizr.video;
3436
3194
  var supportsLoop = false;
3437
3195
  var bugs = webshims.bugs;
@@ -3444,6 +3202,7 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
3444
3202
  }
3445
3203
  });
3446
3204
  };
3205
+
3447
3206
  var wsCfg = webshims.cfg;
3448
3207
  var options = wsCfg.mediaelement;
3449
3208
  var hasFullTrackSupport;
@@ -3452,74 +3211,36 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
3452
3211
  webshims.error("mediaelement wasn't implemented but loaded");
3453
3212
  return;
3454
3213
  }
3214
+
3455
3215
  if(hasNative){
3456
3216
  var videoElem = document.createElement('video');
3457
3217
  Modernizr.videoBuffered = ('buffered' in videoElem);
3458
3218
  Modernizr.mediaDefaultMuted = ('defaultMuted' in videoElem);
3459
3219
  supportsLoop = ('loop' in videoElem);
3460
-
3220
+ Modernizr.mediaLoop = supportsLoop;
3221
+
3461
3222
  webshims.capturingEvents(['play', 'playing', 'waiting', 'paused', 'ended', 'durationchange', 'loadedmetadata', 'canplay', 'volumechange']);
3462
3223
 
3463
- if(!Modernizr.videoBuffered ){
3224
+ if( !Modernizr.videoBuffered || !supportsLoop || (!Modernizr.mediaDefaultMuted && navigator.userAgent.indexOf('MSIE') != -1 && 'ActiveXObject' in window) ){
3464
3225
  webshims.addPolyfill('mediaelement-native-fix', {
3465
3226
  d: ['dom-support']
3466
3227
  });
3467
3228
  webshims.loader.loadList(['mediaelement-native-fix']);
3468
3229
  }
3469
-
3470
- if(!options.preferFlash){
3471
- var noSwitch = {
3472
- 1: 1
3473
- };
3474
- var switchOptions = function(e){
3475
- var media, error, parent;
3476
- if(!options.preferFlash &&
3477
- ($(e.target).is('audio, video') || ((parent = e.target.parentNode) && $('source', parent).last()[0] == e.target)) &&
3478
- (media = $(e.target).closest('audio, video')) && (error = media.prop('error')) && !noSwitch[error.code]
3479
- ){
3480
-
3481
- $(function(){
3482
- if(hasSwf && !options.preferFlash){
3483
- loadSwf();
3484
- webshims.ready('WINDOWLOAD '+swfType, function(){
3485
- setTimeout(function(){
3486
- if(!options.preferFlash && webshims.mediaelement.createSWF && !media.is('.nonnative-api-active')){
3487
- options.preferFlash = true;
3488
- document.removeEventListener('error', switchOptions, true);
3489
- $('audio, video').each(function(){
3490
- webshims.mediaelement.selectSource(this);
3491
- });
3492
- webshims.error("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src+" Mediaerror: "+ media.prop('error')+ 'first error: '+ error);
3493
- }
3494
- }, 9);
3495
- });
3496
- } else{
3497
- document.removeEventListener('error', switchOptions, true);
3498
- }
3499
- });
3500
- }
3501
- };
3502
- document.addEventListener('error', switchOptions, true);
3503
- $('audio, video').each(function(){
3504
- var error = $.prop(this, 'error');
3505
- if(error && !noSwitch[error]){
3506
- switchOptions({target: this});
3507
- return false;
3508
- }
3509
- });
3510
- }
3511
3230
  }
3512
3231
 
3513
3232
  if(Modernizr.track && !bugs.track){
3514
3233
  (function(){
3515
-
3516
- if(!bugs.track){
3517
- bugs.track = typeof $('<track />')[0].readyState != 'number';
3518
- }
3519
-
3520
3234
  if(!bugs.track){
3235
+
3236
+ if(window.VTTCue && !window.TextTrackCue){
3237
+ window.TextTrackCue = window.VTTCue;
3238
+ } else if(!window.VTTCue){
3239
+ window.VTTCue = window.TextTrackCue;
3240
+ }
3241
+
3521
3242
  try {
3522
- new TextTrackCue(2, 3, '');
3243
+ new VTTCue(2, 3, '');
3523
3244
  } catch(e){
3524
3245
  bugs.track = true;
3525
3246
  }
@@ -3555,6 +3276,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
3555
3276
  }
3556
3277
  data.streamId = data.streamId.join('/');
3557
3278
  };
3279
+
3558
3280
  var getSrcObj = function(elem, nodeName){
3559
3281
  elem = $(elem);
3560
3282
  var src = {src: elem.attr('src') || '', elem: elem, srcProp: elem.prop('src')};
@@ -3624,14 +3346,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
3624
3346
  });
3625
3347
  }
3626
3348
  };
3627
- // var loadMediaGroup = function(){
3628
- // if(!loadMediaGroup.loaded){
3629
- // loadMediaGroup.loaded = true;
3630
- // webshims.ready(window.MediaController ? 'WINDOWLOAD' : 'DOM', function(){
3631
- // webshims.loader.loadList(['mediagroup']);
3632
- // });
3633
- // }
3634
- // };
3349
+
3635
3350
  var loadYt = (function(){
3636
3351
  var loaded;
3637
3352
  return function(){
@@ -3656,10 +3371,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
3656
3371
  d: ['dom-support']
3657
3372
  });
3658
3373
 
3659
-
3660
- // webshims.addModule('mediagroup', {
3661
- // d: ['mediaelement', 'dom-support']
3662
- // });
3374
+
3663
3375
 
3664
3376
  mediaelement.mimeTypes = {
3665
3377
  audio: {
@@ -3693,7 +3405,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
3693
3405
 
3694
3406
  mediaelement.mimeTypes.source = $.extend({}, mediaelement.mimeTypes.audio, mediaelement.mimeTypes.video);
3695
3407
 
3696
- mediaelement.getTypeForSrc = function(src, nodeName, data){
3408
+ mediaelement.getTypeForSrc = function(src, nodeName){
3697
3409
  if(src.indexOf('youtube.com/watch?') != -1 || src.indexOf('youtube.com/v/') != -1){
3698
3410
  return 'video/youtube';
3699
3411
  }
@@ -3731,32 +3443,13 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
3731
3443
  }
3732
3444
  return srces;
3733
3445
  } else {
3734
- mediaElem.removeAttr('src').removeAttr('type').find('source').remove();
3735
- if(!$.isArray(srces)){
3736
- srces = [srces];
3737
- }
3738
- srces.forEach(function(src){
3739
- if(typeof src == 'string'){
3740
- src = {src: src};
3741
- }
3742
- mediaElem.append($(document.createElement('source')).attr(src));
3743
- });
3744
-
3446
+ webshims.error('setting sources was removed.');
3745
3447
  }
3746
3448
  };
3747
3449
 
3748
3450
 
3749
- $.fn.loadMediaSrc = function(srces, poster){
3750
- return this.each(function(){
3751
- if(poster !== undefined){
3752
- $(this).removeAttr('poster');
3753
- if(poster){
3754
- $.attr(this, 'poster', poster);
3755
- }
3756
- }
3757
- mediaelement.srces(this, srces);
3758
- $(this).mediaLoad();
3759
- });
3451
+ $.fn.loadMediaSrc = function(){
3452
+ webshims.error('loadMediaSrc was removed.');
3760
3453
  };
3761
3454
 
3762
3455
  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'];
@@ -3832,8 +3525,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
3832
3525
  var readyType = hasSwf ? swfType : 'mediaelement-yt';
3833
3526
  return function( mediaElem, ret, data ){
3834
3527
  //readd to ready
3835
-
3836
-
3528
+
3837
3529
  webshims.ready(readyType, function(){
3838
3530
  if(mediaelement.createSWF && $(mediaElem).parent()[0]){
3839
3531
  mediaelement.createSWF( mediaElem, ret, data );
@@ -3909,7 +3601,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
3909
3601
 
3910
3602
  });
3911
3603
 
3912
- var handleMedia = false;
3604
+ var handleMedia = false;
3913
3605
  var initMediaElements = function(){
3914
3606
  var testFixMedia = function(){
3915
3607
  if(webshims.implement(this, 'mediaelement')){
@@ -3917,50 +3609,6 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
3917
3609
  if(!Modernizr.mediaDefaultMuted && $.attr(this, 'muted') != null){
3918
3610
  $.prop(this, 'muted', true);
3919
3611
  }
3920
- //fixes for FF 12 and IE9/10 || does not hurt, if run in other browsers
3921
- if(hasNative && (!supportsLoop || ('ActiveXObject' in window))){
3922
- var bufferTimer;
3923
- var lastBuffered;
3924
- var elem = this;
3925
- var getBufferedString = function(){
3926
- var buffered = $.prop(elem, 'buffered');
3927
- if(!buffered){return;}
3928
- var bufferString = "";
3929
- for(var i = 0, len = buffered.length; i < len;i++){
3930
- bufferString += buffered.end(i);
3931
- }
3932
- return bufferString;
3933
- };
3934
- var testBuffer = function(){
3935
- var buffered = getBufferedString();
3936
- if(buffered != lastBuffered){
3937
- lastBuffered = buffered;
3938
- webshims.info('needed to trigger progress manually');
3939
- $(elem).triggerHandler('progress');
3940
- }
3941
- };
3942
-
3943
- $(this)
3944
- .on({
3945
- 'play loadstart progress': function(e){
3946
- if(e.type == 'progress'){
3947
- lastBuffered = getBufferedString();
3948
- }
3949
- clearTimeout(bufferTimer);
3950
- bufferTimer = setTimeout(testBuffer, 400);
3951
- },
3952
- 'emptied stalled mediaerror abort suspend': function(e){
3953
- if(e.type == 'emptied'){
3954
- lastBuffered = false;
3955
- }
3956
- clearTimeout(bufferTimer);
3957
- }
3958
- })
3959
- ;
3960
- if('ActiveXObject' in window && $.prop(this, 'paused') && !$.prop(this, 'readyState') && $(this).is('audio[preload="none"][controls]:not([autoplay],.nonnative-api-active)')){
3961
- $(this).prop('preload', 'metadata').mediaLoad();
3962
- }
3963
- }
3964
3612
  }
3965
3613
 
3966
3614
  };
@@ -3973,7 +3621,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
3973
3621
  }
3974
3622
 
3975
3623
  ['audio', 'video'].forEach(function(nodeName){
3976
- var supLoad, supController;
3624
+ var supLoad;
3977
3625
  supLoad = webshims.defineNodeNameProperty(nodeName, 'load', {
3978
3626
  prop: {
3979
3627
  value: function(){
@@ -4006,58 +3654,8 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
4006
3654
  }
4007
3655
  }
4008
3656
  });
4009
-
4010
- // supController = webshims.defineNodeNameProperty(nodeName, 'controller', {
4011
- // prop: {
4012
- // get: function(type){
4013
- // if(!loadMediaGroup.loaded){
4014
- // loadMediaGroup();
4015
- // }
4016
- // if(mediaelement.controller){
4017
- // return mediaelement.controller[nodeName].get.apply(this, arguments);
4018
- // }
4019
- // return supController.prop._supget && supController.prop._supget.apply(this, arguments);
4020
- // },
4021
- // set: function(){
4022
- // var that = this;
4023
- // var args = arguments;
4024
- // if(!loadMediaGroup.loaded){
4025
- // loadMediaGroup();
4026
- // }
4027
- // if(mediaelement.controller){
4028
- // return mediaelement.controller[nodeName].set.apply(that, args);
4029
- // } else {
4030
- // webshims.ready('mediagroup', function(){
4031
- // mediaelement.controller[nodeName].set.apply(that, args);
4032
- // });
4033
- // }
4034
- // return supController.prop._supset && supController.prop._supset.apply(this, arguments);
4035
- // }
4036
- // }
4037
- // });
4038
-
4039
- // webshims.ready('mediagroup', function(){
4040
- // mediaelement.controller[nodeName].sup = supController;
4041
- // });
4042
3657
  });
4043
-
4044
- // webshims.onNodeNamesPropertyModify(['audio', 'video'], ['mediaGroup'], {
4045
- // set: function(){
4046
- // var that = this;
4047
- // var args = arguments;
4048
- // if(!loadMediaGroup.loaded){
4049
- // loadMediaGroup();
4050
- // }
4051
- // if(mediaelement.mediagroup){
4052
- // mediaelement.mediagroup.set.apply(that, args);
4053
- // } else {
4054
- // webshims.ready('mediagroup', function(){
4055
- // mediaelement.mediagroup.set.apply(that, args);
4056
- // });
4057
- // }
4058
- // },
4059
- // initAttr: true
4060
- // });
3658
+
4061
3659
 
4062
3660
  webshims.onNodeNamesPropertyModify(['audio', 'video'], ['src', 'poster'], {
4063
3661
  set: function(){
@@ -4080,9 +3678,6 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
4080
3678
  if(!loadTrackUi.loaded && $('track', media).length){
4081
3679
  loadTrackUi();
4082
3680
  }
4083
- // if(!loadMediaGroup.loaded && this.getAttribute('mediagroup')){
4084
- // loadMediaGroup();
4085
- // }
4086
3681
  media = null;
4087
3682
  });
4088
3683
  });
@@ -4122,6 +3717,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
4122
3717
  }
4123
3718
  webshims.ready('track', loadTrackUi);
4124
3719
  });
3720
+
4125
3721
  })(Modernizr, webshims);
4126
3722
  ;webshims.register('mediaelement-jaris', function($, webshims, window, document, undefined, options){
4127
3723
  "use strict";
@@ -5209,6 +4805,13 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
5209
4805
  loadedSwf--;
5210
4806
  try {
5211
4807
  elems[i].api_pause();
4808
+ if(elems[i].readyState == 4){
4809
+ for (prop in elems[i]) {
4810
+ if (typeof elems[i][prop] == "function") {
4811
+ elems[i][prop] = null;
4812
+ }
4813
+ }
4814
+ }
5212
4815
  } catch(er){}
5213
4816
  }
5214
4817
  }
@@ -5272,6 +4875,17 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
5272
4875
  }
5273
4876
 
5274
4877
  }, 'prop');
4878
+
4879
+
4880
+ if(hasFlash){
4881
+ webshims.ready('WINDOWLOAD', function(){
4882
+ setTimeout(function(){
4883
+ if(!loadedSwf){
4884
+ document.createElement('img').src = playerSwfPath;
4885
+ }
4886
+ }, 9);
4887
+ });
4888
+ }
5275
4889
  } else if(!('media' in document.createElement('source'))){
5276
4890
  webshims.reflectProperties('source', ['media']);
5277
4891
  }
@@ -5330,5 +4944,43 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
5330
4944
  });
5331
4945
  })();
5332
4946
  }
5333
-
5334
- });
4947
+
4948
+
4949
+ if(hasNative && hasFlash && !options.preferFlash){
4950
+ var noSwitch = {
4951
+ 1: 1
4952
+ };
4953
+ var switchOptions = function(e){
4954
+ var media, error, parent;
4955
+ if(!options.preferFlash &&
4956
+ ($(e.target).is('audio, video') || ((parent = e.target.parentNode) && $('source', parent).last()[0] == e.target)) &&
4957
+ (media = $(e.target).closest('audio, video')) && (error = media.prop('error')) && !noSwitch[error.code]
4958
+ ){
4959
+
4960
+ if(!options.preferFlash){
4961
+ if(!media.is('.nonnative-api-active')){
4962
+ options.preferFlash = true;
4963
+ document.removeEventListener('error', switchOptions, true);
4964
+ $('audio, video').each(function(){
4965
+ webshims.mediaelement.selectSource(this);
4966
+ });
4967
+ webshims.error("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src+" Mediaerror: "+ media.prop('error')+ 'first error: '+ error);
4968
+ }
4969
+ } else{
4970
+ document.removeEventListener('error', switchOptions, true);
4971
+ }
4972
+ }
4973
+ };
4974
+ setTimeout(function(){
4975
+ document.addEventListener('error', switchOptions, true);
4976
+ $('audio, video').each(function(){
4977
+ var error = $.prop(this, 'error');
4978
+ if(error && !noSwitch[error]){
4979
+ switchOptions({target: this});
4980
+ return false;
4981
+ }
4982
+ });
4983
+ }, 9);
4984
+ }
4985
+
4986
+ });