webshims-rails 1.12.5 → 1.12.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/lib/webshims-rails/version.rb +2 -2
  3. data/vendor/assets/javascripts/webshims/polyfiller.js +111 -132
  4. data/vendor/assets/javascripts/webshims/shims/combos/1.js +40 -37
  5. data/vendor/assets/javascripts/webshims/shims/combos/10.js +217 -36
  6. data/vendor/assets/javascripts/webshims/shims/combos/11.js +151 -29
  7. data/vendor/assets/javascripts/webshims/shims/combos/12.js +70 -93
  8. data/vendor/assets/javascripts/webshims/shims/combos/13.js +70 -93
  9. data/vendor/assets/javascripts/webshims/shims/combos/14.js +90 -13
  10. data/vendor/assets/javascripts/webshims/shims/combos/15.js +202 -59
  11. data/vendor/assets/javascripts/webshims/shims/combos/16.js +208 -70
  12. data/vendor/assets/javascripts/webshims/shims/combos/17.js +151 -29
  13. data/vendor/assets/javascripts/webshims/shims/combos/18.js +155 -30
  14. data/vendor/assets/javascripts/webshims/shims/combos/19.js +79 -20
  15. data/vendor/assets/javascripts/webshims/shims/combos/2.js +109 -47
  16. data/vendor/assets/javascripts/webshims/shims/combos/20.js +79 -20
  17. data/vendor/assets/javascripts/webshims/shims/combos/21.js +80 -87
  18. data/vendor/assets/javascripts/webshims/shims/combos/22.js +66 -83
  19. data/vendor/assets/javascripts/webshims/shims/combos/23.js +4 -10
  20. data/vendor/assets/javascripts/webshims/shims/combos/25.js +79 -20
  21. data/vendor/assets/javascripts/webshims/shims/combos/26.js +66 -7
  22. data/vendor/assets/javascripts/webshims/shims/combos/28.js +100 -25
  23. data/vendor/assets/javascripts/webshims/shims/combos/3.js +192 -47
  24. data/vendor/assets/javascripts/webshims/shims/combos/30.js +193 -49
  25. data/vendor/assets/javascripts/webshims/shims/combos/31.js +103 -36
  26. data/vendor/assets/javascripts/webshims/shims/combos/32.js +5 -3
  27. data/vendor/assets/javascripts/webshims/shims/combos/33.js +1 -2
  28. data/vendor/assets/javascripts/webshims/shims/combos/34.js +2048 -0
  29. data/vendor/assets/javascripts/webshims/shims/combos/4.js +156 -20
  30. data/vendor/assets/javascripts/webshims/shims/combos/5.js +151 -29
  31. data/vendor/assets/javascripts/webshims/shims/combos/6.js +152 -31
  32. data/vendor/assets/javascripts/webshims/shims/combos/7.js +199 -60
  33. data/vendor/assets/javascripts/webshims/shims/combos/8.js +197 -58
  34. data/vendor/assets/javascripts/webshims/shims/combos/9.js +218 -38
  35. data/vendor/assets/javascripts/webshims/shims/combos/97.js +1004 -0
  36. data/vendor/assets/javascripts/webshims/shims/combos/98.js +1283 -0
  37. data/vendor/assets/javascripts/webshims/shims/combos/99.js +204 -1248
  38. data/vendor/assets/javascripts/webshims/shims/dom-extend.js +66 -7
  39. data/vendor/assets/javascripts/webshims/shims/es5.js +4 -1
  40. data/vendor/assets/javascripts/webshims/shims/form-combat.js +3 -3
  41. data/vendor/assets/javascripts/webshims/shims/form-core.js +36 -27
  42. data/vendor/assets/javascripts/webshims/shims/form-datalist.js +1 -2
  43. data/vendor/assets/javascripts/webshims/shims/form-fixrangechange.js +137 -0
  44. data/vendor/assets/javascripts/webshims/shims/form-message.js +90 -13
  45. data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +129 -15
  46. data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +9 -10
  47. data/vendor/assets/javascripts/webshims/shims/form-shim-extend2.js +886 -985
  48. data/vendor/assets/javascripts/webshims/shims/form-validation.js +78 -174
  49. data/vendor/assets/javascripts/webshims/shims/form-validators.js +39 -26
  50. data/vendor/assets/javascripts/webshims/shims/forms-picker.js +45 -17
  51. data/vendor/assets/javascripts/webshims/shims/geolocation.js +10 -3
  52. data/vendor/assets/javascripts/webshims/shims/jme/b.js +71 -246
  53. data/vendor/assets/javascripts/webshims/shims/jme/c.js +133 -1002
  54. data/vendor/assets/javascripts/webshims/shims/jme/controls.css +62 -23
  55. data/vendor/assets/javascripts/webshims/shims/jme/controls.scss +73 -10
  56. data/vendor/assets/javascripts/webshims/shims/jme/mediacontrols-lazy.js +1117 -0
  57. data/vendor/assets/javascripts/webshims/shims/jme/p.js +603 -0
  58. data/vendor/assets/javascripts/webshims/shims/jpicker/jpicker.css +5 -2
  59. data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +4 -10
  60. data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +4 -1
  61. data/vendor/assets/javascripts/webshims/shims/range-ui.js +22 -14
  62. data/vendor/assets/javascripts/webshims/shims/styles/forms-ext.css +29 -344
  63. data/vendor/assets/javascripts/webshims/shims/styles/forms-picker.css +362 -0
  64. data/vendor/assets/javascripts/webshims/shims/styles/scss/forms-ext.scss +6 -483
  65. data/vendor/assets/javascripts/webshims/shims/styles/scss/forms-picker.scss +488 -0
  66. data/vendor/assets/javascripts/webshims/shims/styles/scss/shim-ext.scss +2 -0
  67. data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +10 -2
  68. data/vendor/assets/javascripts/webshims/shims/styles/shim.css +6 -2
  69. data/vendor/assets/javascripts/webshims/shims/swf/JarisFLVPlayer.swf +0 -0
  70. data/vendor/assets/javascripts/webshims/shims/track-ui.js +8 -1
  71. data/vendor/assets/javascripts/webshims/shims/track.js +66 -83
  72. metadata +12 -5
  73. data/vendor/assets/javascripts/webshims/shims/$ajax.js +0 -862
  74. data/vendor/assets/javascripts/webshims/shims/combos/24.js +0 -2087
@@ -2,14 +2,12 @@
2
2
  @font-face {
3
3
  font-family: 'jme';
4
4
  src: url("jme.eot"); }
5
-
6
5
  @font-face {
7
6
  font-family: 'jme';
8
- src: url(data:application/x-font-ttf;charset=utf-8;base64,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) format("truetype"), url(data:application/font-woff;charset=utf-8;base64,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) format("woff");
7
+ src: url(data:application/font-woff;charset=utf-8;base64,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) format("woff"), url("jme.ttf") format("truetype");
9
8
  font-weight: normal;
10
9
  font-style: normal; }
11
-
12
- .mediaplayer[data-state="waiting"] > .jme-media-overlay, .mediaplayer .fullscreen, .mediaplayer .fullscreen.state-exitfullscreen, .mediaplayer[data-state="idle"] > .jme-media-overlay, .mediaplayer button.play-pause, .mediaplayer button.play-pause.state-playing, .mediaplayer .mute-unmute, .mediaplayer[data-volume="medium"] .mute-unmute, .mediaplayer[data-volume="low"] .mute-unmute, .mediaplayer[data-volume="no"] .mute-unmute, .mediaplayer .state-unmute.mute-unmute, .mediaplayer .captions, .mediaplayer .subtitle-menu button[aria-checked="true"], .mediaplayer .subtitle-menu button, .mediaplayer[data-state="ended"] > .jme-media-overlay {
10
+ .mediaplayer[data-state="waiting"] > .jme-media-overlay, .mediaplayer .fullscreen, .mediaplayer .fullscreen.state-exitfullscreen, .mediaplayer[data-state="idle"] > .jme-media-overlay, .mediaplayer button.play-pause, .mediaplayer button.play-pause.state-playing, .mediaplayer .mute-unmute, .mediaplayer[data-volume="medium"] .mute-unmute, .mediaplayer[data-volume="low"] .mute-unmute, .mediaplayer[data-volume="no"] .mute-unmute, .mediaplayer .state-unmute.mute-unmute, .mediaplayer .captions, .mediaplayer .subtitle-menu button[aria-checked="true"], .mediaplayer .subtitle-menu button, .mediaplayer .playlist-next, .mediaplayer .playlist-prev, .mediaplayer[data-state="ended"] > .jme-media-overlay {
13
11
  font-family: 'jme';
14
12
  speak: none;
15
13
  font-style: normal;
@@ -17,6 +15,7 @@
17
15
  font-variant: normal;
18
16
  text-transform: none;
19
17
  line-height: 1;
18
+ zoom: 1;
20
19
  /* Better Font Rendering =========== */
21
20
  -webkit-font-smoothing: antialiased;
22
21
  -moz-osx-font-smoothing: grayscale; }
@@ -63,6 +62,12 @@
63
62
  .mediaplayer .subtitle-menu button:before {
64
63
  content: "\e617"; }
65
64
 
65
+ .mediaplayer .playlist-next:before {
66
+ content: "\e602"; }
67
+
68
+ .mediaplayer .playlist-prev:before {
69
+ content: "\e603"; }
70
+
66
71
  .mediaplayer[data-state="ended"] > .jme-media-overlay:before {
67
72
  content: "\e601"; }
68
73
 
@@ -74,7 +79,6 @@
74
79
  100% {
75
80
  -webkit-transform: rotate(360deg);
76
81
  transform: rotate(360deg); } }
77
-
78
82
  .jme-controlbar,
79
83
  .jme-controlbar * {
80
84
  -moz-box-sizing: border-box;
@@ -98,20 +102,31 @@
98
102
  .jme-cb-box .volume-container {
99
103
  padding-left: 0.0625em; }
100
104
 
101
- [data-playersize="x-small"] > .jme-controlbar {
105
+ [data-playersize="x-small"] > .jme-controlbar,
106
+ [data-playersize="xx-small"] > .jme-controlbar {
102
107
  padding-top: 0.25em; }
103
- [data-playersize="x-small"] > .jme-controlbar .time-slider {
108
+ [data-playersize="x-small"] > .jme-controlbar .time-slider,
109
+ [data-playersize="xx-small"] > .jme-controlbar .time-slider {
104
110
  position: absolute;
105
111
  top: -0.125em;
106
112
  left: 0;
107
113
  right: 0; }
108
- [data-playersize="x-small"] > .jme-controlbar .progress-container {
114
+ [data-playersize="x-small"] > .jme-controlbar .progress-container,
115
+ [data-playersize="xx-small"] > .jme-controlbar .progress-container {
109
116
  width: auto; }
110
- [data-playersize="x-small"] > .jme-controlbar .progress-container:before {
117
+ [data-playersize="x-small"] > .jme-controlbar .progress-container:before,
118
+ [data-playersize="xx-small"] > .jme-controlbar .progress-container:before {
111
119
  content: "/"; }
112
- [data-playersize="x-small"] > .jme-controlbar .duration-container {
120
+ [data-playersize="x-small"] > .jme-controlbar .duration-container,
121
+ [data-playersize="xx-small"] > .jme-controlbar .duration-container {
113
122
  width: 100%; }
114
123
 
124
+ [data-playersize="xx-small"] > .jme-controlbar .progress-container:before {
125
+ content: ""; }
126
+ [data-playersize="xx-small"] > .jme-controlbar .duration-display,
127
+ [data-playersize="xx-small"] > .jme-controlbar .volume-container {
128
+ display: none; }
129
+
115
130
  .mediaplayer {
116
131
  position: relative;
117
132
  display: block;
@@ -133,7 +148,8 @@
133
148
  background: none;
134
149
  padding: 0;
135
150
  border: 0;
136
- font-size: inherit; }
151
+ font-size: inherit;
152
+ outline: none; }
137
153
  .mediaplayer button::-moz-focus-inner {
138
154
  padding: 0;
139
155
  border: 0; }
@@ -155,21 +171,31 @@
155
171
  left: 50%;
156
172
  margin: -0.5em 0 0 -0.5em;
157
173
  text-shadow: 0 0 0.4em rgba(0, 0, 0, 0.6); }
174
+ .mediaplayer[data-playersize="large"] > .jme-media-overlay {
175
+ font-size: 450%; }
176
+ .mediaplayer[data-playersize="small"] > .jme-media-overlay {
177
+ font-size: 350%; }
178
+ .mediaplayer[data-playersize="x-small"] > .jme-media-overlay {
179
+ font-size: 300%; }
180
+ .mediaplayer[data-playersize="xx-small"] > .jme-media-overlay {
181
+ font-size: 240%; }
158
182
  .mediaplayer[data-state="idle"] {
159
183
  cursor: pointer; }
160
184
  .mediaplayer[data-state="ended"] {
161
185
  cursor: pointer; }
162
- .mediaplayer[data-state="waiting"] > .jme-media-overlay {
163
- animation-name: jmespin;
164
- animation-iteration-count: infinite;
165
- animation-duration: 1100ms;
166
- animation-timing-function: linear; }
186
+ .mediaplayer[data-state="waiting"] {
187
+ cursor: default; }
188
+ .mediaplayer[data-state="waiting"] > .jme-media-overlay {
189
+ animation-name: jmespin;
190
+ animation-iteration-count: infinite;
191
+ animation-duration: 1100ms;
192
+ animation-timing-function: linear; }
167
193
  .mediaplayer[data-state="playing"][data-useractivity="false"] .jme-controlbar {
168
194
  opacity: 0;
169
195
  visibility: hidden; }
170
196
  .mediaplayer .cue-display span.cue-wrapper {
171
197
  transition: bottom 300ms;
172
- bottom: -5px; }
198
+ bottom: 0; }
173
199
  .mediaplayer[data-state="playing"][data-useractivity="false"] .cue-display span.cue-wrapper {
174
200
  bottom: -35px; }
175
201
  .mediaplayer > .jme-controlbar {
@@ -177,6 +203,7 @@
177
203
  left: 0;
178
204
  right: 0;
179
205
  bottom: 0;
206
+ width: auto;
180
207
  cursor: default;
181
208
  outline: none;
182
209
  background: #333;
@@ -205,9 +232,13 @@
205
232
  .mediaplayer .time-select {
206
233
  font-size: 81.3%;
207
234
  font-family: sans-serif;
208
- width: 2.5em;
209
- text-align: center;
210
235
  margin-top: 0.03em; }
236
+ .mediaplayer .playlist-container {
237
+ display: none; }
238
+ .mediaplayer.has-playlist .playlist-container {
239
+ display: table-cell; }
240
+ .mediaplayer .playlist-box {
241
+ width: 3.09em; }
211
242
  .mediaplayer .no-volume-api .volume-container,
212
243
  .mediaplayer .no-volume-api .mute-container {
213
244
  padding: 0; }
@@ -303,10 +334,11 @@
303
334
  display: block; }
304
335
  .mediaplayer .time-select {
305
336
  display: inline-block;
306
- margin: 0 0 2px -1.75em;
307
- padding: 0.1875em 0 0.0625em;
308
- min-width: 3.5em;
309
- bottom: 1.25em;
337
+ margin: 0 0 4px -1.55em;
338
+ padding: 0.25em 0.125em 0.125em;
339
+ min-width: 2.8em;
340
+ text-align: center;
341
+ bottom: 0.5625em;
310
342
  visibility: hidden;
311
343
  opacity: 0;
312
344
  transition: 400ms opacity, 400ms visibility;
@@ -316,7 +348,13 @@
316
348
  .mediaplayer .time-select.show-time-select {
317
349
  opacity: 1;
318
350
  visibility: visible; }
351
+ .mediaplayer .ws-range-track {
352
+ top: 0;
353
+ left: 0;
354
+ bottom: 0; }
319
355
  .mediaplayer .ws-range-progress {
356
+ -moz-box-sizing: content-box;
357
+ box-sizing: content-box;
320
358
  cursor: pointer;
321
359
  background: #e1e1e1;
322
360
  left: 0;
@@ -366,6 +404,7 @@ body.has-media-fullscreen {
366
404
  bottom: 0 !important;
367
405
  width: 100% !important;
368
406
  height: 100% !important;
407
+ max-width: none !important;
369
408
  padding: 0 !important;
370
409
  margin: 0 !important; }
371
410
 
@@ -5,8 +5,8 @@
5
5
  }
6
6
  @font-face {
7
7
  font-family: 'jme';
8
- src: url(data:application/x-font-ttf;charset=utf-8;base64,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) format('truetype'),
9
- url(data:application/font-woff;charset=utf-8;base64,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) format('woff');
8
+ src: url(data:application/font-woff;charset=utf-8;base64,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) format('woff'),
9
+ url('jme.ttf') format('truetype');
10
10
  font-weight: normal;
11
11
  font-style: normal;
12
12
  }
@@ -37,6 +37,7 @@ $browser-context: 16; // Default
37
37
  font-variant: normal;
38
38
  text-transform: none;
39
39
  line-height: 1;
40
+ zoom: 1;
40
41
 
41
42
  /* Better Font Rendering =========== */
42
43
  -webkit-font-smoothing: antialiased;
@@ -258,7 +259,8 @@ $browser-context: 16; // Default
258
259
  }
259
260
  }
260
261
 
261
- [data-playersize="x-small"] > .jme-controlbar {
262
+ [data-playersize="x-small"] > .jme-controlbar,
263
+ [data-playersize="xx-small"] > .jme-controlbar {
262
264
  padding-top: em(4);
263
265
 
264
266
  .time-slider {
@@ -280,6 +282,17 @@ $browser-context: 16; // Default
280
282
  }
281
283
  }
282
284
 
285
+ [data-playersize="xx-small"] > .jme-controlbar {
286
+ .progress-container:before {
287
+ content: "";
288
+ }
289
+
290
+ .duration-display,
291
+ .volume-container {
292
+ display: none;
293
+ }
294
+ }
295
+
283
296
  .mediaplayer {
284
297
  position: relative;
285
298
  display: block;
@@ -310,6 +323,7 @@ $browser-context: 16; // Default
310
323
  padding: 0;
311
324
  border: 0;
312
325
  font-size: inherit;
326
+ outline: none;
313
327
  }
314
328
  button::-moz-focus-inner {
315
329
  padding: 0;
@@ -338,6 +352,25 @@ $browser-context: 16; // Default
338
352
  }
339
353
  }
340
354
 
355
+ &[data-playersize="large"] > .jme-media-overlay {
356
+ font-size: 450%;
357
+ }
358
+
359
+ &[data-playersize="small"] > .jme-media-overlay {
360
+ font-size: 350%;
361
+ }
362
+
363
+
364
+ &[data-playersize="x-small"] > .jme-media-overlay {
365
+ font-size: 300%;
366
+ }
367
+
368
+ &[data-playersize="xx-small"] > .jme-media-overlay {
369
+ font-size: 240%;
370
+ }
371
+
372
+
373
+
341
374
  &[data-state="idle"] {
342
375
  cursor: pointer;
343
376
  > .jme-media-overlay {
@@ -354,6 +387,7 @@ $browser-context: 16; // Default
354
387
  }
355
388
 
356
389
  &[data-state="waiting"] {
390
+ cursor: default;
357
391
  > .jme-media-overlay {
358
392
  @extend %icon-spinner;
359
393
  animation-name: jmespin;
@@ -370,7 +404,7 @@ $browser-context: 16; // Default
370
404
 
371
405
  .cue-display span.cue-wrapper {
372
406
  transition: bottom 300ms;
373
- bottom: -5px;
407
+ bottom: 0;
374
408
  }
375
409
 
376
410
  &[data-state="playing"][data-useractivity="false"] .cue-display span.cue-wrapper {
@@ -382,6 +416,7 @@ $browser-context: 16; // Default
382
416
  left: 0;
383
417
  right: 0;
384
418
  bottom: 0;
419
+ width: auto;
385
420
  cursor: default;
386
421
  outline: none;
387
422
  background: #333;
@@ -423,8 +458,6 @@ $browser-context: 16; // Default
423
458
  .time-select {
424
459
  font-size: 81.3%;
425
460
  font-family: sans-serif;
426
- width: 2.5em;
427
- text-align: center;
428
461
  margin-top: 0.03em;
429
462
  }
430
463
 
@@ -455,6 +488,26 @@ $browser-context: 16; // Default
455
488
  @extend %icon-volume-mute2;
456
489
  }
457
490
 
491
+ .playlist-container {
492
+ display: none;
493
+ }
494
+
495
+ &.has-playlist .playlist-container {
496
+ display: table-cell;
497
+ }
498
+
499
+ .playlist-box {
500
+ width: 3.09em;
501
+ }
502
+
503
+ .playlist-prev {
504
+ @extend %icon-previous;
505
+ }
506
+
507
+ .playlist-next {
508
+ @extend %icon-next;
509
+ }
510
+
458
511
  .no-volume-api {
459
512
  .volume-container,
460
513
  .mute-container {
@@ -609,10 +662,11 @@ $browser-context: 16; // Default
609
662
 
610
663
  .time-select {
611
664
  display: inline-block;
612
- margin: 0 0 2px -1.75em;
613
- padding: em(3) 0 em(1);
614
- min-width: 3.5em;
615
- bottom: em(20);
665
+ margin: 0 0 4px -1.55em;
666
+ padding: em(4) em(2) em(2);
667
+ min-width: 2.8em;
668
+ text-align: center;
669
+ bottom: em(9);
616
670
  visibility: hidden;
617
671
  opacity: 0;
618
672
  transition: 400ms opacity, 400ms visibility;
@@ -626,7 +680,15 @@ $browser-context: 16; // Default
626
680
  }
627
681
  }
628
682
 
683
+ .ws-range-track {
684
+ top: 0;
685
+ left: 0;
686
+ bottom: 0;
687
+ }
688
+
629
689
  .ws-range-progress {
690
+ -moz-box-sizing: content-box;
691
+ box-sizing: content-box;
630
692
  cursor: pointer;
631
693
  background: #e1e1e1;
632
694
  left: 0;
@@ -701,6 +763,7 @@ body.has-media-fullscreen {
701
763
  bottom: 0 !important;
702
764
  width: 100% !important;
703
765
  height: 100% !important;
766
+ max-width: none !important;
704
767
  padding: 0 !important;
705
768
  margin: 0 !important;
706
769
  }
@@ -0,0 +1,1117 @@
1
+ webshims.register('jme', function($, webshims, window, doc, undefined){
2
+ "use strict";
3
+ var plugins = $.jme.plugins;
4
+ var pseudoClasses = 'pseudoClasses';
5
+ var playStates = {
6
+ play: 1,
7
+ playing: 1
8
+ };
9
+ var pauseStates = {
10
+ pause: 1,
11
+ ended: 1
12
+ };
13
+
14
+ var loadRange = function(){
15
+ webshims.loader.loadList(['range-ui']);
16
+ };
17
+ var onSliderReady = function(fn){
18
+ loadRange();
19
+ webshims.ready('range-ui', fn);
20
+ };
21
+ var showKinds = {subtitles: 1, caption: 1};
22
+ var getTrackMenu = function(tracks){
23
+ var items = $.map(tracks, function(track){
24
+ var className = (track.kind == 'caption') ? 'caption-type' : 'subtitle-type';
25
+ var lang = track.language;
26
+ lang = (lang) ? ' <span class="track-lang">'+ lang +'</span>' : '';
27
+ return '<li class="'+ className +'" role="presentation"><button role="menuitemcheckbox">'+ track.label + lang +'</button></li>';
28
+ })
29
+ ;
30
+ return '<div><ul>' + items.join('') +'</ul></div>';
31
+ };
32
+
33
+
34
+ $.fn.wsTouchClick = (function(){
35
+ var supportsTouchaction = ('touchAction' in document.documentElement.style);
36
+ var addTouch = !supportsTouchaction && ('ontouchstart' in window) && document.addEventListener;
37
+ return function(target, handler){
38
+ var touchData, touchEnd, touchStart;
39
+
40
+ if(addTouch){
41
+
42
+ touchEnd = function(e){
43
+ var ret, touch;
44
+ e = e.originalEvent || {};
45
+ $(this).off('touchend', touchEnd);
46
+ var changedTouches = e.changedTouches || e.touches;
47
+ if(!touchData || !changedTouches || changedTouches.length != 1){
48
+ return;
49
+ }
50
+
51
+ touch = changedTouches[0];
52
+ if(Math.abs(touchData.x - touch.pageX) > 40 || Math.abs(touchData.y - touch.pageY) > 40 || Date.now() - touchData.now > 600){
53
+ return;
54
+ }
55
+ e.preventDefault();
56
+ ret = handler.apply(this, arguments);
57
+
58
+ return ret;
59
+ };
60
+
61
+ touchStart = function(e){
62
+ var touch, elemTarget;
63
+
64
+
65
+ if((!e || e.touches.length != 1)){
66
+ return;
67
+ }
68
+ touch = e.touches[0];
69
+ elemTarget = target ? $(touch.target).closest(target) : $(this);
70
+ if(!elemTarget.length){
71
+ return;
72
+ }
73
+ touchData = {
74
+ x: touch.pageX,
75
+ y: touch.pageY,
76
+ now: Date.now()
77
+ };
78
+ elemTarget.on('touchend', touchEnd);
79
+ };
80
+
81
+ this.each(function(){
82
+ this.addEventListener('touchstart', touchStart, true);
83
+ });
84
+ } else if(supportsTouchaction){
85
+ this.css('touch-action', 'manipulation');
86
+ }
87
+
88
+ if($.isFunction(target)){
89
+ handler = target;
90
+ target = false;
91
+ this.on('click', handler);
92
+ } else {
93
+ this.on('click', target, handler);
94
+ }
95
+ return this;
96
+ };
97
+ })();
98
+
99
+
100
+ function createGetSetHandler(fns){
101
+ var throttleTimer;
102
+ var blocked;
103
+
104
+ if(fns.release === true){
105
+ fns.release = fns.set;
106
+ }
107
+ var getSetHelper = {
108
+ start: function(){
109
+ if(!blocked){
110
+ blocked = true;
111
+ if(fns.start){
112
+ fns.start();
113
+ }
114
+ }
115
+ },
116
+ release: function(){
117
+ if(blocked){
118
+ blocked = false;
119
+
120
+ if(fns.release){
121
+ fns.release();
122
+ }
123
+ }
124
+ },
125
+ get: function(){
126
+ if(blocked){return;}
127
+ return fns.get.apply(this, arguments);
128
+ },
129
+ set: function(){
130
+
131
+ var that = this;
132
+ var args = arguments;
133
+ getSetHelper.start();
134
+ clearTimeout(throttleTimer);
135
+ throttleTimer = setTimeout(function(){
136
+ fns.set.apply(that, args);
137
+ }, 33);
138
+ }
139
+ };
140
+ getSetHelper.fns = fns;
141
+ return getSetHelper;
142
+ }
143
+
144
+ $.extend(true, plugins, {
145
+ useractivity: {
146
+ _create: function(empty1, empty2, base){
147
+ base
148
+ .on({
149
+ useractive: function(){
150
+ base.attr('data-useractivity', 'true');
151
+ }
152
+ })
153
+ .on('userinactive', {idletime: 3500}, function(){
154
+ base.attr('data-useractivity', 'false');
155
+ })
156
+ .triggerHandler('userinactive')
157
+ ;
158
+ }
159
+ },
160
+ 'play-pause': {
161
+ pseudoClasses: {
162
+ play: 'state-paused',
163
+ pause: 'state-playing'
164
+ },
165
+ _create: function(control, media){
166
+ var textFn = $.jme.getButtonText(control, [this[pseudoClasses].play, this[pseudoClasses].pause]);
167
+
168
+ media
169
+ .on('play playing ended pause updateJMEState', function(e){
170
+ var state = e.type;
171
+ if(playStates[state]){
172
+ state = 1;
173
+ } else if(pauseStates[state]) {
174
+ state = 0;
175
+ } else {
176
+ state = (media.jmeProp('isPlaying') )? 1 : 0;
177
+ }
178
+ textFn(state);
179
+ })
180
+ .triggerHandler('updateJMEState')
181
+ ;
182
+ control.wsTouchClick(function(e){
183
+ media.jmeFn('togglePlay');
184
+ e.stopPropagation();
185
+ });
186
+
187
+ }
188
+ },
189
+ 'mute-unmute': {
190
+ pseudoClasses: {
191
+ mute: 'state-mute',
192
+ unmute: 'state-unmute'
193
+ },
194
+ _create: function(control, media, base){
195
+ var textFn = $.jme.getButtonText(control, [this[pseudoClasses].mute, this[pseudoClasses].unmute]);
196
+ media
197
+ .on('volumechange updateJMEState', function(e){
198
+ textFn(media.prop('muted') ? 1 : 0);
199
+ })
200
+ .triggerHandler('updateJMEState')
201
+ ;
202
+
203
+ control.wsTouchClick(function(e){
204
+ media.prop('muted', !media.prop('muted'));
205
+ e.stopPropagation();
206
+ });
207
+
208
+ }
209
+ },
210
+ 'volume-slider': {
211
+ _create: function(control, media){
212
+
213
+ var createFn = function(){
214
+ var api, volume;
215
+
216
+ volume = createGetSetHandler({
217
+ get: function(){
218
+ var volume = media.prop('volume');
219
+ if(volume !== undefined){
220
+ api.value(volume);
221
+ }
222
+ },
223
+ set: function(){
224
+ media.prop({
225
+ muted: false,
226
+ volume: api.options.value
227
+ });
228
+ },
229
+ release: true
230
+ });
231
+
232
+ api = control
233
+ .rangeUI({
234
+ min: 0,
235
+ max: 1,
236
+ //animate: true,
237
+ step: 'any',
238
+ input: volume.set,
239
+ change: volume.release,
240
+ baseClass: 'media-range'
241
+ })
242
+ .data('rangeUi')
243
+ ;
244
+ media.on('volumechange', volume.get);
245
+ };
246
+
247
+ onSliderReady(createFn);
248
+ }
249
+ },
250
+ 'time-slider': {
251
+ pseudoClasses: {
252
+ no: 'no-duration'
253
+ },
254
+ _create: function(control, media, base){
255
+
256
+ var module = this;
257
+
258
+ var createFn = function(){
259
+ var time, durationChange, api, timeShow, wasPaused;
260
+ var hasDuration = 'has-duration';
261
+ var duration = media.prop('duration');
262
+
263
+ time = createGetSetHandler({
264
+ get: function(){
265
+ var time = media.prop('currentTime');
266
+ if(!isNaN(time)){
267
+ try {
268
+ api.value(time);
269
+ } catch(er){}
270
+ }
271
+
272
+ },
273
+ set: function(){
274
+ try {
275
+ media.prop('currentTime', api.options.value).triggerHandler('timechanged', [api.options.value]);
276
+ } catch(er){}
277
+ },
278
+ start: function(){
279
+ if(wasPaused == null){
280
+ wasPaused = media.prop('paused');
281
+ if(!wasPaused){
282
+ base._seekpause = true;
283
+ media.pause();
284
+ } else {
285
+ base._seekpause = false;
286
+ }
287
+ }
288
+ },
289
+ release: function(){
290
+ time.fns.set();
291
+ if(wasPaused === false){
292
+ media.play();
293
+ }
294
+ if('_seekpause' in base){
295
+ delete base._seekpause;
296
+ }
297
+ wasPaused = null;
298
+ }
299
+ });
300
+
301
+ durationChange = function(){
302
+ duration = media.prop('duration');
303
+ hasDuration = duration && isFinite(duration) && !isNaN(duration);
304
+ if(hasDuration){
305
+ api.disabled(false);
306
+ api.max(duration);
307
+
308
+ base.removeClass(module[pseudoClasses].no);
309
+ } else {
310
+ api.disabled(true);
311
+ api.max(Number.MAX_VALUE);
312
+ base.addClass(module[pseudoClasses].no);
313
+ }
314
+ };
315
+
316
+ api = control
317
+ .rangeUI({
318
+ min: 0,
319
+ value: media.prop('currentTime') || 0,
320
+ step: 'any',
321
+ input: time.set,
322
+ change: time.release,
323
+ textValue: function(val){
324
+ return media.jmeFn('formatTime', val);
325
+ },
326
+ baseClass: 'media-range'
327
+ })
328
+ .data('rangeUi')
329
+ ;
330
+
331
+ timeShow = $('<span class="time-select" />').appendTo(control);
332
+
333
+ control
334
+ .on({
335
+ 'mouseenter': function(e){
336
+ if(hasDuration){
337
+ var widgetLeft = (control.offset() || {left: 0}).left;
338
+ var widgetWidth = control.innerWidth();
339
+ var posLeft = function(x){
340
+ var perc = (x - widgetLeft) / widgetWidth * 100;
341
+ timeShow
342
+ .html(media.jmeFn('formatTime', duration * perc / 100))
343
+ .css({left: perc+'%'})
344
+ ;
345
+ };
346
+
347
+ setTimeout(function(){
348
+ posLeft(e.pageX);
349
+ timeShow.addClass('show-time-select');
350
+ });
351
+ control
352
+ .off('.jmetimeselect')
353
+ .on('mousemove.jmetimeselect', function(e){
354
+ posLeft(e.pageX);
355
+ })
356
+ ;
357
+ }
358
+ },
359
+ mouseleave: function(){
360
+ setTimeout(function(){
361
+ timeShow.removeClass('show-time-select');
362
+ control.off('.jmetimeselect');
363
+ });
364
+ }
365
+ })
366
+ ;
367
+
368
+
369
+ media.on({
370
+ timeupdate: time.get,
371
+ emptied: function(){
372
+ durationChange();
373
+ api.value(0);
374
+ },
375
+ durationchange: durationChange
376
+ });
377
+
378
+ base.jmeFn('addControls', $('<div class="buffer-progress" />').prependTo(control) );
379
+ durationChange();
380
+ };
381
+
382
+ onSliderReady(createFn);
383
+ }
384
+ },
385
+ 'duration-display': {
386
+ _create: function(control, media, base, options){
387
+ if(typeof options.format == 'string'){
388
+ options.format = options.format.split(':');
389
+ }
390
+ var showDuration = function(){
391
+ control.html(formatTime(media.prop('duration'), options.format));
392
+ };
393
+ media.on('durationchange emptied', showDuration);
394
+
395
+ control
396
+ .on('updatetimeformat', showDuration)
397
+ .jmeProp('format', options.format)
398
+ ;
399
+ }
400
+ },
401
+ 'currenttime-display': {
402
+ _create: function(control, media, base, options){
403
+ if(typeof options.format == 'string'){
404
+ options.format = options.format.split(':');
405
+ }
406
+
407
+ var showTime = function(e){
408
+ var currentTime = media.prop('currentTime');
409
+ if(options.countdown){
410
+ currentTime = (media.prop('duration') || 0) - currentTime;
411
+ if(currentTime < 0.7){
412
+ currentTime = 0;
413
+ }
414
+ }
415
+ control.html(formatTime(currentTime, options.format));
416
+ };
417
+ media.on('timeupdate emptied durationchange', showTime);
418
+
419
+ control
420
+ .on('updatetimeformat', showTime)
421
+ .jmeProp('format', options.format)
422
+ ;
423
+ }
424
+ },
425
+ 'poster-display': {
426
+ _create: function(control, media){
427
+
428
+ /* Empty span element used for vertical centering in IE7 - thanks to Bruno Fassino.
429
+ * @see http://www.brunildo.org/test/img_center.html
430
+ */
431
+ var updatePoster = function(){
432
+ var poster = media.prop('poster');
433
+ if(poster){
434
+ control.html('<span></span><img src="'+ poster +'" class="poster-image" />');
435
+ } else {
436
+ control.empty();
437
+ }
438
+ };
439
+ media.on('emptied', updatePoster);
440
+ updatePoster();
441
+ }
442
+ },
443
+ fullscreen: {
444
+ pseudoClasses: {
445
+ enter: 'state-enterfullscreen',
446
+ exit: 'state-exitfullscreen'
447
+ },
448
+ _create: function(control, media, base){
449
+ var textFn = $.jme.getButtonText(control, [this[pseudoClasses].enter, this[pseudoClasses].exit]);
450
+ var updateControl = function(){
451
+ textFn(base.hasClass('player-fullscreen') ? 1 : 0);
452
+ };
453
+ var options = this.options;
454
+ var addDoubbleClick = function(){
455
+ $(base.data('jme').controlElements)
456
+ .filter('.jme-media-overlay')
457
+ .off('.dblfullscreen')
458
+ .on('dblclick.dblfullscreen', function(e){
459
+ base.jmeProp('fullscreen', !base.jmeProp('fullscreen'));
460
+ })
461
+ ;
462
+ };
463
+
464
+ base.on('controlsadded', addDoubbleClick);
465
+
466
+ base.on('playerdimensionchange', updateControl);
467
+
468
+ control.wsTouchClick(function(){
469
+ var value = base.hasClass('player-fullscreen') ? false : options.fullscreen;
470
+ base.jmeProp('fullscreen', value);
471
+ if(value && options.autoplayfs){
472
+ media.jmeFn('play');
473
+ }
474
+ });
475
+ addDoubbleClick();
476
+ updateControl();
477
+ }
478
+ },
479
+ captions: {
480
+ pseudoClasses: {
481
+ menu: 'subtitle-menu'
482
+ },
483
+ _create: function(control, media, base){
484
+ var trackElems;
485
+ var that = this;
486
+ var checkbox = control.wsclonedcheckbox;
487
+ if(!checkbox){
488
+ trackElems = media.find('track');
489
+ checkbox = $(control).clone().attr({role: 'checkbox'}).insertBefore(control);
490
+
491
+ base.attr('data-tracks', trackElems.length > 1 ? 'many' : trackElems.length);
492
+ control.attr('aria-haspopup', 'true');
493
+ }
494
+
495
+ webshims.ready('track', function(){
496
+ var menuObj, throttledUpdateMode;
497
+ var tracks = [];
498
+ var textTracks = media.prop('textTracks');
499
+
500
+ var throttledUpdate = (function(){
501
+ var timer;
502
+ var triggerTimer;
503
+ return function(e){
504
+ clearTimeout(timer);
505
+ clearTimeout(triggerTimer);
506
+ if(e.type == 'updatesubtitlestate'){
507
+ triggerTimer = setTimeout(function(){
508
+ media.trigger('updatetracklist');
509
+ }, 0);
510
+ }
511
+ timer = setTimeout(updateTrackMenu, 19);
512
+ };
513
+ })();
514
+
515
+ function createSubtitleMenu(menu){
516
+ var menuClick;
517
+
518
+ if(!menuObj){
519
+ menuClick = function(index, button){
520
+ if($.attr(button, 'aria-checked') == 'true'){
521
+ tracks[index].mode = 'disabled';
522
+ } else {
523
+ $.each(tracks, function(i, track){
524
+ track.mode = (i == index) ? 'showing' : 'disabled';
525
+ });
526
+ }
527
+ media.prop('textTracks');
528
+ updateMode();
529
+ };
530
+
531
+ menuObj = new $.jme.ButtonMenu(control, menu, menuClick);
532
+ checkbox.wsTouchClick(function(){
533
+ menuClick(0, this);
534
+ return false;
535
+ });
536
+ } else {
537
+ menuObj.addMenu(menu);
538
+ }
539
+
540
+ updateMode();
541
+ }
542
+
543
+ function updateMode(){
544
+ $('button', menuObj.menu).each(function(i){
545
+ var checked = (tracks[i].mode == 'showing') ? 'true' : 'false';
546
+ if(!i){
547
+ checkbox.attr('aria-checked', checked);
548
+ }
549
+ $.attr(this, 'aria-checked', checked);
550
+ });
551
+ }
552
+
553
+ function updateTrackMenu(){
554
+ tracks = [];
555
+ $.each(textTracks, function(i, track){
556
+ if(showKinds[track.kind] && track.readyState != 3){
557
+ tracks.push(track);
558
+ }
559
+ });
560
+
561
+ base.attr('data-tracks', tracks.length > 1 ? 'many' : tracks.length);
562
+
563
+ if(tracks.length){
564
+ createSubtitleMenu('<div class="'+that[pseudoClasses].menu +'" >'+ (getTrackMenu(tracks)) +'</div>');
565
+
566
+ $('span.jme-text, label span.jme-text', checkbox).text((tracks[0].label || ' ') + (tracks[0].lang || ''));
567
+
568
+ if(!base.hasClass(that[pseudoClasses].hasTrack) || base.hasClass(that[pseudoClasses].noTrack)){
569
+ control.prop('disabled', false);
570
+ base.triggerHandler('controlschanged');
571
+ }
572
+
573
+ } else if(!base.hasClass(that[pseudoClasses].noTrack) || base.hasClass(that[pseudoClasses].hasTrack)){
574
+ control.prop('disabled', true);
575
+ base
576
+ .triggerHandler('controlschanged')
577
+ ;
578
+ }
579
+ }
580
+
581
+ if(!textTracks){
582
+ textTracks = [];
583
+ updateTrackMenu();
584
+ } else {
585
+ throttledUpdateMode = (function(){
586
+ var timer;
587
+ return function(){
588
+ clearTimeout(timer);
589
+ timer = setTimeout(updateMode, 20);
590
+ };
591
+ })();
592
+
593
+ updateTrackMenu();
594
+
595
+ $([textTracks])
596
+ .on('addtrack removetrack', throttledUpdate)
597
+ .on('change', throttledUpdateMode)
598
+ ;
599
+
600
+ base.on('updatesubtitlestate', throttledUpdate);
601
+ media.on('updatetrackdisplay', throttledUpdateMode);
602
+ }
603
+
604
+ });
605
+ }
606
+ }
607
+ });
608
+
609
+
610
+ $.jme.defineMethod('concerningRange', function(type, time){
611
+ var elem = this;
612
+ var ret = {start: 0, end: 0};
613
+ if(!type){
614
+ type = 'buffered';
615
+ }
616
+ type = $.prop(elem, type);
617
+
618
+ if(time == null){
619
+ time = $.prop(elem, 'currentTime');
620
+ }
621
+ if(!type || !('length' in type)){return ret;}
622
+ for(var i = 0, len = type.length; i < len; i++){
623
+ ret.start = type.start(i);
624
+ ret.end = type.end(i);
625
+ if(ret.start <= time && ret.end >= time){
626
+ break;
627
+ }
628
+ }
629
+ return ret;
630
+ });
631
+
632
+ $.jme.defineProp('progress', {
633
+ get: function(elem){
634
+ var data = $.jme.data(elem);
635
+ if(!data.media){return 0;}
636
+ var progress = data.media.jmeFn('concerningRange').end / data.media.prop('duration') * 100;
637
+ if(progress > 99.4){
638
+ progress = 100;
639
+ }
640
+ return progress || 0;
641
+ },
642
+ readonly: true
643
+ });
644
+
645
+
646
+ var times = {
647
+ hh: 60000,
648
+ mm: 60,
649
+ ss: 1,
650
+ ms: 1/1000
651
+ };
652
+ var formatTime = function(sec, format){
653
+ var data;
654
+ if(!format){
655
+ format = ['mm', 'ss'];
656
+ }
657
+ if(sec == null){
658
+ data = $.jme.data(this);
659
+ sec = $.prop(data.media, 'duration');
660
+ }
661
+ if(!sec){
662
+ sec = 0;
663
+ }
664
+ var formated = [];
665
+ var frac;
666
+ for(var i = 0, len = format.length; i < len; i++){
667
+ if(format[i] == 'ms' && i == len -1 ){
668
+ frac = Math.round( (sec / times[format[i]]) / 10);
669
+ } else {
670
+ frac = parseInt(sec / times[format[i]], 10);
671
+ sec = sec % times[format[i]];
672
+ }
673
+ if(frac < 10){
674
+ frac = '0'+frac;
675
+ }
676
+ formated.push( frac );
677
+ }
678
+
679
+ return formated.join(':');
680
+ };
681
+ $.jme.defineMethod('formatTime', formatTime);
682
+
683
+ //taken from http://johndyer.name/native-fullscreen-javascript-api-plus-jquery-plugin/
684
+ $.jme.fullscreen = (function() {
685
+ var parentData;
686
+ var frameData;
687
+ var doc = document.documentElement;
688
+
689
+ var fullScreenApi = {
690
+ supportsFullScreen: Modernizr.prefixed('fullscreenEnabled', document, false) || Modernizr.prefixed('fullScreenEnabled', document, false),
691
+ isFullScreen: function() { return false; },
692
+ requestFullScreen: function(elem){
693
+ var tmpData;
694
+ parentData = [];
695
+ $(elem).parentsUntil('body').each(function(){
696
+ var pos = $.css(this, 'position');
697
+ var left = this.scrollLeft;
698
+ var top = this.scrollTop;
699
+ var changed;
700
+ tmpData = {elemStyle: this.style, elem: this};
701
+ if(pos !== 'static'){
702
+ changed = true;
703
+ tmpData.pos = tmpData.elemStyle.position;
704
+ this.style.position = 'static';
705
+ }
706
+ if(left){
707
+ changed = true;
708
+ tmpData.left = left;
709
+ }
710
+ if(top){
711
+ changed = true;
712
+ tmpData.top = top;
713
+ }
714
+ if(changed){
715
+ parentData.push(tmpData);
716
+ }
717
+ });
718
+ frameData = false;
719
+ try {
720
+ frameData = {elemStyle: frameElement.style, elem: frameElement, css: {}};
721
+ frameData.css.position = frameData.elemStyle.position;
722
+ frameData.elemStyle.position = 'fixed';
723
+ $.each(['top', 'left', 'right', 'bottom'], function(i, name){
724
+ frameData.css[name] = frameData.elemStyle[name];
725
+ frameData.elemStyle[name] = '0px';
726
+ });
727
+ $.each(['height', 'width'], function(i, name){
728
+ frameData.css[name] = frameData.elemStyle[name];
729
+ frameData.elemStyle[name] = '100%';
730
+ });
731
+ } catch(er){
732
+ frameData = false;
733
+ }
734
+
735
+ tmpData = null;
736
+ },
737
+ cancelFullScreen: function(){
738
+ if(parentData){
739
+ $.each(parentData, function(i, data){
740
+ if('pos' in data){
741
+ data.elemStyle.position = data.pos;
742
+ }
743
+ if(data.left){
744
+ data.elem.scrollLeft = data.left;
745
+ }
746
+ if(data.top){
747
+ data.elem.scrollTop = data.top;
748
+ }
749
+ data = null;
750
+ });
751
+ parentData = [];
752
+ }
753
+ if(frameData){
754
+ $.each(frameData.css, function(name, value){
755
+ frameData.elemStyle[name] = value;
756
+ });
757
+ frameData = false;
758
+ }
759
+ },
760
+ eventName: 'fullscreenchange',
761
+ exitName: 'exitFullscreen',
762
+ requestName: 'requestFullscreen',
763
+ elementName: 'fullscreenElement',
764
+ enabledName: ''
765
+ };
766
+
767
+ fullScreenApi.cancelFullWindow = fullScreenApi.cancelFullScreen;
768
+ fullScreenApi.requestFullWindow = fullScreenApi.requestFullScreen;
769
+
770
+ // update methods to do something useful
771
+ if (fullScreenApi.supportsFullScreen) {
772
+ fullScreenApi.enabledName = fullScreenApi.supportsFullScreen;
773
+ fullScreenApi.exitName = Modernizr.prefixed("exitFullscreen", document, false) || Modernizr.prefixed("cancelFullScreen", document, false);
774
+ fullScreenApi.elementName = Modernizr.prefixed("fullscreenElement", document, false) || Modernizr.prefixed("fullScreenElement", document, false);
775
+ fullScreenApi.supportsFullScreen = !!fullScreenApi.supportsFullScreen;
776
+ if(fullScreenApi.elementName != 'fullscreenElement' || fullScreenApi.exitName != 'exitFullscreen' || fullScreenApi.enabledName != 'fullscreenEnabled'){
777
+ $.each(Modernizr._domPrefixes, function(i, prefix){
778
+ var requestName = prefix+'RequestFullscreen';
779
+ if((requestName in doc) || ((requestName = prefix+'RequestFullScreen') && (requestName in doc))){
780
+ fullScreenApi.eventName = prefix + 'fullscreenchange';
781
+ fullScreenApi.requestName = requestName;
782
+ return false;
783
+ }
784
+ });
785
+ }
786
+
787
+ fullScreenApi.isFullScreen = function() {
788
+ return document[fullScreenApi.elementName];
789
+ };
790
+ fullScreenApi.requestFullScreen = function(el) {
791
+ return el[fullScreenApi.requestName]();
792
+ };
793
+ fullScreenApi.cancelFullScreen = function() {
794
+ return document[fullScreenApi.exitName]();
795
+ };
796
+ }
797
+
798
+
799
+ if(window.parent != window){
800
+ (function(){
801
+ try{
802
+ var frame = window.frameElement;
803
+ if (fullScreenApi.supportsFullScreen) {
804
+ if('allowfullscreen' in frame && !frame.allowfullscreen) {
805
+ frame.allowfullscreen = true;
806
+ } else {
807
+ if(frame.getAttribute('webkitallowfullscreen') == null){
808
+ frame.setAttribute('webkitallowfullscreen', '');
809
+ }
810
+ if(frame.getAttribute('allowfullscreen') == null){
811
+ frame.setAttribute('allowfullscreen', 'allowfullscreen');
812
+ }
813
+ }
814
+ }
815
+ } catch(er){
816
+ if(!fullScreenApi.supportsFullScreen){
817
+ $('html').addClass('no-fullwindow');
818
+ }
819
+ }
820
+ })();
821
+
822
+ }
823
+
824
+
825
+ return fullScreenApi;
826
+ })();
827
+
828
+ $.jme.defineProp('fullscreen', {
829
+ set: function(elem, value){
830
+ var data = $.jme.data(elem);
831
+
832
+ if((!data || !data.player) && !$(elem).hasClass('player-fullscreen')){return 'noDataSet';}
833
+ if(value){
834
+ if(data.player.hasClass('player-fullscreen')){return 'noDataSet';}
835
+
836
+ data.scrollPos = {
837
+ top: $(window).scrollTop(),
838
+ left: $(window).scrollLeft()
839
+ };
840
+
841
+ $(document)
842
+ .off('.jmefullscreen')
843
+ .on('keydown.jmefullscreen', function(e){
844
+ if(e.keyCode == 27){
845
+ data.player.jmeProp('fullscreen', false);
846
+ return false;
847
+ }
848
+ if(e.keyCode === 32 && !('form' in e.target)){
849
+ data.media.jmeFn('togglePlay');
850
+ return false;
851
+ }
852
+ })
853
+ ;
854
+
855
+
856
+ if(value == 'fullwindow'){
857
+ $.jme.fullscreen.requestFullWindow(data.player[0]);
858
+ } else {
859
+ try {
860
+ $.jme.fullscreen.requestFullScreen(data.player[0]);
861
+ } catch(er){}
862
+ }
863
+
864
+
865
+ $('html').addClass('has-media-fullscreen');
866
+
867
+ data.player.addClass('player-fullscreen');
868
+
869
+ data.media.addClass('media-fullscreen');
870
+
871
+ $('button.play-pause', data.player).trigger('focus');
872
+
873
+ if($.jme.fullscreen.supportsFullScreen){
874
+ $(document)
875
+ .on($.jme.fullscreen.eventName+'.jmefullscreen', function(e){
876
+ var fullScreenElem = $.jme.fullscreen.isFullScreen();
877
+ if(fullScreenElem && elem == fullScreenElem){
878
+ data.media.trigger('playerdimensionchange', ['fullscreen']);
879
+ } else {
880
+ data.player.jmeProp('fullscreen', false);
881
+ }
882
+ })
883
+ ;
884
+
885
+ }
886
+ data.media.trigger('playerdimensionchange', ['fullwindow']);
887
+
888
+ } else {
889
+ if(data.player && !data.player.hasClass('player-fullscreen')){return 'noDataSet';}
890
+ $(document).off('.jmefullscreen');
891
+ $('html').removeClass('has-media-fullscreen');
892
+ if(data.player && data.media){
893
+ data.player.removeClass('player-fullscreen');
894
+ data.media.removeClass('media-fullscreen');
895
+ }
896
+ if($.jme.fullscreen.isFullScreen()){
897
+ try {
898
+ $.jme.fullscreen.cancelFullScreen();
899
+ } catch(er){}
900
+ } else {
901
+ $.jme.fullscreen.cancelFullWindow();
902
+ }
903
+
904
+ if(data.scrollPos){
905
+ $(window).scrollTop(data.scrollPos.top);
906
+ $(window).scrollLeft(data.scrollPos.left);
907
+ delete data.scrollPos;
908
+ }
909
+ if(data.media){
910
+ data.media.trigger('playerdimensionchange');
911
+ }
912
+ }
913
+ return 'noDataSet';
914
+ },
915
+ get: function(elem){
916
+ var data = $.jme.data(elem);
917
+ if(!data || !data.player){return;}
918
+ var fs = data.player.hasClass('player-fullscreen');
919
+ if(!fs){return false;}
920
+ return $.jme.fullscreen.isFullScreen() || 'fullwindow';
921
+ }
922
+ });
923
+
924
+ $.jme.defineProp('autoplayfs');
925
+
926
+ $.jme.registerPlugin('buffer-progress', {
927
+ _create: function(control, media, base, options){
928
+ var indicator = $('<div class="buffer-progress-indicator" />').appendTo(control);
929
+ var drawBufferProgress = function(){
930
+ var progress = media.jmeProp('progress');
931
+
932
+
933
+ if(options.progress !== progress){
934
+ options.progress = progress;
935
+ indicator.css('width', progress +'%');
936
+ }
937
+ };
938
+ media.on({
939
+ progress: drawBufferProgress,
940
+ emptied: function(){
941
+ indicator.css('width', 0);
942
+ options.progress = 0;
943
+ },
944
+ playing: drawBufferProgress
945
+ });
946
+ drawBufferProgress();
947
+ }
948
+ });
949
+
950
+
951
+
952
+ $.jme.ButtonMenu = function(button, menu, clickHandler){
953
+
954
+ this.button = $(button).attr({'aria-haspopup': 'true'});
955
+
956
+ this.clickHandler = clickHandler;
957
+
958
+ this.toggle = $.proxy(this, 'toggle');
959
+ this.keyIndex = $.proxy(this, 'keyIndex');
960
+ this._buttonClick = $.proxy(this, '_buttonClick');
961
+
962
+
963
+ this.addMenu(menu);
964
+ this._closeFocusOut();
965
+ this.button.wsTouchClick(this.toggle);
966
+ };
967
+
968
+ $.jme.ButtonMenu.prototype = {
969
+ addMenu: function(menu){
970
+ if(this.menu){
971
+ this.menu.remove();
972
+ }
973
+ this.menu = $(menu);
974
+ this.buttons = $('button', this.menu);
975
+ this.menu.insertAfter(this.button);
976
+ this.menu
977
+ .on('keydown', this.keyIndex)
978
+ .wsTouchClick('button', this._buttonClick)
979
+ ;
980
+ },
981
+ _closeFocusOut: function(){
982
+ var that = this;
983
+ var timer;
984
+ var stopFocusOut = function(){
985
+ clearTimeout(timer);
986
+ setTimeout(function(){
987
+ clearTimeout(timer);
988
+ }, 9);
989
+ };
990
+ this.menu
991
+ .parent()
992
+ .on('focusin', stopFocusOut)
993
+ .on('mousedown', stopFocusOut)
994
+ .on('focusout', function(e){
995
+ timer = setTimeout(function(){
996
+ that.hide();
997
+ }, 40);
998
+ })
999
+ ;
1000
+ },
1001
+ _buttonClick: function(e){
1002
+ this.clickHandler(this.buttons.index(e.currentTarget), e.currentTarget);
1003
+ this.hide();
1004
+ },
1005
+ keyIndex: function(e){
1006
+ var dir = (e.keyCode == 40) ? 1 : (e.keyCode == 38) ? -1 : 0;
1007
+ if(dir){
1008
+ var buttons = this.buttons.not(':disabled');
1009
+ var activeButton = buttons.filter(':focus');
1010
+
1011
+ activeButton = buttons[buttons.index(activeButton) + dir] || buttons.filter(dir > 0 ? ':first' : ':last');
1012
+ activeButton.focus();
1013
+ e.preventDefault();
1014
+ }
1015
+ },
1016
+ show: function(){
1017
+ if(this.isVisible){return;}
1018
+ var buttons = this.buttons.not(':disabled');
1019
+ this.isVisible = true;
1020
+ this.menu.addClass('visible-menu');
1021
+ try {
1022
+ this.activeElement = document.activeElement || this.button[0];
1023
+ } catch(er){
1024
+ this.activeElement = this.button[0];
1025
+ }
1026
+
1027
+ setTimeout(function(){
1028
+ $(buttons.filter('[aria-checked="true"]')[0] || buttons[0]).focus();
1029
+ }, 60);
1030
+ },
1031
+ toggle: function(){
1032
+ this[this.isVisible ? 'hide' : 'show']();
1033
+ },
1034
+ hide: function(){
1035
+ if(!this.isVisible){return;}
1036
+ this.isVisible = false;
1037
+ this.menu.removeClass('visible-menu');
1038
+ if(this.activeElement){
1039
+ try {
1040
+ this.activeElement.focus();
1041
+ } catch(er){}
1042
+ }
1043
+ this.activeElement = false;
1044
+ }
1045
+ };
1046
+
1047
+ (function(){
1048
+ var activity = {
1049
+ add: function(elem, cfg, name){
1050
+ var data = $.data(elem, 'jmeuseractivity') || $.data(elem, 'jmeuseractivity', {idletime: 2500, idle: true, trigger: {}}),
1051
+ jElm = $(elem),
1052
+ setInactive = function(){
1053
+ if(!data.idle){
1054
+ data.idle = true;
1055
+ if ( data.trigger.userinactive ) {
1056
+ jElm.trigger('userinactive');
1057
+ }
1058
+ }
1059
+ },
1060
+ x, y,
1061
+ setActive = function(e){
1062
+ if(!e || (e.type === 'mousemove' && e.pageX === x && e.pageY === y)){return;}
1063
+ if(e.type === 'mousemove'){
1064
+ x = e.pageX;
1065
+ y = e.pageY;
1066
+ }
1067
+ if(data.idleTimer){
1068
+ clearTimeout(data.idleTimer);
1069
+ }
1070
+ data.idleTimer = setTimeout(setInactive, data.idletime);
1071
+ if(data.idle){
1072
+ data.idle = false;
1073
+ if( data.trigger.useractive ){
1074
+ jElm.trigger('useractive');
1075
+ }
1076
+ }
1077
+ }
1078
+ ;
1079
+
1080
+ data.idletime = (cfg || {}).idletime || data.idletime;
1081
+ if(cfg && 'idle' in cfg){
1082
+ data.idle = cfg.idle;
1083
+ }
1084
+ data.trigger[name] = true;
1085
+
1086
+ if(!data.bound){
1087
+ jElm
1088
+ .on('mouseleave.jmeuseractivity', setInactive)
1089
+ .on('mousemove.jmeuseractivity focusin.jmeuseractivity mouseenter.jmeuseractivity keydown.jmeuseractivity keyup.jmeuseractivity mousedown.jmeuseractivity', setActive)
1090
+ ;
1091
+ data.bound = true;
1092
+ }
1093
+ if(!data.idle){
1094
+ setActive({type: 'initunidled'});
1095
+ }
1096
+ },
1097
+ remove: function(elem, name){
1098
+ var data = $.data(elem, 'jmeuseractivity') || $.data(elem, 'jmeuseractivity', {idletime: 2500, idle: true, trigger: {}});
1099
+ data.trigger[name] = false;
1100
+ if(!data.trigger.useractive && !data.trigger.userinactive){
1101
+ $(elem).off('.jmeuseractivity');
1102
+ data.bound = false;
1103
+ }
1104
+ }
1105
+ };
1106
+ $.each(['useractive', 'userinactive'], function(i, name){
1107
+ $.event.special[name] = {
1108
+ setup: function(cfg){
1109
+ activity.add(this, cfg, name);
1110
+ },
1111
+ teardown: function(){
1112
+ activity.remove(this, name);
1113
+ }
1114
+ };
1115
+ });
1116
+ })();
1117
+ });