Easy Video Player - Version 1.0.9

Version Description

  • Easy Video Player is now compatible with WordPress 4.3
Download this release

Release Info

Developer naa986
Plugin Icon 128x128 Easy Video Player
Version 1.0.9
Comparing to
See all releases

Code changes from version 1.0.2 to 1.0.9

Files changed (47) hide show
  1. easy-video-player.php +174 -131
  2. lib/embed.min.js +1 -0
  3. lib/flowplayer.js +886 -423
  4. lib/flowplayer.min.js +7 -0
  5. lib/flowplayer.swf +0 -0
  6. lib/img/Thumbs.db +0 -0
  7. lib/img/black.png +0 -0
  8. lib/img/black@x2.png +0 -0
  9. lib/img/play_black.png +0 -0
  10. lib/img/play_black@x2.png +0 -0
  11. lib/img/play_white.png +0 -0
  12. lib/img/play_white@x2.png +0 -0
  13. lib/img/playful_black.png +0 -0
  14. lib/img/playful_white.png +0 -0
  15. lib/img/white.png +0 -0
  16. lib/img/white@x2.png +0 -0
  17. lib/{all-skins.css → skin/all-skins.css} +289 -64
  18. lib/{functional.css → skin/functional.css} +95 -21
  19. lib/skin/img/black.png +0 -0
  20. lib/skin/img/black@x2.png +0 -0
  21. lib/skin/img/black_rtl.png +0 -0
  22. lib/skin/img/black_rtl@x2.png +0 -0
  23. lib/skin/img/flowplayer.png +0 -0
  24. lib/skin/img/flowplayer@2x.png +0 -0
  25. lib/skin/img/play_black.png +0 -0
  26. lib/skin/img/play_black@x2.png +0 -0
  27. lib/skin/img/play_black_rtl.png +0 -0
  28. lib/skin/img/play_black_rtl@x2.png +0 -0
  29. lib/skin/img/play_white.png +0 -0
  30. lib/skin/img/play_white@x2.png +0 -0
  31. lib/skin/img/play_white_rtl.png +0 -0
  32. lib/skin/img/play_white_rtl@x2.png +0 -0
  33. lib/skin/img/playful_black.png +0 -0
  34. lib/{img → skin/img}/playful_black@x2.png +0 -0
  35. lib/skin/img/playful_black_rtl.png +0 -0
  36. lib/skin/img/playful_black_rtl@x2.png +0 -0
  37. lib/skin/img/playful_white.png +0 -0
  38. lib/{img → skin/img}/playful_white@x2.png +0 -0
  39. lib/skin/img/playful_white_rtl.png +0 -0
  40. lib/skin/img/playful_white_rtl@x2.png +0 -0
  41. lib/skin/img/white.png +0 -0
  42. lib/skin/img/white@x2.png +0 -0
  43. lib/skin/img/white_rtl.png +0 -0
  44. lib/skin/img/white_rtl@x2.png +0 -0
  45. lib/{minimalist.css → skin/minimalist.css} +95 -21
  46. lib/{playful.css → skin/playful.css} +99 -22
  47. readme.txt +51 -7
easy-video-player.php CHANGED
@@ -1,152 +1,195 @@
1
  <?php
2
  /*
3
- Plugin Name: Easy Video Player
4
- Version: 1.0.2
5
- Plugin URI: http://easywpguide.wordpress.com/?p=25
6
- Author: naa986
7
- Author URI: http://easywpguide.wordpress.com/
8
- Description: Easily embed videos into your WordPress blog
9
- */
10
-
11
- if(!defined('ABSPATH')) exit;
12
- if(!class_exists('EASY_VIDEO_PLAYER'))
13
- {
14
- class EASY_VIDEO_PLAYER
15
- {
16
- var $plugin_version = '1.0.2';
17
- function __construct()
18
- {
19
- define('EASY_VIDEO_PLAYER_VERSION', $this->plugin_version);
20
- $this->plugin_includes();
21
- }
22
- function plugin_includes()
23
- {
24
- if(is_admin( ) )
25
- {
26
- add_filter('plugin_action_links', array(&$this,'easy_video_player_plugin_action_links'), 10, 2 );
27
- }
28
- add_action('wp_enqueue_scripts', 'easy_video_player_enqueue_scripts');
29
- add_action('admin_menu', array( &$this, 'easy_video_player_add_options_menu' ));
30
- add_shortcode('evp_embed_video','evp_embed_video_handler');
31
- }
32
- function plugin_url()
33
- {
34
- if($this->plugin_url) return $this->plugin_url;
35
- return $this->plugin_url = plugins_url( basename( plugin_dir_path(__FILE__) ), basename( __FILE__ ) );
36
- }
37
- function easy_video_player_plugin_action_links($links, $file)
38
- {
39
- if ( $file == plugin_basename( dirname( __FILE__ ) . '/easy-video-player.php' ) )
40
- {
41
- $links[] = '<a href="options-general.php?page=easy-video-player-settings">Settings</a>';
42
- }
43
- return $links;
44
- }
45
-
46
- function easy_video_player_add_options_menu()
47
- {
48
- if(is_admin())
49
- {
50
- add_options_page('Easy Video Player Settings', 'Easy Video Player', 'manage_options', 'easy-video-player-settings', array(&$this, 'easy_video_player_options_page'));
51
- }
52
- add_action('admin_init', array(&$this, 'easy_video_player_add_settings'));
53
- }
54
- function easy_video_player_add_settings()
55
- {
56
- register_setting('easy-video-player-settings-group', 'evp_enable_jquery');
57
- }
58
- function easy_video_player_options_page()
59
- {
60
-
61
- ?>
62
- <div class="wrap">
63
- <div id="poststuff"><div id="post-body">
64
-
65
- <h2>Easy Video Player - v<?php echo $this->plugin_version;?></h2>
 
 
 
 
 
 
 
 
66
  <div class="postbox">
67
- <h3><label for="title">Setup Guide</label></h3>
68
- <div class="inside">
69
- <p>For detailed documentation please visit the plugin homepage <a href="http://easywpguide.wordpress.com/?p=25" target="_blank">here</a></p>
70
- </div></div>
71
- <div class="postbox">
72
- <h3><label for="title">General Settings</label></h3>
73
- <div class="inside">
74
- <form method="post" action="options.php">
75
- <?php settings_fields('easy-video-player-settings-group'); ?>
76
- <table class="form-table">
77
- <tr valign="top">
78
- <th scope="row">Enable jQuery</th>
79
- <td><input type="checkbox" id="evp_enable_jquery" name="evp_enable_jquery" value="1" <?php echo checked(1, get_option('evp_enable_jquery'), false) ?> />
80
- <p><i>By default this option should always be checked.</i></p>
81
- </td>
82
- </tr>
83
- </table>
84
-
85
- <p class="submit">
86
- <input type="submit" class="button-primary" value="<?php _e('Save Changes') ?>" />
87
- </p>
88
- </form>
89
- </div></div>
90
-
91
- </div></div>
92
- </div>
93
- <?php
94
- }
95
- }
96
- $GLOBALS['easy_video_player'] = new EASY_VIDEO_PLAYER();
97
  }
98
 
99
- function easy_video_player_enqueue_scripts()
100
- {
101
- if (!is_admin())
102
- {
103
- $plugin_url = plugins_url('',__FILE__);
104
  $enable_jquery = get_option('evp_enable_jquery');
105
- if($enable_jquery)
106
- {
107
  wp_enqueue_script('jquery');
108
  }
109
- wp_register_script('flowplayer-js', $plugin_url.'/lib/flowplayer.js');
110
- wp_enqueue_script('flowplayer-js');
111
- wp_register_style('flowplayer-css', $plugin_url.'/lib/minimalist.css');
112
- wp_enqueue_style('flowplayer-css');
113
- }
114
  }
115
 
116
- function evp_embed_video_handler($atts)
117
- {
118
- extract(shortcode_atts(array(
119
- 'url' => '',
120
- 'width' => '',
121
- 'height' => '',
122
- 'ratio' => '0.417',
123
- 'autoplay' => 'false',
124
- ), $atts));
125
- if($autoplay=="true"){
 
 
 
 
 
 
 
 
 
 
 
 
 
 
126
  $autoplay = " autoplay";
 
 
 
 
 
127
  }
128
  else{
129
- $autoplay = "";
130
  }
131
- $player = "fp".uniqid();
132
- $styles = "";
133
- if(!empty($width) && !empty($height)){
134
- $styles = <<<EOT
135
- <style>
136
- #$player {
137
- width: {$width}px;
138
- height: {$height}px;
139
- }
140
- </style>
141
- EOT;
142
  }
143
- $output = <<<EOT
144
- <div id="$player" data-ratio="$ratio" class="flowplayer">
145
- <video{$autoplay}>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
146
  <source type="video/mp4" src="$url"/>
147
  </video>
148
  </div>
149
  $styles
150
  EOT;
151
- return $output;
152
  }
1
  <?php
2
  /*
3
+ Plugin Name: Easy Video Player
4
+ Version: 1.0.9
5
+ Plugin URI: http://noorsplugin.com/wordpress-video-plugin/
6
+ Author: naa986
7
+ Author URI: http://noorsplugin.com/
8
+ Description: Easily embed videos into your WordPress blog
9
+ */
10
+
11
+ if (!defined('ABSPATH')) {
12
+ exit;
13
+ }
14
+ if (!class_exists('EASY_VIDEO_PLAYER')) {
15
+
16
+ class EASY_VIDEO_PLAYER {
17
+
18
+ var $plugin_version = '1.0.9';
19
+
20
+ function __construct() {
21
+ define('EASY_VIDEO_PLAYER_VERSION', $this->plugin_version);
22
+ $this->plugin_includes();
23
+ }
24
+
25
+ function plugin_includes() {
26
+ if (is_admin()) {
27
+ add_filter('plugin_action_links', array(&$this, 'easy_video_player_plugin_action_links'), 10, 2);
28
+ }
29
+ add_action('wp_enqueue_scripts', 'easy_video_player_enqueue_scripts');
30
+ add_action('admin_menu', array(&$this, 'easy_video_player_add_options_menu'));
31
+ add_action('wp_head', 'easy_video_player_header');
32
+ add_shortcode('evp_embed_video', 'evp_embed_video_handler');
33
+ //allows shortcode execution in the widget, excerpt and content
34
+ add_filter('widget_text', 'do_shortcode');
35
+ add_filter('the_excerpt', 'do_shortcode', 11);
36
+ add_filter('the_content', 'do_shortcode', 11);
37
+ }
38
+
39
+ function plugin_url() {
40
+ if ($this->plugin_url)
41
+ return $this->plugin_url;
42
+ return $this->plugin_url = plugins_url(basename(plugin_dir_path(__FILE__)), basename(__FILE__));
43
+ }
44
+
45
+ function easy_video_player_plugin_action_links($links, $file) {
46
+ if ($file == plugin_basename(dirname(__FILE__) . '/easy-video-player.php')) {
47
+ $links[] = '<a href="options-general.php?page=easy-video-player-settings">Settings</a>';
48
+ }
49
+ return $links;
50
+ }
51
+
52
+ function easy_video_player_add_options_menu() {
53
+ if (is_admin()) {
54
+ add_options_page('Easy Video Player Settings', 'Easy Video Player', 'manage_options', 'easy-video-player-settings', array(&$this, 'easy_video_player_options_page'));
55
+ }
56
+ add_action('admin_init', array(&$this, 'easy_video_player_add_settings'));
57
+ }
58
+
59
+ function easy_video_player_add_settings() {
60
+ register_setting('easy-video-player-settings-group', 'evp_enable_jquery');
61
+ }
62
+
63
+ function easy_video_player_options_page() {
64
+ ?>
65
+ <div class="wrap">
66
+ <div id="poststuff"><div id="post-body">
67
+
68
+ <h2>Easy Video Player - v<?php echo $this->plugin_version; ?></h2>
69
+ <div class="postbox">
70
+ <h3><label for="title">Setup Guide</label></h3>
71
+ <div class="inside">
72
+ <p>For detailed documentation please visit the plugin homepage <a href="http://noorsplugin.com/wordpress-video-plugin/" target="_blank">here</a></p>
73
+ </div></div>
74
  <div class="postbox">
75
+ <h3><label for="title">General Settings</label></h3>
76
+ <div class="inside">
77
+ <form method="post" action="options.php">
78
+ <?php settings_fields('easy-video-player-settings-group'); ?>
79
+ <table class="form-table">
80
+ <tr valign="top">
81
+ <th scope="row">Enable jQuery</th>
82
+ <td><input type="checkbox" id="evp_enable_jquery" name="evp_enable_jquery" value="1" <?php echo checked(1, get_option('evp_enable_jquery'), false) ?> />
83
+ <p><i>By default this option should always be checked.</i></p>
84
+ </td>
85
+ </tr>
86
+ </table>
87
+
88
+ <p class="submit">
89
+ <input type="submit" class="button-primary" value="<?php _e('Save Changes') ?>" />
90
+ </p>
91
+ </form>
92
+ </div></div>
93
+
94
+ </div></div>
95
+ </div>
96
+ <?php
97
+ }
98
+
99
+ }
100
+
101
+ $GLOBALS['easy_video_player'] = new EASY_VIDEO_PLAYER();
 
 
 
102
  }
103
 
104
+ function easy_video_player_enqueue_scripts() {
105
+ if (!is_admin()) {
106
+ $plugin_url = plugins_url('', __FILE__);
 
 
107
  $enable_jquery = get_option('evp_enable_jquery');
108
+ if ($enable_jquery) {
 
109
  wp_enqueue_script('jquery');
110
  }
111
+ wp_register_script('flowplayer-js', $plugin_url . '/lib/flowplayer.min.js');
112
+ wp_enqueue_script('flowplayer-js');
113
+ wp_register_style('flowplayer-css', $plugin_url . '/lib/skin/all-skins.css');
114
+ wp_enqueue_style('flowplayer-css');
115
+ }
116
  }
117
 
118
+ function easy_video_player_header() {
119
+ if (!is_admin()) {
120
+ $fp_config = '<!-- This content is generated with the Easy Video Player plugin v' . EASY_VIDEO_PLAYER_VERSION . ' - http://noorsplugin.com/wordpress-video-plugin/ -->';
121
+ $fp_config .= '<script>';
122
+ $fp_config .= 'flowplayer.conf.embed = false;';
123
+ $fp_config .= 'flowplayer.conf.keyboard = false;';
124
+ $fp_config .= '</script>';
125
+ $fp_config .= '<!-- Easy Video Player plugin -->';
126
+ echo $fp_config;
127
+ }
128
+ }
129
+
130
+ function evp_embed_video_handler($atts) {
131
+ extract(shortcode_atts(array(
132
+ 'url' => '',
133
+ 'width' => '',
134
+ 'height' => '',
135
+ 'ratio' => '0.417',
136
+ 'autoplay' => 'false',
137
+ 'poster' => '',
138
+ 'loop' => '',
139
+ 'class' => '',
140
+ ), $atts));
141
+ if ($autoplay == "true") {
142
  $autoplay = " autoplay";
143
+ } else {
144
+ $autoplay = "";
145
+ }
146
+ if ($loop == "true") {
147
+ $loop= " loop";
148
  }
149
  else{
150
+ $loop= "";
151
  }
152
+ $player = "fp" . uniqid();
153
+ $color = '';
154
+ if (!empty($poster)) {
155
+ $color = 'background: #000 url('.$poster.') 0 0 no-repeat;background-size: 100%;';
156
+ } else {
157
+ $color = 'background-color: #000;';
158
+ }
159
+ $size_attr = "";
160
+ if (!empty($width)) {
161
+ $size_attr = "max-width: {$width}px;max-height: auto;";
 
162
  }
163
+ $class_array = array('flowplayer', 'minimalist');
164
+ if(!empty($class)){
165
+ $shortcode_class_array = array_map('trim', explode(' ', $class));
166
+ $shortcode_class_array = array_filter( $shortcode_class_array, 'strlen' );
167
+ $shortcode_class_array = array_values($shortcode_class_array);
168
+ if(in_array("functional", $shortcode_class_array) || in_array("playful", $shortcode_class_array)){
169
+ $class_array = array_diff($class_array, array('minimalist'));
170
+ }
171
+ $class_array = array_merge($class_array, $shortcode_class_array);
172
+ $class_array = array_unique($class_array);
173
+ $class_array = array_values($class_array);
174
+ }
175
+
176
+ $classes = implode(" ", $class_array);
177
+ $styles = <<<EOT
178
+ <style>
179
+ #$player {
180
+ $size_attr
181
+ $color
182
+ }
183
+ </style>
184
+ EOT;
185
+
186
+ $output = <<<EOT
187
+ <div id="$player" data-ratio="$ratio" class="{$classes}">
188
+ <video{$autoplay}{$loop}>
189
  <source type="video/mp4" src="$url"/>
190
  </video>
191
  </div>
192
  $styles
193
  EOT;
194
+ return $output;
195
  }
lib/embed.min.js ADDED
@@ -0,0 +1 @@
 
1
+ !function(){function e(e,t,n){if(e)return n(e);if(window.fp5ecc[t])return window.fp5ecc[t].push(n);window.fp5ecc[t]=[n];var r=document.createElement("script");r.onload=r.onreadystatechange=function(){var e=r.readyState;if(void 0===e||/complete|loaded/.test(e))for(var n=window.fp5ecc[t],i=0;i<n.length;i++)n[i]()},r.async=!0,r.src=t,a.insertBefore(r,a.firstChild)}function t(e){if(!window.fp5ecssc[e]){window.fp5ecssc[e]=!0;var t=document.createElement("link");t.rel="stylesheet",t.type="text/css",t.href=e,a.insertBefore(t,a.firstChild)}}for(var n,r=document.getElementsByTagName("script"),i=document.createElement("div"),o=0;o<r.length;o++)if(-1!==r[o].innerHTML.indexOf("<video")){n=r[o],n.parentNode.insertBefore(i,n),n.parentNode.removeChild(n);break}var a=document.getElementsByTagName("head")[0],c="//releases.flowplayer.org/5.5.0/commercial",f=n.getAttribute("data-library")||c+"/flowplayer.min.js",d=n.getAttribute("data-swf")||c+"/flowplayer.swf",s=n.getAttribute("data-skin")||c+"/skin/minimalist.css",l="//www.google-analytics.com/ga.js",u="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js";window.fp5ecc=window.fp5ecc||{},window.fp5ecssc=window.fp5ecssc||{};var p="undefined"!=typeof jQuery?jQuery().jquery:"",w=p.split("."),m="undefined"!=typeof $&&jQuery!=$;e(Number(w[0])>=1&&Number(w[1])>=7,u,function(r){var o;!r&&m&&(o=jQuery.noConflict());var a=!r&&""!==p;e("undefined"!=typeof _gat,l,function(){e("undefined"!=typeof flowplayer,f,function(e){e||t(s),o=o||jQuery;var r=o(n),c=r.attr("src"),l=o(r.html().replace(/^[ \t\n\r]+/gm,"").replace(/[ \n\t\r]+$/gm,""));o(i).replaceWith(l),l.find(":not(video, source)").remove(),l.flowplayer({swf:d,e:1}),l.data("flowplayer").conf.embed={library:f,swf:d,script:c},a&&o.noConflict(!0)})})})}();
lib/flowplayer.js CHANGED
@@ -1,6 +1,6 @@
1
  /*!
2
 
3
- Flowplayer v5.3.2 (Monday, 28. January 2013 10:02AM) | flowplayer.org/license
4
 
5
  */
6
  !function($) {
@@ -19,6 +19,7 @@
19
  var b = $.browser = {},
20
  ua = navigator.userAgent.toLowerCase(),
21
  match = /(chrome)[ \/]([\w.]+)/.exec(ua) ||
 
22
  /(webkit)[ \/]([\w.]+)/.exec(ua) ||
23
  /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) ||
24
  /(msie) ([\w.]+)/.exec(ua) ||
@@ -41,22 +42,43 @@ $(function() {
41
 
42
  var instances = [],
43
  extensions = [],
44
- UA = navigator.userAgent,
45
- use_native = /Android/.test(UA) && /Firefox/.test(UA);
46
 
47
 
48
  /* flowplayer() */
49
  window.flowplayer = function(fn) {
50
- return use_native ? 0 :
51
- $.isFunction(fn) ? extensions.push(fn) :
52
  typeof fn == 'number' || fn === undefined ? instances[fn || 0] :
53
  $(fn).data("flowplayer");
54
  };
55
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
56
 
57
  $.extend(flowplayer, {
58
 
59
- version: '5.3.2',
60
 
61
  engine: {},
62
 
@@ -82,6 +104,8 @@ $.extend(flowplayer, {
82
  // default aspect ratio
83
  ratio: 9 / 16,
84
 
 
 
85
  // scale flash object to video's aspect ratio in normal mode?
86
  flashfit: false,
87
 
@@ -89,14 +113,16 @@ $.extend(flowplayer, {
89
 
90
  splash: false,
91
 
92
- swf: "http://releases.flowplayer.org/5.3.2/flowplayer.swf",
 
 
93
 
94
  speeds: [0.25, 0.5, 1, 1.5, 2],
95
 
96
  tooltip: true,
97
 
98
  // initial volume level
99
- volume: 1,
100
 
101
  // http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#error-codes
102
  errors: [
@@ -118,19 +144,17 @@ $.extend(flowplayer, {
118
  ],
119
  errorUrls: ['','','','','','','','','','',
120
  'http://get.adobe.com/flashplayer/'
121
- ]
 
 
 
122
 
123
  }
124
 
125
  });
126
 
127
- // smartphones simply use native controls
128
- if (use_native) {
129
- return $(function() { $("video").attr("controls", "controls"); });
130
- }
131
-
132
  // keep track of players
133
- var playerCount = 0;
134
 
135
  // jQuery plugin
136
  $.fn.flowplayer = function(opts, callback) {
@@ -144,24 +168,53 @@ $.fn.flowplayer = function(opts, callback) {
144
  var root = $(this).addClass("is-loading"),
145
  conf = $.extend({}, flowplayer.defaults, flowplayer.conf, opts, root.data()),
146
  videoTag = $("video", root).addClass("fp-engine").removeAttr("controls"),
147
- urlResolver = new URLResolver(videoTag),
148
  storage = {},
149
  lastSeekPosition,
150
  engine;
151
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
152
  root.data('fp-player_id', root.data('fp-player_id') || playerCount++);
153
 
154
  try {
155
- storage = window.localStorage || storage;
156
  } catch(e) {}
157
 
 
 
 
 
 
158
  /*** API ***/
159
- var api = {
160
 
161
  // properties
162
  conf: conf,
163
  currentSpeed: 1,
164
- volumeLevel: storage.volume * 1 || conf.volume,
165
  video: {},
166
 
167
  // states
@@ -173,6 +226,7 @@ $.fn.flowplayer = function(opts, callback) {
173
  playing: false,
174
  ready: false,
175
  splash: false,
 
176
 
177
  // methods
178
  load: function(video, callback) {
@@ -193,6 +247,8 @@ $.fn.flowplayer = function(opts, callback) {
193
  // callback
194
  if ($.isFunction(video)) callback = video;
195
  if (callback) root.one("ready", callback);
 
 
196
  }
197
  }
198
 
@@ -214,7 +270,7 @@ $.fn.flowplayer = function(opts, callback) {
214
 
215
  // Firefox (+others?) does not fire "resume" after finish
216
  if (api.finished) {
217
- api.trigger("resume");
218
  api.finished = false;
219
  }
220
  }
@@ -232,16 +288,22 @@ $.fn.flowplayer = function(opts, callback) {
232
  seek(false) -> 10% backward
233
  */
234
  seek: function(time, callback) {
235
- if (api.ready) {
236
 
237
  if (typeof time == "boolean") {
238
  var delta = api.video.duration * 0.1;
239
  time = api.video.time + (time ? delta : -delta);
240
  }
241
-
242
- time = lastSeekPosition = Math.min(Math.max(time, 0), api.video.duration);
243
- engine.seek(time);
244
- if ($.isFunction(callback)) root.one("seek", callback);
 
 
 
 
 
 
245
  }
246
  return api;
247
  },
@@ -259,19 +321,21 @@ $.fn.flowplayer = function(opts, callback) {
259
  },
260
 
261
  mute: function(flag) {
262
- if (flag == undefined) flag = !api.muted;
263
  storage.muted = api.muted = flag;
264
- api.volume(flag ? 0 : storage.volume);
 
265
  api.trigger("mute", flag);
 
266
  },
267
 
268
- volume: function(level) {
269
  if (api.ready) {
270
  level = Math.min(Math.max(level, 0), 1);
271
- storage.volume = level;
272
  engine.volume(level);
273
  }
274
-
275
  return api;
276
  },
277
 
@@ -322,10 +386,13 @@ $.fn.flowplayer = function(opts, callback) {
322
  api.disabled = flag;
323
  api.trigger("disable", flag);
324
  }
 
325
  }
326
 
327
  };
328
 
 
 
329
 
330
  /* event binding / unbinding */
331
  $.each(['bind', 'one', 'unbind'], function(i, key) {
@@ -342,150 +409,167 @@ $.fn.flowplayer = function(opts, callback) {
342
 
343
 
344
  /*** Behaviour ***/
 
 
345
 
346
- root.bind("boot", function() {
 
 
 
 
347
 
348
- // conf
349
- $.each(['autoplay', 'loop', 'preload', 'poster'], function(i, key) {
350
- var val = videoTag.attr(key);
351
- if (val !== undefined) conf[key] = val ? val : true;
352
- });
 
 
353
 
354
- // splash
355
- if (conf.splash || root.hasClass("is-splash") || !flowplayer.support.firstframe) {
356
- api.splash = conf.splash = conf.autoplay = true;
357
- root.addClass("is-splash");
358
- videoTag.attr("preload", "none");
359
- }
360
 
361
- // extensions
362
- $.each(extensions, function(i) {
363
- this(api, root);
364
- });
365
 
366
- // 1. use the configured engine
367
- engine = flowplayer.engine[conf.engine];
368
- if (engine) engine = engine(api, root);
369
 
370
- if (engine.pick(urlResolver.initialSources)) {
371
- api.engine = conf.engine;
372
 
373
- // 2. failed -> try another
374
- } else {
375
- $.each(flowplayer.engine, function(name, impl) {
376
- if (name != conf.engine) {
377
- engine = this(api, root);
378
- if (engine.pick(urlResolver.initialSources)) api.engine = name;
379
- return false;
380
- }
381
- });
382
- }
 
 
383
 
384
- // no engine
385
- if (!api.engine) return api.trigger("error", { code: flowplayer.support.flash ? 5 : 10 });
386
 
387
- // start
388
- conf.splash ? api.unload() : api.load();
389
 
390
- // disabled
391
- if (conf.disabled) api.disable();
392
 
393
- // initial callback
394
- root.one("ready", callback);
395
 
396
- // instances
397
- instances.push(api);
398
 
 
 
399
 
400
- }).bind("load", function(e, api, video) {
401
 
402
- // unload others
403
- if (conf.splash) {
404
- $(".flowplayer").filter(".is-ready, .is-loading").not(root).each(function() {
405
- var api = $(this).data("flowplayer");
406
- if (api.conf.splash) api.unload();
407
- });
408
- }
 
 
409
 
410
- // loading
411
- root.addClass("is-loading");
412
- api.loading = true;
413
 
414
 
415
- }).bind("ready", function(e, api, video) {
416
- video.time = 0;
417
- api.video = video;
418
 
419
- function notLoading() {
420
- root.removeClass("is-loading");
421
- api.loading = false;
422
- }
423
 
424
- if (conf.splash) root.one("progress", notLoading);
425
- else notLoading();
426
 
427
- // saved state
428
- if (api.muted) api.mute(true);
429
- else api.volume(api.volumeLevel);
430
 
 
431
 
432
- }).bind("unload", function(e) {
433
- if (conf.splash) videoTag.remove();
434
- root.removeClass("is-loading");
435
- api.loading = false;
436
 
 
 
 
 
437
 
438
- }).bind("ready unload", function(e) {
439
- var is_ready = e.type == "ready";
440
- root.toggleClass("is-splash", !is_ready).toggleClass("is-ready", is_ready);
441
- api.ready = is_ready;
442
- api.splash = !is_ready;
443
 
 
 
 
 
 
444
 
445
- }).bind("progress", function(e, api, time) {
446
- api.video.time = time;
447
 
 
 
448
 
449
- }).bind("speed", function(e, api, val) {
450
- api.currentSpeed = val;
451
 
452
- }).bind("volume", function(e, api, level) {
453
- api.volumeLevel = Math.round(level * 100) / 100;
454
- if (!api.muted) storage.volume = level;
455
- else if (level) api.mute(false);
456
 
 
 
 
 
457
 
458
- }).bind("beforeseek seek", function(e) {
459
- api.seeking = e.type == "beforeseek";
460
- root.toggleClass("is-seeking", api.seeking);
461
 
462
- }).bind("ready pause resume unload finish stop", function(e, _api, video) {
 
 
463
 
464
- // PAUSED: pause / finish
465
- api.paused = /pause|finish|unload|stop/.test(e.type);
466
 
467
- // SHAKY HACK: first-frame / preload=none
468
- if (e.type == "ready") {
469
- if (video) {
470
- api.paused = !video.duration || !conf.autoplay && (conf.preload != 'none' || api.engine == 'flash');
 
 
 
 
 
471
  }
472
- }
473
 
474
- // the opposite
475
- api.playing = !api.paused;
476
 
477
- // CSS classes
478
- root.toggleClass("is-paused", api.paused).toggleClass("is-playing", api.playing);
479
 
480
- // sanity check
481
- if (!api.load.ed) api.pause();
482
 
483
- }).bind("finish", function(e) {
484
- api.finished = true;
485
 
486
- }).bind("error", function() {
487
- videoTag.remove();
488
- });
 
489
 
490
  // boot
491
  root.trigger("boot", [api, root]).data("flowplayer", api);
@@ -496,44 +580,68 @@ $.fn.flowplayer = function(opts, callback) {
496
 
497
  !function() {
498
 
 
 
 
 
 
 
 
 
499
  var s = flowplayer.support,
500
  browser = $.browser,
501
  video = $("<video loop autoplay preload/>")[0],
502
- IS_IE = browser.msie,
503
  UA = navigator.userAgent,
504
- IS_IPAD = /iPad|MeeGo/.test(UA),
505
- IS_IPHONE = /iP(hone|od)/i.test(UA),
506
- IS_ANDROID = /Android/.test(UA),
 
 
 
507
  IS_SILK = /Silk/.test(UA),
508
- IPAD_VER = IS_IPAD ? parseFloat(/Version\/(\d\.\d)/.exec(UA)[1], 10) : 0;
509
-
510
-
 
 
511
  $.extend(s, {
512
- video: !!video.canPlayType,
513
  subtitles: !!video.addTextTrack,
514
- fullscreen: typeof document.webkitCancelFullScreen == 'function'
515
- && !/Mac OS X 10_5.+Version\/5\.0\.\d Safari/.test(UA) || document.mozFullScreenEnabled,
516
- fullscreen_keyboard: !browser.safari || browser.version > "536",
 
517
  inlineBlock: !(IS_IE && browser.version < 8),
518
  touch: ('ontouchstart' in window),
519
- dataload: !IS_IPAD && !IS_IPHONE,
520
  zeropreload: !IS_IE && !IS_ANDROID, // IE supports only preload=metadata
521
- volume: !IS_IPAD && !IS_ANDROID && !IS_IPHONE && !IS_SILK,
522
- cachedVideoTag: !IS_IPAD && !IS_IPHONE,
523
- firstframe: !IS_IPHONE && !IS_IPAD && !IS_ANDROID && !IS_SILK
 
 
 
524
  });
525
 
526
  // flashVideo
527
  try {
528
- var ver = IS_IE ? new ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable('$version') :
529
- navigator.plugins["Shockwave Flash"].description;
 
 
530
 
531
- ver = ver.split(/\D+/);
532
- if (ver.length && !ver[0]) ver = ver.slice(1);
533
 
534
- s.flashVideo = ver[0] > 9 || ver[0] == 9 && ver[3] >= 115;
 
535
 
536
  } catch (ignored) {}
 
 
 
 
 
 
537
 
538
  // animation
539
  s.animation = (function() {
@@ -552,7 +660,8 @@ $.fn.flowplayer = function(opts, callback) {
552
  /* The most minimal Flash embedding */
553
 
554
  // movie required in opts
555
- function embed(swf, flashvars) {
 
556
 
557
  var id = "obj" + ("" + Math.random()).slice(2, 15),
558
  tag = '<object class="fp-engine" id="' + id+ '" name="' + id + '" ';
@@ -564,7 +673,7 @@ function embed(swf, flashvars) {
564
  width: "100%",
565
  height: "100%",
566
  allowscriptaccess: "always",
567
- wmode: "transparent",
568
  quality: "high",
569
  flashvars: "",
570
 
@@ -605,6 +714,70 @@ flowplayer.engine.flash = function(player, root) {
605
  objectTag,
606
  api;
607
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
608
  var engine = {
609
 
610
  pick: function(sources) {
@@ -617,29 +790,45 @@ flowplayer.engine.flash = function(player, root) {
617
 
618
  for (var i = 0, source; i < sources.length; i++) {
619
  source = sources[i];
620
- if (/mp4|flv/.test(source.type)) return source;
621
  }
622
  }
623
  },
624
 
625
  load: function(video) {
626
 
 
 
 
 
627
  var html5Tag = $("video", root),
628
- url = video.src.replace(/&amp;/g, '%26').replace(/&/g, '%26').replace(/=/g, '%3D'),
629
  is_absolute = /^https?:/.test(url);
630
 
631
- // html5 tag not needed (pause needed for firefox)
632
- if (html5Tag.length > 0 && flowplayer.support.video) html5Tag[0].pause();
633
- html5Tag.remove();
 
 
 
 
 
 
 
 
 
634
 
635
  // convert to absolute
636
- if (!is_absolute && !conf.rtmp) url = $("<a/>").attr("href", url)[0].href;
637
 
638
  if (api) {
639
  api.__play(url);
640
 
641
  } else {
642
 
 
 
 
643
  callbackId = "fp" + ("" + Math.random()).slice(3, 15);
644
 
645
  var opts = {
@@ -647,15 +836,28 @@ flowplayer.engine.flash = function(player, root) {
647
  url: url,
648
  callback: "jQuery."+ callbackId
649
  };
 
 
 
650
 
651
  if (is_absolute) delete conf.rtmp;
652
 
653
  // optional conf
654
- $.each(['key', 'autoplay', 'preload', 'rtmp', 'loop', 'debug'], function(i, key) {
655
- if (conf[key]) opts[key] = conf[key];
656
  });
 
 
 
 
 
 
 
 
 
 
657
 
658
- objectTag = embed(conf.swf, opts);
659
 
660
  objectTag.prependTo(root);
661
 
@@ -670,10 +872,34 @@ flowplayer.engine.flash = function(player, root) {
670
  } catch (e) {}
671
  }, 5000);
672
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
673
  // listen
674
  $[callbackId] = function(type, arg) {
675
 
676
- if (conf.debug && type != "status") console.log("--", type, arg);
677
 
678
  var event = $.Event(type);
679
 
@@ -685,23 +911,12 @@ flowplayer.engine.flash = function(player, root) {
685
  case "click": event.flash = true; break;
686
  case "keydown": event.which = arg; break;
687
  case "seek": video.time = arg; break;
688
- case "buffered": video.buffered = true; break;
689
-
690
- case "status":
691
- player.trigger("progress", arg.time);
692
-
693
- if (arg.buffer <= video.bytes && !video.buffered) {
694
- video.buffer = arg.buffer / video.bytes * video.duration;
695
- player.trigger("buffer", video.buffer);
696
-
697
- } else if (video.buffered) player.trigger("buffered");
698
-
699
- break;
700
-
701
  }
702
 
703
- // add some delay to that player is truly ready after an event
704
- setTimeout(function() { player.trigger(event, arg); }, 1)
 
 
705
 
706
  };
707
 
@@ -718,6 +933,8 @@ flowplayer.engine.flash = function(player, root) {
718
  delete $[callbackId];
719
  $("object", root).remove();
720
  api = 0;
 
 
721
  }
722
 
723
  };
@@ -725,69 +942,31 @@ flowplayer.engine.flash = function(player, root) {
725
  $.each("pause,resume,seek,volume".split(","), function(i, name) {
726
 
727
  engine[name] = function(arg) {
 
 
728
 
729
- if (player.ready) {
730
-
731
- if (name == 'seek' && player.video.time && !player.paused) {
732
- player.trigger("beforeseek");
733
- }
734
 
735
- if (arg === undefined) {
736
- api["__" + name]();
737
 
738
- } else {
739
- api["__" + name](arg);
740
- }
741
 
 
 
 
 
 
 
742
  }
743
  };
744
 
745
  });
746
 
747
- var win = $(window),
748
- origH = root.height(),
749
- origW = root.width();
750
-
751
- // handle Flash object aspect ratio
752
- player.bind("ready fullscreen fullscreen-exit", function(e) {
753
- if (player.conf.flashfit || /full/.test(e.type)) {
754
-
755
- var fs = player.isFullscreen,
756
- truefs = fs && FS_SUPPORT,
757
- ie7 = !flowplayer.support.inlineBlock,
758
- screenW = fs ? (truefs ? screen.availWidth : win.width()) : origW,
759
- screenH = fs ? (truefs ? screen.availHeight : win.height()) : origH,
760
-
761
- // default values for fullscreen-exit without flashfit
762
- hmargin = truefs ? screen.width - screen.availWidth : 0,
763
- vmargin = truefs ? screen.height - screen.availHeight : 0,
764
- objwidth = ie7 ? origW : '',
765
- objheight = ie7 ? origH : '',
766
-
767
- aspectratio, dataratio;
768
-
769
- if (player.conf.flashfit || e.type === "fullscreen") {
770
- aspectratio = player.video.width / player.video.height,
771
- dataratio = player.video.height / player.video.width,
772
- objheight = Math.max(dataratio * screenW),
773
- objwidth = Math.max(aspectratio * screenH);
774
- objheight = objheight > screenH ? objwidth * dataratio : objheight;
775
- objheight = Math.min(Math.round(objheight), screenH);
776
- objwidth = objwidth > screenW ? objheight * aspectratio : objwidth;
777
- objwidth = Math.min(Math.round(objwidth), screenW);
778
- vmargin = Math.max(Math.round((screenH + vmargin - objheight) / 2), 0);
779
- hmargin = Math.max(Math.round((screenW + hmargin - objwidth) / 2), 0);
780
- }
781
-
782
- $("object", root).css({
783
- width: objwidth,
784
- height: objheight,
785
- marginTop: vmargin,
786
- marginLeft: hmargin
787
- });
788
- }
789
- });
790
-
791
  return engine;
792
 
793
  };
@@ -806,7 +985,7 @@ var EVENTS = {
806
  timeupdate: 'progress',
807
  volumechange: 'volume',
808
  ratechange: 'speed',
809
- seeking: 'beforeseek',
810
  seeked: 'seek',
811
  // abort: 'resume',
812
 
@@ -824,8 +1003,9 @@ var EVENTS = {
824
 
825
  };
826
 
827
- function round(val) {
828
- return Math.round(val * 100) / 100;
 
829
  }
830
 
831
  function getType(type) {
@@ -833,11 +1013,18 @@ function getType(type) {
833
  }
834
 
835
  function canPlay(type) {
836
- if (!/^(video|application)/.test(type))
837
  type = getType(type);
838
  return !!VIDEO.canPlayType(type).replace("no", '');
839
  }
840
 
 
 
 
 
 
 
 
841
  var videoTagCache;
842
  var createVideoTag = function(video) {
843
  if (videoTagCache) {
@@ -848,8 +1035,9 @@ var createVideoTag = function(video) {
848
  type: getType(video.type),
849
  'class': 'fp-engine',
850
  'autoplay': 'autoplay',
851
- preload: 'none'
852
- }));
 
853
  }
854
 
855
  flowplayer.engine.html5 = function(player, root) {
@@ -860,12 +1048,17 @@ flowplayer.engine.html5 = function(player, root) {
860
  conf = player.conf,
861
  self,
862
  timer,
863
- api;
 
864
 
865
  return self = {
866
 
867
  pick: function(sources) {
868
  if (support.video) {
 
 
 
 
869
  for (var i = 0, source; i < sources.length; i++) {
870
  if (canPlay(sources[i].type)) return sources[i];
871
  }
@@ -878,15 +1071,30 @@ flowplayer.engine.html5 = function(player, root) {
878
 
879
  videoTag = createVideoTag(video).prependTo(root);
880
 
881
- if (track.length) videoTag.append(track.attr("default", ""));
 
 
 
 
 
 
 
882
 
883
  if (conf.loop) videoTag.attr("loop", "loop");
884
 
885
  api = videoTag[0];
 
 
 
886
 
887
  } else {
888
 
889
  api = videoTag[0];
 
 
 
 
 
890
 
891
  // change of clip
892
  if (player.video.src && video.src != player.video.src) {
@@ -898,12 +1106,12 @@ flowplayer.engine.html5 = function(player, root) {
898
 
899
  if (support.zeropreload) {
900
  player.trigger("ready", video).trigger("pause").one("ready", function() {
901
- root.trigger("resume");
902
  });
903
 
904
  } else {
905
  player.one("ready", function() {
906
- root.trigger("pause");
907
  });
908
  }
909
  }
@@ -913,7 +1121,7 @@ flowplayer.engine.html5 = function(player, root) {
913
  listen(api, $("source", videoTag).add(videoTag), video);
914
 
915
  // iPad (+others?) demands load()
916
- if (conf.preload != 'none' || !support.zeropreload || !support.dataload) api.load();
917
  if (conf.splash) api.load();
918
  },
919
 
@@ -931,16 +1139,21 @@ flowplayer.engine.html5 = function(player, root) {
931
 
932
  seek: function(time) {
933
  try {
 
934
  api.currentTime = time;
 
935
  } catch (ignored) {}
936
  },
937
 
938
  volume: function(level) {
939
- api.volume = level;
 
 
 
940
  },
941
 
942
  unload: function() {
943
- $("video", root).remove();
944
  if (!support.cachedVideoTag) videoTagCache = null;
945
  timer = clearInterval(timer);
946
  api = 0;
@@ -972,7 +1185,7 @@ flowplayer.engine.html5 = function(player, root) {
972
  // safari hack for bad URL (10s before fails)
973
  if (flow == "progress" && e.srcElement && e.srcElement.readyState === 0) {
974
  setTimeout(function() {
975
- if (!player.video.duration) {
976
  flow = "error";
977
  player.trigger(flow, { code: 4 });
978
  }
@@ -984,7 +1197,7 @@ flowplayer.engine.html5 = function(player, root) {
984
  // no events if player not ready
985
  if (!player.ready && !/ready|error/.test(flow) || !flow || !$("video", root).length) { return; }
986
 
987
- var event = $.Event(flow), arg;
988
 
989
  switch (flow) {
990
 
@@ -999,7 +1212,7 @@ flowplayer.engine.html5 = function(player, root) {
999
  });
1000
 
1001
  try {
1002
- arg.seekable = api.seekable && api.seekable.end(null);
1003
 
1004
  } catch (ignored) {}
1005
 
@@ -1012,7 +1225,7 @@ flowplayer.engine.html5 = function(player, root) {
1012
  } catch (ignored) {}
1013
 
1014
  if (arg.buffer) {
1015
- if (arg.buffer <= arg.duration && !arg.buffered) {
1016
  player.trigger("buffer", e);
1017
 
1018
  } else if (!arg.buffered) {
@@ -1025,15 +1238,28 @@ flowplayer.engine.html5 = function(player, root) {
1025
 
1026
  }, 250);
1027
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1028
  break;
1029
 
1030
  case "progress": case "seek":
1031
 
1032
  var dur = player.video.duration
1033
 
1034
- if (api.currentTime > 0) {
1035
  arg = Math.max(api.currentTime, 0);
1036
- if (dur && arg && arg >= dur) event.type = "finish";
1037
  break;
1038
 
1039
  } else if (flow == 'progress') {
@@ -1067,7 +1293,7 @@ flowplayer.engine.html5 = function(player, root) {
1067
  }
1068
 
1069
  };
1070
- var TYPE_RE = /.(\w{3,4})$/i;
1071
 
1072
  function parseSource(el) {
1073
 
@@ -1075,7 +1301,7 @@ function parseSource(el) {
1075
  type = el.attr("type") || "",
1076
  suffix = src.split(TYPE_RE)[1];
1077
 
1078
- type = /mpegurl/.test(type) ? "mpegurl" : type.replace("video/", "");
1079
 
1080
  return { src: src, suffix: suffix || type, type: type || suffix };
1081
  }
@@ -1101,11 +1327,12 @@ function URLResolver(videoTag) {
1101
  if ($.isArray(video)) {
1102
 
1103
  video = { sources: $.map(video, function(el) {
1104
- var type; $.each(el, function(key, value) { type = key; });
1105
- el.type = type;
1106
- el.src = el[type];
1107
- delete el[type];
1108
- return el;
 
1109
  })};
1110
 
1111
  } else if (typeof video == 'string') {
@@ -1116,7 +1343,7 @@ function URLResolver(videoTag) {
1116
  if (source.type != 'flash') {
1117
  video.sources.push({
1118
  type: source.type,
1119
- src: video.src.replace(TYPE_RE, "") + "." + source.suffix
1120
  });
1121
  }
1122
  });
@@ -1146,9 +1373,9 @@ $.throttle = function(fn, delay) {
1146
  };
1147
 
1148
 
1149
- $.fn.slider2 = function() {
1150
 
1151
- var IS_IPAD = /iPad/.test(navigator.userAgent);
1152
 
1153
  return this.each(function() {
1154
 
@@ -1163,6 +1390,7 @@ $.fn.slider2 = function() {
1163
  size,
1164
  maxValue,
1165
  max,
 
1166
 
1167
  /* private */
1168
  calc = function() {
@@ -1185,11 +1413,16 @@ $.fn.slider2 = function() {
1185
  },
1186
 
1187
  mousemove = function(e) {
1188
- var delta = vertical ? e.pageY - offset.top : e.pageX - offset.left;
 
 
 
 
1189
  delta = Math.max(0, Math.min(max || size, delta));
1190
 
1191
  var value = delta / size;
1192
  if (vertical) value = 1 - value;
 
1193
  return move(value, 0, true);
1194
  },
1195
 
@@ -1200,8 +1433,12 @@ $.fn.slider2 = function() {
1200
  var to = (Math.round(value * 1000) / 10) + "%";
1201
 
1202
  if (!maxValue || value <= maxValue) {
1203
- if (!IS_IPAD) progress.stop(); // stop() broken on iPad
1204
- progress.animate(vertical ? { height: to } : { width: to }, speed, "linear");
 
 
 
 
1205
  }
1206
 
1207
  return value;
@@ -1226,6 +1463,12 @@ $.fn.slider2 = function() {
1226
  calc();
1227
  if (fireEvent) fire(value);
1228
  move(value, speed);
 
 
 
 
 
 
1229
  }
1230
 
1231
  };
@@ -1233,8 +1476,7 @@ $.fn.slider2 = function() {
1233
  calc();
1234
 
1235
  // bound dragging into document
1236
- root.data("api", api).bind("mousedown.sld", function(e) {
1237
-
1238
  e.preventDefault();
1239
 
1240
  if (!disabled) {
@@ -1243,15 +1485,17 @@ $.fn.slider2 = function() {
1243
  var delayedFire = $.throttle(fire, 100);
1244
  calc();
1245
  api.dragging = true;
 
1246
  fire(mousemove(e));
1247
 
1248
- doc.bind("mousemove.sld", function(e) {
1249
  e.preventDefault();
1250
  delayedFire(mousemove(e));
1251
 
1252
- }).one("mouseup", function() {
1253
  api.dragging = false;
1254
- doc.unbind("mousemove.sld");
 
1255
  });
1256
 
1257
  }
@@ -1290,7 +1534,7 @@ flowplayer(function(api, root) {
1290
  var conf = api.conf,
1291
  support = flowplayer.support,
1292
  hovertimer;
1293
-
1294
  root.addClass("flowplayer").append('\
1295
  <div class="ratio"/>\
1296
  <div class="ui">\
@@ -1336,18 +1580,22 @@ flowplayer(function(api, root) {
1336
  origRatio = ratio.css("paddingTop"),
1337
 
1338
  // sliders
1339
- timeline = find("timeline").slider2(),
1340
  timelineApi = timeline.data("api"),
1341
 
1342
  volume = find("volume"),
1343
  fullscreen = find("fullscreen"),
1344
- volumeSlider = find("volumeslider").slider2(),
1345
  volumeApi = volumeSlider.data("api"),
1346
  noToggle = root.is(".fixed-controls, .no-toggle");
1347
 
 
 
1348
  // aspect ratio
1349
  function setRatio(val) {
1350
- if (!parseInt(origRatio, 10)) ratio.css("paddingTop", val * 100 + "%");
 
 
1351
  if (!support.inlineBlock) $("object", root).height(root.height());
1352
  }
1353
 
@@ -1373,9 +1621,9 @@ flowplayer(function(api, root) {
1373
 
1374
  var duration = api.video.duration;
1375
 
1376
- timelineApi.disable(!duration);
1377
 
1378
- setRatio(api.video.videoHeight / api.video.videoWidth);
1379
 
1380
  // initial time & volume
1381
  durationEl.add(remaining).html(format(duration));
@@ -1384,6 +1632,8 @@ flowplayer(function(api, root) {
1384
  ((duration >= 3600) && root.addClass('is-long')) || root.removeClass('is-long');
1385
  volumeApi.slide(api.volumeLevel);
1386
 
 
 
1387
 
1388
  }).bind("unload", function() {
1389
  if (!origRatio) ratio.css("paddingTop", "");
@@ -1393,7 +1643,7 @@ flowplayer(function(api, root) {
1393
  var video = api.video,
1394
  max = video.buffer / video.duration;
1395
 
1396
- if (!video.seekable) timelineApi.max(max);
1397
  if (max < 1) buffer.css("width", (max * 100) + "%");
1398
  else buffer.css({ width: '100%' });
1399
 
@@ -1455,7 +1705,7 @@ flowplayer(function(api, root) {
1455
  api.error = true;
1456
 
1457
  var el = $(".fp-message", root);
1458
- $("h2", el).text(api.engine + ": " + error.message);
1459
  $("p", el).text(error.url || api.video.url || api.video.src || conf.errorUrls[error.code]);
1460
  root.unbind("mouseenter click").removeClass("is-mouseover");
1461
  }
@@ -1504,6 +1754,27 @@ flowplayer(function(api, root) {
1504
  e.preventDefault();
1505
  return api.toggle();
1506
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1507
  });
1508
 
1509
  // poster -> background image
@@ -1516,7 +1787,7 @@ flowplayer(function(api, root) {
1516
  if (has_bg && !conf.splash && !conf.autoplay) {
1517
 
1518
  api.bind("ready stop", function() {
1519
- root.addClass("is-poster").one("ready progress", function() {
1520
  root.removeClass("is-poster");
1521
  });
1522
  });
@@ -1524,7 +1795,7 @@ flowplayer(function(api, root) {
1524
  }
1525
 
1526
  // default background color if not present
1527
- if (!has_bg && !support.firstframe) {
1528
  root.css("backgroundColor", "#555");
1529
  }
1530
 
@@ -1570,7 +1841,7 @@ $(document).bind("keydown.fp", function(e) {
1570
  if (!el || !conf.keyboard || el.disabled) return;
1571
 
1572
  // help dialog (shift key not truly required)
1573
- if ($.inArray(key, [63, 187, 191, 219]) != -1) {
1574
  focusedRoot.toggleClass(IS_HELP);
1575
  return false;
1576
  }
@@ -1604,7 +1875,7 @@ $(document).bind("keydown.fp", function(e) {
1604
  case 32: el.toggle(); break; // spacebar
1605
  case 70: conf.fullscreen && el.fullscreen(); break; // toggle fullscreen
1606
  case 77: el.mute(); break; // mute
1607
- case 27: el[el.isFullscreen ? "fullscreen" : "unload"](); break; // esc
1608
  }
1609
 
1610
  }
@@ -1622,15 +1893,18 @@ flowplayer(function(api, root) {
1622
  if (focused) focusedRoot = root;
1623
  });
1624
 
 
 
 
 
1625
  // TODO: add to player-layout.html
1626
  root.append('\
1627
  <div class="fp-help">\
1628
  <a class="fp-close"></a>\
1629
  <div class="fp-help-section fp-help-basics">\
1630
  <p><em>space</em>play / pause</p>\
1631
- <p><em>esc</em>stop</p>\
1632
- <p><em>f</em>fullscreen</p>\
1633
- <p><em>shift</em> + <em>&#8592;</em><em>&#8594;</em>slower / faster <small>(latest Chrome and Safari)</small></p>\
1634
  </div>\
1635
  <div class="fp-help-section">\
1636
  <p><em>&#8593;</em><em>&#8595;</em>volume</p>\
@@ -1639,7 +1913,7 @@ flowplayer(function(api, root) {
1639
  <div class="fp-help-section">\
1640
  <p><em>&#8592;</em><em>&#8594;</em>seek</p>\
1641
  <p><em>&nbsp;. </em>seek to previous\
1642
- </p><p><em>1</em><em>2</em>&hellip;<em>6</em> seek to 10%, 20%, &hellip;60% </p>\
1643
  </div>\
1644
  </div>\
1645
  ');
@@ -1660,17 +1934,20 @@ var VENDOR = $.browser.mozilla ? "moz": "webkit",
1660
  FS_ENTER = "fullscreen",
1661
  FS_EXIT = "fullscreen-exit",
1662
  FULL_PLAYER,
1663
- FS_SUPPORT = flowplayer.support.fullscreen;
 
 
 
1664
 
1665
 
1666
  // esc button
1667
- $(document).bind(VENDOR + "fullscreenchange", function(e) {
1668
- var el = $(document.webkitCurrentFullScreenElement || document.mozFullScreenElement);
1669
-
1670
- if (el.length) {
1671
  FULL_PLAYER = el.trigger(FS_ENTER, [el]);
1672
  } else {
1673
  FULL_PLAYER.trigger(FS_EXIT, [FULL_PLAYER]);
 
1674
  }
1675
 
1676
  });
@@ -1681,7 +1958,7 @@ flowplayer(function(player, root) {
1681
  if (!player.conf.fullscreen) return;
1682
 
1683
  var win = $(window),
1684
- fsSeek = {pos: 0, play: false},
1685
  scrollTop;
1686
 
1687
  player.isFullscreen = false;
@@ -1694,21 +1971,34 @@ flowplayer(function(player, root) {
1694
 
1695
  if (flag) scrollTop = win.scrollTop();
1696
 
 
 
 
1697
  if (FS_SUPPORT) {
1698
 
1699
  if (flag) {
1700
- root[0][VENDOR + 'RequestFullScreen'](
1701
- flowplayer.support.fullscreen_keyboard ? Element.ALLOW_KEYBOARD_INPUT : undefined
1702
- );
 
 
 
 
 
 
 
1703
 
1704
  } else {
1705
- document[VENDOR + 'CancelFullScreen']();
 
 
 
 
 
1706
  }
1707
 
1708
  } else {
1709
- if (player.engine === "flash" && player.conf.rtmp)
1710
- fsSeek = {pos: player.video.time, play: player.playing};
1711
- player.trigger(flag ? FS_ENTER : FS_EXIT, [player])
1712
  }
1713
 
1714
  return player;
@@ -1726,22 +2016,35 @@ flowplayer(function(player, root) {
1726
  player.isFullscreen = true;
1727
 
1728
  }).bind(FS_EXIT, function(e) {
 
 
 
 
 
1729
  root.removeClass("is-fullscreen");
 
1730
  player.isFullscreen = false;
1731
  win.scrollTop(scrollTop);
1732
 
1733
  }).bind("ready", function () {
1734
- if (fsSeek.pos && !isNaN(fsSeek.pos)) {
1735
- setTimeout(function () {
1736
- player.play(); // avoid hang in buffering state
1737
- player.seek(fsSeek.pos);
1738
- if (!fsSeek.play) {
1739
- setTimeout(function () {
1740
- player.pause();
1741
- }, 100);
1742
  }
1743
- fsSeek = {pos: 0, play: false};
1744
- }, 250);
 
 
 
 
 
 
 
 
 
1745
  }
1746
  });
1747
 
@@ -1764,44 +2067,132 @@ flowplayer(function(player, root) {
1764
 
1765
 
1766
  player.play = function(i) {
1767
- if (i === undefined) player.resume();
 
1768
  else if (typeof i != 'number') player.load.apply(null, arguments);
1769
- else els().eq(i).click();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1770
  return player;
1771
  };
1772
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1773
 
1774
  if (els().length) {
 
 
 
 
 
 
 
 
1775
 
1776
  /* click -> play */
1777
  root.on("click", conf.query, function(e) {
1778
- var el = $(e.target).closest(conf.query);
1779
- el.is("." + klass) ? player.toggle() : player.load(el.attr("href"));
1780
  e.preventDefault();
 
 
 
 
 
1781
  });
1782
 
1783
- // disable single clip looping
1784
- player.conf.loop = false;
1785
-
1786
  // playlist wide cuepoint support
1787
  var has_cuepoints = els().filter("[data-cuepoints]").length;
1788
 
1789
  // highlight
1790
  player.bind("load", function(e, api, video) {
1791
-
1792
- // active
1793
  var prev = active().removeClass(klass),
1794
- el = $("a[href*='" + video.src.replace(TYPE_RE, "") + ".']", root).addClass(klass),
1795
- clips = els(),
1796
- index = clips.index(el),
1797
- is_last = index == clips.length - 1;
1798
-
1799
  // index
1800
- root.removeClass("video" + clips.index(prev)).addClass("video" + index).toggleClass("last-video", is_last);
1801
 
1802
  // video properties
1803
- video.index = index;
1804
- video.is_last = is_last;
1805
 
1806
  // cuepoints
1807
  if (has_cuepoints) player.cuepoints = el.data("cuepoints");
@@ -1813,43 +2204,11 @@ flowplayer(function(player, root) {
1813
 
1814
  });
1815
 
1816
- // api.next() / api.prev()
1817
- $.each(['next', 'prev'], function(i, key) {
1818
-
1819
- player[key] = function(e) {
1820
- e && e.preventDefault();
1821
-
1822
- // next (or previous) entry
1823
- var el = active()[key]();
1824
-
1825
- // cycle
1826
- if (!el.length) el = els().filter(key == 'next' ? ':first' : ':last');;
1827
-
1828
- el.click();
1829
- };
1830
-
1831
- $(".fp-" + key, root).click(player[key]);
1832
- });
1833
-
1834
- if (conf.advance) {
1835
- root.unbind("finish.pl").bind("finish.pl", function() {
1836
-
1837
- // next clip is found or loop
1838
- if (active().next().length || conf.loop) {
1839
- player.next();
1840
-
1841
- // stop to last clip, play button starts from 1:st clip
1842
- } else {
1843
- root.addClass("is-playing"); // show play button
1844
-
1845
- player.one("resume", function() {
1846
- player.next();
1847
- return false;
1848
- });
1849
- }
1850
- });
1851
- }
1852
 
 
 
 
1853
  }
1854
 
1855
 
@@ -1879,7 +2238,7 @@ flowplayer(function(player, root) {
1879
  for (var i = 0, cue; i < cues.length; i++) {
1880
 
1881
  cue = cues[i];
1882
- if (1 * cue) cue = { time: cue }
1883
  if (cue.time < 0) cue.time = player.video.duration + cue.time;
1884
  cue.index = i;
1885
 
@@ -1896,7 +2255,12 @@ flowplayer(function(player, root) {
1896
 
1897
  if (player.conf.generate_cuepoints) {
1898
 
1899
- player.bind("ready", function() {
 
 
 
 
 
1900
 
1901
  var cues = player.cuepoints || [],
1902
  duration = player.video.duration,
@@ -1933,14 +2297,35 @@ flowplayer(function(player, root, engine) {
1933
 
1934
  player.subtitles = track.length && track[0].track;
1935
 
1936
- // use native when supported
1937
- if (conf.nativesubtitles && conf.engine == 'html5') return;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1938
  }
1939
 
1940
  // avoid duplicate loads
1941
  track.remove();
1942
 
1943
- var TIMECODE_RE = /^(([0-9]{2}:)?[0-9]{2}:[0-9]{2}[,.]{1}[0-9]{3}) --\> (([0-9]{2}:)?[0-9]{2}:[0-9]{2}[,.]{1}[0-9]{3})(.*)/;
1944
 
1945
  function seconds(timecode) {
1946
  var els = timecode.split(':');
@@ -1953,51 +2338,51 @@ flowplayer(function(player, root, engine) {
1953
  var url = track.attr("src");
1954
 
1955
  if (!url) return;
 
 
1956
 
1957
- $.get(url, function(txt) {
1958
 
1959
- for (var i = 0, lines = txt.split("\n"), len = lines.length, entry = {}, title, timecode, text, cue; i < len; i++) {
1960
 
1961
- timecode = TIMECODE_RE.exec(lines[i]);
1962
 
1963
- if (timecode) {
 
1964
 
1965
- // title
1966
- title = lines[i - 1];
 
1967
 
1968
- // text
1969
- text = "<p>" + lines[++i] + "</p><br/>";
1970
- while ($.trim(lines[++i]) && i < lines.length) text += "<p>" + lines[i] + "</p><br/>";
 
 
 
 
1971
 
1972
- // entry
1973
- entry = {
1974
- title: title,
1975
- startTime: seconds(timecode[1]),
1976
- endTime: seconds(timecode[2] || timecode[3]),
1977
- text: text
1978
- };
1979
 
1980
- cue = { time: entry.startTime, subtitle: entry };
 
 
1981
 
1982
- player.subtitles.push(entry);
1983
- player.cuepoints.push(cue);
1984
- player.cuepoints.push({ time: entry.endTime, subtitleEnd: title });
 
1985
 
1986
- // initial cuepoint
1987
- if (entry.startTime === 0) {
1988
- player.trigger("cuepoint", cue);
1989
  }
1990
 
1991
  }
1992
 
1993
- }
1994
-
1995
- }).fail(function() {
1996
- player.trigger("error", {code: 8, url: url });
1997
- return false;
1998
  });
1999
-
2000
- var wrap = $("<div class='fp-subtitle'/>", root).appendTo(root),
2001
  currentPoint;
2002
 
2003
  player.bind("cuepoint", function(e, api, cue) {
@@ -2008,18 +2393,22 @@ flowplayer(function(player, root, engine) {
2008
 
2009
  } else if (cue.subtitleEnd) {
2010
  wrap.removeClass("fp-active");
 
2011
  }
2012
 
2013
  }).bind("seek", function(e, api, time) {
2014
-
 
 
 
 
2015
  $.each(player.cuepoints || [], function(i, cue) {
2016
  var entry = cue.subtitle;
2017
-
2018
  if (entry && currentPoint != cue.index) {
2019
- if (time >= cue.time && time <= entry.endTime) player.trigger("cuepoint", cue);
2020
- else wrap.removeClass("fp-active");
2021
- }
2022
-
2023
  });
2024
 
2025
  });
@@ -2035,7 +2424,7 @@ flowplayer(function(player, root) {
2035
  if (id) {
2036
 
2037
  // load Analytics script if needed
2038
- if (typeof _gat == 'undefined') $.getScript("http://www.google-analytics.com/ga.js");
2039
 
2040
  function track(e) {
2041
 
@@ -2072,47 +2461,101 @@ flowplayer(function(player, root) {
2072
 
2073
  }
2074
 
2075
- });
2076
- if (flowplayer.support.touch) {
2077
 
2078
  flowplayer(function(player, root) {
2079
- var isAndroid = /Android/.test(UA),
2080
- isSilk = /Silk/.test(UA);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2081
 
2082
  // hide volume
2083
  if (!flowplayer.support.volume) {
2084
  root.addClass("no-volume no-mute");
2085
  }
 
 
2086
 
2087
- // fake mouseover effect with click
2088
- root.one("touchstart", function() {
2089
- isAndroid && player.toggle();
2090
 
2091
- }).bind("touchstart", function(e) {
 
 
 
 
 
 
 
 
2092
 
2093
  if (player.playing && !root.hasClass("is-mouseover")) {
2094
  root.addClass("is-mouseover").removeClass("is-mouseout");
2095
  return false;
2096
  }
2097
 
2098
- if (player.paused && root.hasClass("is-mouseout")) {
2099
  player.toggle();
2100
  }
2101
 
 
 
 
 
2102
  });
2103
 
2104
  // native fullscreen
2105
- if (player.conf.native_fullscreen && $.browser.webkit) {
2106
  player.fullscreen = function() {
2107
- $('video', root)[0].webkitEnterFullScreen();
2108
- }
 
 
 
 
2109
  }
2110
 
2111
 
2112
  // Android browser gives video.duration == 1 until second 'timeupdate' event
2113
  (isAndroid || isSilk) && player.bind("ready", function() {
2114
 
2115
- var video = $('video', root);
2116
  video.one('canplay', function() {
2117
  video[0].play();
2118
  });
@@ -2156,16 +2599,36 @@ flowplayer(function(player, root) {
2156
  tag = $("<video/>").appendTo(el);
2157
 
2158
  // configuration
2159
- $.each(['origin', 'analytics', 'logo', 'key', 'rtmp'], function(i, key) {
2160
- if (conf[key]) el.attr("data-" + key, conf[key]);
 
 
2161
  });
2162
 
 
 
 
 
 
2163
  // sources
2164
  $.each(video.sources, function(i, src) {
2165
- tag.append($("<source/>", { type: "video/" + src.type, src: src.src }));
 
 
 
 
 
2166
  });
2167
 
2168
- var code = $("<foo/>", { src: "http://embed.flowplayer.org/5.3.2/embed.min.js" }).append(el);
 
 
 
 
 
 
 
 
2169
  return $("<p/>").append(code).html().replace(/<(\/?)foo/g, "<$1script");
2170
  };
2171
 
@@ -2219,4 +2682,4 @@ $.fn.fptip = function(trigger, active) {
2219
  };
2220
 
2221
  }(jQuery);
2222
- flowplayer(function(a,b){function j(a){var b=c("<a/>")[0];return b.href=a,b.hostname}var c=jQuery,d=a.conf,e=d.swf.indexOf("flowplayer.org")&&d.e&&d.origin,f=e?j(e):location.hostname,g=d.key;location.protocol=="file:"&&(f="localhost"),a.load.ed=1,d.hostname=f,d.origin=e||location.href,e&&b.addClass("is-embedded"),typeof g=="string"&&(g=g.split(/,\s*/));if(g&&typeof key_check=="function"&&key_check(g,f))d.logo&&b.append(c("<a>",{"class":"fp-logo",href:e,target:"_top"}).append(c("<img/>",{src:d.logo})));else{var h=c("<a/>",{href:"http://flowplayer.org",target:"_top"}).appendTo(b),i=c(".fp-controls",b);a.bind("pause resume finish unload",function(b){/pause|resume/.test(b.type)&&a.engine!="flash"?(h.show().css({position:"absolute",left:16,bottom:36,zIndex:99999,width:100,height:20,backgroundImage:"url("+[".png","logo","/",".org",".flowplayer","stream","//"].reverse().join("")+")"}),a.load.ed=h.is(":visible")):h.hide()})}});
1
  /*!
2
 
3
+ Flowplayer v5.5.2 (Thursday, 27. November 2014 10:32AM) | flowplayer.org/license
4
 
5
  */
6
  !function($) {
19
  var b = $.browser = {},
20
  ua = navigator.userAgent.toLowerCase(),
21
  match = /(chrome)[ \/]([\w.]+)/.exec(ua) ||
22
+ /(safari)[ \/]([\w.]+)/.exec(ua) ||
23
  /(webkit)[ \/]([\w.]+)/.exec(ua) ||
24
  /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) ||
25
  /(msie) ([\w.]+)/.exec(ua) ||
42
 
43
  var instances = [],
44
  extensions = [],
45
+ UA = window.navigator.userAgent;
 
46
 
47
 
48
  /* flowplayer() */
49
  window.flowplayer = function(fn) {
50
+ return $.isFunction(fn) ? extensions.push(fn) :
 
51
  typeof fn == 'number' || fn === undefined ? instances[fn || 0] :
52
  $(fn).data("flowplayer");
53
  };
54
 
55
+ $(window).on('beforeunload', function() {
56
+ $.each(instances, function(i, api) {
57
+ if (api.conf.splash) {
58
+ api.unload();
59
+ } else {
60
+ api.bind("error", function () {
61
+ $(".flowplayer.is-error .fp-message").remove();
62
+ });
63
+ }
64
+ });
65
+ });
66
+
67
+ var supportLocalStorage = false;
68
+ try {
69
+ if (typeof window.localStorage == "object") {
70
+ window.localStorage.flowplayerTestStorage = "test";
71
+ supportLocalStorage = true;
72
+ }
73
+ } catch (ignored) {}
74
+
75
+ var isSafari = /Safari/.exec(navigator.userAgent) && !/Chrome/.exec(navigator.userAgent);
76
+ m = /(\d+\.\d+) Safari/.exec(navigator.userAgent),
77
+ safariVersion = m ? Number(m[1]) : 100;
78
 
79
  $.extend(flowplayer, {
80
 
81
+ version: '5.5.2',
82
 
83
  engine: {},
84
 
104
  // default aspect ratio
105
  ratio: 9 / 16,
106
 
107
+ adaptiveRatio: false,
108
+
109
  // scale flash object to video's aspect ratio in normal mode?
110
  flashfit: false,
111
 
113
 
114
  splash: false,
115
 
116
+ live: false,
117
+
118
+ swf: "//releases.flowplayer.org/5.5.2/flowplayer.swf",
119
 
120
  speeds: [0.25, 0.5, 1, 1.5, 2],
121
 
122
  tooltip: true,
123
 
124
  // initial volume level
125
+ volume: !supportLocalStorage ? 1 : localStorage.muted == "true" ? 0 : !isNaN(localStorage.volume) ? localStorage.volume || 1 : 1,
126
 
127
  // http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#error-codes
128
  errors: [
144
  ],
145
  errorUrls: ['','','','','','','','','','',
146
  'http://get.adobe.com/flashplayer/'
147
+ ],
148
+ playlist: [],
149
+
150
+ hlsFix: isSafari && safariVersion < 8
151
 
152
  }
153
 
154
  });
155
 
 
 
 
 
 
156
  // keep track of players
157
+ var playerCount = 1;
158
 
159
  // jQuery plugin
160
  $.fn.flowplayer = function(opts, callback) {
168
  var root = $(this).addClass("is-loading"),
169
  conf = $.extend({}, flowplayer.defaults, flowplayer.conf, opts, root.data()),
170
  videoTag = $("video", root).addClass("fp-engine").removeAttr("controls"),
171
+ urlResolver = videoTag.length ? new URLResolver(videoTag) : null,
172
  storage = {},
173
  lastSeekPosition,
174
  engine;
175
 
176
+ if (conf.playlist.length) { // Create initial video tag if called without
177
+ var preload = conf.preload || videoTag.attr('preload'), placeHolder;
178
+ if (videoTag.length) videoTag.replaceWith(placeHolder = $('<p />'));
179
+ videoTag = $('<video />').addClass('fp-engine');
180
+ placeHolder ? placeHolder.replaceWith(videoTag) : root.prepend(videoTag);
181
+ if (flowplayer.support.video) videoTag.attr('preload', preload);
182
+ if (typeof conf.playlist[0] === 'string') videoTag.attr('src', conf.playlist[0]);
183
+ else {
184
+ $.each(conf.playlist[0], function(i, plObj) {
185
+ for (var type in plObj) {
186
+ if (plObj.hasOwnProperty(type)) {
187
+ videoTag.append($('<source />').attr({type: 'video/' + type, src: plObj[type]}));
188
+ }
189
+ }
190
+ });
191
+ }
192
+ urlResolver = new URLResolver(videoTag);
193
+
194
+ }
195
+
196
+ //stop old instance
197
+ var oldApi = root.data('flowplayer');
198
+ if (oldApi) oldApi.unload();
199
+
200
  root.data('fp-player_id', root.data('fp-player_id') || playerCount++);
201
 
202
  try {
203
+ storage = supportLocalStorage ? window.localStorage : storage;
204
  } catch(e) {}
205
 
206
+ var isRTL = (this.currentStyle && this.currentStyle['direction'] === 'rtl')
207
+ || (window.getComputedStyle && window.getComputedStyle(this, null).getPropertyValue('direction') === 'rtl');
208
+
209
+ if (isRTL) root.addClass('is-rtl');
210
+
211
  /*** API ***/
212
+ var api = oldApi || {
213
 
214
  // properties
215
  conf: conf,
216
  currentSpeed: 1,
217
+ volumeLevel: typeof conf.volume === "undefined" ? storage.volume * 1 : conf.volume,
218
  video: {},
219
 
220
  // states
226
  playing: false,
227
  ready: false,
228
  splash: false,
229
+ rtl: isRTL,
230
 
231
  // methods
232
  load: function(video, callback) {
247
  // callback
248
  if ($.isFunction(video)) callback = video;
249
  if (callback) root.one("ready", callback);
250
+ } else {
251
+ api.loading = false;
252
  }
253
  }
254
 
270
 
271
  // Firefox (+others?) does not fire "resume" after finish
272
  if (api.finished) {
273
+ api.trigger("resume", [api]);
274
  api.finished = false;
275
  }
276
  }
288
  seek(false) -> 10% backward
289
  */
290
  seek: function(time, callback) {
291
+ if (api.ready && !api.live) {
292
 
293
  if (typeof time == "boolean") {
294
  var delta = api.video.duration * 0.1;
295
  time = api.video.time + (time ? delta : -delta);
296
  }
297
+ time = lastSeekPosition = Math.min(Math.max(time, 0), api.video.duration).toFixed(1);
298
+ var ev = $.Event('beforeseek');
299
+ root.trigger(ev, [api, time]);
300
+ if (!ev.isDefaultPrevented()) {
301
+ engine.seek(time);
302
+ if ($.isFunction(callback)) root.one("seek", callback);
303
+ } else {
304
+ api.seeking = false;
305
+ root.toggleClass("is-seeking", api.seeking); // remove loading indicator
306
+ }
307
  }
308
  return api;
309
  },
321
  },
322
 
323
  mute: function(flag) {
324
+ if (flag === undefined) flag = !api.muted;
325
  storage.muted = api.muted = flag;
326
+ storage.volume = !isNaN(storage.volume) ? storage.volume : conf.volume; // make sure storage has volume
327
+ api.volume(flag ? 0 : storage.volume, true);
328
  api.trigger("mute", flag);
329
+ return api;
330
  },
331
 
332
+ volume: function(level, skipStore) {
333
  if (api.ready) {
334
  level = Math.min(Math.max(level, 0), 1);
335
+ if (!skipStore) storage.volume = level;
336
  engine.volume(level);
337
  }
338
+
339
  return api;
340
  },
341
 
386
  api.disabled = flag;
387
  api.trigger("disable", flag);
388
  }
389
+ return api;
390
  }
391
 
392
  };
393
 
394
+ api.conf = $.extend(api.conf, conf);
395
+
396
 
397
  /* event binding / unbinding */
398
  $.each(['bind', 'one', 'unbind'], function(i, key) {
409
 
410
 
411
  /*** Behaviour ***/
412
+ if (!root.data('flowplayer')) { // Only bind once
413
+ root.bind("boot", function() {
414
 
415
+ // conf
416
+ $.each(['autoplay', 'loop', 'preload', 'poster'], function(i, key) {
417
+ var val = videoTag.attr(key);
418
+ if (val !== undefined) conf[key] = val ? val : true;
419
+ });
420
 
421
+ // splash
422
+ if (conf.splash || root.hasClass("is-splash") || !flowplayer.support.firstframe) {
423
+ api.forcedSplash = !conf.splash && !root.hasClass("is-splash");
424
+ api.splash = conf.splash = conf.autoplay = true;
425
+ root.addClass("is-splash");
426
+ if (flowplayer.support.video) videoTag.attr("preload", "none");
427
+ }
428
 
429
+ if (conf.live || root.hasClass('is-live')) {
430
+ api.live = conf.live = true;
431
+ root.addClass('is-live');
432
+ }
 
 
433
 
434
+ // extensions
435
+ $.each(extensions, function(i) {
436
+ this(api, root);
437
+ });
438
 
439
+ // 1. use the configured engine
440
+ engine = flowplayer.engine[conf.engine];
441
+ if (engine) engine = engine(api, root);
442
 
443
+ if (engine.pick(urlResolver.initialSources)) {
444
+ api.engine = conf.engine;
445
 
446
+ // 2. failed -> try another
447
+ } else {
448
+ $.each(flowplayer.engine, function(name, impl) {
449
+ if (name != conf.engine) {
450
+ engine = this(api, root);
451
+ if (engine.pick(urlResolver.initialSources)) {
452
+ api.engine = name;
453
+ return false;
454
+ }
455
+ }
456
+ });
457
+ }
458
 
459
+ // instances
460
+ instances.push(api);
461
 
462
+ // no engine
463
+ if (!api.engine) return api.trigger("error", { code: flowplayer.support.flashVideo ? 5 : 10 });
464
 
465
+ // start
466
+ conf.splash ? api.unload() : api.load();
467
 
468
+ // disabled
469
+ if (conf.disabled) api.disable();
470
 
471
+ //initial volumelevel
472
+ engine.volume(api.volumeLevel);
473
 
474
+ // initial callback
475
+ root.one("ready", callback);
476
 
 
477
 
478
+ }).bind("load", function(e, api, video) {
479
+
480
+ // unload others
481
+ if (conf.splash) {
482
+ $(".flowplayer").filter(".is-ready, .is-loading").not(root).each(function() {
483
+ var api = $(this).data("flowplayer");
484
+ if (api.conf.splash) api.unload();
485
+ });
486
+ }
487
 
488
+ // loading
489
+ root.addClass("is-loading");
490
+ api.loading = true;
491
 
492
 
493
+ }).bind("ready", function(e, api, video) {
494
+ video.time = 0;
495
+ api.video = video;
496
 
497
+ function notLoading() {
498
+ root.removeClass("is-loading");
499
+ api.loading = false;
500
+ }
501
 
502
+ if (conf.splash) root.one("progress", notLoading);
503
+ else notLoading();
504
 
505
+ // saved state
506
+ if (api.muted) api.mute(true);
507
+ else api.volume(api.volumeLevel);
508
 
509
+ // see https://github.com/flowplayer/flowplayer/issues/479
510
 
511
+ var hlsFix = api.conf.hlsFix && /mpegurl/i.exec(video.type);
512
+ root.toggleClass('hls-fix', !!hlsFix);
 
 
513
 
514
+ }).bind("unload", function(e) {
515
+ if (conf.splash) videoTag.remove();
516
+ root.removeClass("is-loading");
517
+ api.loading = false;
518
 
 
 
 
 
 
519
 
520
+ }).bind("ready unload", function(e) {
521
+ var is_ready = e.type == "ready";
522
+ root.toggleClass("is-splash", !is_ready).toggleClass("is-ready", is_ready);
523
+ api.ready = is_ready;
524
+ api.splash = !is_ready;
525
 
 
 
526
 
527
+ }).bind("progress", function(e, api, time) {
528
+ api.video.time = time;
529
 
 
 
530
 
531
+ }).bind("speed", function(e, api, val) {
532
+ api.currentSpeed = val;
 
 
533
 
534
+ }).bind("volume", function(e, api, level) {
535
+ api.volumeLevel = Math.round(level * 100) / 100;
536
+ if (!api.muted) storage.volume = level;
537
+ else if (level) api.mute(false);
538
 
 
 
 
539
 
540
+ }).bind("beforeseek seek", function(e) {
541
+ api.seeking = e.type == "beforeseek";
542
+ root.toggleClass("is-seeking", api.seeking);
543
 
544
+ }).bind("ready pause resume unload finish stop", function(e, _api, video) {
 
545
 
546
+ // PAUSED: pause / finish
547
+ api.paused = /pause|finish|unload|stop/.test(e.type);
548
+
549
+ // SHAKY HACK: first-frame / preload=none
550
+ if (e.type == "ready") {
551
+ api.paused = conf.preload == 'none';
552
+ if (video) {
553
+ api.paused = !video.duration || !conf.autoplay && (conf.preload != 'none');
554
+ }
555
  }
 
556
 
557
+ // the opposite
558
+ api.playing = !api.paused;
559
 
560
+ // CSS classes
561
+ root.toggleClass("is-paused", api.paused).toggleClass("is-playing", api.playing);
562
 
563
+ // sanity check
564
+ if (!api.load.ed) api.pause();
565
 
566
+ }).bind("finish", function(e) {
567
+ api.finished = true;
568
 
569
+ }).bind("error", function() {
570
+ videoTag.remove();
571
+ });
572
+ }
573
 
574
  // boot
575
  root.trigger("boot", [api, root]).data("flowplayer", api);
580
 
581
  !function() {
582
 
583
+ var parseIpadVersion = function(UA) {
584
+ var e = /Version\/(\d\.\d)/.exec(UA);
585
+ if (e && e.length > 1) {
586
+ return parseFloat(e[1], 10);
587
+ }
588
+ return 0;
589
+ };
590
+
591
  var s = flowplayer.support,
592
  browser = $.browser,
593
  video = $("<video loop autoplay preload/>")[0],
 
594
  UA = navigator.userAgent,
595
+ IS_IE = browser.msie || /Trident\/7/.test(UA),
596
+ IS_IPAD = /iPad|MeeGo/.test(UA) && !/CriOS/.test(UA),
597
+ IS_IPAD_CHROME = /iPad/.test(UA) && /CriOS/.test(UA),
598
+ IS_IPHONE = /iP(hone|od)/i.test(UA) && !/iPad/.test(UA),
599
+ IS_ANDROID = /Android/.test(UA) && !/Firefox/.test(UA),
600
+ IS_ANDROID_FIREFOX = /Android/.test(UA) && /Firefox/.test(UA),
601
  IS_SILK = /Silk/.test(UA),
602
+ IS_WP = /IEMobile/.test(UA),
603
+ WP_VER = IS_WP ? parseFloat(/Windows\ Phone\ (\d+\.\d+)/.exec(UA)[1], 10) : 0,
604
+ IE_MOBILE_VER = IS_WP ? parseFloat(/IEMobile\/(\d+\.\d+)/.exec(UA)[1], 10) : 0,
605
+ IPAD_VER = IS_IPAD ? parseIpadVersion(UA) : 0,
606
+ ANDROID_VER = IS_ANDROID ? parseFloat(/Android\ (\d\.\d)/.exec(UA)[1], 10) : 0;
607
  $.extend(s, {
 
608
  subtitles: !!video.addTextTrack,
609
+ fullscreen: typeof document.webkitCancelFullScreen == 'function' && !/Mac OS X 10_5.+Version\/5\.0\.\d Safari/.test(UA) ||
610
+ document.mozFullScreenEnabled ||
611
+ typeof document.exitFullscreen == 'function' ||
612
+ typeof document.msExitFullscreen == 'function',
613
  inlineBlock: !(IS_IE && browser.version < 8),
614
  touch: ('ontouchstart' in window),
615
+ dataload: !IS_IPAD && !IS_IPHONE && !IS_WP,
616
  zeropreload: !IS_IE && !IS_ANDROID, // IE supports only preload=metadata
617
+ volume: !IS_IPAD && !IS_ANDROID && !IS_IPHONE && !IS_SILK && !IS_IPAD_CHROME,
618
+ cachedVideoTag: !IS_IPAD && !IS_IPHONE && !IS_IPAD_CHROME && !IS_WP,
619
+ firstframe: !IS_IPHONE && !IS_IPAD && !IS_ANDROID && !IS_SILK && !IS_IPAD_CHROME && !IS_WP && !IS_ANDROID_FIREFOX,
620
+ inlineVideo: !IS_IPHONE && (!IS_WP || (WP_VER >= 8.1 && IE_MOBILE_VER >= 11)) && (!IS_ANDROID || ANDROID_VER >= 3),
621
+ hlsDuration: !IS_ANDROID && (!browser.safari || IS_IPAD || IS_IPHONE || IS_IPAD_CHROME),
622
+ seekable: !IS_IPAD && !IS_IPAD_CHROME
623
  });
624
 
625
  // flashVideo
626
  try {
627
+ var plugin = navigator.plugins["Shockwave Flash"],
628
+ ver = IS_IE ? new ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable('$version') : plugin.description;
629
+ if (!IS_IE && !plugin[0].enabledPlugin) s.flashVideo = false;
630
+ else {
631
 
632
+ ver = ver.split(/\D+/);
633
+ if (ver.length && !ver[0]) ver = ver.slice(1);
634
 
635
+ s.flashVideo = ver[0] > 9 || ver[0] == 9 && ver[3] >= 115;
636
+ }
637
 
638
  } catch (ignored) {}
639
+ try {
640
+ s.video = !!video.canPlayType;
641
+ s.video && video.canPlayType('video/mp4');
642
+ } catch (e) {
643
+ s.video = false;
644
+ }
645
 
646
  // animation
647
  s.animation = (function() {
660
  /* The most minimal Flash embedding */
661
 
662
  // movie required in opts
663
+ function embed(swf, flashvars, wmode) {
664
+ wmode = wmode || "transparent";
665
 
666
  var id = "obj" + ("" + Math.random()).slice(2, 15),
667
  tag = '<object class="fp-engine" id="' + id+ '" name="' + id + '" ';
673
  width: "100%",
674
  height: "100%",
675
  allowscriptaccess: "always",
676
+ wmode: wmode,
677
  quality: "high",
678
  flashvars: "",
679
 
714
  objectTag,
715
  api;
716
 
717
+ var win = $(window);
718
+
719
+ var readyCallback = function () {
720
+ // write out video url to handle fullscreen toggle and api load
721
+ // in WebKit and Safari - see also fsResume
722
+ if (VENDOR == "webkit" || IS_SAFARI) {
723
+ var flashvars = $("object param[name='flashvars']", root),
724
+ flashprops = (flashvars.attr("value") || '').split("&");
725
+
726
+ $.each(flashprops, function (i, prop) {
727
+ prop = prop.split("=");
728
+ if (prop[0] == "url" && prop[1] != player.video.url) {
729
+ flashprops[i] = "url=" + player.video.url;
730
+ flashvars.attr({value: flashprops.join("&")});
731
+ return false;
732
+ }
733
+ });
734
+ }
735
+
736
+ };
737
+ var fullscreenCallback = function(e) {
738
+ // handle Flash object aspect ratio
739
+ var origH = root.height(),
740
+ origW = root.width();
741
+
742
+ if (player.conf.flashfit || /full/.test(e.type)) {
743
+
744
+ var fs = player.isFullscreen,
745
+ truefs = fs && FS_SUPPORT,
746
+ ie7 = !flowplayer.support.inlineBlock,
747
+ screenW = fs ? (truefs ? screen.width : win.width()) : origW,
748
+ screenH = fs ? (truefs ? screen.height : win.height()) : origH,
749
+
750
+ // default values for fullscreen-exit without flashfit
751
+ hmargin = 0,
752
+ vmargin = 0,
753
+ objwidth = ie7 ? origW : '',
754
+ objheight = ie7 ? origH : '',
755
+
756
+ aspectratio, dataratio;
757
+
758
+ if (player.conf.flashfit || e.type === "fullscreen") {
759
+ aspectratio = player.video.width / player.video.height,
760
+ dataratio = player.video.height / player.video.width,
761
+ objheight = Math.max(dataratio * screenW),
762
+ objwidth = Math.max(aspectratio * screenH);
763
+ objheight = objheight > screenH ? objwidth * dataratio : objheight;
764
+ objheight = Math.min(Math.round(objheight), screenH);
765
+ objwidth = objwidth > screenW ? objheight * aspectratio : objwidth;
766
+ objwidth = Math.min(Math.round(objwidth), screenW);
767
+ vmargin = Math.max(Math.round((screenH + vmargin - objheight) / 2), 0);
768
+ hmargin = Math.max(Math.round((screenW + hmargin - objwidth) / 2), 0);
769
+ }
770
+
771
+ $("object", root).css({
772
+ width: objwidth,
773
+ height: objheight,
774
+ marginTop: vmargin,
775
+ marginLeft: hmargin
776
+ });
777
+ }
778
+ };
779
+
780
+
781
  var engine = {
782
 
783
  pick: function(sources) {
790
 
791
  for (var i = 0, source; i < sources.length; i++) {
792
  source = sources[i];
793
+ if (/mp4|flv/i.test(source.type)) return source;
794
  }
795
  }
796
  },
797
 
798
  load: function(video) {
799
 
800
+ function escapeURL(url) {
801
+ return url.replace(/&amp;/g, '%26').replace(/&/g, '%26').replace(/=/g, '%3D');
802
+ }
803
+
804
  var html5Tag = $("video", root),
805
+ url = escapeURL(video.src);
806
  is_absolute = /^https?:/.test(url);
807
 
808
+ var removeTag = function() {
809
+ html5Tag.remove();
810
+ };
811
+ var hasSupportedSource = function(sources) {
812
+ return $.grep(sources, function(src) {
813
+ return !!html5Tag[0].canPlayType('video/' + src.type);
814
+ }).length > 0;
815
+ };
816
+ if (flowplayer.support.video &&
817
+ html5Tag.prop('autoplay') &&
818
+ hasSupportedSource(video.sources)) html5Tag.one('timeupdate', removeTag);
819
+ else removeTag();
820
 
821
  // convert to absolute
822
+ if (!is_absolute && !conf.rtmp) url = $("<img/>").attr("src", url)[0].src;
823
 
824
  if (api) {
825
  api.__play(url);
826
 
827
  } else {
828
 
829
+ player.bind('ready', readyCallback)
830
+ .bind("ready fullscreen fullscreen-exit", fullscreenCallback);
831
+
832
  callbackId = "fp" + ("" + Math.random()).slice(3, 15);
833
 
834
  var opts = {
836
  url: url,
837
  callback: "jQuery."+ callbackId
838
  };
839
+ if (root.data("origin")) {
840
+ opts.origin = root.data("origin");
841
+ }
842
 
843
  if (is_absolute) delete conf.rtmp;
844
 
845
  // optional conf
846
+ $.each(['key', 'autoplay', 'preload', 'rtmp', 'subscribe', 'live', 'loop', 'debug', 'splash', 'poster', 'rtmpt'], function(i, key) {
847
+ if (conf.hasOwnProperty(key)) opts[key] = conf[key];
848
  });
849
+ // bufferTime might be 0
850
+ if (conf.bufferTime !== undefined) opts.bufferTime = conf.bufferTime;
851
+
852
+ // issues #376
853
+ if (opts.rtmp) {
854
+ opts.rtmp = escapeURL(opts.rtmp);
855
+ }
856
+
857
+ // issues #387
858
+ opts.initialVolume = player.volumeLevel;
859
 
860
+ objectTag = embed(conf.swf, opts, conf.wmode);
861
 
862
  objectTag.prependTo(root);
863
 
872
  } catch (e) {}
873
  }, 5000);
874
 
875
+ // detect disabled flash
876
+ setTimeout(function() {
877
+ if (typeof api.PercentLoaded === 'undefined') {
878
+ root.trigger('flashdisabled', [player]);
879
+ }
880
+ }, 1000);
881
+
882
+ api.pollInterval = setInterval(function () {
883
+ if (!api) return;
884
+ var status = api.__status ? api.__status() : null;
885
+ if (!status) return;
886
+
887
+ player.trigger("progress", status.time);
888
+
889
+ video.buffer = status.buffer / video.bytes * video.duration;
890
+ player.trigger("buffer", video.buffer);
891
+
892
+ if (!video.buffered && status.time > 0) {
893
+ video.buffered = true;
894
+ player.trigger("buffered");
895
+ }
896
+
897
+ }, 250);
898
+
899
  // listen
900
  $[callbackId] = function(type, arg) {
901
 
902
+ if (conf.debug) console.log("--", type, arg);
903
 
904
  var event = $.Event(type);
905
 
911
  case "click": event.flash = true; break;
912
  case "keydown": event.which = arg; break;
913
  case "seek": video.time = arg; break;
 
 
 
 
 
 
 
 
 
 
 
 
 
914
  }
915
 
916
+ if (type != 'buffered') {
917
+ // add some delay so that player is truly ready after an event
918
+ setTimeout(function() { player.trigger(event, arg); }, 1)
919
+ }
920
 
921
  };
922
 
933
  delete $[callbackId];
934
  $("object", root).remove();
935
  api = 0;
936
+ player.unbind('ready', readyCallback).unbind('ready fullscreen fullscreen-exit', fullscreenCallback);
937
+ clearInterval(api.pollInterval);
938
  }
939
 
940
  };
942
  $.each("pause,resume,seek,volume".split(","), function(i, name) {
943
 
944
  engine[name] = function(arg) {
945
+ try {
946
+ if (player.ready) {
947
 
948
+ if (name == 'seek' && player.video.time && !player.paused) {
949
+ player.trigger("beforeseek");
950
+ }
 
 
951
 
952
+ if (arg === undefined) {
953
+ api["__" + name]();
954
 
955
+ } else {
956
+ api["__" + name](arg);
957
+ }
958
 
959
+ }
960
+ } catch (e) {
961
+ if (typeof api["__" + name] === 'undefined') { //flash lost it's methods
962
+ return root.trigger('flashdisabled', [player]);
963
+ }
964
+ throw e;
965
  }
966
  };
967
 
968
  });
969
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
970
  return engine;
971
 
972
  };
985
  timeupdate: 'progress',
986
  volumechange: 'volume',
987
  ratechange: 'speed',
988
+ //seeking: 'beforeseek',
989
  seeked: 'seek',
990
  // abort: 'resume',
991
 
1003
 
1004
  };
1005
 
1006
+ function round(val, per) {
1007
+ per = per || 100;
1008
+ return Math.round(val * per) / per;
1009
  }
1010
 
1011
  function getType(type) {
1013
  }
1014
 
1015
  function canPlay(type) {
1016
+ if (!/^(video|application)/i.test(type))
1017
  type = getType(type);
1018
  return !!VIDEO.canPlayType(type).replace("no", '');
1019
  }
1020
 
1021
+ function findFromSourcesByType(sources, type) {
1022
+ var arr = $.grep(sources, function(s) {
1023
+ return s.type === type;
1024
+ });
1025
+ return arr.length ? arr[0] : null;
1026
+ }
1027
+
1028
  var videoTagCache;
1029
  var createVideoTag = function(video) {
1030
  if (videoTagCache) {
1035
  type: getType(video.type),
1036
  'class': 'fp-engine',
1037
  'autoplay': 'autoplay',
1038
+ preload: 'none',
1039
+ 'x-webkit-airplay': 'allow'
1040
+ }));
1041
  }
1042
 
1043
  flowplayer.engine.html5 = function(player, root) {
1048
  conf = player.conf,
1049
  self,
1050
  timer,
1051
+ api,
1052
+ volumeLevel;
1053
 
1054
  return self = {
1055
 
1056
  pick: function(sources) {
1057
  if (support.video) {
1058
+ if (conf.videoTypePreference) {
1059
+ var mp4source = findFromSourcesByType(sources, conf.videoTypePreference);
1060
+ if (mp4source) return mp4source;
1061
+ }
1062
  for (var i = 0, source; i < sources.length; i++) {
1063
  if (canPlay(sources[i].type)) return sources[i];
1064
  }
1071
 
1072
  videoTag = createVideoTag(video).prependTo(root);
1073
 
1074
+ if (!support.inlineVideo) {
1075
+ videoTag.css({
1076
+ position: 'absolute',
1077
+ top: '-9999em'
1078
+ });
1079
+ }
1080
+
1081
+ //if (track.length) videoTag.append(track.prop("default", true));
1082
 
1083
  if (conf.loop) videoTag.attr("loop", "loop");
1084
 
1085
  api = videoTag[0];
1086
+ if (typeof volumeLevel !== 'undefined') {
1087
+ api.volume = volumeLevel;
1088
+ }
1089
 
1090
  } else {
1091
 
1092
  api = videoTag[0];
1093
+ var sources = videoTag.find('source');
1094
+ if (!api.src && sources.length) {
1095
+ api.src = video.src;
1096
+ sources.remove();
1097
+ }
1098
 
1099
  // change of clip
1100
  if (player.video.src && video.src != player.video.src) {
1106
 
1107
  if (support.zeropreload) {
1108
  player.trigger("ready", video).trigger("pause").one("ready", function() {
1109
+ root.trigger("resume", [player]);
1110
  });
1111
 
1112
  } else {
1113
  player.one("ready", function() {
1114
+ root.trigger("pause", [player]);
1115
  });
1116
  }
1117
  }
1121
  listen(api, $("source", videoTag).add(videoTag), video);
1122
 
1123
  // iPad (+others?) demands load()
1124
+ if (conf.preload != 'none' && video.type != "mpegurl" || !support.zeropreload || !support.dataload) api.load();
1125
  if (conf.splash) api.load();
1126
  },
1127
 
1139
 
1140
  seek: function(time) {
1141
  try {
1142
+ var pausedState = player.paused;
1143
  api.currentTime = time;
1144
+ if (pausedState) api.pause();
1145
  } catch (ignored) {}
1146
  },
1147
 
1148
  volume: function(level) {
1149
+ volumeLevel = level;
1150
+ if (api) {
1151
+ api.volume = level;
1152
+ }
1153
  },
1154
 
1155
  unload: function() {
1156
+ $("video.fp-engine", root).remove();
1157
  if (!support.cachedVideoTag) videoTagCache = null;
1158
  timer = clearInterval(timer);
1159
  api = 0;
1185
  // safari hack for bad URL (10s before fails)
1186
  if (flow == "progress" && e.srcElement && e.srcElement.readyState === 0) {
1187
  setTimeout(function() {
1188
+ if (!player.video.duration && (!player.conf.live || (player.video.type === 'mpegurl' && support.hlsDuration))) {
1189
  flow = "error";
1190
  player.trigger(flow, { code: 4 });
1191
  }
1197
  // no events if player not ready
1198
  if (!player.ready && !/ready|error/.test(flow) || !flow || !$("video", root).length) { return; }
1199
 
1200
+ var event = $.Event(flow), arg, vtype;
1201
 
1202
  switch (flow) {
1203
 
1212
  });
1213
 
1214
  try {
1215
+ arg.seekable = !conf.live && /mpegurl/i.test(video ? (video.type || '') : '') && api.duration || api.seekable && api.seekable.end(null);
1216
 
1217
  } catch (ignored) {}
1218
 
1225
  } catch (ignored) {}
1226
 
1227
  if (arg.buffer) {
1228
+ if (round(arg.buffer, 1000) < round(arg.duration, 1000) && !arg.buffered) {
1229
  player.trigger("buffer", e);
1230
 
1231
  } else if (!arg.buffered) {
1238
 
1239
  }, 250);
1240
 
1241
+ if (!conf.live && !arg.duration && !support.hlsDuration && type === "loadeddata") {
1242
+ var durationChanged = function() {
1243
+ arg.duration = api.duration;
1244
+ try {
1245
+ arg.seekable = api.seekable && api.seekable.end(null);
1246
+
1247
+ } catch (ignored) {}
1248
+ player.trigger(event, arg);
1249
+ api.removeEventListener('durationchange', durationChanged);
1250
+ };
1251
+ api.addEventListener('durationchange', durationChanged);
1252
+ return;
1253
+ }
1254
+
1255
  break;
1256
 
1257
  case "progress": case "seek":
1258
 
1259
  var dur = player.video.duration
1260
 
1261
+ if (api.currentTime > 0 || player.live) {
1262
  arg = Math.max(api.currentTime, 0);
 
1263
  break;
1264
 
1265
  } else if (flow == 'progress') {
1293
  }
1294
 
1295
  };
1296
+ var TYPE_RE = /\.(\w{3,4})(\?.*)?$/i;
1297
 
1298
  function parseSource(el) {
1299
 
1301
  type = el.attr("type") || "",
1302
  suffix = src.split(TYPE_RE)[1];
1303
 
1304
+ type = /mpegurl/i.test(type) ? "mpegurl" : type.replace("video/", "");
1305
 
1306
  return { src: src, suffix: suffix || type, type: type || suffix };
1307
  }
1327
  if ($.isArray(video)) {
1328
 
1329
  video = { sources: $.map(video, function(el) {
1330
+ var type, ret = $.extend({}, el);
1331
+ $.each(el, function(key, value) { type = key; });
1332
+ ret.type = type;
1333
+ ret.src = el[type];
1334
+ delete ret[type];
1335
+ return ret;
1336
  })};
1337
 
1338
  } else if (typeof video == 'string') {
1343
  if (source.type != 'flash') {
1344
  video.sources.push({
1345
  type: source.type,
1346
+ src: video.src.replace(TYPE_RE, "." + source.suffix + "$2")
1347
  });
1348
  }
1349
  });
1373
  };
1374
 
1375
 
1376
+ $.fn.slider2 = function(rtl) {
1377
 
1378
+ var IS_IPAD = /iPad/.test(navigator.userAgent) && !/CriOS/.test(navigator.userAgent);
1379
 
1380
  return this.each(function() {
1381
 
1390
  size,
1391
  maxValue,
1392
  max,
1393
+ skipAnimation = false,
1394
 
1395
  /* private */
1396
  calc = function() {
1413
  },
1414
 
1415
  mousemove = function(e) {
1416
+ var pageX = e.pageX;
1417
+ if (!pageX && e.originalEvent && e.originalEvent.touches && e.originalEvent.touches.length) {
1418
+ pageX = e.originalEvent.touches[0].pageX;
1419
+ }
1420
+ var delta = vertical ? e.pageY - offset.top : pageX - offset.left;
1421
  delta = Math.max(0, Math.min(max || size, delta));
1422
 
1423
  var value = delta / size;
1424
  if (vertical) value = 1 - value;
1425
+ if (rtl) value = 1 - value;
1426
  return move(value, 0, true);
1427
  },
1428
 
1433
  var to = (Math.round(value * 1000) / 10) + "%";
1434
 
1435
  if (!maxValue || value <= maxValue) {
1436
+ if (!IS_IPAD && !skipAnimation) progress.stop(); // stop() broken on iPad
1437
+ if (skipAnimation) {
1438
+ progress.css('width', to);
1439
+ } else {
1440
+ progress.animate(vertical ? { height: to } : { width: to }, speed, "linear");
1441
+ }
1442
  }
1443
 
1444
  return value;
1463
  calc();
1464
  if (fireEvent) fire(value);
1465
  move(value, speed);
1466
+ },
1467
+
1468
+ // Should animation be handled via css
1469
+ disableAnimation: function(value, alsoCssAnimations) {
1470
+ skipAnimation = value !== false;
1471
+ root.toggleClass('no-animation', !! alsoCssAnimations);
1472
  }
1473
 
1474
  };
1476
  calc();
1477
 
1478
  // bound dragging into document
1479
+ root.data("api", api).bind("mousedown.sld touchstart", function(e) {
 
1480
  e.preventDefault();
1481
 
1482
  if (!disabled) {
1485
  var delayedFire = $.throttle(fire, 100);
1486
  calc();
1487
  api.dragging = true;
1488
+ root.addClass('is-dragging');
1489
  fire(mousemove(e));
1490
 
1491
+ doc.bind("mousemove.sld touchmove", function(e) {
1492
  e.preventDefault();
1493
  delayedFire(mousemove(e));
1494
 
1495
+ }).one("mouseup touchend", function() {
1496
  api.dragging = false;
1497
+ root.removeClass('is-dragging');
1498
+ doc.unbind("mousemove.sld touchmove");
1499
  });
1500
 
1501
  }
1534
  var conf = api.conf,
1535
  support = flowplayer.support,
1536
  hovertimer;
1537
+ root.find('.fp-ratio,.fp-ui').remove();
1538
  root.addClass("flowplayer").append('\
1539
  <div class="ratio"/>\
1540
  <div class="ui">\
1580
  origRatio = ratio.css("paddingTop"),
1581
 
1582
  // sliders
1583
+ timeline = find("timeline").slider2(api.rtl),
1584
  timelineApi = timeline.data("api"),
1585
 
1586
  volume = find("volume"),
1587
  fullscreen = find("fullscreen"),
1588
+ volumeSlider = find("volumeslider").slider2(api.rtl),
1589
  volumeApi = volumeSlider.data("api"),
1590
  noToggle = root.is(".fixed-controls, .no-toggle");
1591
 
1592
+ timelineApi.disableAnimation(root.hasClass('is-touch'));
1593
+
1594
  // aspect ratio
1595
  function setRatio(val) {
1596
+ if ((root.css('width') === '0px' || root.css('height') === '0px') || val !== flowplayer.defaults.ratio) {
1597
+ if (!parseInt(origRatio, 10)) ratio.css("paddingTop", val * 100 + "%");
1598
+ }
1599
  if (!support.inlineBlock) $("object", root).height(root.height());
1600
  }
1601
 
1621
 
1622
  var duration = api.video.duration;
1623
 
1624
+ timelineApi.disable(api.disabled || !duration);
1625
 
1626
+ conf.adaptiveRatio && setRatio(api.video.height / api.video.width);
1627
 
1628
  // initial time & volume
1629
  durationEl.add(remaining).html(format(duration));
1632
  ((duration >= 3600) && root.addClass('is-long')) || root.removeClass('is-long');
1633
  volumeApi.slide(api.volumeLevel);
1634
 
1635
+ if (api.engine === 'flash') timelineApi.disableAnimation(true, true);
1636
+
1637
 
1638
  }).bind("unload", function() {
1639
  if (!origRatio) ratio.css("paddingTop", "");
1643
  var video = api.video,
1644
  max = video.buffer / video.duration;
1645
 
1646
+ if (!video.seekable && support.seekable) timelineApi.max(max);
1647
  if (max < 1) buffer.css("width", (max * 100) + "%");
1648
  else buffer.css({ width: '100%' });
1649
 
1705
  api.error = true;
1706
 
1707
  var el = $(".fp-message", root);
1708
+ $("h2", el).text((api.engine || 'html5') + ": " + error.message);
1709
  $("p", el).text(error.url || api.video.url || api.video.src || conf.errorUrls[error.code]);
1710
  root.unbind("mouseenter click").removeClass("is-mouseover");
1711
  }
1754
  e.preventDefault();
1755
  return api.toggle();
1756
  }
1757
+ }).bind('contextmenu', function(ev) {
1758
+ ev.preventDefault();
1759
+ var o = root.offset(),
1760
+ w = $(window),
1761
+ left = ev.clientX - o.left,
1762
+ t = ev.clientY - o.top + w.scrollTop();
1763
+ var menu = root.find('.fp-context-menu').css({
1764
+ left: left + 'px',
1765
+ top: t + 'px',
1766
+ display: 'block'
1767
+ }).on('click', function(ev) {
1768
+ ev.stopPropagation();
1769
+ });
1770
+ $('html').on('click.outsidemenu', function(ev) {
1771
+ menu.hide();
1772
+ $('html').off('click.outsidemenu');
1773
+ });
1774
+ }).bind('flashdisabled', function() {
1775
+ root.addClass('is-flash-disabled').one('ready', function() {
1776
+ root.removeClass('is-flash-disabled').find('.fp-flash-disabled').remove();
1777
+ }).append('<div class="fp-flash-disabled">Adobe Flash is disabled for this page, click player area to enable.</div>');
1778
  });
1779
 
1780
  // poster -> background image
1787
  if (has_bg && !conf.splash && !conf.autoplay) {
1788
 
1789
  api.bind("ready stop", function() {
1790
+ root.addClass("is-poster").one("progress", function() {
1791
  root.removeClass("is-poster");
1792
  });
1793
  });
1795
  }
1796
 
1797
  // default background color if not present
1798
+ if (!has_bg && api.forcedSplash) {
1799
  root.css("backgroundColor", "#555");
1800
  }
1801
 
1841
  if (!el || !conf.keyboard || el.disabled) return;
1842
 
1843
  // help dialog (shift key not truly required)
1844
+ if ($.inArray(key, [63, 187, 191]) != -1) {
1845
  focusedRoot.toggleClass(IS_HELP);
1846
  return false;
1847
  }
1875
  case 32: el.toggle(); break; // spacebar
1876
  case 70: conf.fullscreen && el.fullscreen(); break; // toggle fullscreen
1877
  case 77: el.mute(); break; // mute
1878
+ case 81: el.unload(); break; // unload/stop
1879
  }
1880
 
1881
  }
1893
  if (focused) focusedRoot = root;
1894
  });
1895
 
1896
+ var speedhelp = flowplayer.support.video && api.conf.engine !== "flash" &&
1897
+ !!$("<video/>")[0].playbackRate ?
1898
+ '<p><em>shift</em> + <em>&#8592;</em><em>&#8594;</em>slower / faster</p>' : '';
1899
+
1900
  // TODO: add to player-layout.html
1901
  root.append('\
1902
  <div class="fp-help">\
1903
  <a class="fp-close"></a>\
1904
  <div class="fp-help-section fp-help-basics">\
1905
  <p><em>space</em>play / pause</p>\
1906
+ <p><em>q</em>unload | stop</p>\
1907
+ <p><em>f</em>fullscreen</p>' + speedhelp + '\
 
1908
  </div>\
1909
  <div class="fp-help-section">\
1910
  <p><em>&#8593;</em><em>&#8595;</em>volume</p>\
1913
  <div class="fp-help-section">\
1914
  <p><em>&#8592;</em><em>&#8594;</em>seek</p>\
1915
  <p><em>&nbsp;. </em>seek to previous\
1916
+ </p><p><em>1</em><em>2</em>&hellip; <em>6</em> seek to 10%, 20% &hellip; 60% </p>\
1917
  </div>\
1918
  </div>\
1919
  ');
1934
  FS_ENTER = "fullscreen",
1935
  FS_EXIT = "fullscreen-exit",
1936
  FULL_PLAYER,
1937
+ FS_SUPPORT = flowplayer.support.fullscreen,
1938
+ FS_NATIVE_SUPPORT = typeof document.exitFullscreen == 'function',
1939
+ ua = navigator.userAgent.toLowerCase(),
1940
+ IS_SAFARI = /(safari)[ \/]([\w.]+)/.exec(ua) && !/(chrome)[ \/]([\w.]+)/.exec(ua);
1941
 
1942
 
1943
  // esc button
1944
+ $(document).bind("fullscreenchange webkitfullscreenchange mozfullscreenchange MSFullscreenChange", function(e) {
1945
+ var el = $(document.webkitCurrentFullScreenElement || document.mozFullScreenElement || document.fullscreenElement || document.msFullscreenElement || e.target);
1946
+ if (el.length && !FULL_PLAYER) {
 
1947
  FULL_PLAYER = el.trigger(FS_ENTER, [el]);
1948
  } else {
1949
  FULL_PLAYER.trigger(FS_EXIT, [FULL_PLAYER]);
1950
+ FULL_PLAYER = null;
1951
  }
1952
 
1953
  });
1958
  if (!player.conf.fullscreen) return;
1959
 
1960
  var win = $(window),
1961
+ fsResume = {apply: false, pos: 0, play: false},
1962
  scrollTop;
1963
 
1964
  player.isFullscreen = false;
1971
 
1972
  if (flag) scrollTop = win.scrollTop();
1973
 
1974
+ if ((VENDOR == "webkit" || IS_SAFARI) && player.engine == "flash")
1975
+ fsResume = {apply: true, pos: player.video.time, play: player.playing};
1976
+
1977
  if (FS_SUPPORT) {
1978
 
1979
  if (flag) {
1980
+ var r = root[0];
1981
+ $.each(['requestFullScreen', 'webkitRequestFullScreen', 'mozRequestFullScreen', 'msRequestFullscreen'], function(i, fName) {
1982
+ if (typeof r[fName] === 'function') {
1983
+ r[fName](Element.ALLOW_KEYBOARD_INPUT);
1984
+ if (IS_SAFARI && !document.webkitCurrentFullScreenElement && !document.mozFullScreenElement) { // Element.ALLOW_KEYBOARD_INPUT not allowed
1985
+ r[fName]();
1986
+ }
1987
+ return false;
1988
+ }
1989
+ });
1990
 
1991
  } else {
1992
+ $.each(['exitFullscreen', 'webkitCancelFullScreen', 'mozCancelFullScreen', 'msExitFullscreen'], function(i, fName) {
1993
+ if (typeof document[fName] === 'function') {
1994
+ document[fName]();
1995
+ return false;
1996
+ }
1997
+ });
1998
  }
1999
 
2000
  } else {
2001
+ player.trigger(flag ? FS_ENTER : FS_EXIT, [player]);
 
 
2002
  }
2003
 
2004
  return player;
2016
  player.isFullscreen = true;
2017
 
2018
  }).bind(FS_EXIT, function(e) {
2019
+ var oldOpacity;
2020
+ if (!FS_SUPPORT && player.engine === "html5") {
2021
+ oldOpacity = root.css('opacity') || '';
2022
+ root.css('opacity', 0);
2023
+ }
2024
  root.removeClass("is-fullscreen");
2025
+ if (!FS_SUPPORT && player.engine === "html5") setTimeout(function() { root.css('opacity', oldOpacity); });
2026
  player.isFullscreen = false;
2027
  win.scrollTop(scrollTop);
2028
 
2029
  }).bind("ready", function () {
2030
+ if (fsResume.apply) {
2031
+ var fsreset = function () {
2032
+ if (!fsResume.play && !player.conf.live) {
2033
+ player.pause();
2034
+ } else {
2035
+ player.resume();
 
 
2036
  }
2037
+ $.extend(fsResume, {pos: 0, play: false});
2038
+ };
2039
+
2040
+ if (player.conf.live) {
2041
+ fsreset();
2042
+ } else if (player.conf.rtmp && fsResume.pos && !isNaN(fsResume.pos)) {
2043
+ player.resume();
2044
+ player.seek(fsResume.pos, fsreset);
2045
+ } else {
2046
+ fsreset();
2047
+ }
2048
  }
2049
  });
2050
 
2067
 
2068
 
2069
  player.play = function(i) {
2070
+ if (i === undefined) return player.resume();
2071
+ if (typeof i === 'number' && !player.conf.playlist[i]) return player;
2072
  else if (typeof i != 'number') player.load.apply(null, arguments);
2073
+ player.unbind('resume.fromfirst'); // Don't start from beginning if clip explicitely chosen
2074
+ player.video.index = i;
2075
+ player.load(typeof player.conf.playlist[i] === 'string' ?
2076
+ player.conf.playlist[i].toString() :
2077
+ $.map(player.conf.playlist[i], function(item) { return $.extend({}, item); })
2078
+ );
2079
+ return player;
2080
+ };
2081
+
2082
+ player.next = function(e) {
2083
+ e && e.preventDefault();
2084
+ var current = player.video.index;
2085
+ if (current != -1) {
2086
+ current = current === player.conf.playlist.length - 1 ? 0 : current + 1;
2087
+ player.play(current);
2088
+ }
2089
+ return player;
2090
+ };
2091
+
2092
+ player.prev = function(e) {
2093
+ e && e.preventDefault();
2094
+ var current = player.video.index;
2095
+ if (current != -1) {
2096
+ current = current === 0 ? player.conf.playlist.length - 1 : current - 1;
2097
+ player.play(current);
2098
+ }
2099
  return player;
2100
  };
2101
 
2102
+ $('.fp-next', root).click(player.next);
2103
+ $('.fp-prev', root).click(player.prev);
2104
+
2105
+ if (conf.advance) {
2106
+ root.unbind("finish.pl").bind("finish.pl", function(e, player) {
2107
+
2108
+ // next clip is found or loop
2109
+ var next = player.video.index >= 0 ? player.video.index + 1 : undefined;
2110
+ if (next < player.conf.playlist.length || conf.loop) {
2111
+ next = next === player.conf.playlist.length ? 0 : next;
2112
+ root.removeClass('is-finished');
2113
+ setTimeout(function() { // Let other finish callbacks fire first
2114
+ player.play(next);
2115
+ });
2116
+
2117
+ // stop to last clip, play button starts from 1:st clip
2118
+ } else {
2119
+ root.addClass("is-playing"); // show play button
2120
+
2121
+ // If we have multiple items in playlist, start from first
2122
+ if (player.conf.playlist.length > 1) player.one("resume.fromfirst", function() {
2123
+ player.play(0);
2124
+ return false;
2125
+ });
2126
+ }
2127
+ });
2128
+ }
2129
+
2130
+ var playlistInitialized = false;
2131
+ if (player.conf.playlist.length) { // playlist configured by javascript, generate playlist
2132
+ playlistInitialized = true;
2133
+ var plEl = root.find('.fp-playlist');
2134
+ if (!plEl.length) {
2135
+ plEl = $('<div class="fp-playlist"></div>');
2136
+ var cntrls = $('.fp-next,.fp-prev', root);
2137
+ if (!cntrls.length) $('video', root).after(plEl);
2138
+ else cntrls.eq(0).before(plEl);
2139
+ }
2140
+ plEl.empty();
2141
+ $.each(player.conf.playlist, function(i, item) {
2142
+ var href;
2143
+ if (typeof item === 'string') {
2144
+ href = item;
2145
+ } else {
2146
+ for (var key in item[0]) {
2147
+ if (item[0].hasOwnProperty(key)) {
2148
+ href = item[0][key];
2149
+ break;
2150
+ }
2151
+ }
2152
+ }
2153
+ plEl.append($('<a />').attr({
2154
+ href: href,
2155
+ 'data-index': i
2156
+ }));
2157
+ });
2158
+ }
2159
 
2160
  if (els().length) {
2161
+ if (!playlistInitialized) {
2162
+ player.conf.playlist = [];
2163
+ els().each(function() {
2164
+ var src = $(this).attr('href');
2165
+ $(this).attr('data-index', player.conf.playlist.length);
2166
+ player.conf.playlist.push(src);
2167
+ });
2168
+ }
2169
 
2170
  /* click -> play */
2171
  root.on("click", conf.query, function(e) {
 
 
2172
  e.preventDefault();
2173
+ var el = $(e.target).closest(conf.query);
2174
+ var toPlay = Number(el.attr('data-index'));
2175
+ if (toPlay != -1) {
2176
+ player.play(toPlay);
2177
+ }
2178
  });
2179
 
 
 
 
2180
  // playlist wide cuepoint support
2181
  var has_cuepoints = els().filter("[data-cuepoints]").length;
2182
 
2183
  // highlight
2184
  player.bind("load", function(e, api, video) {
 
 
2185
  var prev = active().removeClass(klass),
2186
+ prevIndex = prev.attr('data-index'),
2187
+ index = video.index = player.video.index || 0,
2188
+ el = $('a[data-index="' + index + '"]', root).addClass(klass),
2189
+ is_last = index == player.conf.playlist.length - 1;
 
2190
  // index
2191
+ root.removeClass("video" + prevIndex).addClass("video" + index).toggleClass("last-video", is_last);
2192
 
2193
  // video properties
2194
+ video.index = api.video.index = index;
2195
+ video.is_last = api.video.is_last = is_last;
2196
 
2197
  // cuepoints
2198
  if (has_cuepoints) player.cuepoints = el.data("cuepoints");
2204
 
2205
  });
2206
 
2207
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2208
 
2209
+ if (player.conf.playlist.length) {
2210
+ // disable single clip looping
2211
+ player.conf.loop = false;
2212
  }
2213
 
2214
 
2238
  for (var i = 0, cue; i < cues.length; i++) {
2239
 
2240
  cue = cues[i];
2241
+ if (!isNaN(cue)) cue = { time: cue };
2242
  if (cue.time < 0) cue.time = player.video.duration + cue.time;
2243
  cue.index = i;
2244
 
2255
 
2256
  if (player.conf.generate_cuepoints) {
2257
 
2258
+ player.bind("load", function() {
2259
+
2260
+ // clean up cuepoint elements of previous playlist items
2261
+ $(".fp-cuepoint", root).remove();
2262
+
2263
+ }).bind("ready", function() {
2264
 
2265
  var cues = player.cuepoints || [],
2266
  duration = player.video.duration,
2297
 
2298
  player.subtitles = track.length && track[0].track;
2299
 
2300
+ if (conf.nativesubtitles && conf.engine == 'html5') {
2301
+ if (!player.subtitles) return;
2302
+ var setMode = function(mode) {
2303
+ var tracks = $('video', root)[0].textTracks;
2304
+ if (!tracks.length) return;
2305
+ tracks[0].mode = mode;
2306
+ };
2307
+ setMode('disabled');
2308
+ player.one('ready', function() {
2309
+ if (player.conf.splash) { // see https://github.com/flowplayer/flowplayer/issues/717
2310
+ $('video.fp-engine', root).append($('<track />').attr({
2311
+ kind: 'subtitles',
2312
+ srclang: player.subtitles.language || 'en',
2313
+ label: player.subtitles.language || 'en',
2314
+ src: track.attr('src'),
2315
+ default: 'default'
2316
+ }));
2317
+ }
2318
+ setMode('disabled');
2319
+ setMode('showing');
2320
+ });
2321
+ return;
2322
+ }
2323
  }
2324
 
2325
  // avoid duplicate loads
2326
  track.remove();
2327
 
2328
+ var TIMECODE_RE = /^(([0-9]{2}:){1,2}[0-9]{2}[,.][0-9]{3}) --\> (([0-9]{2}:){1,2}[0-9]{2}[,.][0-9]{3})(.*)/;
2329
 
2330
  function seconds(timecode) {
2331
  var els = timecode.split(':');
2338
  var url = track.attr("src");
2339
 
2340
  if (!url) return;
2341
+ setTimeout(function() {
2342
+ $.get(url, function(txt) {
2343
 
2344
+ for (var i = 0, lines = txt.split("\n"), len = lines.length, entry = {}, title, timecode, text, cue; i < len; i++) {
2345
 
2346
+ timecode = TIMECODE_RE.exec(lines[i]);
2347
 
2348
+ if (timecode) {
2349
 
2350
+ // title
2351
+ title = lines[i - 1];
2352
 
2353
+ // text
2354
+ text = "<p>" + lines[++i] + "</p><br/>";
2355
+ while ($.trim(lines[++i]) && i < lines.length) text += "<p>" + lines[i] + "</p><br/>";
2356
 
2357
+ // entry
2358
+ entry = {
2359
+ title: title,
2360
+ startTime: seconds(timecode[1]),
2361
+ endTime: seconds(timecode[3]),
2362
+ text: text
2363
+ };
2364
 
2365
+ cue = { time: entry.startTime, subtitle: entry };
 
 
 
 
 
 
2366
 
2367
+ player.subtitles.push(entry);
2368
+ player.cuepoints.push(cue);
2369
+ player.cuepoints.push({ time: entry.endTime, subtitleEnd: title });
2370
 
2371
+ // initial cuepoint
2372
+ if (entry.startTime === 0) {
2373
+ player.trigger("cuepoint", cue);
2374
+ }
2375
 
 
 
 
2376
  }
2377
 
2378
  }
2379
 
2380
+ }).fail(function() {
2381
+ player.trigger("error", {code: 8, url: url });
2382
+ return false;
2383
+ });
 
2384
  });
2385
+ var wrap = $("<div class='fp-subtitle'/>").appendTo(root),
 
2386
  currentPoint;
2387
 
2388
  player.bind("cuepoint", function(e, api, cue) {
2393
 
2394
  } else if (cue.subtitleEnd) {
2395
  wrap.removeClass("fp-active");
2396
+ currentPoint = cue.index;
2397
  }
2398
 
2399
  }).bind("seek", function(e, api, time) {
2400
+ // Clear future subtitles if seeking backwards
2401
+ if (currentPoint && player.cuepoints[currentPoint] && player.cuepoints[currentPoint].time > time) {
2402
+ wrap.removeClass('fp-active');
2403
+ currentPoint = null;
2404
+ }
2405
  $.each(player.cuepoints || [], function(i, cue) {
2406
  var entry = cue.subtitle;
2407
+ //Trigger cuepoint if start time before seek position and end time nonexistent or in the future
2408
  if (entry && currentPoint != cue.index) {
2409
+ if (time >= cue.time && (!entry.endTime || time <= entry.endTime)) player.trigger("cuepoint", cue);
2410
+ } // Also handle cuepoints that act as the removal trigger
2411
+ else if (cue.subtitleEnd && time >= cue.time && cue.index == currentPoint + 1) player.trigger("cuepoint", cue);
 
2412
  });
2413
 
2414
  });
2424
  if (id) {
2425
 
2426
  // load Analytics script if needed
2427
+ if (typeof _gat == 'undefined') $.getScript("//google-analytics.com/ga.js");
2428
 
2429
  function track(e) {
2430
 
2461
 
2462
  }
2463
 
2464
+ });var isIeMobile = /IEMobile/.test(UA);
2465
+ if (flowplayer.support.touch || isIeMobile) {
2466
 
2467
  flowplayer(function(player, root) {
2468
+ var isAndroid = /Android/.test(UA) && !/Firefox/.test(UA) && !/Opera/.test(UA),
2469
+ isSilk = /Silk/.test(UA),
2470
+ androidVer = isAndroid ? parseFloat(/Android\ (\d\.\d)/.exec(UA)[1], 10) : 0;
2471
+
2472
+ // custom load for android
2473
+ if (isAndroid) {
2474
+ if (!/Chrome/.test(UA) && androidVer < 4) {
2475
+ var originalLoad = player.load;
2476
+ player.load = function(video, callback) {
2477
+ var ret = originalLoad.apply(player, arguments);
2478
+ player.trigger('ready', [player, player.video]);
2479
+ return ret;
2480
+ };
2481
+ }
2482
+ var timer, currentTime = 0;
2483
+ var resumeTimer = function(api) {
2484
+ timer = setInterval(function() {
2485
+ api.video.time = ++currentTime;
2486
+ api.trigger('progress', currentTime);
2487
+ }, 1000);
2488
+ };
2489
+ player.bind('ready pause unload', function() {
2490
+ if (timer) {
2491
+ clearInterval(timer);
2492
+ timer = null;
2493
+ }
2494
+ });
2495
+ player.bind('ready', function() {
2496
+ currentTime = 0;
2497
+ });
2498
+ player.bind('resume', function(ev, api) {
2499
+ if (!api.live) return;
2500
+ if (currentTime) { return resumeTimer(api); }
2501
+ player.one('progress', function(ev, api, t) {
2502
+ if (t === 0) { // https://github.com/flowplayer/flowplayer/issues/727
2503
+ resumeTimer(api);
2504
+ }
2505
+ });
2506
+ });
2507
+ }
2508
 
2509
  // hide volume
2510
  if (!flowplayer.support.volume) {
2511
  root.addClass("no-volume no-mute");
2512
  }
2513
+ root.addClass("is-touch");
2514
+ root.find('.fp-timeline').data('api').disableAnimation();
2515
 
2516
+ if (!flowplayer.support.inlineVideo || player.conf.native_fullscreen) player.conf.nativesubtitles = true;
 
 
2517
 
2518
+ // fake mouseover effect with click
2519
+ var hasMoved = false;
2520
+ root.bind('touchmove', function() {
2521
+ hasMoved = true;
2522
+ }).bind("touchend click", function(e) {
2523
+ if (hasMoved) { //not intentional, most likely scrolling
2524
+ hasMoved = false;
2525
+ return;
2526
+ }
2527
 
2528
  if (player.playing && !root.hasClass("is-mouseover")) {
2529
  root.addClass("is-mouseover").removeClass("is-mouseout");
2530
  return false;
2531
  }
2532
 
2533
+ if (player.paused && root.hasClass("is-mouseout") && !player.splash) {
2534
  player.toggle();
2535
  }
2536
 
2537
+ if (player.paused && isIeMobile) { // IE on WP7 need an additional api.play() call
2538
+ $('video.fp-engine', root)[0].play();
2539
+ }
2540
+
2541
  });
2542
 
2543
  // native fullscreen
2544
+ if (player.conf.native_fullscreen && typeof $('<video />')[0].webkitEnterFullScreen === 'function') {
2545
  player.fullscreen = function() {
2546
+ var video = $('video.fp-engine', root);
2547
+ video[0].webkitEnterFullScreen();
2548
+ video.one('webkitendfullscreen', function() {
2549
+ video.prop('controls', true).prop('controls', false);
2550
+ });
2551
+ };
2552
  }
2553
 
2554
 
2555
  // Android browser gives video.duration == 1 until second 'timeupdate' event
2556
  (isAndroid || isSilk) && player.bind("ready", function() {
2557
 
2558
+ var video = $('video.fp-engine', root);
2559
  video.one('canplay', function() {
2560
  video[0].play();
2561
  });
2599
  tag = $("<video/>").appendTo(el);
2600
 
2601
  // configuration
2602
+ $.each(['origin', 'analytics', 'key', 'rtmp', 'subscribe', 'bufferTime'], function(i, key) {
2603
+ if (conf.hasOwnProperty(key)) {
2604
+ el.attr("data-" + key, conf[key]);
2605
+ }
2606
  });
2607
 
2608
+ //logo
2609
+ if (conf.logo) {
2610
+ el.attr('data-logo', $('<img />').attr('src', conf.logo)[0].src);
2611
+ }
2612
+
2613
  // sources
2614
  $.each(video.sources, function(i, src) {
2615
+ var path = src.src;
2616
+ if (!/^https?:/.test(src.src) && src.type !== 'flash' || !conf.rtmp) {
2617
+ path = $("<img/>").attr("src", src.src)[0].src;
2618
+ }
2619
+ tag.append($("<source/>",
2620
+ { type: src.type != "mpegurl" ? "video/" + src.type : "application/x-mpegurl", src: path }));
2621
  });
2622
 
2623
+ var scriptAttrs = { src: "//embed.flowplayer.org/5.5.2/embed.min.js" };
2624
+ if ($.isPlainObject(conf.embed)) {
2625
+ scriptAttrs['data-swf'] = conf.embed.swf;
2626
+ scriptAttrs['data-library'] = conf.embed.library;
2627
+ scriptAttrs['src'] = conf.embed.script || scriptAttrs['src'];
2628
+ if (conf.embed.skin) { scriptAttrs['data-skin'] = conf.embed.skin; }
2629
+ }
2630
+
2631
+ var code = $("<foo/>", scriptAttrs).append(el);
2632
  return $("<p/>").append(code).html().replace(/<(\/?)foo/g, "<$1script");
2633
  };
2634
 
2682
  };
2683
 
2684
  }(jQuery);
2685
+ flowplayer(function(e,o){function l(e){var o=a("<a/>")[0];return o.href=e,o.hostname}var a=jQuery,r=e.conf,i=r.swf.indexOf("flowplayer.org")&&r.e&&o.data("origin"),n=i?l(i):location.hostname,t=r.key;if("file:"==location.protocol&&(n="localhost"),e.load.ed=1,r.hostname=n,r.origin=i||location.href,i&&o.addClass("is-embedded"),"string"==typeof t&&(t=t.split(/,\s*/)),t&&"function"==typeof key_check&&key_check(t,n))r.logo&&o.append(a("<a>",{"class":"fp-logo",href:i}).append(a("<img/>",{src:r.logo})));else{var s=a("<a/>").attr("href","http://flowplayer.org").appendTo(o);a(".fp-controls",o);var p=a('<div class="fp-context-menu"><ul><li class="copyright">&copy; 2014</li><li><a href="http://flowplayer.org">About Flowplayer</a></li><li><a href="http://flowplayer.org/license">GPL based license</a></li></ul></div>').appendTo(o);e.bind("pause resume finish unload",function(e,l){var r=-1;l.video.src&&a.each([["org","flowplayer","drive"],["org","flowplayer","my"]],function(e,o){return r=l.video.src.indexOf("://"+o.reverse().join(".")),-1===r}),/pause|resume/.test(e.type)&&"flash"!=l.engine&&4!=r&&5!=r?(s.show().css({position:"absolute",left:16,bottom:36,zIndex:99999,width:100,height:20,backgroundImage:"url("+[".png","logo","/",".net",".cloudfront","d32wqyuo10o653","//"].reverse().join("")+")"}),l.load.ed=s.is(":visible")&&a.contains(o[0],p[0]),l.load.ed||l.pause()):s.hide()})}});
lib/flowplayer.min.js ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
1
+ /*!
2
+
3
+ Flowplayer v5.5.2 (Thursday, 27. November 2014 10:32AM) | flowplayer.org/license
4
+
5
+ */
6
+ !function(e){function t(t,n,i){i=i||"transparent";var a="obj"+(""+Math.random()).slice(2,15),o='<object class="fp-engine" id="'+a+'" name="'+a+'" ';o+=e.browser.msie?'classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000">':' data="'+t+'" type="application/x-shockwave-flash">';var r={width:"100%",height:"100%",allowscriptaccess:"always",wmode:i,quality:"high",flashvars:"",movie:t+(e.browser.msie?"?"+a:""),name:a};return e.each(n,function(e,t){r.flashvars+=e+"="+t+"&"}),e.each(r,function(e,t){o+='<param name="'+e+'" value="'+t+'"/>'}),o+="</object>",e(o)}function n(e,t){return t=t||100,Math.round(e*t)/t}function i(e){return/mpegurl/i.test(e)?"application/x-mpegurl":"video/"+e}function a(e){return/^(video|application)/i.test(e)||(e=i(e)),!!b.canPlayType(e).replace("no","")}function o(t,n){var i=e.grep(t,function(e){return e.type===n});return i.length?i[0]:null}function r(e){var t=e.attr("src"),n=e.attr("type")||"",i=t.split(x)[1];return n=/mpegurl/i.test(n)?"mpegurl":n.replace("video/",""),{src:t,suffix:i||n,type:n||i}}function s(t){var n=this,i=[];e("source",t).each(function(){i.push(r(e(this)))}),i.length||i.push(r(t)),n.initialSources=i,n.resolve=function(t){return t?(e.isArray(t)?t={sources:e.map(t,function(t){var n,i=e.extend({},t);return e.each(t,function(e){n=e}),i.type=n,i.src=t[n],delete i[n],i})}:"string"==typeof t&&(t={src:t,sources:[]},e.each(i,function(e,n){"flash"!=n.type&&t.sources.push({type:n.type,src:t.src.replace(x,"."+n.suffix+"$2")})})),t):{sources:i}}}function l(e){return e=parseInt(e,10),e>=10?e:"0"+e}function d(e){e=e||0;var t=Math.floor(e/3600),n=Math.floor(e/60);return e-=60*n,t>=1?(n-=60*t,t+":"+l(n)+":"+l(e)):l(n)+":"+l(e)}!function(e){if(!e.browser){var t=e.browser={},n=navigator.userAgent.toLowerCase(),i=/(chrome)[ \/]([\w.]+)/.exec(n)||/(safari)[ \/]([\w.]+)/.exec(n)||/(webkit)[ \/]([\w.]+)/.exec(n)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(n)||/(msie) ([\w.]+)/.exec(n)||0>n.indexOf("compatible")&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(n)||[];i[1]&&(t[i[1]]=!0,t.version=i[2]||"0")}}(jQuery),e(function(){"function"==typeof e.fn.flowplayer&&e("video").parent(".flowplayer").flowplayer()});var u=[],c=[],f=window.navigator.userAgent;window.flowplayer=function(t){return e.isFunction(t)?c.push(t):"number"==typeof t||void 0===t?u[t||0]:e(t).data("flowplayer")},e(window).on("beforeunload",function(){e.each(u,function(t,n){n.conf.splash?n.unload():n.bind("error",function(){e(".flowplayer.is-error .fp-message").remove()})})});var p=!1;try{"object"==typeof window.localStorage&&(window.localStorage.flowplayerTestStorage="test",p=!0)}catch(v){}var g=/Safari/.exec(navigator.userAgent)&&!/Chrome/.exec(navigator.userAgent);m=/(\d+\.\d+) Safari/.exec(navigator.userAgent),safariVersion=m?Number(m[1]):100,e.extend(flowplayer,{version:"5.5.2",engine:{},conf:{},support:{},defaults:{debug:!1,disabled:!1,engine:"html5",fullscreen:window==window.top,keyboard:!0,ratio:9/16,adaptiveRatio:!1,flashfit:!1,rtmp:0,splash:!1,live:!1,swf:"//releases.flowplayer.org/5.5.2/flowplayer.swf",speeds:[.25,.5,1,1.5,2],tooltip:!0,volume:p?"true"==localStorage.muted?0:isNaN(localStorage.volume)?1:localStorage.volume||1:1,errors:["","Video loading aborted","Network error","Video not properly encoded","Video file not found","Unsupported video","Skin not found","SWF file not found","Subtitles not found","Invalid RTMP URL","Unsupported video format. Try installing Adobe Flash."],errorUrls:["","","","","","","","","","","http://get.adobe.com/flashplayer/"],playlist:[],hlsFix:g&&8>safariVersion}});var h=1;e.fn.flowplayer=function(t,n){return"string"==typeof t&&(t={swf:t}),e.isFunction(t)&&(n=t,t={}),!t&&this.data("flowplayer")||this.each(function(){var i,a,o=e(this).addClass("is-loading"),r=e.extend({},flowplayer.defaults,flowplayer.conf,t,o.data()),l=e("video",o).addClass("fp-engine").removeAttr("controls"),d=l.length?new s(l):null,f={};if(r.playlist.length){var v,m=r.preload||l.attr("preload");l.length&&l.replaceWith(v=e("<p />")),l=e("<video />").addClass("fp-engine"),v?v.replaceWith(l):o.prepend(l),flowplayer.support.video&&l.attr("preload",m),"string"==typeof r.playlist[0]?l.attr("src",r.playlist[0]):e.each(r.playlist[0],function(t,n){for(var i in n)n.hasOwnProperty(i)&&l.append(e("<source />").attr({type:"video/"+i,src:n[i]}))}),d=new s(l)}var g=o.data("flowplayer");g&&g.unload(),o.data("fp-player_id",o.data("fp-player_id")||h++);try{f=p?window.localStorage:f}catch(y){}var b=this.currentStyle&&"rtl"===this.currentStyle.direction||window.getComputedStyle&&"rtl"===window.getComputedStyle(this,null).getPropertyValue("direction");b&&o.addClass("is-rtl");var w=g||{conf:r,currentSpeed:1,volumeLevel:r.volume===void 0?1*f.volume:r.volume,video:{},disabled:!1,finished:!1,loading:!1,muted:"true"==f.muted||r.muted,paused:!1,playing:!1,ready:!1,splash:!1,rtl:b,load:function(t,n){if(!(w.error||w.loading||w.disabled)){if(t=d.resolve(t),e.extend(t,a.pick(t.sources)),t.src){var i=e.Event("load");o.trigger(i,[w,t,a]),i.isDefaultPrevented()?w.loading=!1:(a.load(t),e.isFunction(t)&&(n=t),n&&o.one("ready",n))}return w}},pause:function(e){return!w.ready||w.seeking||w.disabled||w.loading||(a.pause(),w.one("pause",e)),w},resume:function(){return w.ready&&w.paused&&!w.disabled&&(a.resume(),w.finished&&(w.trigger("resume",[w]),w.finished=!1)),w},toggle:function(){return w.ready?w.paused?w.resume():w.pause():w.load()},seek:function(t,n){if(w.ready&&!w.live){if("boolean"==typeof t){var r=.1*w.video.duration;t=w.video.time+(t?r:-r)}t=i=Math.min(Math.max(t,0),w.video.duration).toFixed(1);var s=e.Event("beforeseek");o.trigger(s,[w,t]),s.isDefaultPrevented()?(w.seeking=!1,o.toggleClass("is-seeking",w.seeking)):(a.seek(t),e.isFunction(n)&&o.one("seek",n))}return w},seekTo:function(e,t){var n=void 0===e?i:.1*w.video.duration*e;return w.seek(n,t)},mute:function(e){return void 0===e&&(e=!w.muted),f.muted=w.muted=e,f.volume=isNaN(f.volume)?r.volume:f.volume,w.volume(e?0:f.volume,!0),w.trigger("mute",e),w},volume:function(e,t){return w.ready&&(e=Math.min(Math.max(e,0),1),t||(f.volume=e),a.volume(e)),w},speed:function(t,n){return w.ready&&("boolean"==typeof t&&(t=r.speeds[e.inArray(w.currentSpeed,r.speeds)+(t?1:-1)]||w.currentSpeed),a.speed(t),n&&o.one("speed",n)),w},stop:function(){return w.ready&&(w.pause(),w.seek(0,function(){o.trigger("stop")})),w},unload:function(){return o.hasClass("is-embedding")||(r.splash?(w.trigger("unload"),a.unload()):w.stop()),w},disable:function(e){return void 0===e&&(e=!w.disabled),e!=w.disabled&&(w.disabled=e,w.trigger("disable",e)),w}};w.conf=e.extend(w.conf,r),e.each(["bind","one","unbind"],function(e,t){w[t]=function(e,n){return o[t](e,n),w}}),w.trigger=function(e,t){return o.trigger(e,[w,t]),w},o.data("flowplayer")||o.bind("boot",function(){return e.each(["autoplay","loop","preload","poster"],function(e,t){var n=l.attr(t);void 0!==n&&(r[t]=n?n:!0)}),(r.splash||o.hasClass("is-splash")||!flowplayer.support.firstframe)&&(w.forcedSplash=!r.splash&&!o.hasClass("is-splash"),w.splash=r.splash=r.autoplay=!0,o.addClass("is-splash"),flowplayer.support.video&&l.attr("preload","none")),(r.live||o.hasClass("is-live"))&&(w.live=r.live=!0,o.addClass("is-live")),e.each(c,function(){this(w,o)}),a=flowplayer.engine[r.engine],a&&(a=a(w,o)),a.pick(d.initialSources)?w.engine=r.engine:e.each(flowplayer.engine,function(e){return e!=r.engine&&(a=this(w,o),a.pick(d.initialSources))?(w.engine=e,!1):void 0}),u.push(w),w.engine?(r.splash?w.unload():w.load(),r.disabled&&w.disable(),a.volume(w.volumeLevel),o.one("ready",n),void 0):w.trigger("error",{code:flowplayer.support.flashVideo?5:10})}).bind("load",function(t,n){r.splash&&e(".flowplayer").filter(".is-ready, .is-loading").not(o).each(function(){var t=e(this).data("flowplayer");t.conf.splash&&t.unload()}),o.addClass("is-loading"),n.loading=!0}).bind("ready",function(e,t,n){function i(){o.removeClass("is-loading"),t.loading=!1}n.time=0,t.video=n,r.splash?o.one("progress",i):i(),t.muted?t.mute(!0):t.volume(t.volumeLevel);var a=t.conf.hlsFix&&/mpegurl/i.exec(n.type);o.toggleClass("hls-fix",!!a)}).bind("unload",function(){r.splash&&l.remove(),o.removeClass("is-loading"),w.loading=!1}).bind("ready unload",function(e){var t="ready"==e.type;o.toggleClass("is-splash",!t).toggleClass("is-ready",t),w.ready=t,w.splash=!t}).bind("progress",function(e,t,n){t.video.time=n}).bind("speed",function(e,t,n){t.currentSpeed=n}).bind("volume",function(e,t,n){t.volumeLevel=Math.round(100*n)/100,t.muted?n&&t.mute(!1):f.volume=n}).bind("beforeseek seek",function(e){w.seeking="beforeseek"==e.type,o.toggleClass("is-seeking",w.seeking)}).bind("ready pause resume unload finish stop",function(e,t,n){w.paused=/pause|finish|unload|stop/.test(e.type),"ready"==e.type&&(w.paused="none"==r.preload,n&&(w.paused=!n.duration||!r.autoplay&&"none"!=r.preload)),w.playing=!w.paused,o.toggleClass("is-paused",w.paused).toggleClass("is-playing",w.playing),w.load.ed||w.pause()}).bind("finish",function(){w.finished=!0}).bind("error",function(){l.remove()}),o.trigger("boot",[w,o]).data("flowplayer",w)})},!function(){var t=function(e){var t=/Version\/(\d\.\d)/.exec(e);return t&&t.length>1?parseFloat(t[1],10):0},n=flowplayer.support,i=e.browser,a=e("<video loop autoplay preload/>")[0],o=navigator.userAgent,r=i.msie||/Trident\/7/.test(o),s=/iPad|MeeGo/.test(o)&&!/CriOS/.test(o),l=/iPad/.test(o)&&/CriOS/.test(o),d=/iP(hone|od)/i.test(o)&&!/iPad/.test(o),u=/Android/.test(o)&&!/Firefox/.test(o),c=/Android/.test(o)&&/Firefox/.test(o),f=/Silk/.test(o),p=/IEMobile/.test(o),v=p?parseFloat(/Windows\ Phone\ (\d+\.\d+)/.exec(o)[1],10):0,m=p?parseFloat(/IEMobile\/(\d+\.\d+)/.exec(o)[1],10):0,g=(s?t(o):0,u?parseFloat(/Android\ (\d\.\d)/.exec(o)[1],10):0);e.extend(n,{subtitles:!!a.addTextTrack,fullscreen:"function"==typeof document.webkitCancelFullScreen&&!/Mac OS X 10_5.+Version\/5\.0\.\d Safari/.test(o)||document.mozFullScreenEnabled||"function"==typeof document.exitFullscreen||"function"==typeof document.msExitFullscreen,inlineBlock:!(r&&8>i.version),touch:"ontouchstart"in window,dataload:!s&&!d&&!p,zeropreload:!r&&!u,volume:!(s||u||d||f||l),cachedVideoTag:!(s||d||l||p),firstframe:!(d||s||u||f||l||p||c),inlineVideo:!d&&(!p||v>=8.1&&m>=11)&&(!u||g>=3),hlsDuration:!u&&(!i.safari||s||d||l),seekable:!s&&!l});try{var h=navigator.plugins["Shockwave Flash"],y=r?new ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version"):h.description;r||h[0].enabledPlugin?(y=y.split(/\D+/),y.length&&!y[0]&&(y=y.slice(1)),n.flashVideo=y[0]>9||9==y[0]&&y[3]>=115):n.flashVideo=!1}catch(b){}try{n.video=!!a.canPlayType,n.video&&a.canPlayType("video/mp4")}catch(w){n.video=!1}n.animation=function(){for(var t=["","Webkit","Moz","O","ms","Khtml"],n=e("<p/>")[0],i=0;t.length>i;i++)if("undefined"!==n.style[t[i]+"AnimationName"])return!0}()}(),window.attachEvent&&window.attachEvent("onbeforeunload",function(){__flash_savedUnloadHandler=__flash_unloadHandler=function(){}}),flowplayer.engine.flash=function(n,i){var a,o,r,s=n.conf;n.video;var l=e(window),d=function(){if("webkit"==_||P){var t=e("object param[name='flashvars']",i),a=(t.attr("value")||"").split("&");e.each(a,function(e,i){return i=i.split("="),"url"==i[0]&&i[1]!=n.video.url?(a[e]="url="+n.video.url,t.attr({value:a.join("&")}),!1):void 0})}},u=function(t){var a=i.height(),o=i.width();if(n.conf.flashfit||/full/.test(t.type)){var r,s,d=n.isFullscreen,u=d&&A,c=!flowplayer.support.inlineBlock,f=d?u?screen.width:l.width():o,p=d?u?screen.height:l.height():a,v=0,m=0,g=c?o:"",h=c?a:"";(n.conf.flashfit||"fullscreen"===t.type)&&(r=n.video.width/n.video.height,s=n.video.height/n.video.width,h=Math.max(s*f),g=Math.max(r*p),h=h>p?g*s:h,h=Math.min(Math.round(h),p),g=g>f?h*r:g,g=Math.min(Math.round(g),f),m=Math.max(Math.round((p+m-h)/2),0),v=Math.max(Math.round((f+v-g)/2),0)),e("object",i).css({width:g,height:h,marginTop:m,marginLeft:v})}},c={pick:function(t){if(flowplayer.support.flashVideo){var n=e.grep(t,function(e){return"flash"==e.type})[0];if(n)return n;for(var i,a=0;t.length>a;a++)if(i=t[a],/mp4|flv/i.test(i.type))return i}},load:function(l){function c(e){return e.replace(/&amp;/g,"%26").replace(/&/g,"%26").replace(/=/g,"%3D")}var f=e("video",i),p=c(l.src);is_absolute=/^https?:/.test(p);var v=function(){f.remove()},m=function(t){return e.grep(t,function(e){return!!f[0].canPlayType("video/"+e.type)}).length>0};if(flowplayer.support.video&&f.prop("autoplay")&&m(l.sources)?f.one("timeupdate",v):v(),is_absolute||s.rtmp||(p=e("<img/>").attr("src",p)[0].src),r)r.__play(p);else{n.bind("ready",d).bind("ready fullscreen fullscreen-exit",u),a="fp"+(""+Math.random()).slice(3,15);var g={hostname:s.embedded?s.hostname:location.hostname,url:p,callback:"jQuery."+a};i.data("origin")&&(g.origin=i.data("origin")),is_absolute&&delete s.rtmp,e.each(["key","autoplay","preload","rtmp","subscribe","live","loop","debug","splash","poster","rtmpt"],function(e,t){s.hasOwnProperty(t)&&(g[t]=s[t])}),void 0!==s.bufferTime&&(g.bufferTime=s.bufferTime),g.rtmp&&(g.rtmp=c(g.rtmp)),g.initialVolume=n.volumeLevel,o=t(s.swf,g,s.wmode),o.prependTo(i),r=o[0],setTimeout(function(){try{if(!r.PercentLoaded())return i.trigger("error",[n,{code:7,url:s.swf}])}catch(e){}},5e3),setTimeout(function(){r.PercentLoaded===void 0&&i.trigger("flashdisabled",[n])},1e3),r.pollInterval=setInterval(function(){if(r){var e=r.__status?r.__status():null;e&&(n.trigger("progress",e.time),l.buffer=e.buffer/l.bytes*l.duration,n.trigger("buffer",l.buffer),!l.buffered&&e.time>0&&(l.buffered=!0,n.trigger("buffered")))}},250),e[a]=function(t,i){s.debug&&console.log("--",t,i);var a=e.Event(t);switch(t){case"ready":i=e.extend(l,i);break;case"click":a.flash=!0;break;case"keydown":a.which=i;break;case"seek":l.time=i}"buffered"!=t&&setTimeout(function(){n.trigger(a,i)},1)}}},speed:e.noop,unload:function(){r&&r.__unload&&r.__unload(),delete e[a],e("object",i).remove(),r=0,n.unbind("ready",d).unbind("ready fullscreen fullscreen-exit",u),clearInterval(r.pollInterval)}};return e.each("pause,resume,seek,volume".split(","),function(e,t){c[t]=function(e){try{n.ready&&("seek"==t&&n.video.time&&!n.paused&&n.trigger("beforeseek"),void 0===e?r["__"+t]():r["__"+t](e))}catch(a){if(r["__"+t]===void 0)return i.trigger("flashdisabled",[n]);throw a}}}),c};var y,b=e("<video/>")[0],w={ended:"finish",pause:"pause",play:"resume",progress:"buffer",timeupdate:"progress",volumechange:"volume",ratechange:"speed",seeked:"seek",loadeddata:"ready",error:"error",dataunavailable:"error"},k=function(t){return y?y.attr({type:i(t.type),src:t.src}):y=e("<video/>",{src:t.src,type:i(t.type),"class":"fp-engine",autoplay:"autoplay",preload:"none","x-webkit-airplay":"allow"})};flowplayer.engine.html5=function(t,i){function r(o,r,s){o.listeners&&o.listeners.hasOwnProperty(i.data("fp-player_id"))||((o.listeners||(o.listeners={}))[i.data("fp-player_id")]=!0,r.bind("error",function(n){try{if(n.originalEvent&&e(n.originalEvent.originalTarget).is("img"))return n.preventDefault();a(e(n.target).attr("type"))&&t.trigger("error",{code:4})}catch(i){}}),e.each(w,function(a,r){o.addEventListener(a,function(d){if("progress"==r&&d.srcElement&&0===d.srcElement.readyState&&setTimeout(function(){t.video.duration||t.conf.live&&("mpegurl"!==t.video.type||!f.hlsDuration)||(r="error",t.trigger(r,{code:4}))},1e4),p.debug&&!/progress/.test(r)&&console.log(a,"->",r,d),(t.ready||/ready|error/.test(r))&&r&&e("video",i).length){var u,c=e.Event(r);switch(r){case"ready":u=e.extend(s,{duration:o.duration,width:o.videoWidth,height:o.videoHeight,url:o.currentSrc,src:o.currentSrc});try{u.seekable=!p.live&&/mpegurl/i.test(s?s.type||"":"")&&o.duration||o.seekable&&o.seekable.end(null)}catch(v){}if(l=l||setInterval(function(){try{u.buffer=o.buffered.end(null)}catch(e){}u.buffer&&(n(u.buffer,1e3)<n(u.duration,1e3)&&!u.buffered?t.trigger("buffer",d):u.buffered||(u.buffered=!0,t.trigger("buffer",d).trigger("buffered",d),clearInterval(l),l=0))},250),!p.live&&!u.duration&&!f.hlsDuration&&"loadeddata"===a){var m=function(){u.duration=o.duration;try{u.seekable=o.seekable&&o.seekable.end(null)}catch(e){}t.trigger(c,u),o.removeEventListener("durationchange",m)};return o.addEventListener("durationchange",m),void 0}break;case"progress":case"seek":if(t.video.duration,o.currentTime>0||t.live){u=Math.max(o.currentTime,0);break}if("progress"==r)return;case"speed":u=n(o.playbackRate);break;case"volume":u=n(o.volume);break;case"error":try{u=(d.srcElement||d.originalTarget).error}catch(g){return}}t.trigger(c,u)}},!1)}))}var s,l,d,u,c=e("video",i),f=flowplayer.support,p=(e("track",c),t.conf);return s={pick:function(e){if(f.video){if(p.videoTypePreference){var t=o(e,p.videoTypePreference);if(t)return t}for(var n=0;e.length>n;n++)if(a(e[n].type))return e[n]}},load:function(n){if(p.splash&&!d)c=k(n).prependTo(i),f.inlineVideo||c.css({position:"absolute",top:"-9999em"}),p.loop&&c.attr("loop","loop"),d=c[0],u!==void 0&&(d.volume=u);else{d=c[0];var a=c.find("source");!d.src&&a.length&&(d.src=n.src,a.remove()),t.video.src&&n.src!=t.video.src?(c.attr("autoplay","autoplay"),d.src=n.src):"none"!=p.preload&&f.dataload||(f.zeropreload?t.trigger("ready",n).trigger("pause").one("ready",function(){i.trigger("resume",[t])}):t.one("ready",function(){i.trigger("pause",[t])}))}r(d,e("source",c).add(c),n),("none"!=p.preload&&"mpegurl"!=n.type||!f.zeropreload||!f.dataload)&&d.load(),p.splash&&d.load()},pause:function(){d.pause()},resume:function(){d.play()},speed:function(e){d.playbackRate=e},seek:function(e){try{var n=t.paused;d.currentTime=e,n&&d.pause()}catch(i){}},volume:function(e){u=e,d&&(d.volume=e)},unload:function(){e("video.fp-engine",i).remove(),f.cachedVideoTag||(y=null),l=clearInterval(l),d=0}}};var x=/\.(\w{3,4})(\?.*)?$/i;e.throttle=function(e,t){var n;return function(){n||(e.apply(this,arguments),n=1,setTimeout(function(){n=0},t))}},e.fn.slider2=function(t){var n=/iPad/.test(navigator.userAgent)&&!/CriOS/.test(navigator.userAgent);return this.each(function(){var i,a,o,r,s,l,d,u,c=e(this),f=e(document),p=c.children(":last"),v=!1,m=function(){a=c.offset(),o=c.width(),r=c.height(),l=s?r:o,u=b(d)},g=function(e){i||e==w.value||d&&!(d>e)||(c.trigger("slide",[e]),w.value=e)},h=function(e){var n=e.pageX;!n&&e.originalEvent&&e.originalEvent.touches&&e.originalEvent.touches.length&&(n=e.originalEvent.touches[0].pageX);var i=s?e.pageY-a.top:n-a.left;i=Math.max(0,Math.min(u||l,i));var o=i/l;return s&&(o=1-o),t&&(o=1-o),y(o,0,!0)},y=function(e,t){void 0===t&&(t=0),e>1&&(e=1);var i=Math.round(1e3*e)/10+"%";return(!d||d>=e)&&(n||v||p.stop(),v?p.css("width",i):p.animate(s?{height:i}:{width:i},t,"linear")),e},b=function(e){return Math.max(0,Math.min(l,s?(1-e)*r:e*o))},w={max:function(e){d=e},disable:function(e){i=e},slide:function(e,t,n){m(),n&&g(e),y(e,t)},disableAnimation:function(e,t){v=e!==!1,c.toggleClass("no-animation",!!t)}};m(),c.data("api",w).bind("mousedown.sld touchstart",function(t){if(t.preventDefault(),!i){var n=e.throttle(g,100);m(),w.dragging=!0,c.addClass("is-dragging"),g(h(t)),f.bind("mousemove.sld touchmove",function(e){e.preventDefault(),n(h(e))}).one("mouseup touchend",function(){w.dragging=!1,c.removeClass("is-dragging"),f.unbind("mousemove.sld touchmove")})}})})},flowplayer(function(t,n){function i(t){return e(".fp-"+t,n)}function a(t){("0px"===n.css("width")||"0px"===n.css("height")||t!==flowplayer.defaults.ratio)&&(parseInt(y,10)||m.css("paddingTop",100*t+"%")),l.inlineBlock||e("object",n).height(n.height())}function o(e){n.toggleClass("is-mouseover",e).toggleClass("is-mouseout",!e)}var r,s=t.conf,l=flowplayer.support;n.find(".fp-ratio,.fp-ui").remove(),n.addClass("flowplayer").append(' <div class="ratio"/> <div class="ui"> <div class="waiting"><em/><em/><em/></div> <a class="fullscreen"/> <a class="unload"/> <p class="speed"/> <div class="controls"> <a class="play"></a> <div class="timeline"> <div class="buffer"/> <div class="progress"/> </div> <div class="volume"> <a class="mute"></a> <div class="volumeslider"> <div class="volumelevel"/> </div> </div> </div> <div class="time"> <em class="elapsed">00:00</em> <em class="remaining"/> <em class="duration">00:00</em> </div> <div class="message"><h2/><p/></div> </div>'.replace(/class="/g,'class="fp-'));var u=i("progress"),c=i("buffer"),f=i("elapsed"),p=i("remaining"),v=i("waiting"),m=i("ratio"),g=i("speed"),h=i("duration"),y=m.css("paddingTop"),b=i("timeline").slider2(t.rtl),w=b.data("api"),k=(i("volume"),i("fullscreen")),x=i("volumeslider").slider2(t.rtl),C=x.data("api"),T=n.is(".fixed-controls, .no-toggle");w.disableAnimation(n.hasClass("is-touch")),l.animation||v.html("<p>loading &hellip;</p>"),a(s.ratio);try{s.fullscreen||k.remove()}catch(S){k.remove()}t.bind("ready",function(){var e=t.video.duration;w.disable(t.disabled||!e),s.adaptiveRatio&&a(t.video.height/t.video.width),h.add(p).html(d(e)),e>=3600&&n.addClass("is-long")||n.removeClass("is-long"),C.slide(t.volumeLevel),"flash"===t.engine&&w.disableAnimation(!0,!0)}).bind("unload",function(){y||m.css("paddingTop","")}).bind("buffer",function(){var e=t.video,n=e.buffer/e.duration;!e.seekable&&l.seekable&&w.max(n),1>n?c.css("width",100*n+"%"):c.css({width:"100%"})}).bind("speed",function(e,t,n){g.text(n+"x").addClass("fp-hilite"),setTimeout(function(){g.removeClass("fp-hilite")},1e3)}).bind("buffered",function(){c.css({width:"100%"}),w.max(1)}).bind("progress",function(){var e=t.video.time,n=t.video.duration;w.dragging||w.slide(e/n,t.seeking?0:250),f.html(d(e)),p.html("-"+d(n-e))}).bind("finish resume seek",function(e){n.toggleClass("is-finished","finish"==e.type)}).bind("stop",function(){f.html(d(0)),w.slide(0,100)}).bind("finish",function(){f.html(d(t.video.duration)),w.slide(1,100),n.removeClass("is-seeking")}).bind("beforeseek",function(){u.stop()}).bind("volume",function(){C.slide(t.volumeLevel)}).bind("disable",function(){var e=t.disabled;w.disable(e),C.disable(e),n.toggleClass("is-disabled",t.disabled)}).bind("mute",function(e,t,i){n.toggleClass("is-muted",i)}).bind("error",function(t,i,a){if(n.removeClass("is-loading").addClass("is-error"),a){a.message=s.errors[a.code],i.error=!0;var o=e(".fp-message",n);e("h2",o).text((i.engine||"html5")+": "+a.message),e("p",o).text(a.url||i.video.url||i.video.src||s.errorUrls[a.code]),n.unbind("mouseenter click").removeClass("is-mouseover")}}).bind("mouseenter mouseleave",function(e){if(!T){var t,i="mouseenter"==e.type;o(i),i?(n.bind("pause.x mousemove.x volume.x",function(){o(!0),t=new Date}),r=setInterval(function(){new Date-t>5e3&&(o(!1),t=new Date)},100)):(n.unbind(".x"),clearInterval(r))}}).bind("mouseleave",function(){(w.dragging||C.dragging)&&n.addClass("is-mouseover").removeClass("is-mouseout")}).bind("click.player",function(n){return e(n.target).is(".fp-ui, .fp-engine")||n.flash?(n.preventDefault(),t.toggle()):void 0}).bind("contextmenu",function(t){t.preventDefault();var i=n.offset(),a=e(window),o=t.clientX-i.left,r=t.clientY-i.top+a.scrollTop(),s=n.find(".fp-context-menu").css({left:o+"px",top:r+"px",display:"block"}).on("click",function(e){e.stopPropagation()});e("html").on("click.outsidemenu",function(){s.hide(),e("html").off("click.outsidemenu")})}).bind("flashdisabled",function(){n.addClass("is-flash-disabled").one("ready",function(){n.removeClass("is-flash-disabled").find(".fp-flash-disabled").remove()}).append('<div class="fp-flash-disabled">Adobe Flash is disabled for this page, click player area to enable.</div>')}),s.poster&&n.css("backgroundImage","url("+s.poster+")");var F=n.css("backgroundColor"),_="none"!=n.css("backgroundImage")||F&&"rgba(0, 0, 0, 0)"!=F&&"transparent"!=F;!_||s.splash||s.autoplay||t.bind("ready stop",function(){n.addClass("is-poster").one("progress",function(){n.removeClass("is-poster")})}),!_&&t.forcedSplash&&n.css("backgroundColor","#555"),e(".fp-toggle, .fp-play",n).click(t.toggle),e.each(["mute","fullscreen","unload"],function(e,n){i(n).click(function(){t[n]()})}),b.bind("slide",function(e,n){t.seeking=!0,t.seek(n*t.video.duration)}),x.bind("slide",function(e,n){t.volume(n)}),i("time").click(function(){e(this).toggleClass("is-inverted")}),o(T)});var C,T,S="is-help";e(document).bind("keydown.fp",function(t){var n=C,i=t.ctrlKey||t.metaKey||t.altKey,a=t.which,o=n&&n.conf;if(n&&o.keyboard&&!n.disabled){if(-1!=e.inArray(a,[63,187,191]))return T.toggleClass(S),!1;if(27==a&&T.hasClass(S))return T.toggleClass(S),!1;if(!i&&n.ready){if(t.preventDefault(),t.shiftKey)return 39==a?n.speed(!0):37==a&&n.speed(!1),void 0;if(58>a&&a>47)return n.seekTo(a-48);switch(a){case 38:case 75:n.volume(n.volumeLevel+.15);break;case 40:case 74:n.volume(n.volumeLevel-.15);break;case 39:case 76:n.seeking=!0,n.seek(!0);break;case 37:case 72:n.seeking=!0,n.seek(!1);break;case 190:n.seekTo();break;case 32:n.toggle();break;case 70:o.fullscreen&&n.fullscreen();break;case 77:n.mute();break;case 81:n.unload()}}}}),flowplayer(function(t,n){if(t.conf.keyboard){n.bind("mouseenter mouseleave",function(e){C=t.disabled||"mouseenter"!=e.type?0:t,C&&(T=n)});var i=flowplayer.support.video&&"flash"!==t.conf.engine&&e("<video/>")[0].playbackRate?"<p><em>shift</em> + <em>&#8592;</em><em>&#8594;</em>slower / faster</p>":"";n.append(' <div class="fp-help"> <a class="fp-close"></a> <div class="fp-help-section fp-help-basics"> <p><em>space</em>play / pause</p> <p><em>q</em>unload | stop</p> <p><em>f</em>fullscreen</p>'+i+' </div> <div class="fp-help-section"> <p><em>&#8593;</em><em>&#8595;</em>volume</p> <p><em>m</em>mute</p> </div> <div class="fp-help-section"> <p><em>&#8592;</em><em>&#8594;</em>seek</p> <p><em>&nbsp;. </em>seek to previous </p><p><em>1</em><em>2</em>&hellip; <em>6</em> seek to 10%, 20% &hellip; 60% </p> </div> </div> '),t.conf.tooltip&&e(".fp-ui",n).attr("title","Hit ? for help").on("mouseout.tip",function(){e(this).removeAttr("title").off("mouseout.tip")}),e(".fp-close",n).click(function(){n.toggleClass(S)})}});var F,_=e.browser.mozilla?"moz":"webkit",E="fullscreen",M="fullscreen-exit",A=flowplayer.support.fullscreen,D=("function"==typeof document.exitFullscreen,navigator.userAgent.toLowerCase()),P=/(safari)[ \/]([\w.]+)/.exec(D)&&!/(chrome)[ \/]([\w.]+)/.exec(D);e(document).bind("fullscreenchange webkitfullscreenchange mozfullscreenchange MSFullscreenChange",function(t){var n=e(document.webkitCurrentFullScreenElement||document.mozFullScreenElement||document.fullscreenElement||document.msFullscreenElement||t.target);n.length&&!F?F=n.trigger(E,[n]):(F.trigger(M,[F]),F=null)}),flowplayer(function(t,n){if(t.conf.fullscreen){var i,a=e(window),o={apply:!1,pos:0,play:!1};t.isFullscreen=!1,t.fullscreen=function(r){if(!t.disabled){if(void 0===r&&(r=!t.isFullscreen),r&&(i=a.scrollTop()),"webkit"!=_&&!P||"flash"!=t.engine||(o={apply:!0,pos:t.video.time,play:t.playing}),A)if(r){var s=n[0];e.each(["requestFullScreen","webkitRequestFullScreen","mozRequestFullScreen","msRequestFullscreen"],function(e,t){return"function"==typeof s[t]?(s[t](Element.ALLOW_KEYBOARD_INPUT),!P||document.webkitCurrentFullScreenElement||document.mozFullScreenElement||s[t](),!1):void 0})}else e.each(["exitFullscreen","webkitCancelFullScreen","mozCancelFullScreen","msExitFullscreen"],function(e,t){return"function"==typeof document[t]?(document[t](),!1):void 0});else t.trigger(r?E:M,[t]);return t}};var r;n.bind("mousedown.fs",function(){150>+new Date-r&&t.ready&&t.fullscreen(),r=+new Date}),t.bind(E,function(){n.addClass("is-fullscreen"),t.isFullscreen=!0}).bind(M,function(){var e;A||"html5"!==t.engine||(e=n.css("opacity")||"",n.css("opacity",0)),n.removeClass("is-fullscreen"),A||"html5"!==t.engine||setTimeout(function(){n.css("opacity",e)}),t.isFullscreen=!1,a.scrollTop(i)}).bind("ready",function(){if(o.apply){var n=function(){o.play||t.conf.live?t.resume():t.pause(),e.extend(o,{pos:0,play:!1})};t.conf.live?n():t.conf.rtmp&&o.pos&&!isNaN(o.pos)?(t.resume(),t.seek(o.pos,n)):n()}})}}),flowplayer(function(t,n){function i(){return e(o.query,n)}function a(){return e(o.query+"."+r,n)}var o=e.extend({active:"is-active",advance:!0,query:".fp-playlist a"},t.conf),r=o.active;t.play=function(n){return void 0===n?t.resume():"number"!=typeof n||t.conf.playlist[n]?("number"!=typeof n&&t.load.apply(null,arguments),t.unbind("resume.fromfirst"),t.video.index=n,t.load("string"==typeof t.conf.playlist[n]?""+t.conf.playlist[n]:e.map(t.conf.playlist[n],function(t){return e.extend({},t)})),t):t},t.next=function(e){e&&e.preventDefault();var n=t.video.index;return-1!=n&&(n=n===t.conf.playlist.length-1?0:n+1,t.play(n)),t},t.prev=function(e){e&&e.preventDefault();var n=t.video.index;return-1!=n&&(n=0===n?t.conf.playlist.length-1:n-1,t.play(n)),t},e(".fp-next",n).click(t.next),e(".fp-prev",n).click(t.prev),o.advance&&n.unbind("finish.pl").bind("finish.pl",function(e,t){var i=t.video.index>=0?t.video.index+1:void 0;t.conf.playlist.length>i||o.loop?(i=i===t.conf.playlist.length?0:i,n.removeClass("is-finished"),setTimeout(function(){t.play(i)})):(n.addClass("is-playing"),t.conf.playlist.length>1&&t.one("resume.fromfirst",function(){return t.play(0),!1}))});var s=!1;if(t.conf.playlist.length){s=!0;var l=n.find(".fp-playlist");if(!l.length){l=e('<div class="fp-playlist"></div>');var d=e(".fp-next,.fp-prev",n);d.length?d.eq(0).before(l):e("video",n).after(l)}l.empty(),e.each(t.conf.playlist,function(t,n){var i;if("string"==typeof n)i=n;else for(var a in n[0])if(n[0].hasOwnProperty(a)){i=n[0][a];break}l.append(e("<a />").attr({href:i,"data-index":t}))})}if(i().length){s||(t.conf.playlist=[],i().each(function(){var n=e(this).attr("href");e(this).attr("data-index",t.conf.playlist.length),t.conf.playlist.push(n)})),n.on("click",o.query,function(n){n.preventDefault();var i=e(n.target).closest(o.query),a=Number(i.attr("data-index"));-1!=a&&t.play(a)});var u=i().filter("[data-cuepoints]").length;t.bind("load",function(i,o,s){var l=a().removeClass(r),d=l.attr("data-index"),c=s.index=t.video.index||0,f=e('a[data-index="'+c+'"]',n).addClass(r),p=c==t.conf.playlist.length-1;n.removeClass("video"+d).addClass("video"+c).toggleClass("last-video",p),s.index=o.video.index=c,s.is_last=o.video.is_last=p,u&&(t.cuepoints=f.data("cuepoints"))}).bind("unload.pl",function(){a().toggleClass(r)})}t.conf.playlist.length&&(t.conf.loop=!1)});var L=/ ?cue\d+ ?/;flowplayer(function(t,n){function i(e){n[0].className=n[0].className.replace(L," "),e>=0&&n.addClass("cue"+e)}var a=0;t.cuepoints=t.conf.cuepoints||[],t.bind("progress",function(e,o,r){if(a&&.015>r-a)return a=r;a=r;for(var s,l=t.cuepoints||[],d=0;l.length>d;d++)s=l[d],isNaN(s)||(s={time:s}),0>s.time&&(s.time=t.video.duration+s.time),s.index=d,Math.abs(s.time-r)<.125*t.currentSpeed&&(i(d),n.trigger("cuepoint",[t,s]))}).bind("unload seek",i),t.conf.generate_cuepoints&&t.bind("load",function(){e(".fp-cuepoint",n).remove()}).bind("ready",function(){var i=t.cuepoints||[],a=t.video.duration,o=e(".fp-timeline",n).css("overflow","visible");e.each(i,function(n,i){var r=i.time||i;0>r&&(r=a+i);var s=e("<a/>").addClass("fp-cuepoint fp-cuepoint"+n).css("left",100*(r/a)+"%");s.appendTo(o).mousedown(function(){return t.seek(r),!1})})})}),flowplayer(function(t,n){function i(e){var t=e.split(":");return 2==t.length&&t.unshift(0),60*60*t[0]+60*t[1]+parseFloat(t[2].replace(",","."))}var a=e("track",n),o=t.conf;if(flowplayer.support.subtitles&&(t.subtitles=a.length&&a[0].track,o.nativesubtitles&&"html5"==o.engine)){if(!t.subtitles)return;var r=function(t){var i=e("video",n)[0].textTracks;i.length&&(i[0].mode=t)};return r("disabled"),t.one("ready",function(){t.conf.splash&&e("video.fp-engine",n).append(e("<track />").attr({kind:"subtitles",srclang:t.subtitles.language||"en",label:t.subtitles.language||"en",src:a.attr("src"),"default":"default"})),r("disabled"),r("showing")
7
+ }),void 0}a.remove();var s=/^(([0-9]{2}:){1,2}[0-9]{2}[,.][0-9]{3}) --\> (([0-9]{2}:){1,2}[0-9]{2}[,.][0-9]{3})(.*)/;t.subtitles=[];var l=a.attr("src");if(l){setTimeout(function(){e.get(l,function(n){for(var a,o,r,l,d=0,u=n.split("\n"),c=u.length,f={};c>d;d++)if(o=s.exec(u[d])){for(a=u[d-1],r="<p>"+u[++d]+"</p><br/>";e.trim(u[++d])&&u.length>d;)r+="<p>"+u[d]+"</p><br/>";f={title:a,startTime:i(o[1]),endTime:i(o[3]),text:r},l={time:f.startTime,subtitle:f},t.subtitles.push(f),t.cuepoints.push(l),t.cuepoints.push({time:f.endTime,subtitleEnd:a}),0===f.startTime&&t.trigger("cuepoint",l)}}).fail(function(){return t.trigger("error",{code:8,url:l}),!1})});var d,u=e("<div class='fp-subtitle'/>").appendTo(n);t.bind("cuepoint",function(e,t,n){n.subtitle?(d=n.index,u.html(n.subtitle.text).addClass("fp-active")):n.subtitleEnd&&(u.removeClass("fp-active"),d=n.index)}).bind("seek",function(n,i,a){d&&t.cuepoints[d]&&t.cuepoints[d].time>a&&(u.removeClass("fp-active"),d=null),e.each(t.cuepoints||[],function(e,n){var i=n.subtitle;i&&d!=n.index?a>=n.time&&(!i.endTime||i.endTime>=a)&&t.trigger("cuepoint",n):n.subtitleEnd&&a>=n.time&&n.index==d+1&&t.trigger("cuepoint",n)})})}}),flowplayer(function(t,n){function i(){if(o&&"undefined"!=typeof _gat){var e=_gat._getTracker(a),i=t.video;e._setAllowLinker(!0),e._trackEvent("Video / Seconds played",t.engine+"/"+i.type,n.attr("title")||i.src.split("/").slice(-1)[0].replace(x,""),Math.round(o/1e3)),o=0}}var a=t.conf.analytics,o=0,r=0;a&&("undefined"==typeof _gat&&e.getScript("//google-analytics.com/ga.js"),t.bind("load unload",i).bind("progress",function(){t.seeking||(o+=r?+new Date-r:0,r=+new Date)}).bind("pause",function(){r=0}),e(window).unload(i))});var I=/IEMobile/.test(f);(flowplayer.support.touch||I)&&flowplayer(function(t,n){var i=/Android/.test(f)&&!/Firefox/.test(f)&&!/Opera/.test(f),a=/Silk/.test(f),o=i?parseFloat(/Android\ (\d\.\d)/.exec(f)[1],10):0;if(i){if(!/Chrome/.test(f)&&4>o){var r=t.load;t.load=function(){var e=r.apply(t,arguments);return t.trigger("ready",[t,t.video]),e}}var s,l=0,u=function(e){s=setInterval(function(){e.video.time=++l,e.trigger("progress",l)},1e3)};t.bind("ready pause unload",function(){s&&(clearInterval(s),s=null)}),t.bind("ready",function(){l=0}),t.bind("resume",function(e,n){return n.live?l?u(n):(t.one("progress",function(e,t,n){0===n&&u(t)}),void 0):void 0})}flowplayer.support.volume||n.addClass("no-volume no-mute"),n.addClass("is-touch"),n.find(".fp-timeline").data("api").disableAnimation(),(!flowplayer.support.inlineVideo||t.conf.native_fullscreen)&&(t.conf.nativesubtitles=!0);var c=!1;n.bind("touchmove",function(){c=!0}).bind("touchend click",function(){return c?(c=!1,void 0):t.playing&&!n.hasClass("is-mouseover")?(n.addClass("is-mouseover").removeClass("is-mouseout"),!1):(t.paused&&n.hasClass("is-mouseout")&&!t.splash&&t.toggle(),t.paused&&I&&e("video.fp-engine",n)[0].play(),void 0)}),t.conf.native_fullscreen&&"function"==typeof e("<video />")[0].webkitEnterFullScreen&&(t.fullscreen=function(){var t=e("video.fp-engine",n);t[0].webkitEnterFullScreen(),t.one("webkitendfullscreen",function(){t.prop("controls",!0).prop("controls",!1)})}),(i||a)&&t.bind("ready",function(){var i=e("video.fp-engine",n);i.one("canplay",function(){i[0].play()}),i[0].play(),t.bind("progress.dur",function(){var a=i[0].duration;1!==a&&(t.video.duration=a,e(".fp-duration",n).html(d(a)),t.unbind("progress.dur"))})})}),flowplayer(function(t,n){if(t.conf.embed!==!1){var i=t.conf,a=e(".fp-ui",n),o=e("<a/>",{"class":"fp-embed",title:"Copy to your site"}).appendTo(a),r=e("<div/>",{"class":"fp-embed-code"}).append("<label>Paste this HTML code on your site to embed.</label><textarea/>").appendTo(a),s=e("textarea",r);t.embedCode=function(){var a=t.video,o=a.width||n.width(),r=a.height||n.height(),s=e("<div/>",{"class":"flowplayer",css:{width:o,height:r}}),l=e("<video/>").appendTo(s);e.each(["origin","analytics","key","rtmp","subscribe","bufferTime"],function(e,t){i.hasOwnProperty(t)&&s.attr("data-"+t,i[t])}),i.logo&&s.attr("data-logo",e("<img />").attr("src",i.logo)[0].src),e.each(a.sources,function(t,n){var a=n.src;(!/^https?:/.test(n.src)&&"flash"!==n.type||!i.rtmp)&&(a=e("<img/>").attr("src",n.src)[0].src),l.append(e("<source/>",{type:"mpegurl"!=n.type?"video/"+n.type:"application/x-mpegurl",src:a}))});var d={src:"//embed.flowplayer.org/5.5.2/embed.min.js"};e.isPlainObject(i.embed)&&(d["data-swf"]=i.embed.swf,d["data-library"]=i.embed.library,d.src=i.embed.script||d.src,i.embed.skin&&(d["data-skin"]=i.embed.skin));var u=e("<foo/>",d).append(s);return e("<p/>").append(u).html().replace(/<(\/?)foo/g,"<$1script")},n.fptip(".fp-embed","is-embedding"),s.click(function(){this.select()}),o.click(function(){s.text(t.embedCode()),s[0].focus(),s[0].select()})}}),e.fn.fptip=function(t,n){return this.each(function(){function i(){a.removeClass(n),e(document).unbind(".st")}var a=e(this);e(t||"a",this).click(function(t){t.preventDefault(),a.toggleClass(n),a.hasClass(n)&&e(document).bind("keydown.st",function(e){27==e.which&&i()}).bind("click.st",function(t){e(t.target).parents("."+n).length||i()})})})}}(jQuery);flowplayer(function(e,o){function l(e){var o=a("<a/>")[0];return o.href=e,o.hostname}var a=jQuery,r=e.conf,i=r.swf.indexOf("flowplayer.org")&&r.e&&o.data("origin"),n=i?l(i):location.hostname,t=r.key;if("file:"==location.protocol&&(n="localhost"),e.load.ed=1,r.hostname=n,r.origin=i||location.href,i&&o.addClass("is-embedded"),"string"==typeof t&&(t=t.split(/,\s*/)),t&&"function"==typeof key_check&&key_check(t,n))r.logo&&o.append(a("<a>",{"class":"fp-logo",href:i}).append(a("<img/>",{src:r.logo})));else{var s=a("<a/>").attr("href","http://flowplayer.org").appendTo(o);a(".fp-controls",o);var p=a('<div class="fp-context-menu"><ul><li class="copyright">&copy; 2014</li><li><a href="http://flowplayer.org">About Flowplayer</a></li><li><a href="http://flowplayer.org/license">GPL based license</a></li></ul></div>').appendTo(o);e.bind("pause resume finish unload",function(e,l){var r=-1;l.video.src&&a.each([["org","flowplayer","drive"],["org","flowplayer","my"]],function(e,o){return r=l.video.src.indexOf("://"+o.reverse().join(".")),-1===r}),/pause|resume/.test(e.type)&&"flash"!=l.engine&&4!=r&&5!=r?(s.show().css({position:"absolute",left:16,bottom:36,zIndex:99999,width:100,height:20,backgroundImage:"url("+[".png","logo","/",".net",".cloudfront","d32wqyuo10o653","//"].reverse().join("")+")"}),l.load.ed=s.is(":visible")&&a.contains(o[0],p[0]),l.load.ed||l.pause()):s.hide()})}});
lib/flowplayer.swf CHANGED
Binary file
lib/img/Thumbs.db DELETED
Binary file
lib/img/black.png DELETED
Binary file
lib/img/black@x2.png DELETED
Binary file
lib/img/play_black.png DELETED
Binary file
lib/img/play_black@x2.png DELETED
Binary file
lib/img/play_white.png DELETED
Binary file
lib/img/play_white@x2.png DELETED
Binary file
lib/img/playful_black.png DELETED
Binary file
lib/img/playful_white.png DELETED
Binary file
lib/img/white.png DELETED
Binary file
lib/img/white@x2.png DELETED
Binary file
lib/{all-skins.css → skin/all-skins.css} RENAMED
@@ -1,4 +1,4 @@
1
- .minimalist{position:relative;width:100%;text-align:left;background-size:contain;background-repeat:no-repeat;background-position:center center;display:inline-block;}
2
  .minimalist *{font-weight:inherit;font-family:inherit;font-style:inherit;text-decoration:inherit;font-size:100%;padding:0;border:0;margin:0;list-style-type:none}
3
  .minimalist a:focus{outline:0}
4
  .minimalist video{width:100%}
@@ -23,7 +23,7 @@
23
  .minimalist .fp-speed.fp-hilite{opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
24
  .minimalist .fp-help{position:absolute;top:0;left:-9999em;z-index:100;background-color:#333;background-color:rgba(51,51,51,0.9);width:100%;height:100%;opacity:0;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);-webkit-transition:opacity .2s;-moz-transition:opacity .2s;transition:opacity .2s;text-align:center;}
25
  .is-help.minimalist .fp-help{left:0;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
26
- .minimalist .fp-help .fp-help-section{margin:3%}
27
  .minimalist .fp-help .fp-help-basics{margin-top:6%}
28
  .minimalist .fp-help p{color:#eee;margin:.5em 0;font-size:14px;line-height:1.5;display:inline-block;margin:1% 2%}
29
  .minimalist .fp-help em{background:#eee;-webkit-border-radius:.3em;-moz-border-radius:.3em;border-radius:.3em;margin-right:.4em;padding:.3em .6em;color:#333}
@@ -35,46 +35,88 @@
35
  .minimalist .fp-subtitle p:after{content:'';clear:both}
36
  .minimalist .fp-subtitle.fp-active{left:0;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
37
  .minimalist .fp-fullscreen,.minimalist .fp-unload,.minimalist .fp-mute,.minimalist .fp-embed,.minimalist .fp-close,.minimalist .fp-play{background-image:url(img/white.png);background-size:37px 300px;}
 
38
  .color-light.minimalist .fp-fullscreen,.color-light.minimalist .fp-unload,.color-light.minimalist .fp-mute,.color-light.minimalist .fp-embed,.color-light.minimalist .fp-close,.color-light.minimalist .fp-play{background-image:url(img/black.png);}
 
39
  @media (-webkit-min-device-pixel-ratio: 2){.color-light.minimalist .fp-fullscreen,.color-light.minimalist .fp-unload,.color-light.minimalist .fp-mute,.color-light.minimalist .fp-embed,.color-light.minimalist .fp-close,.color-light.minimalist .fp-play{background-image:url(img/black@x2.png)}
 
40
  }@media (-webkit-min-device-pixel-ratio: 2){.minimalist .fp-fullscreen,.minimalist .fp-unload,.minimalist .fp-mute,.minimalist .fp-embed,.minimalist .fp-close,.minimalist .fp-play{background-image:url(img/white@x2.png)}
41
- }.is-splash.minimalist .fp-ui,.is-paused.minimalist .fp-ui{background:url(img/play_white.png) center no-repeat;background-size:12%;}
 
 
 
42
  @media (-webkit-min-device-pixel-ratio: 2){.is-splash.minimalist .fp-ui,.is-paused.minimalist .fp-ui{background:url(img/play_white@x2.png) center no-repeat;background-size:12%}
43
- }.color-light.is-splash.minimalist .fp-ui,.color-light.is-paused.minimalist .fp-ui{background-image:url(img/play_black.png)}
44
- @media (-webkit-min-device-pixel-ratio: 2){.color-light.is-splash.minimalist .fp-ui,.color-light.is-paused.minimalist .fp-ui{background-image:url(img/play_black@x2.png)}
 
 
 
45
  }.is-fullscreen.minimalist .fp-ui{background-size:auto}
46
  .is-seeking.minimalist .fp-ui,.is-loading.minimalist .fp-ui{background-image:none}
47
  .minimalist .fp-logo{position:absolute;top:auto;left:15px;bottom:30px;cursor:pointer;display:none;z-index:100;}
48
  .minimalist .fp-logo img{width:100%}
49
  .is-embedded.minimalist .fp-logo{display:block}
50
  .fixed-controls.minimalist .fp-logo{bottom:15px}
51
- .minimalist .fp-fullscreen,.minimalist .fp-unload,.minimalist .fp-close{position:absolute;top:5px;left:auto;right:5px;display:block;width:30px;height:23px;background-position:12px -197px;cursor:pointer}
52
- .minimalist .fp-unload,.minimalist .fp-close{background-position:14px -175px;display:none}
 
 
53
  .minimalist .fp-play{display:none;width:27px;height:20px;background-position:9px -24px;position:absolute;bottom:0;left:0;}
 
54
  .play-button.minimalist .fp-play{display:block}
55
- .is-paused.minimalist .fp-play{background-position:9px 7px}
 
56
  .minimalist.is-ready.is-closeable .fp-unload{display:block}
57
  .minimalist.is-ready.is-closeable .fp-fullscreen{display:none}
58
- .minimalist.is-fullscreen .fp-fullscreen{background-position:10px -217px;display:block !important}
 
59
  .minimalist.is-fullscreen .fp-unload,.minimalist.is-fullscreen .fp-close{display:none !important}
60
  .minimalist .fp-timeline{height:3px;position:relative;overflow:hidden;top:5px;height:10px;margin:0 150px 0 45px;}
61
  .no-volume.minimalist .fp-timeline{margin-right:60px}
62
- .no-mute.minimalist .fp-timeline{margin-right:45px}
 
63
  .play-button.minimalist .fp-timeline{margin-left:67px}
 
 
 
 
 
64
  .is-long.minimalist .fp-timeline{margin:0 180px 0 75px;}
65
  .no-volume.is-long.minimalist .fp-timeline{margin-right:90px}
66
  .no-mute.is-long.minimalist .fp-timeline{margin-right:75px}
67
  .play-button.is-long.minimalist .fp-timeline{margin-left:97px}
 
 
 
 
68
  .aside-time.minimalist .fp-timeline,.no-time.minimalist .fp-timeline{margin:0 110px 0 5px}
69
  .aside-time.no-volume.minimalist .fp-timeline,.no-time.no-volume.minimalist .fp-timeline{margin-right:20px}
70
  .aside-time.no-mute.minimalist .fp-timeline,.no-time.no-mute.minimalist .fp-timeline{margin-right:5px}
71
  .play-button.no-time.minimalist .fp-timeline,.play-button.aside-time.minimalist .fp-timeline{margin-left:27px}
 
 
 
 
72
  .minimalist .fp-buffer,.minimalist .fp-progress{position:absolute;top:0;left:auto;height:100%;cursor:col-resize}
73
  .minimalist .fp-buffer{-webkit-transition:width .25s linear;-moz-transition:width .25s linear;transition:width .25s linear}
74
- .minimalist .fp-volume{position:absolute;top:7.5px;right:5px}
75
- .minimalist .fp-mute{width:10px;height:15px;float:left;position:relative;top:-5px;left:;cursor:pointer;background-position:-2px -99px;}
 
 
 
 
 
 
 
 
 
 
 
 
 
76
  .no-mute.minimalist .fp-mute{display:none}
77
  .minimalist .fp-volumeslider{width:90px;height:5px;cursor:col-resize;float:left;}
 
78
  .no-volume.minimalist .fp-volumeslider{display:none}
79
  .minimalist .fp-volumelevel{height:100%}
80
  .minimalist .fp-time{text-shadow:0 0 1px #000;font-size:12px;font-weight:bold;color:#fff;width:100%;}
@@ -85,15 +127,23 @@
85
  .is-long.minimalist .fp-time em{width:65px}
86
  .minimalist .fp-elapsed{left:5px;}
87
  .play-button.minimalist .fp-elapsed{left:27px}
 
 
88
  .minimalist .fp-remaining,.minimalist .fp-duration{right:110px;color:#eee;}
89
  .no-volume.minimalist .fp-remaining,.no-volume.minimalist .fp-duration{right:20px}
90
- .no-mute.minimalist .fp-remaining,.no-mute.minimalist .fp-duration{right:5px}
 
 
 
 
 
91
  .minimalist .fp-remaining{display:none}
92
  .minimalist.color-light .fp-time{color:#222;text-shadow:0 0 1px #fff}
93
  .minimalist.color-light .fp-remaining,.minimalist.color-light .fp-duration{color:#666}
94
  .minimalist.aside-time .fp-time{position:absolute;top:5px;left:5px;bottom:auto !important;width:85px;}
95
  .minimalist.aside-time .fp-time strong,.minimalist.aside-time .fp-time em{position:static}
96
- .minimalist.aside-time .fp-time .fp-elapsed{margin-right:5px}
 
97
  .minimalist.is-long.aside-time .fp-time{width:130px}
98
  .minimalist.is-splash,.minimalist.is-poster{cursor:pointer;}
99
  .minimalist.is-splash .fp-controls,.minimalist.is-poster .fp-controls,.minimalist.is-splash .fp-fullscreen,.minimalist.is-poster .fp-fullscreen,.minimalist.is-splash .fp-unload,.minimalist.is-poster .fp-unload,.minimalist.is-splash .fp-time,.minimalist.is-poster .fp-time,.minimalist.is-splash .fp-embed,.minimalist.is-poster .fp-embed{display:none !important}
@@ -101,8 +151,12 @@
101
  .minimalist.is-loading .fp-waiting{display:block}
102
  .minimalist.is-loading .fp-controls,.minimalist.is-loading .fp-time{display:none}
103
  .minimalist.is-loading .fp-ui{background-position:-9999em}
 
104
  .minimalist.is-seeking .fp-waiting{display:block}
105
- .minimalist.is-fullscreen{position:fixed !important;top:0 !important;left:0 !important;border:0 !important;margin:0 !important;width:100% !important;height:100% !important;max-width:100% !important;z-index:99999 !important;-webkit-box-shadow:0 !important;-moz-box-shadow:0 !important;box-shadow:0 !important;background-image:none !important;background-color:#333}
 
 
 
106
  .minimalist.is-error{border:1px solid #909090;background:#fdfdfd !important;}
107
  .minimalist.is-error h2{font-weight:bold;font-size:large;margin-top:10%}
108
  .minimalist.is-error .fp-message{display:block}
@@ -120,18 +174,35 @@
120
  .minimalist.fixed-controls .fp-time em{bottom:-15px;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);}
121
  .is-fullscreen.minimalist.fixed-controls .fp-time em{bottom:5px}
122
  .minimalist.is-disabled .fp-progress{background-color:#999}
123
- .minimalist .fp-embed{position:absolute;top:5px;left:5px;display:block;width:25px;height:20px;background-position:3px -237px}
 
 
 
 
124
  .minimalist .fp-embed-code{position:absolute;display:none;top:10px;left:40px;background-color:#333;padding:3px 5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 0 3px #ccc;-moz-box-shadow:0 0 3px #ccc;box-shadow:0 0 3px #ccc;font-size:12px;}
125
  .minimalist .fp-embed-code:before{content:'';width:0;height:0;position:absolute;top:2px;left:-10px;border:5px solid transparent;border-right-color:#333}
 
 
126
  .minimalist .fp-embed-code textarea{width:400px;height:16px;font-family:monaco,"courier new",verdana;color:#777;white-space:nowrap;resize:none;overflow:hidden;border:0;outline:0;background-color:transparent;color:#ccc}
127
  .minimalist .fp-embed-code label{display:block;color:#999}
128
  .minimalist.is-embedding .fp-embed,.minimalist.is-embedding .fp-embed-code{display:block;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
129
- .minimalist.aside-time .fp-embed{left:85px}
130
- .minimalist.aside-time .fp-embed-code{left:115px}
 
 
131
  .minimalist.aside-time.is-embedding .fp-time{opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
132
- .minimalist.is-long.aside-time .fp-embed{left:130px}
133
- .minimalist.no-time .fp-embed{left:5px !important}
134
- @-moz-keyframes pulse{0%{opacity:0}
 
 
 
 
 
 
 
 
 
135
  100%{opacity:1}
136
  }@-webkit-keyframes pulse{0%{opacity:0}
137
  100%{opacity:1}
@@ -149,14 +220,17 @@
149
  .minimalist .fp-volumeslider{background-color:#000}
150
  .minimalist .fp-volumelevel{background-color:#fff}
151
  .minimalist .fp-play{height:24px}
 
152
  .minimalist.color-light .fp-controls{background-color:rgba(255,255,255,0.6)}
153
  .minimalist.color-light.fixed-controls .fp-controls{background-color:#fff}
154
  .minimalist.color-light .fp-volumeslider{background-color:#ddd}
155
  .minimalist.color-light .fp-volumelevel{background-color:#222}
156
  .minimalist.color-alt .fp-progress{background-color:#fff}
 
157
  .minimalist.color-alt .fp-buffer{background-color:#999}
158
  .minimalist.color-alt2 .fp-progress{background-color:#900}
159
- .functional{position:relative;width:100%;text-align:left;background-size:contain;background-repeat:no-repeat;background-position:center center;display:inline-block;}
 
160
  .functional *{font-weight:inherit;font-family:inherit;font-style:inherit;text-decoration:inherit;font-size:100%;padding:0;border:0;margin:0;list-style-type:none}
161
  .functional a:focus{outline:0}
162
  .functional video{width:100%}
@@ -181,7 +255,7 @@
181
  .functional .fp-speed.fp-hilite{opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
182
  .functional .fp-help{position:absolute;top:0;left:-9999em;z-index:100;background-color:#333;background-color:rgba(51,51,51,0.9);width:100%;height:100%;opacity:0;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);-webkit-transition:opacity .2s;-moz-transition:opacity .2s;transition:opacity .2s;text-align:center;}
183
  .is-help.functional .fp-help{left:0;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
184
- .functional .fp-help .fp-help-section{margin:3%}
185
  .functional .fp-help .fp-help-basics{margin-top:6%}
186
  .functional .fp-help p{color:#eee;margin:.5em 0;font-size:14px;line-height:1.5;display:inline-block;margin:1% 2%}
187
  .functional .fp-help em{background:#eee;-webkit-border-radius:.3em;-moz-border-radius:.3em;border-radius:.3em;margin-right:.4em;padding:.3em .6em;color:#333}
@@ -193,46 +267,88 @@
193
  .functional .fp-subtitle p:after{content:'';clear:both}
194
  .functional .fp-subtitle.fp-active{left:0;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
195
  .functional .fp-fullscreen,.functional .fp-unload,.functional .fp-mute,.functional .fp-embed,.functional .fp-close,.functional .fp-play{background-image:url(img/white.png);background-size:37px 300px;}
 
196
  .color-light.functional .fp-fullscreen,.color-light.functional .fp-unload,.color-light.functional .fp-mute,.color-light.functional .fp-embed,.color-light.functional .fp-close,.color-light.functional .fp-play{background-image:url(img/black.png);}
 
197
  @media (-webkit-min-device-pixel-ratio: 2){.color-light.functional .fp-fullscreen,.color-light.functional .fp-unload,.color-light.functional .fp-mute,.color-light.functional .fp-embed,.color-light.functional .fp-close,.color-light.functional .fp-play{background-image:url(img/black@x2.png)}
 
198
  }@media (-webkit-min-device-pixel-ratio: 2){.functional .fp-fullscreen,.functional .fp-unload,.functional .fp-mute,.functional .fp-embed,.functional .fp-close,.functional .fp-play{background-image:url(img/white@x2.png)}
199
- }.is-splash.functional .fp-ui,.is-paused.functional .fp-ui{background:url(img/play_white.png) center no-repeat;background-size:12%;}
 
 
 
200
  @media (-webkit-min-device-pixel-ratio: 2){.is-splash.functional .fp-ui,.is-paused.functional .fp-ui{background:url(img/play_white@x2.png) center no-repeat;background-size:12%}
201
- }.color-light.is-splash.functional .fp-ui,.color-light.is-paused.functional .fp-ui{background-image:url(img/play_black.png)}
202
- @media (-webkit-min-device-pixel-ratio: 2){.color-light.is-splash.functional .fp-ui,.color-light.is-paused.functional .fp-ui{background-image:url(img/play_black@x2.png)}
 
 
 
203
  }.is-fullscreen.functional .fp-ui{background-size:auto}
204
  .is-seeking.functional .fp-ui,.is-loading.functional .fp-ui{background-image:none}
205
  .functional .fp-logo{position:absolute;top:auto;left:15px;bottom:40px;cursor:pointer;display:none;z-index:100;}
206
  .functional .fp-logo img{width:100%}
207
  .is-embedded.functional .fp-logo{display:block}
208
  .fixed-controls.functional .fp-logo{bottom:15px}
209
- .functional .fp-fullscreen,.functional .fp-unload,.functional .fp-close{position:absolute;top:10px;left:auto;right:10px;display:block;width:30px;height:23px;background-position:12px -197px;cursor:pointer}
210
- .functional .fp-unload,.functional .fp-close{background-position:14px -175px;display:none}
 
 
211
  .functional .fp-play{display:none;width:27px;height:30px;background-position:9px -24px;position:absolute;bottom:0;left:0;}
 
212
  .play-button.functional .fp-play{display:block}
213
- .is-paused.functional .fp-play{background-position:9px 7px}
 
214
  .functional.is-ready.is-closeable .fp-unload{display:block}
215
  .functional.is-ready.is-closeable .fp-fullscreen{display:none}
216
- .functional.is-fullscreen .fp-fullscreen{background-position:10px -217px;display:block !important}
 
217
  .functional.is-fullscreen .fp-unload,.functional.is-fullscreen .fp-close{display:none !important}
218
  .functional .fp-timeline{height:3px;position:relative;overflow:hidden;top:10px;height:10px;margin:0 165px 0 55px;}
219
  .no-volume.functional .fp-timeline{margin-right:75px}
220
- .no-mute.functional .fp-timeline{margin-right:55px}
 
221
  .play-button.functional .fp-timeline{margin-left:72px}
 
 
 
 
 
222
  .is-long.functional .fp-timeline{margin:0 195px 0 85px;}
223
  .no-volume.is-long.functional .fp-timeline{margin-right:105px}
224
  .no-mute.is-long.functional .fp-timeline{margin-right:85px}
225
  .play-button.is-long.functional .fp-timeline{margin-left:102px}
 
 
 
 
226
  .aside-time.functional .fp-timeline,.no-time.functional .fp-timeline{margin:0 120px 0 10px}
227
  .aside-time.no-volume.functional .fp-timeline,.no-time.no-volume.functional .fp-timeline{margin-right:30px}
228
  .aside-time.no-mute.functional .fp-timeline,.no-time.no-mute.functional .fp-timeline{margin-right:10px}
229
  .play-button.no-time.functional .fp-timeline,.play-button.aside-time.functional .fp-timeline{margin-left:27px}
 
 
 
 
230
  .functional .fp-buffer,.functional .fp-progress{position:absolute;top:0;left:auto;height:100%;cursor:col-resize}
231
  .functional .fp-buffer{-webkit-transition:width .25s linear;-moz-transition:width .25s linear;transition:width .25s linear}
232
- .functional .fp-volume{position:absolute;top:11px;right:10px}
233
- .functional .fp-mute{width:10px;height:15px;float:left;position:relative;top:-3.5px;left:;cursor:pointer;background-position:-2px -99px;}
 
 
 
 
 
 
 
 
 
 
 
 
 
234
  .no-mute.functional .fp-mute{display:none}
235
  .functional .fp-volumeslider{width:90px;height:8px;cursor:col-resize;float:left;}
 
236
  .no-volume.functional .fp-volumeslider{display:none}
237
  .functional .fp-volumelevel{height:100%}
238
  .functional .fp-time{text-shadow:0 0 1px #000;font-size:12px;font-weight:bold;color:#fff;width:100%;}
@@ -243,15 +359,23 @@
243
  .is-long.functional .fp-time em{width:65px}
244
  .functional .fp-elapsed{left:10px;}
245
  .play-button.functional .fp-elapsed{left:27px}
 
 
246
  .functional .fp-remaining,.functional .fp-duration{right:120px;color:#eee;}
247
  .no-volume.functional .fp-remaining,.no-volume.functional .fp-duration{right:30px}
248
- .no-mute.functional .fp-remaining,.no-mute.functional .fp-duration{right:10px}
 
 
 
 
 
249
  .functional .fp-remaining{display:none}
250
  .functional.color-light .fp-time{color:#222;text-shadow:0 0 1px #fff}
251
  .functional.color-light .fp-remaining,.functional.color-light .fp-duration{color:#666}
252
  .functional.aside-time .fp-time{position:absolute;top:10px;left:10px;bottom:auto !important;width:100px;}
253
  .functional.aside-time .fp-time strong,.functional.aside-time .fp-time em{position:static}
254
- .functional.aside-time .fp-time .fp-elapsed{margin-right:10px}
 
255
  .functional.is-long.aside-time .fp-time{width:130px}
256
  .functional.is-splash,.functional.is-poster{cursor:pointer;}
257
  .functional.is-splash .fp-controls,.functional.is-poster .fp-controls,.functional.is-splash .fp-fullscreen,.functional.is-poster .fp-fullscreen,.functional.is-splash .fp-unload,.functional.is-poster .fp-unload,.functional.is-splash .fp-time,.functional.is-poster .fp-time,.functional.is-splash .fp-embed,.functional.is-poster .fp-embed{display:none !important}
@@ -259,8 +383,12 @@
259
  .functional.is-loading .fp-waiting{display:block}
260
  .functional.is-loading .fp-controls,.functional.is-loading .fp-time{display:none}
261
  .functional.is-loading .fp-ui{background-position:-9999em}
 
262
  .functional.is-seeking .fp-waiting{display:block}
263
- .functional.is-fullscreen{position:fixed !important;top:0 !important;left:0 !important;border:0 !important;margin:0 !important;width:100% !important;height:100% !important;max-width:100% !important;z-index:99999 !important;-webkit-box-shadow:0 !important;-moz-box-shadow:0 !important;box-shadow:0 !important;background-image:none !important;background-color:#333}
 
 
 
264
  .functional.is-error{border:1px solid #909090;background:#fdfdfd !important;}
265
  .functional.is-error h2{font-weight:bold;font-size:large;margin-top:10%}
266
  .functional.is-error .fp-message{display:block}
@@ -278,18 +406,35 @@
278
  .functional.fixed-controls .fp-time em{bottom:-20px;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);}
279
  .is-fullscreen.functional.fixed-controls .fp-time em{bottom:10px}
280
  .functional.is-disabled .fp-progress{background-color:#999}
281
- .functional .fp-embed{position:absolute;top:10px;left:10px;display:block;width:25px;height:20px;background-position:3px -237px}
 
 
 
 
282
  .functional .fp-embed-code{position:absolute;display:none;top:10px;left:40px;background-color:#333;padding:3px 5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 0 3px #ccc;-moz-box-shadow:0 0 3px #ccc;box-shadow:0 0 3px #ccc;font-size:12px;}
283
  .functional .fp-embed-code:before{content:'';width:0;height:0;position:absolute;top:2px;left:-10px;border:5px solid transparent;border-right-color:#333}
 
 
284
  .functional .fp-embed-code textarea{width:400px;height:16px;font-family:monaco,"courier new",verdana;color:#777;white-space:nowrap;resize:none;overflow:hidden;border:0;outline:0;background-color:transparent;color:#ccc}
285
  .functional .fp-embed-code label{display:block;color:#999}
286
  .functional.is-embedding .fp-embed,.functional.is-embedding .fp-embed-code{display:block;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
287
- .functional.aside-time .fp-embed{left:100px}
288
- .functional.aside-time .fp-embed-code{left:130px}
 
 
289
  .functional.aside-time.is-embedding .fp-time{opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
290
- .functional.is-long.aside-time .fp-embed{left:130px}
291
- .functional.no-time .fp-embed{left:10px !important}
292
- @-moz-keyframes pulse{0%{opacity:0}
 
 
 
 
 
 
 
 
 
293
  100%{opacity:1}
294
  }@-webkit-keyframes pulse{0%{opacity:0}
295
  100%{opacity:1}
@@ -303,6 +448,7 @@
303
  .functional .fp-timeline{background-color:#555}
304
  .functional .fp-buffer{background-color:#eee}
305
  .functional .fp-progress{background-color:#4da5d8}
 
306
  .functional .fp-volumelevel{background-color:#fff}
307
  .functional .fp-volumeslider{background-color:#555}
308
  .functional .fp-timeline,.functional .fp-volumeslider{border:1px inset;border-color:rgba(0,0,0,0.2) rgba(17,17,17,0.05)}
@@ -312,9 +458,11 @@
312
  .functional.color-light .fp-timeline,.functional.color-light .fp-volumeslider{border-color:#eee #ccc}
313
  .functional.color-light .fp-timeline,.functional.color-light .fp-volumeslider{background-color:#ccc;font-size:10px}
314
  .functional.color-alt .fp-progress{background-image:-moz-linear-gradient(#999,#111);background-image:-webkit-gradient(linear,0 0,0 100%,from(#999),to(#111))}
 
315
  .functional.color-alt .fp-timeline,.functional.color-alt .fp-volumeslider{background-color:#111}
316
  .functional.color-alt2 .fp-progress{background-color:#900}
317
- .playful{position:relative;width:100%;text-align:left;background-size:contain;background-repeat:no-repeat;background-position:center center;display:inline-block;}
 
318
  .playful *{font-weight:inherit;font-family:inherit;font-style:inherit;text-decoration:inherit;font-size:100%;padding:0;border:0;margin:0;list-style-type:none}
319
  .playful a:focus{outline:0}
320
  .playful video{width:100%}
@@ -339,7 +487,7 @@
339
  .playful .fp-speed.fp-hilite{opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
340
  .playful .fp-help{position:absolute;top:0;left:-9999em;z-index:100;background-color:#333;background-color:rgba(51,51,51,0.9);width:100%;height:100%;opacity:0;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);-webkit-transition:opacity .2s;-moz-transition:opacity .2s;transition:opacity .2s;text-align:center;}
341
  .is-help.playful .fp-help{left:0;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
342
- .playful .fp-help .fp-help-section{margin:3%}
343
  .playful .fp-help .fp-help-basics{margin-top:6%}
344
  .playful .fp-help p{color:#eee;margin:.5em 0;font-size:14px;line-height:1.5;display:inline-block;margin:1% 2%}
345
  .playful .fp-help em{background:#eee;-webkit-border-radius:.3em;-moz-border-radius:.3em;border-radius:.3em;margin-right:.4em;padding:.3em .6em;color:#333}
@@ -351,46 +499,88 @@
351
  .playful .fp-subtitle p:after{content:'';clear:both}
352
  .playful .fp-subtitle.fp-active{left:0;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
353
  .playful .fp-fullscreen,.playful .fp-unload,.playful .fp-mute,.playful .fp-embed,.playful .fp-close,.playful .fp-play{background-image:url(img/playful_white.png);background-size:37px 300px;}
 
354
  .color-light.playful .fp-fullscreen,.color-light.playful .fp-unload,.color-light.playful .fp-mute,.color-light.playful .fp-embed,.color-light.playful .fp-close,.color-light.playful .fp-play{background-image:url(img/playful_black.png);}
 
355
  @media (-webkit-min-device-pixel-ratio: 2){.color-light.playful .fp-fullscreen,.color-light.playful .fp-unload,.color-light.playful .fp-mute,.color-light.playful .fp-embed,.color-light.playful .fp-close,.color-light.playful .fp-play{background-image:url(img/playful_black@x2.png)}
 
356
  }@media (-webkit-min-device-pixel-ratio: 2){.playful .fp-fullscreen,.playful .fp-unload,.playful .fp-mute,.playful .fp-embed,.playful .fp-close,.playful .fp-play{background-image:url(img/playful_white@x2.png)}
357
- }.is-splash.playful .fp-ui,.is-paused.playful .fp-ui{background:url(img/play_white.png) center no-repeat;background-size:12%;}
 
 
 
358
  @media (-webkit-min-device-pixel-ratio: 2){.is-splash.playful .fp-ui,.is-paused.playful .fp-ui{background:url(img/play_white@x2.png) center no-repeat;background-size:12%}
359
- }.color-light.is-splash.playful .fp-ui,.color-light.is-paused.playful .fp-ui{background-image:url(img/play_black.png)}
360
- @media (-webkit-min-device-pixel-ratio: 2){.color-light.is-splash.playful .fp-ui,.color-light.is-paused.playful .fp-ui{background-image:url(img/play_black@x2.png)}
 
 
 
361
  }.is-fullscreen.playful .fp-ui{background-size:auto}
362
  .is-seeking.playful .fp-ui,.is-loading.playful .fp-ui{background-image:none}
363
  .playful .fp-logo{position:absolute;top:auto;left:15px;bottom:45px;cursor:pointer;display:none;z-index:100;}
364
  .playful .fp-logo img{width:100%}
365
  .is-embedded.playful .fp-logo{display:block}
366
  .fixed-controls.playful .fp-logo{bottom:15px}
367
- .playful .fp-fullscreen,.playful .fp-unload,.playful .fp-close{position:absolute;top:12px;left:auto;right:12px;display:block;width:30px;height:23px;background-position:12px -197px;cursor:pointer}
368
- .playful .fp-unload,.playful .fp-close{background-position:14px -175px;display:none}
 
 
369
  .playful .fp-play{display:none;width:27px;height:35px;background-position:9px -24px;position:absolute;bottom:0;left:0;}
 
370
  .play-button.playful .fp-play{display:block}
371
- .is-paused.playful .fp-play{background-position:9px 7px}
 
372
  .playful.is-ready.is-closeable .fp-unload{display:block}
373
  .playful.is-ready.is-closeable .fp-fullscreen{display:none}
374
- .playful.is-fullscreen .fp-fullscreen{background-position:10px -217px;display:block !important}
 
375
  .playful.is-fullscreen .fp-unload,.playful.is-fullscreen .fp-close{display:none !important}
376
  .playful .fp-timeline{height:3px;position:relative;overflow:hidden;top:12px;height:11px;margin:0 199px 0 59px;}
377
  .no-volume.playful .fp-timeline{margin-right:109px}
378
- .no-mute.playful .fp-timeline{margin-right:59px}
 
379
  .play-button.playful .fp-timeline{margin-left:74px}
 
 
 
 
 
380
  .is-long.playful .fp-timeline{margin:0 229px 0 89px;}
381
  .no-volume.is-long.playful .fp-timeline{margin-right:139px}
382
  .no-mute.is-long.playful .fp-timeline{margin-right:89px}
383
  .play-button.is-long.playful .fp-timeline{margin-left:104px}
 
 
 
 
384
  .aside-time.playful .fp-timeline,.no-time.playful .fp-timeline{margin:0 152px 0 12px}
385
  .aside-time.no-volume.playful .fp-timeline,.no-time.no-volume.playful .fp-timeline{margin-right:62px}
386
  .aside-time.no-mute.playful .fp-timeline,.no-time.no-mute.playful .fp-timeline{margin-right:12px}
387
  .play-button.no-time.playful .fp-timeline,.play-button.aside-time.playful .fp-timeline{margin-left:27px}
 
 
 
 
388
  .playful .fp-buffer,.playful .fp-progress{position:absolute;top:0;left:auto;height:100%;cursor:col-resize}
389
  .playful .fp-buffer{-webkit-transition:width .25s linear;-moz-transition:width .25s linear;transition:width .25s linear}
390
- .playful .fp-volume{position:absolute;top:12px;right:12px}
391
- .playful .fp-mute{width:38px;height:20px;float:left;position:relative;top:-4.5px;left:;cursor:pointer;background-position:-2px -99px;}
 
 
 
 
 
 
 
 
 
 
 
 
 
392
  .no-mute.playful .fp-mute{display:none}
393
  .playful .fp-volumeslider{width:90px;height:11px;cursor:col-resize;float:left;}
 
394
  .no-volume.playful .fp-volumeslider{display:none}
395
  .playful .fp-volumelevel{height:100%}
396
  .playful .fp-time{text-shadow:0 0 1px #000;font-size:12px;font-weight:bold;color:#fff;width:100%;}
@@ -401,15 +591,23 @@
401
  .is-long.playful .fp-time em{width:65px}
402
  .playful .fp-elapsed{left:12px;}
403
  .play-button.playful .fp-elapsed{left:27px}
 
 
404
  .playful .fp-remaining,.playful .fp-duration{right:152px;color:#eee;}
405
  .no-volume.playful .fp-remaining,.no-volume.playful .fp-duration{right:62px}
406
- .no-mute.playful .fp-remaining,.no-mute.playful .fp-duration{right:12px}
 
 
 
 
 
407
  .playful .fp-remaining{display:none}
408
  .playful.color-light .fp-time{color:#222;text-shadow:0 0 1px #fff}
409
  .playful.color-light .fp-remaining,.playful.color-light .fp-duration{color:#666}
410
  .playful.aside-time .fp-time{position:absolute;top:12px;left:12px;bottom:auto !important;width:110px;}
411
  .playful.aside-time .fp-time strong,.playful.aside-time .fp-time em{position:static}
412
- .playful.aside-time .fp-time .fp-elapsed{margin-right:12px}
 
413
  .playful.is-long.aside-time .fp-time{width:130px}
414
  .playful.is-splash,.playful.is-poster{cursor:pointer;}
415
  .playful.is-splash .fp-controls,.playful.is-poster .fp-controls,.playful.is-splash .fp-fullscreen,.playful.is-poster .fp-fullscreen,.playful.is-splash .fp-unload,.playful.is-poster .fp-unload,.playful.is-splash .fp-time,.playful.is-poster .fp-time,.playful.is-splash .fp-embed,.playful.is-poster .fp-embed{display:none !important}
@@ -417,8 +615,12 @@
417
  .playful.is-loading .fp-waiting{display:block}
418
  .playful.is-loading .fp-controls,.playful.is-loading .fp-time{display:none}
419
  .playful.is-loading .fp-ui{background-position:-9999em}
 
420
  .playful.is-seeking .fp-waiting{display:block}
421
- .playful.is-fullscreen{position:fixed !important;top:0 !important;left:0 !important;border:0 !important;margin:0 !important;width:100% !important;height:100% !important;max-width:100% !important;z-index:99999 !important;-webkit-box-shadow:0 !important;-moz-box-shadow:0 !important;box-shadow:0 !important;background-image:none !important;background-color:#333}
 
 
 
422
  .playful.is-error{border:1px solid #909090;background:#fdfdfd !important;}
423
  .playful.is-error h2{font-weight:bold;font-size:large;margin-top:10%}
424
  .playful.is-error .fp-message{display:block}
@@ -436,18 +638,35 @@
436
  .playful.fixed-controls .fp-time em{bottom:-23px;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);}
437
  .is-fullscreen.playful.fixed-controls .fp-time em{bottom:12px}
438
  .playful.is-disabled .fp-progress{background-color:#999}
439
- .playful .fp-embed{position:absolute;top:12px;left:12px;display:block;width:25px;height:20px;background-position:3px -237px}
 
 
 
 
440
  .playful .fp-embed-code{position:absolute;display:none;top:10px;left:40px;background-color:#333;padding:3px 5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 0 3px #ccc;-moz-box-shadow:0 0 3px #ccc;box-shadow:0 0 3px #ccc;font-size:12px;}
441
  .playful .fp-embed-code:before{content:'';width:0;height:0;position:absolute;top:2px;left:-10px;border:5px solid transparent;border-right-color:#333}
 
 
442
  .playful .fp-embed-code textarea{width:400px;height:16px;font-family:monaco,"courier new",verdana;color:#777;white-space:nowrap;resize:none;overflow:hidden;border:0;outline:0;background-color:transparent;color:#ccc}
443
  .playful .fp-embed-code label{display:block;color:#999}
444
  .playful.is-embedding .fp-embed,.playful.is-embedding .fp-embed-code{display:block;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
445
- .playful.aside-time .fp-embed{left:110px}
446
- .playful.aside-time .fp-embed-code{left:140px}
 
 
447
  .playful.aside-time.is-embedding .fp-time{opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
448
- .playful.is-long.aside-time .fp-embed{left:130px}
449
- .playful.no-time .fp-embed{left:12px !important}
450
- @-moz-keyframes pulse{0%{opacity:0}
 
 
 
 
 
 
 
 
 
451
  100%{opacity:1}
452
  }@-webkit-keyframes pulse{0%{opacity:0}
453
  100%{opacity:1}
@@ -461,15 +680,21 @@
461
  .playful .fp-timeline,.playful .fp-volumeslider{background-color:#555;background-image:-moz-linear-gradient(rgba(255,255,255,0.01),rgba(255,255,255,0.3));background-image:-webkit-gradient(linear,0 0,0 100%,from(rgba(255,255,255,0.01)),to(rgba(255,255,255,0.3)))}
462
  .playful .fp-buffer{background-color:#eee}
463
  .playful .fp-progress{background-color:#008000}
 
464
  .playful .fp-volumelevel{background-color:#fff}
465
  .playful .fp-mute{display:block;width:38px;height:20px;background-position:0 -79px;}
 
466
  .is-muted.playful .fp-mute{background-position:0 -109px;opacity:.85;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=85)}
467
  .playful .fp-play{background-position:9px -20px;}
468
- .is-paused.playful .fp-play{background-position:9px 11px}
 
 
469
  .playful .fp-timeline,.playful .fp-volumeslider{border:1px inset;border-color:rgba(0,0,0,0.3) rgba(17,17,17,0.05)}
470
  .playful .fp-controls,.playful .fp-progress{background-image:-moz-linear-gradient(rgba(255,255,255,0.3),rgba(255,255,255,0.01));background-image:-webkit-gradient(linear,0 0,0 100%,from(rgba(255,255,255,0.3)),to(rgba(255,255,255,0.01)))}
471
  .playful .fp-timeline,.playful .fp-progress,.playful .fp-buffer,.playful .fp-volumeslider,.playful .fp-volumelevel{-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}
472
  .playful.color-light .fp-controls{background-color:#eee;background-image:-moz-linear-gradient(rgba(0,0,0,0.01),rgba(0,0,0,0.3));background-image:-webkit-gradient(linear,0 0,0 100%,from(rgba(0,0,0,0.01)),to(rgba(0,0,0,0.3)))}
473
  .playful.color-light .fp-timeline,.playful.color-light .fp-volumeslider{border-color:#eee #ccc}
474
  .playful.color-alt .fp-progress,.playful.color-alt .fp-volumelevel{background-color:#111}
 
475
  .playful.color-alt2 .fp-progress,.playful.color-alt2 .fp-volumelevel{background-color:#900}
 
1
+ .minimalist{position:relative;width:100%;background-size:contain;background-repeat:no-repeat;background-position:center center;display:inline-block;}
2
  .minimalist *{font-weight:inherit;font-family:inherit;font-style:inherit;text-decoration:inherit;font-size:100%;padding:0;border:0;margin:0;list-style-type:none}
3
  .minimalist a:focus{outline:0}
4
  .minimalist video{width:100%}
23
  .minimalist .fp-speed.fp-hilite{opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
24
  .minimalist .fp-help{position:absolute;top:0;left:-9999em;z-index:100;background-color:#333;background-color:rgba(51,51,51,0.9);width:100%;height:100%;opacity:0;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);-webkit-transition:opacity .2s;-moz-transition:opacity .2s;transition:opacity .2s;text-align:center;}
25
  .is-help.minimalist .fp-help{left:0;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
26
+ .minimalist .fp-help .fp-help-section{margin:3%;direction:ltr}
27
  .minimalist .fp-help .fp-help-basics{margin-top:6%}
28
  .minimalist .fp-help p{color:#eee;margin:.5em 0;font-size:14px;line-height:1.5;display:inline-block;margin:1% 2%}
29
  .minimalist .fp-help em{background:#eee;-webkit-border-radius:.3em;-moz-border-radius:.3em;border-radius:.3em;margin-right:.4em;padding:.3em .6em;color:#333}
35
  .minimalist .fp-subtitle p:after{content:'';clear:both}
36
  .minimalist .fp-subtitle.fp-active{left:0;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
37
  .minimalist .fp-fullscreen,.minimalist .fp-unload,.minimalist .fp-mute,.minimalist .fp-embed,.minimalist .fp-close,.minimalist .fp-play{background-image:url(img/white.png);background-size:37px 300px;}
38
+ .is-rtl.minimalist .fp-fullscreen,.is-rtl.minimalist .fp-unload,.is-rtl.minimalist .fp-mute,.is-rtl.minimalist .fp-embed,.is-rtl.minimalist .fp-close,.is-rtl.minimalist .fp-play{background-image:url(img/white_rtl.png)}
39
  .color-light.minimalist .fp-fullscreen,.color-light.minimalist .fp-unload,.color-light.minimalist .fp-mute,.color-light.minimalist .fp-embed,.color-light.minimalist .fp-close,.color-light.minimalist .fp-play{background-image:url(img/black.png);}
40
+ .is-rtl.color-light.minimalist .fp-fullscreen,.is-rtl.color-light.minimalist .fp-unload,.is-rtl.color-light.minimalist .fp-mute,.is-rtl.color-light.minimalist .fp-embed,.is-rtl.color-light.minimalist .fp-close,.is-rtl.color-light.minimalist .fp-play{background-image:url(img/black_rtl.png)}
41
  @media (-webkit-min-device-pixel-ratio: 2){.color-light.minimalist .fp-fullscreen,.color-light.minimalist .fp-unload,.color-light.minimalist .fp-mute,.color-light.minimalist .fp-embed,.color-light.minimalist .fp-close,.color-light.minimalist .fp-play{background-image:url(img/black@x2.png)}
42
+ .is-rtl.color-light.minimalist .fp-fullscreen,.is-rtl.color-light.minimalist .fp-unload,.is-rtl.color-light.minimalist .fp-mute,.is-rtl.color-light.minimalist .fp-embed,.is-rtl.color-light.minimalist .fp-close,.is-rtl.color-light.minimalist .fp-play{background-image:url(img/black_rtl@x2.png)}
43
  }@media (-webkit-min-device-pixel-ratio: 2){.minimalist .fp-fullscreen,.minimalist .fp-unload,.minimalist .fp-mute,.minimalist .fp-embed,.minimalist .fp-close,.minimalist .fp-play{background-image:url(img/white@x2.png)}
44
+ .is-rtl.minimalist .fp-fullscreen,.is-rtl.minimalist .fp-unload,.is-rtl.minimalist .fp-mute,.is-rtl.minimalist .fp-embed,.is-rtl.minimalist .fp-close,.is-rtl.minimalist .fp-play{background-image:url(img/white_rtl@x2.png)}
45
+ }.minimalist .fp-flash-disabled{background:#333;width:390px;margin:0 auto;position:absolute;bottom:0;color:#fff}
46
+ .is-splash.minimalist .fp-ui,.is-paused.minimalist .fp-ui{background:url(img/play_white.png) center no-repeat;background-size:12%;}
47
+ .is-rtl.is-splash.minimalist .fp-ui,.is-rtl.is-paused.minimalist .fp-ui{background:url(img/play_white_rtl.png) center no-repeat;background-size:12%}
48
  @media (-webkit-min-device-pixel-ratio: 2){.is-splash.minimalist .fp-ui,.is-paused.minimalist .fp-ui{background:url(img/play_white@x2.png) center no-repeat;background-size:12%}
49
+ .is-rtl.is-splash.minimalist .fp-ui,.is-rtl.is-paused.minimalist .fp-ui{background:url(img/play_white_rtl@x2.png) center no-repeat;background-size:12%}
50
+ }.color-light.is-splash.minimalist .fp-ui,.color-light.is-paused.minimalist .fp-ui{background-image:url(img/play_black.png);}
51
+ .is-rtl.color-light.is-splash.minimalist .fp-ui,.is-rtl.color-light.is-paused.minimalist .fp-ui{background-image:url(img/play_black_rtl.png)}
52
+ @media (-webkit-min-device-pixel-ratio: 2){.color-light.is-splash.minimalist .fp-ui,.color-light.is-paused.minimalist .fp-ui{background-image:url(img/play_black@x2.png);}
53
+ .is-rtl.color-light.is-splash.minimalist .fp-ui,.is-rtl.color-light.is-paused.minimalist .fp-ui{background-image:url(img/play_black_rtl@x2.png)}
54
  }.is-fullscreen.minimalist .fp-ui{background-size:auto}
55
  .is-seeking.minimalist .fp-ui,.is-loading.minimalist .fp-ui{background-image:none}
56
  .minimalist .fp-logo{position:absolute;top:auto;left:15px;bottom:30px;cursor:pointer;display:none;z-index:100;}
57
  .minimalist .fp-logo img{width:100%}
58
  .is-embedded.minimalist .fp-logo{display:block}
59
  .fixed-controls.minimalist .fp-logo{bottom:15px}
60
+ .minimalist .fp-fullscreen,.minimalist .fp-unload,.minimalist .fp-close{position:absolute;top:5px;left:auto;right:5px;display:block;width:30px;height:23px;background-position:12px -197px;cursor:pointer;}
61
+ .is-rtl.minimalist .fp-fullscreen,.is-rtl.minimalist .fp-unload,.is-rtl.minimalist .fp-close{right:auto;left:5px;background-position:18px -197px}
62
+ .minimalist .fp-unload,.minimalist .fp-close{background-position:14px -175px;display:none;}
63
+ .is-rtl.minimalist .fp-unload,.is-rtl.minimalist .fp-close{background-position:14px -175px}
64
  .minimalist .fp-play{display:none;width:27px;height:20px;background-position:9px -24px;position:absolute;bottom:0;left:0;}
65
+ .is-rtl.minimalist .fp-play{background-position:18px -24px;left:auto;right:0}
66
  .play-button.minimalist .fp-play{display:block}
67
+ .is-paused.minimalist .fp-play{background-position:9px 7px;}
68
+ .is-rtl.is-paused.minimalist .fp-play{background-position:18px 7px}
69
  .minimalist.is-ready.is-closeable .fp-unload{display:block}
70
  .minimalist.is-ready.is-closeable .fp-fullscreen{display:none}
71
+ .minimalist.is-fullscreen .fp-fullscreen{background-position:10px -217px;display:block !important;}
72
+ .is-rtl.minimalist.is-fullscreen .fp-fullscreen{background-position:21px -217px}
73
  .minimalist.is-fullscreen .fp-unload,.minimalist.is-fullscreen .fp-close{display:none !important}
74
  .minimalist .fp-timeline{height:3px;position:relative;overflow:hidden;top:5px;height:10px;margin:0 150px 0 45px;}
75
  .no-volume.minimalist .fp-timeline{margin-right:60px}
76
+ .no-mute.minimalist .fp-timeline{margin-right:140px}
77
+ .no-mute.no-volume.minimalist .fp-timeline{margin-right:45px}
78
  .play-button.minimalist .fp-timeline{margin-left:67px}
79
+ .is-rtl.minimalist .fp-timeline{margin:0 45px 0 150px;}
80
+ .no-volume.is-rtl.minimalist .fp-timeline{margin-left:60px}
81
+ .no-mute.is-rtl.minimalist .fp-timeline{margin-left:140px}
82
+ .no-mute.no-volume.is-rtl.minimalist .fp-timeline{margin-left:45px}
83
+ .play-button.is-rtl.minimalist .fp-timeline{margin-right:67px}
84
  .is-long.minimalist .fp-timeline{margin:0 180px 0 75px;}
85
  .no-volume.is-long.minimalist .fp-timeline{margin-right:90px}
86
  .no-mute.is-long.minimalist .fp-timeline{margin-right:75px}
87
  .play-button.is-long.minimalist .fp-timeline{margin-left:97px}
88
+ .is-rtl.is-long.minimalist .fp-timeline{margin:75px 0 180px 0;}
89
+ .no-volume.is-rtl.is-long.minimalist .fp-timeline{margin-left:90px}
90
+ .no-mute.is-rtl.is-long.minimalist .fp-timeline{margin-left:75px}
91
+ .play-button.is-rtl.is-long.minimalist .fp-timeline{margin-left:97px}
92
  .aside-time.minimalist .fp-timeline,.no-time.minimalist .fp-timeline{margin:0 110px 0 5px}
93
  .aside-time.no-volume.minimalist .fp-timeline,.no-time.no-volume.minimalist .fp-timeline{margin-right:20px}
94
  .aside-time.no-mute.minimalist .fp-timeline,.no-time.no-mute.minimalist .fp-timeline{margin-right:5px}
95
  .play-button.no-time.minimalist .fp-timeline,.play-button.aside-time.minimalist .fp-timeline{margin-left:27px}
96
+ .is-rtl.aside-time.minimalist .fp-timeline,.is-rtl.no-time.minimalist .fp-timeline{margin:0 5px 0 110px}
97
+ .is-rtl.aside-time.no-volume.minimalist .fp-timeline,.is-rtl.no-time.no-volume.minimalist .fp-timeline{margin-left:20px}
98
+ .is-rtl.aside-time.no-mute.minimalist .fp-timeline,.is-rtl.no-time.no-mute.minimalist .fp-timeline{margin-left:5px}
99
+ .is-rtl.play-button.no-time.minimalist .fp-timeline,.is-rtl.play-button.aside-time.minimalist .fp-timeline{margin-right:27px}
100
  .minimalist .fp-buffer,.minimalist .fp-progress{position:absolute;top:0;left:auto;height:100%;cursor:col-resize}
101
  .minimalist .fp-buffer{-webkit-transition:width .25s linear;-moz-transition:width .25s linear;transition:width .25s linear}
102
+ .minimalist .fp-timeline.no-animation .fp-buffer{-webkit-transition:none;-moz-transition:none;transition:none}
103
+ .minimalist.is-touch .fp-timeline{overflow:visible}
104
+ .minimalist.is-touch .fp-progress{-webkit-transition:width .2s linear;-moz-transition:width .2s linear;transition:width .2s linear}
105
+ .minimalist.is-touch .fp-timeline.is-dragging .fp-progress{-webkit-transition:right .1s linear,border .1s linear,top .1s linear,left .1s linear;-moz-transition:right .1s linear,border .1s linear,top .1s linear,left .1s linear;transition:right .1s linear,border .1s linear,top .1s linear,left .1s linear}
106
+ .minimalist.is-touch.is-mouseover .fp-progress:after,.minimalist.is-touch.is-mouseover .fp-progress:before{content:'';display:block;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;position:absolute;right:-5px}
107
+ .minimalist.is-touch.is-rtl.is-mouseover .fp-progress:after,.minimalist.is-touch.is-rtl.is-mouseover .fp-progress:before{right:auto;left:-5px}
108
+ .minimalist.is-touch.is-rtl.is-mouseover .fp-progress:after{left:-10px;-webkit-box-shadow:-1px 0 4px rgba(0,0,0,0.5);-moz-box-shadow:-1px 0 4px rgba(0,0,0,0.5);box-shadow:-1px 0 4px rgba(0,0,0,0.5)}
109
+ .minimalist.is-touch.is-mouseover .fp-progress:before{width:10px;height:10px}
110
+ .minimalist.is-touch.is-mouseover .fp-progress:after{height:10px;width:10px;top:-5px;right:-10px;border:5px solid rgba(255,255,255,0.65);-webkit-box-shadow:1px 0 4px rgba(0,0,0,0.5);-moz-box-shadow:1px 0 4px rgba(0,0,0,0.5);box-shadow:1px 0 4px rgba(0,0,0,0.5)}
111
+ .minimalist.is-touch.is-mouseover .fp-timeline.is-dragging .fp-progress:after{border:10px solid #fff;-webkit-border-radius:20px;-moz-border-radius:20px;border-radius:20px;-webkit-transition:inherit;-moz-transition:inherit;transition:inherit;top:-10px;right:-15px}
112
+ .minimalist.is-touch.is-rtl.is-mouseover .fp-timeline.is-dragging .fp-progress:after{left:-15px;right:auto;border:10px solid #fff}
113
+ .minimalist .fp-volume{position:absolute;top:7.5px;right:5px;}
114
+ .is-rtl.minimalist .fp-volume{right:auto;left:5px}
115
+ .minimalist .fp-mute{position:relative;width:10px;height:15px;float:left;top:-5px;cursor:pointer;background-position:-2px -99px;}
116
+ .is-rtl.minimalist .fp-mute{float:right;background-position:-25px -99px}
117
  .no-mute.minimalist .fp-mute{display:none}
118
  .minimalist .fp-volumeslider{width:90px;height:5px;cursor:col-resize;float:left;}
119
+ .is-rtl.minimalist .fp-volumeslider{float:right}
120
  .no-volume.minimalist .fp-volumeslider{display:none}
121
  .minimalist .fp-volumelevel{height:100%}
122
  .minimalist .fp-time{text-shadow:0 0 1px #000;font-size:12px;font-weight:bold;color:#fff;width:100%;}
127
  .is-long.minimalist .fp-time em{width:65px}
128
  .minimalist .fp-elapsed{left:5px;}
129
  .play-button.minimalist .fp-elapsed{left:27px}
130
+ .is-rtl.minimalist .fp-elapsed{left:auto;right:5px;}
131
+ .play-button.is-rtl.minimalist .fp-elapsed{right:27px}
132
  .minimalist .fp-remaining,.minimalist .fp-duration{right:110px;color:#eee;}
133
  .no-volume.minimalist .fp-remaining,.no-volume.minimalist .fp-duration{right:20px}
134
+ .no-mute.minimalist .fp-remaining,.no-mute.minimalist .fp-duration{right:100px}
135
+ .no-mute.no-volume.minimalist .fp-remaining,.no-mute.no-volume.minimalist .fp-duration{right:5px}
136
+ .is-rtl.minimalist .fp-remaining,.is-rtl.minimalist .fp-duration{right:auto;left:110px;}
137
+ .no-volume.is-rtl.minimalist .fp-remaining,.no-volume.is-rtl.minimalist .fp-duration{left:20px}
138
+ .no-mute.is-rtl.minimalist .fp-remaining,.no-mute.is-rtl.minimalist .fp-duration{left:100px}
139
+ .no-mute.no-volume.is-rtl.minimalist .fp-remaining,.no-mute.no-volume.is-rtl.minimalist .fp-duration{left:5px}
140
  .minimalist .fp-remaining{display:none}
141
  .minimalist.color-light .fp-time{color:#222;text-shadow:0 0 1px #fff}
142
  .minimalist.color-light .fp-remaining,.minimalist.color-light .fp-duration{color:#666}
143
  .minimalist.aside-time .fp-time{position:absolute;top:5px;left:5px;bottom:auto !important;width:85px;}
144
  .minimalist.aside-time .fp-time strong,.minimalist.aside-time .fp-time em{position:static}
145
+ .minimalist.aside-time .fp-time .fp-elapsed{margin-right:5px;}
146
+ .is-rtl.minimalist.aside-time .fp-time .fp-elapsed{margin-right:auto;margin-left:5px}
147
  .minimalist.is-long.aside-time .fp-time{width:130px}
148
  .minimalist.is-splash,.minimalist.is-poster{cursor:pointer;}
149
  .minimalist.is-splash .fp-controls,.minimalist.is-poster .fp-controls,.minimalist.is-splash .fp-fullscreen,.minimalist.is-poster .fp-fullscreen,.minimalist.is-splash .fp-unload,.minimalist.is-poster .fp-unload,.minimalist.is-splash .fp-time,.minimalist.is-poster .fp-time,.minimalist.is-splash .fp-embed,.minimalist.is-poster .fp-embed{display:none !important}
151
  .minimalist.is-loading .fp-waiting{display:block}
152
  .minimalist.is-loading .fp-controls,.minimalist.is-loading .fp-time{display:none}
153
  .minimalist.is-loading .fp-ui{background-position:-9999em}
154
+ .minimalist.is-loading video.fp-engine{position:absolute;top:-9999em}
155
  .minimalist.is-seeking .fp-waiting{display:block}
156
+ .minimalist.is-playing{background-image:none !important;background-color:#333;}
157
+ .minimalist.is-playing.hls-fix.is-finished .fp-engine{position:absolute;top:-9999em}
158
+ .minimalist.is-fullscreen{position:fixed !important;top:0 !important;left:0 !important;border:0 !important;margin:0 !important;width:100% !important;height:100% !important;max-width:100% !important;z-index:99999 !important;-webkit-box-shadow:0 !important;-moz-box-shadow:0 !important;box-shadow:0 !important;background-image:none !important;background-color:#333;}
159
+ .is-rtl.minimalist.is-fullscreen{left:auto !important;right:0 !important}
160
  .minimalist.is-error{border:1px solid #909090;background:#fdfdfd !important;}
161
  .minimalist.is-error h2{font-weight:bold;font-size:large;margin-top:10%}
162
  .minimalist.is-error .fp-message{display:block}
174
  .minimalist.fixed-controls .fp-time em{bottom:-15px;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);}
175
  .is-fullscreen.minimalist.fixed-controls .fp-time em{bottom:5px}
176
  .minimalist.is-disabled .fp-progress{background-color:#999}
177
+ .minimalist.is-flash-disabled{background-color:#333;}
178
+ .minimalist.is-flash-disabled object.fp-engine{z-index:100}
179
+ .minimalist.is-flash-disabled .fp-flash-disabled{display:block;z-index:101}
180
+ .minimalist .fp-embed{position:absolute;top:5px;left:5px;display:block;width:25px;height:20px;background-position:3px -237px;}
181
+ .is-rtl.minimalist .fp-embed{background-position:22px -237px;left:auto;right:5px}
182
  .minimalist .fp-embed-code{position:absolute;display:none;top:10px;left:40px;background-color:#333;padding:3px 5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 0 3px #ccc;-moz-box-shadow:0 0 3px #ccc;box-shadow:0 0 3px #ccc;font-size:12px;}
183
  .minimalist .fp-embed-code:before{content:'';width:0;height:0;position:absolute;top:2px;left:-10px;border:5px solid transparent;border-right-color:#333}
184
+ .is-rtl.minimalist .fp-embed-code{left:auto;right:40px;}
185
+ .is-rtl.minimalist .fp-embed-code:before{left:auto;right:-10px;border-right-color:transparent;border-left-color:#333}
186
  .minimalist .fp-embed-code textarea{width:400px;height:16px;font-family:monaco,"courier new",verdana;color:#777;white-space:nowrap;resize:none;overflow:hidden;border:0;outline:0;background-color:transparent;color:#ccc}
187
  .minimalist .fp-embed-code label{display:block;color:#999}
188
  .minimalist.is-embedding .fp-embed,.minimalist.is-embedding .fp-embed-code{display:block;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
189
+ .minimalist.aside-time .fp-embed{left:85px;}
190
+ .is-rtl.minimalist.aside-time .fp-embed{left:auto;right:85px}
191
+ .minimalist.aside-time .fp-embed-code{left:115px;}
192
+ .is-rtl.minimalist.aside-time .fp-embed-code{left:auto;right:115px}
193
  .minimalist.aside-time.is-embedding .fp-time{opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
194
+ .minimalist.is-long.aside-time .fp-embed{left:130px;}
195
+ .is-rtl.minimalist.is-long.aside-time .fp-embed{left:auto;right:130px}
196
+ .minimalist.no-time .fp-embed{left:5px !important;}
197
+ .is-rtl.minimalist.no-time .fp-embed{left:auto;right:5px !important}
198
+ .minimalist.is-live .fp-timeline,.minimalist.is-live .fp-duration,.minimalist.is-live .fp-remaining{display:none}
199
+ .minimalist .fp-context-menu{position:absolute;display:none;z-index:1001;background-color:#fff;padding:10px;border:1px solid #aaa;-webkit-box-shadow:0 0 4px #888;-moz-box-shadow:0 0 4px #888;box-shadow:0 0 4px #888;width:170px;}
200
+ .minimalist .fp-context-menu li{text-align:center;padding:10px;color:#444;margin:0 -10px 0 -10px;}
201
+ .minimalist .fp-context-menu li a{color:#00a7c8;font-size:110%}
202
+ .minimalist .fp-context-menu li:hover:not(.copyright){background-color:#eee}
203
+ .minimalist .fp-context-menu li.copyright{margin:0;padding-left:110px;background-image:url("img/flowplayer.png");background-repeat:no-repeat;background-size:100px 20px;background-position:5px 5px;border-bottom:1px solid #bbb;}
204
+ @media (-webkit-min-device-pixel-ratio: 2){.minimalist .fp-context-menu li.copyright{background-image:url("img/flowplayer@2x.png")}
205
+ }@-moz-keyframes pulse{0%{opacity:0}
206
  100%{opacity:1}
207
  }@-webkit-keyframes pulse{0%{opacity:0}
208
  100%{opacity:1}
220
  .minimalist .fp-volumeslider{background-color:#000}
221
  .minimalist .fp-volumelevel{background-color:#fff}
222
  .minimalist .fp-play{height:24px}
223
+ .minimalist.is-touch.is-mouseover .fp-progress:before{background-color:#00a7c8}
224
  .minimalist.color-light .fp-controls{background-color:rgba(255,255,255,0.6)}
225
  .minimalist.color-light.fixed-controls .fp-controls{background-color:#fff}
226
  .minimalist.color-light .fp-volumeslider{background-color:#ddd}
227
  .minimalist.color-light .fp-volumelevel{background-color:#222}
228
  .minimalist.color-alt .fp-progress{background-color:#fff}
229
+ .minimalist.color-alt.is-touch.is-mouseover .fp-progress:before{background-color:#fff}
230
  .minimalist.color-alt .fp-buffer{background-color:#999}
231
  .minimalist.color-alt2 .fp-progress{background-color:#900}
232
+ .minimalist.color-alt2.is-touch.is-mouseover .fp-progress:before{background-color:#900}
233
+ .functional{position:relative;width:100%;background-size:contain;background-repeat:no-repeat;background-position:center center;display:inline-block;}
234
  .functional *{font-weight:inherit;font-family:inherit;font-style:inherit;text-decoration:inherit;font-size:100%;padding:0;border:0;margin:0;list-style-type:none}
235
  .functional a:focus{outline:0}
236
  .functional video{width:100%}
255
  .functional .fp-speed.fp-hilite{opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
256
  .functional .fp-help{position:absolute;top:0;left:-9999em;z-index:100;background-color:#333;background-color:rgba(51,51,51,0.9);width:100%;height:100%;opacity:0;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);-webkit-transition:opacity .2s;-moz-transition:opacity .2s;transition:opacity .2s;text-align:center;}
257
  .is-help.functional .fp-help{left:0;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
258
+ .functional .fp-help .fp-help-section{margin:3%;direction:ltr}
259
  .functional .fp-help .fp-help-basics{margin-top:6%}
260
  .functional .fp-help p{color:#eee;margin:.5em 0;font-size:14px;line-height:1.5;display:inline-block;margin:1% 2%}
261
  .functional .fp-help em{background:#eee;-webkit-border-radius:.3em;-moz-border-radius:.3em;border-radius:.3em;margin-right:.4em;padding:.3em .6em;color:#333}
267
  .functional .fp-subtitle p:after{content:'';clear:both}
268
  .functional .fp-subtitle.fp-active{left:0;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
269
  .functional .fp-fullscreen,.functional .fp-unload,.functional .fp-mute,.functional .fp-embed,.functional .fp-close,.functional .fp-play{background-image:url(img/white.png);background-size:37px 300px;}
270
+ .is-rtl.functional .fp-fullscreen,.is-rtl.functional .fp-unload,.is-rtl.functional .fp-mute,.is-rtl.functional .fp-embed,.is-rtl.functional .fp-close,.is-rtl.functional .fp-play{background-image:url(img/white_rtl.png)}
271
  .color-light.functional .fp-fullscreen,.color-light.functional .fp-unload,.color-light.functional .fp-mute,.color-light.functional .fp-embed,.color-light.functional .fp-close,.color-light.functional .fp-play{background-image:url(img/black.png);}
272
+ .is-rtl.color-light.functional .fp-fullscreen,.is-rtl.color-light.functional .fp-unload,.is-rtl.color-light.functional .fp-mute,.is-rtl.color-light.functional .fp-embed,.is-rtl.color-light.functional .fp-close,.is-rtl.color-light.functional .fp-play{background-image:url(img/black_rtl.png)}
273
  @media (-webkit-min-device-pixel-ratio: 2){.color-light.functional .fp-fullscreen,.color-light.functional .fp-unload,.color-light.functional .fp-mute,.color-light.functional .fp-embed,.color-light.functional .fp-close,.color-light.functional .fp-play{background-image:url(img/black@x2.png)}
274
+ .is-rtl.color-light.functional .fp-fullscreen,.is-rtl.color-light.functional .fp-unload,.is-rtl.color-light.functional .fp-mute,.is-rtl.color-light.functional .fp-embed,.is-rtl.color-light.functional .fp-close,.is-rtl.color-light.functional .fp-play{background-image:url(img/black_rtl@x2.png)}
275
  }@media (-webkit-min-device-pixel-ratio: 2){.functional .fp-fullscreen,.functional .fp-unload,.functional .fp-mute,.functional .fp-embed,.functional .fp-close,.functional .fp-play{background-image:url(img/white@x2.png)}
276
+ .is-rtl.functional .fp-fullscreen,.is-rtl.functional .fp-unload,.is-rtl.functional .fp-mute,.is-rtl.functional .fp-embed,.is-rtl.functional .fp-close,.is-rtl.functional .fp-play{background-image:url(img/white_rtl@x2.png)}
277
+ }.functional .fp-flash-disabled{background:#333;width:390px;margin:0 auto;position:absolute;bottom:0;color:#fff}
278
+ .is-splash.functional .fp-ui,.is-paused.functional .fp-ui{background:url(img/play_white.png) center no-repeat;background-size:12%;}
279
+ .is-rtl.is-splash.functional .fp-ui,.is-rtl.is-paused.functional .fp-ui{background:url(img/play_white_rtl.png) center no-repeat;background-size:12%}
280
  @media (-webkit-min-device-pixel-ratio: 2){.is-splash.functional .fp-ui,.is-paused.functional .fp-ui{background:url(img/play_white@x2.png) center no-repeat;background-size:12%}
281
+ .is-rtl.is-splash.functional .fp-ui,.is-rtl.is-paused.functional .fp-ui{background:url(img/play_white_rtl@x2.png) center no-repeat;background-size:12%}
282
+ }.color-light.is-splash.functional .fp-ui,.color-light.is-paused.functional .fp-ui{background-image:url(img/play_black.png);}
283
+ .is-rtl.color-light.is-splash.functional .fp-ui,.is-rtl.color-light.is-paused.functional .fp-ui{background-image:url(img/play_black_rtl.png)}
284
+ @media (-webkit-min-device-pixel-ratio: 2){.color-light.is-splash.functional .fp-ui,.color-light.is-paused.functional .fp-ui{background-image:url(img/play_black@x2.png);}
285
+ .is-rtl.color-light.is-splash.functional .fp-ui,.is-rtl.color-light.is-paused.functional .fp-ui{background-image:url(img/play_black_rtl@x2.png)}
286
  }.is-fullscreen.functional .fp-ui{background-size:auto}
287
  .is-seeking.functional .fp-ui,.is-loading.functional .fp-ui{background-image:none}
288
  .functional .fp-logo{position:absolute;top:auto;left:15px;bottom:40px;cursor:pointer;display:none;z-index:100;}
289
  .functional .fp-logo img{width:100%}
290
  .is-embedded.functional .fp-logo{display:block}
291
  .fixed-controls.functional .fp-logo{bottom:15px}
292
+ .functional .fp-fullscreen,.functional .fp-unload,.functional .fp-close{position:absolute;top:10px;left:auto;right:10px;display:block;width:30px;height:23px;background-position:12px -197px;cursor:pointer;}
293
+ .is-rtl.functional .fp-fullscreen,.is-rtl.functional .fp-unload,.is-rtl.functional .fp-close{right:auto;left:10px;background-position:18px -197px}
294
+ .functional .fp-unload,.functional .fp-close{background-position:14px -175px;display:none;}
295
+ .is-rtl.functional .fp-unload,.is-rtl.functional .fp-close{background-position:14px -175px}
296
  .functional .fp-play{display:none;width:27px;height:30px;background-position:9px -24px;position:absolute;bottom:0;left:0;}
297
+ .is-rtl.functional .fp-play{background-position:18px -24px;left:auto;right:0}
298
  .play-button.functional .fp-play{display:block}
299
+ .is-paused.functional .fp-play{background-position:9px 7px;}
300
+ .is-rtl.is-paused.functional .fp-play{background-position:18px 7px}
301
  .functional.is-ready.is-closeable .fp-unload{display:block}
302
  .functional.is-ready.is-closeable .fp-fullscreen{display:none}
303
+ .functional.is-fullscreen .fp-fullscreen{background-position:10px -217px;display:block !important;}
304
+ .is-rtl.functional.is-fullscreen .fp-fullscreen{background-position:21px -217px}
305
  .functional.is-fullscreen .fp-unload,.functional.is-fullscreen .fp-close{display:none !important}
306
  .functional .fp-timeline{height:3px;position:relative;overflow:hidden;top:10px;height:10px;margin:0 165px 0 55px;}
307
  .no-volume.functional .fp-timeline{margin-right:75px}
308
+ .no-mute.functional .fp-timeline{margin-right:155px}
309
+ .no-mute.no-volume.functional .fp-timeline{margin-right:55px}
310
  .play-button.functional .fp-timeline{margin-left:72px}
311
+ .is-rtl.functional .fp-timeline{margin:0 55px 0 165px;}
312
+ .no-volume.is-rtl.functional .fp-timeline{margin-left:75px}
313
+ .no-mute.is-rtl.functional .fp-timeline{margin-left:155px}
314
+ .no-mute.no-volume.is-rtl.functional .fp-timeline{margin-left:55px}
315
+ .play-button.is-rtl.functional .fp-timeline{margin-right:72px}
316
  .is-long.functional .fp-timeline{margin:0 195px 0 85px;}
317
  .no-volume.is-long.functional .fp-timeline{margin-right:105px}
318
  .no-mute.is-long.functional .fp-timeline{margin-right:85px}
319
  .play-button.is-long.functional .fp-timeline{margin-left:102px}
320
+ .is-rtl.is-long.functional .fp-timeline{margin:85px 0 195px 0;}
321
+ .no-volume.is-rtl.is-long.functional .fp-timeline{margin-left:105px}
322
+ .no-mute.is-rtl.is-long.functional .fp-timeline{margin-left:85px}
323
+ .play-button.is-rtl.is-long.functional .fp-timeline{margin-left:102px}
324
  .aside-time.functional .fp-timeline,.no-time.functional .fp-timeline{margin:0 120px 0 10px}
325
  .aside-time.no-volume.functional .fp-timeline,.no-time.no-volume.functional .fp-timeline{margin-right:30px}
326
  .aside-time.no-mute.functional .fp-timeline,.no-time.no-mute.functional .fp-timeline{margin-right:10px}
327
  .play-button.no-time.functional .fp-timeline,.play-button.aside-time.functional .fp-timeline{margin-left:27px}
328
+ .is-rtl.aside-time.functional .fp-timeline,.is-rtl.no-time.functional .fp-timeline{margin:0 10px 0 120px}
329
+ .is-rtl.aside-time.no-volume.functional .fp-timeline,.is-rtl.no-time.no-volume.functional .fp-timeline{margin-left:30px}
330
+ .is-rtl.aside-time.no-mute.functional .fp-timeline,.is-rtl.no-time.no-mute.functional .fp-timeline{margin-left:10px}
331
+ .is-rtl.play-button.no-time.functional .fp-timeline,.is-rtl.play-button.aside-time.functional .fp-timeline{margin-right:27px}
332
  .functional .fp-buffer,.functional .fp-progress{position:absolute;top:0;left:auto;height:100%;cursor:col-resize}
333
  .functional .fp-buffer{-webkit-transition:width .25s linear;-moz-transition:width .25s linear;transition:width .25s linear}
334
+ .functional .fp-timeline.no-animation .fp-buffer{-webkit-transition:none;-moz-transition:none;transition:none}
335
+ .functional.is-touch .fp-timeline{overflow:visible}
336
+ .functional.is-touch .fp-progress{-webkit-transition:width .2s linear;-moz-transition:width .2s linear;transition:width .2s linear}
337
+ .functional.is-touch .fp-timeline.is-dragging .fp-progress{-webkit-transition:right .1s linear,border .1s linear,top .1s linear,left .1s linear;-moz-transition:right .1s linear,border .1s linear,top .1s linear,left .1s linear;transition:right .1s linear,border .1s linear,top .1s linear,left .1s linear}
338
+ .functional.is-touch.is-mouseover .fp-progress:after,.functional.is-touch.is-mouseover .fp-progress:before{content:'';display:block;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;position:absolute;right:-5px}
339
+ .functional.is-touch.is-rtl.is-mouseover .fp-progress:after,.functional.is-touch.is-rtl.is-mouseover .fp-progress:before{right:auto;left:-5px}
340
+ .functional.is-touch.is-rtl.is-mouseover .fp-progress:after{left:-10px;-webkit-box-shadow:-1px 0 4px rgba(0,0,0,0.5);-moz-box-shadow:-1px 0 4px rgba(0,0,0,0.5);box-shadow:-1px 0 4px rgba(0,0,0,0.5)}
341
+ .functional.is-touch.is-mouseover .fp-progress:before{width:10px;height:10px}
342
+ .functional.is-touch.is-mouseover .fp-progress:after{height:10px;width:10px;top:-5px;right:-10px;border:5px solid rgba(255,255,255,0.65);-webkit-box-shadow:1px 0 4px rgba(0,0,0,0.5);-moz-box-shadow:1px 0 4px rgba(0,0,0,0.5);box-shadow:1px 0 4px rgba(0,0,0,0.5)}
343
+ .functional.is-touch.is-mouseover .fp-timeline.is-dragging .fp-progress:after{border:10px solid #fff;-webkit-border-radius:20px;-moz-border-radius:20px;border-radius:20px;-webkit-transition:inherit;-moz-transition:inherit;transition:inherit;top:-10px;right:-15px}
344
+ .functional.is-touch.is-rtl.is-mouseover .fp-timeline.is-dragging .fp-progress:after{left:-15px;right:auto;border:10px solid #fff}
345
+ .functional .fp-volume{position:absolute;top:11px;right:10px;}
346
+ .is-rtl.functional .fp-volume{right:auto;left:10px}
347
+ .functional .fp-mute{position:relative;width:10px;height:15px;float:left;top:-3.5px;cursor:pointer;background-position:-2px -99px;}
348
+ .is-rtl.functional .fp-mute{float:right;background-position:-25px -99px}
349
  .no-mute.functional .fp-mute{display:none}
350
  .functional .fp-volumeslider{width:90px;height:8px;cursor:col-resize;float:left;}
351
+ .is-rtl.functional .fp-volumeslider{float:right}
352
  .no-volume.functional .fp-volumeslider{display:none}
353
  .functional .fp-volumelevel{height:100%}
354
  .functional .fp-time{text-shadow:0 0 1px #000;font-size:12px;font-weight:bold;color:#fff;width:100%;}
359
  .is-long.functional .fp-time em{width:65px}
360
  .functional .fp-elapsed{left:10px;}
361
  .play-button.functional .fp-elapsed{left:27px}
362
+ .is-rtl.functional .fp-elapsed{left:auto;right:10px;}
363
+ .play-button.is-rtl.functional .fp-elapsed{right:27px}
364
  .functional .fp-remaining,.functional .fp-duration{right:120px;color:#eee;}
365
  .no-volume.functional .fp-remaining,.no-volume.functional .fp-duration{right:30px}
366
+ .no-mute.functional .fp-remaining,.no-mute.functional .fp-duration{right:110px}
367
+ .no-mute.no-volume.functional .fp-remaining,.no-mute.no-volume.functional .fp-duration{right:10px}
368
+ .is-rtl.functional .fp-remaining,.is-rtl.functional .fp-duration{right:auto;left:120px;}
369
+ .no-volume.is-rtl.functional .fp-remaining,.no-volume.is-rtl.functional .fp-duration{left:30px}
370
+ .no-mute.is-rtl.functional .fp-remaining,.no-mute.is-rtl.functional .fp-duration{left:110px}
371
+ .no-mute.no-volume.is-rtl.functional .fp-remaining,.no-mute.no-volume.is-rtl.functional .fp-duration{left:10px}
372
  .functional .fp-remaining{display:none}
373
  .functional.color-light .fp-time{color:#222;text-shadow:0 0 1px #fff}
374
  .functional.color-light .fp-remaining,.functional.color-light .fp-duration{color:#666}
375
  .functional.aside-time .fp-time{position:absolute;top:10px;left:10px;bottom:auto !important;width:100px;}
376
  .functional.aside-time .fp-time strong,.functional.aside-time .fp-time em{position:static}
377
+ .functional.aside-time .fp-time .fp-elapsed{margin-right:10px;}
378
+ .is-rtl.functional.aside-time .fp-time .fp-elapsed{margin-right:auto;margin-left:10px}
379
  .functional.is-long.aside-time .fp-time{width:130px}
380
  .functional.is-splash,.functional.is-poster{cursor:pointer;}
381
  .functional.is-splash .fp-controls,.functional.is-poster .fp-controls,.functional.is-splash .fp-fullscreen,.functional.is-poster .fp-fullscreen,.functional.is-splash .fp-unload,.functional.is-poster .fp-unload,.functional.is-splash .fp-time,.functional.is-poster .fp-time,.functional.is-splash .fp-embed,.functional.is-poster .fp-embed{display:none !important}
383
  .functional.is-loading .fp-waiting{display:block}
384
  .functional.is-loading .fp-controls,.functional.is-loading .fp-time{display:none}
385
  .functional.is-loading .fp-ui{background-position:-9999em}
386
+ .functional.is-loading video.fp-engine{position:absolute;top:-9999em}
387
  .functional.is-seeking .fp-waiting{display:block}
388
+ .functional.is-playing{background-image:none !important;background-color:#333;}
389
+ .functional.is-playing.hls-fix.is-finished .fp-engine{position:absolute;top:-9999em}
390
+ .functional.is-fullscreen{position:fixed !important;top:0 !important;left:0 !important;border:0 !important;margin:0 !important;width:100% !important;height:100% !important;max-width:100% !important;z-index:99999 !important;-webkit-box-shadow:0 !important;-moz-box-shadow:0 !important;box-shadow:0 !important;background-image:none !important;background-color:#333;}
391
+ .is-rtl.functional.is-fullscreen{left:auto !important;right:0 !important}
392
  .functional.is-error{border:1px solid #909090;background:#fdfdfd !important;}
393
  .functional.is-error h2{font-weight:bold;font-size:large;margin-top:10%}
394
  .functional.is-error .fp-message{display:block}
406
  .functional.fixed-controls .fp-time em{bottom:-20px;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);}
407
  .is-fullscreen.functional.fixed-controls .fp-time em{bottom:10px}
408
  .functional.is-disabled .fp-progress{background-color:#999}
409
+ .functional.is-flash-disabled{background-color:#333;}
410
+ .functional.is-flash-disabled object.fp-engine{z-index:100}
411
+ .functional.is-flash-disabled .fp-flash-disabled{display:block;z-index:101}
412
+ .functional .fp-embed{position:absolute;top:10px;left:10px;display:block;width:25px;height:20px;background-position:3px -237px;}
413
+ .is-rtl.functional .fp-embed{background-position:22px -237px;left:auto;right:10px}
414
  .functional .fp-embed-code{position:absolute;display:none;top:10px;left:40px;background-color:#333;padding:3px 5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 0 3px #ccc;-moz-box-shadow:0 0 3px #ccc;box-shadow:0 0 3px #ccc;font-size:12px;}
415
  .functional .fp-embed-code:before{content:'';width:0;height:0;position:absolute;top:2px;left:-10px;border:5px solid transparent;border-right-color:#333}
416
+ .is-rtl.functional .fp-embed-code{left:auto;right:40px;}
417
+ .is-rtl.functional .fp-embed-code:before{left:auto;right:-10px;border-right-color:transparent;border-left-color:#333}
418
  .functional .fp-embed-code textarea{width:400px;height:16px;font-family:monaco,"courier new",verdana;color:#777;white-space:nowrap;resize:none;overflow:hidden;border:0;outline:0;background-color:transparent;color:#ccc}
419
  .functional .fp-embed-code label{display:block;color:#999}
420
  .functional.is-embedding .fp-embed,.functional.is-embedding .fp-embed-code{display:block;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
421
+ .functional.aside-time .fp-embed{left:100px;}
422
+ .is-rtl.functional.aside-time .fp-embed{left:auto;right:100px}
423
+ .functional.aside-time .fp-embed-code{left:130px;}
424
+ .is-rtl.functional.aside-time .fp-embed-code{left:auto;right:130px}
425
  .functional.aside-time.is-embedding .fp-time{opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
426
+ .functional.is-long.aside-time .fp-embed{left:130px;}
427
+ .is-rtl.functional.is-long.aside-time .fp-embed{left:auto;right:130px}
428
+ .functional.no-time .fp-embed{left:10px !important;}
429
+ .is-rtl.functional.no-time .fp-embed{left:auto;right:10px !important}
430
+ .functional.is-live .fp-timeline,.functional.is-live .fp-duration,.functional.is-live .fp-remaining{display:none}
431
+ .functional .fp-context-menu{position:absolute;display:none;z-index:1001;background-color:#fff;padding:10px;border:1px solid #aaa;-webkit-box-shadow:0 0 4px #888;-moz-box-shadow:0 0 4px #888;box-shadow:0 0 4px #888;width:170px;}
432
+ .functional .fp-context-menu li{text-align:center;padding:10px;color:#444;margin:0 -10px 0 -10px;}
433
+ .functional .fp-context-menu li a{color:#00a7c8;font-size:110%}
434
+ .functional .fp-context-menu li:hover:not(.copyright){background-color:#eee}
435
+ .functional .fp-context-menu li.copyright{margin:0;padding-left:110px;background-image:url("img/flowplayer.png");background-repeat:no-repeat;background-size:100px 20px;background-position:5px 5px;border-bottom:1px solid #bbb;}
436
+ @media (-webkit-min-device-pixel-ratio: 2){.functional .fp-context-menu li.copyright{background-image:url("img/flowplayer@2x.png")}
437
+ }@-moz-keyframes pulse{0%{opacity:0}
438
  100%{opacity:1}
439
  }@-webkit-keyframes pulse{0%{opacity:0}
440
  100%{opacity:1}
448
  .functional .fp-timeline{background-color:#555}
449
  .functional .fp-buffer{background-color:#eee}
450
  .functional .fp-progress{background-color:#4da5d8}
451
+ .functional.is-touch.is-mouseover .fp-progress:before{background-color:#4da5d8}
452
  .functional .fp-volumelevel{background-color:#fff}
453
  .functional .fp-volumeslider{background-color:#555}
454
  .functional .fp-timeline,.functional .fp-volumeslider{border:1px inset;border-color:rgba(0,0,0,0.2) rgba(17,17,17,0.05)}
458
  .functional.color-light .fp-timeline,.functional.color-light .fp-volumeslider{border-color:#eee #ccc}
459
  .functional.color-light .fp-timeline,.functional.color-light .fp-volumeslider{background-color:#ccc;font-size:10px}
460
  .functional.color-alt .fp-progress{background-image:-moz-linear-gradient(#999,#111);background-image:-webkit-gradient(linear,0 0,0 100%,from(#999),to(#111))}
461
+ .functional.color-alt.is-touch.is-mouseover .fp-progress:before{background-image:-moz-linear-gradient(#999,#111);background-image:-webkit-gradient(linear,0 0,0 100%,from(#999),to(#111))}
462
  .functional.color-alt .fp-timeline,.functional.color-alt .fp-volumeslider{background-color:#111}
463
  .functional.color-alt2 .fp-progress{background-color:#900}
464
+ .functional.color-alt2.is-touch.is-mouseover .fp-progress:before{background-color:#900}
465
+ .playful{position:relative;width:100%;background-size:contain;background-repeat:no-repeat;background-position:center center;display:inline-block;}
466
  .playful *{font-weight:inherit;font-family:inherit;font-style:inherit;text-decoration:inherit;font-size:100%;padding:0;border:0;margin:0;list-style-type:none}
467
  .playful a:focus{outline:0}
468
  .playful video{width:100%}
487
  .playful .fp-speed.fp-hilite{opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
488
  .playful .fp-help{position:absolute;top:0;left:-9999em;z-index:100;background-color:#333;background-color:rgba(51,51,51,0.9);width:100%;height:100%;opacity:0;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);-webkit-transition:opacity .2s;-moz-transition:opacity .2s;transition:opacity .2s;text-align:center;}
489
  .is-help.playful .fp-help{left:0;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
490
+ .playful .fp-help .fp-help-section{margin:3%;direction:ltr}
491
  .playful .fp-help .fp-help-basics{margin-top:6%}
492
  .playful .fp-help p{color:#eee;margin:.5em 0;font-size:14px;line-height:1.5;display:inline-block;margin:1% 2%}
493
  .playful .fp-help em{background:#eee;-webkit-border-radius:.3em;-moz-border-radius:.3em;border-radius:.3em;margin-right:.4em;padding:.3em .6em;color:#333}
499
  .playful .fp-subtitle p:after{content:'';clear:both}
500
  .playful .fp-subtitle.fp-active{left:0;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
501
  .playful .fp-fullscreen,.playful .fp-unload,.playful .fp-mute,.playful .fp-embed,.playful .fp-close,.playful .fp-play{background-image:url(img/playful_white.png);background-size:37px 300px;}
502
+ .is-rtl.playful .fp-fullscreen,.is-rtl.playful .fp-unload,.is-rtl.playful .fp-mute,.is-rtl.playful .fp-embed,.is-rtl.playful .fp-close,.is-rtl.playful .fp-play{background-image:url(img/playful_white_rtl.png)}
503
  .color-light.playful .fp-fullscreen,.color-light.playful .fp-unload,.color-light.playful .fp-mute,.color-light.playful .fp-embed,.color-light.playful .fp-close,.color-light.playful .fp-play{background-image:url(img/playful_black.png);}
504
+ .is-rtl.color-light.playful .fp-fullscreen,.is-rtl.color-light.playful .fp-unload,.is-rtl.color-light.playful .fp-mute,.is-rtl.color-light.playful .fp-embed,.is-rtl.color-light.playful .fp-close,.is-rtl.color-light.playful .fp-play{background-image:url(img/playful_black_rtl.png)}
505
  @media (-webkit-min-device-pixel-ratio: 2){.color-light.playful .fp-fullscreen,.color-light.playful .fp-unload,.color-light.playful .fp-mute,.color-light.playful .fp-embed,.color-light.playful .fp-close,.color-light.playful .fp-play{background-image:url(img/playful_black@x2.png)}
506
+ .is-rtl.color-light.playful .fp-fullscreen,.is-rtl.color-light.playful .fp-unload,.is-rtl.color-light.playful .fp-mute,.is-rtl.color-light.playful .fp-embed,.is-rtl.color-light.playful .fp-close,.is-rtl.color-light.playful .fp-play{background-image:url(img/playful_black_rtl@x2.png)}
507
  }@media (-webkit-min-device-pixel-ratio: 2){.playful .fp-fullscreen,.playful .fp-unload,.playful .fp-mute,.playful .fp-embed,.playful .fp-close,.playful .fp-play{background-image:url(img/playful_white@x2.png)}
508
+ .is-rtl.playful .fp-fullscreen,.is-rtl.playful .fp-unload,.is-rtl.playful .fp-mute,.is-rtl.playful .fp-embed,.is-rtl.playful .fp-close,.is-rtl.playful .fp-play{background-image:url(img/playful_white_rtl@x2.png)}
509
+ }.playful .fp-flash-disabled{background:#333;width:390px;margin:0 auto;position:absolute;bottom:0;color:#fff}
510
+ .is-splash.playful .fp-ui,.is-paused.playful .fp-ui{background:url(img/play_white.png) center no-repeat;background-size:12%;}
511
+ .is-rtl.is-splash.playful .fp-ui,.is-rtl.is-paused.playful .fp-ui{background:url(img/play_white_rtl.png) center no-repeat;background-size:12%}
512
  @media (-webkit-min-device-pixel-ratio: 2){.is-splash.playful .fp-ui,.is-paused.playful .fp-ui{background:url(img/play_white@x2.png) center no-repeat;background-size:12%}
513
+ .is-rtl.is-splash.playful .fp-ui,.is-rtl.is-paused.playful .fp-ui{background:url(img/play_white_rtl@x2.png) center no-repeat;background-size:12%}
514
+ }.color-light.is-splash.playful .fp-ui,.color-light.is-paused.playful .fp-ui{background-image:url(img/play_black.png);}
515
+ .is-rtl.color-light.is-splash.playful .fp-ui,.is-rtl.color-light.is-paused.playful .fp-ui{background-image:url(img/play_black_rtl.png)}
516
+ @media (-webkit-min-device-pixel-ratio: 2){.color-light.is-splash.playful .fp-ui,.color-light.is-paused.playful .fp-ui{background-image:url(img/play_black@x2.png);}
517
+ .is-rtl.color-light.is-splash.playful .fp-ui,.is-rtl.color-light.is-paused.playful .fp-ui{background-image:url(img/play_black_rtl@x2.png)}
518
  }.is-fullscreen.playful .fp-ui{background-size:auto}
519
  .is-seeking.playful .fp-ui,.is-loading.playful .fp-ui{background-image:none}
520
  .playful .fp-logo{position:absolute;top:auto;left:15px;bottom:45px;cursor:pointer;display:none;z-index:100;}
521
  .playful .fp-logo img{width:100%}
522
  .is-embedded.playful .fp-logo{display:block}
523
  .fixed-controls.playful .fp-logo{bottom:15px}
524
+ .playful .fp-fullscreen,.playful .fp-unload,.playful .fp-close{position:absolute;top:12px;left:auto;right:12px;display:block;width:30px;height:23px;background-position:12px -197px;cursor:pointer;}
525
+ .is-rtl.playful .fp-fullscreen,.is-rtl.playful .fp-unload,.is-rtl.playful .fp-close{right:auto;left:12px;background-position:18px -197px}
526
+ .playful .fp-unload,.playful .fp-close{background-position:14px -175px;display:none;}
527
+ .is-rtl.playful .fp-unload,.is-rtl.playful .fp-close{background-position:14px -175px}
528
  .playful .fp-play{display:none;width:27px;height:35px;background-position:9px -24px;position:absolute;bottom:0;left:0;}
529
+ .is-rtl.playful .fp-play{background-position:18px -24px;left:auto;right:0}
530
  .play-button.playful .fp-play{display:block}
531
+ .is-paused.playful .fp-play{background-position:9px 7px;}
532
+ .is-rtl.is-paused.playful .fp-play{background-position:18px 7px}
533
  .playful.is-ready.is-closeable .fp-unload{display:block}
534
  .playful.is-ready.is-closeable .fp-fullscreen{display:none}
535
+ .playful.is-fullscreen .fp-fullscreen{background-position:10px -217px;display:block !important;}
536
+ .is-rtl.playful.is-fullscreen .fp-fullscreen{background-position:21px -217px}
537
  .playful.is-fullscreen .fp-unload,.playful.is-fullscreen .fp-close{display:none !important}
538
  .playful .fp-timeline{height:3px;position:relative;overflow:hidden;top:12px;height:11px;margin:0 199px 0 59px;}
539
  .no-volume.playful .fp-timeline{margin-right:109px}
540
+ .no-mute.playful .fp-timeline{margin-right:161px}
541
+ .no-mute.no-volume.playful .fp-timeline{margin-right:59px}
542
  .play-button.playful .fp-timeline{margin-left:74px}
543
+ .is-rtl.playful .fp-timeline{margin:0 59px 0 199px;}
544
+ .no-volume.is-rtl.playful .fp-timeline{margin-left:109px}
545
+ .no-mute.is-rtl.playful .fp-timeline{margin-left:161px}
546
+ .no-mute.no-volume.is-rtl.playful .fp-timeline{margin-left:59px}
547
+ .play-button.is-rtl.playful .fp-timeline{margin-right:74px}
548
  .is-long.playful .fp-timeline{margin:0 229px 0 89px;}
549
  .no-volume.is-long.playful .fp-timeline{margin-right:139px}
550
  .no-mute.is-long.playful .fp-timeline{margin-right:89px}
551
  .play-button.is-long.playful .fp-timeline{margin-left:104px}
552
+ .is-rtl.is-long.playful .fp-timeline{margin:89px 0 229px 0;}
553
+ .no-volume.is-rtl.is-long.playful .fp-timeline{margin-left:139px}
554
+ .no-mute.is-rtl.is-long.playful .fp-timeline{margin-left:89px}
555
+ .play-button.is-rtl.is-long.playful .fp-timeline{margin-left:104px}
556
  .aside-time.playful .fp-timeline,.no-time.playful .fp-timeline{margin:0 152px 0 12px}
557
  .aside-time.no-volume.playful .fp-timeline,.no-time.no-volume.playful .fp-timeline{margin-right:62px}
558
  .aside-time.no-mute.playful .fp-timeline,.no-time.no-mute.playful .fp-timeline{margin-right:12px}
559
  .play-button.no-time.playful .fp-timeline,.play-button.aside-time.playful .fp-timeline{margin-left:27px}
560
+ .is-rtl.aside-time.playful .fp-timeline,.is-rtl.no-time.playful .fp-timeline{margin:0 12px 0 152px}
561
+ .is-rtl.aside-time.no-volume.playful .fp-timeline,.is-rtl.no-time.no-volume.playful .fp-timeline{margin-left:62px}
562
+ .is-rtl.aside-time.no-mute.playful .fp-timeline,.is-rtl.no-time.no-mute.playful .fp-timeline{margin-left:12px}
563
+ .is-rtl.play-button.no-time.playful .fp-timeline,.is-rtl.play-button.aside-time.playful .fp-timeline{margin-right:27px}
564
  .playful .fp-buffer,.playful .fp-progress{position:absolute;top:0;left:auto;height:100%;cursor:col-resize}
565
  .playful .fp-buffer{-webkit-transition:width .25s linear;-moz-transition:width .25s linear;transition:width .25s linear}
566
+ .playful .fp-timeline.no-animation .fp-buffer{-webkit-transition:none;-moz-transition:none;transition:none}
567
+ .playful.is-touch .fp-timeline{overflow:visible}
568
+ .playful.is-touch .fp-progress{-webkit-transition:width .2s linear;-moz-transition:width .2s linear;transition:width .2s linear}
569
+ .playful.is-touch .fp-timeline.is-dragging .fp-progress{-webkit-transition:right .1s linear,border .1s linear,top .1s linear,left .1s linear;-moz-transition:right .1s linear,border .1s linear,top .1s linear,left .1s linear;transition:right .1s linear,border .1s linear,top .1s linear,left .1s linear}
570
+ .playful.is-touch.is-mouseover .fp-progress:after,.playful.is-touch.is-mouseover .fp-progress:before{content:'';display:block;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;position:absolute;right:-5px}
571
+ .playful.is-touch.is-rtl.is-mouseover .fp-progress:after,.playful.is-touch.is-rtl.is-mouseover .fp-progress:before{right:auto;left:-5px}
572
+ .playful.is-touch.is-rtl.is-mouseover .fp-progress:after{left:-10px;-webkit-box-shadow:-1px 0 4px rgba(0,0,0,0.5);-moz-box-shadow:-1px 0 4px rgba(0,0,0,0.5);box-shadow:-1px 0 4px rgba(0,0,0,0.5)}
573
+ .playful.is-touch.is-mouseover .fp-progress:before{width:10px;height:10px}
574
+ .playful.is-touch.is-mouseover .fp-progress:after{height:10px;width:10px;top:-5px;right:-10px;border:5px solid rgba(255,255,255,0.65);-webkit-box-shadow:1px 0 4px rgba(0,0,0,0.5);-moz-box-shadow:1px 0 4px rgba(0,0,0,0.5);box-shadow:1px 0 4px rgba(0,0,0,0.5)}
575
+ .playful.is-touch.is-mouseover .fp-timeline.is-dragging .fp-progress:after{border:10px solid #fff;-webkit-border-radius:20px;-moz-border-radius:20px;border-radius:20px;-webkit-transition:inherit;-moz-transition:inherit;transition:inherit;top:-10px;right:-15px}
576
+ .playful.is-touch.is-rtl.is-mouseover .fp-timeline.is-dragging .fp-progress:after{left:-15px;right:auto;border:10px solid #fff}
577
+ .playful .fp-volume{position:absolute;top:12px;right:12px;}
578
+ .is-rtl.playful .fp-volume{right:auto;left:12px}
579
+ .playful .fp-mute{position:relative;width:38px;height:20px;float:left;top:-4.5px;cursor:pointer;background-position:-2px -99px;}
580
+ .is-rtl.playful .fp-mute{float:right;background-position:-25px -99px}
581
  .no-mute.playful .fp-mute{display:none}
582
  .playful .fp-volumeslider{width:90px;height:11px;cursor:col-resize;float:left;}
583
+ .is-rtl.playful .fp-volumeslider{float:right}
584
  .no-volume.playful .fp-volumeslider{display:none}
585
  .playful .fp-volumelevel{height:100%}
586
  .playful .fp-time{text-shadow:0 0 1px #000;font-size:12px;font-weight:bold;color:#fff;width:100%;}
591
  .is-long.playful .fp-time em{width:65px}
592
  .playful .fp-elapsed{left:12px;}
593
  .play-button.playful .fp-elapsed{left:27px}
594
+ .is-rtl.playful .fp-elapsed{left:auto;right:12px;}
595
+ .play-button.is-rtl.playful .fp-elapsed{right:27px}
596
  .playful .fp-remaining,.playful .fp-duration{right:152px;color:#eee;}
597
  .no-volume.playful .fp-remaining,.no-volume.playful .fp-duration{right:62px}
598
+ .no-mute.playful .fp-remaining,.no-mute.playful .fp-duration{right:114px}
599
+ .no-mute.no-volume.playful .fp-remaining,.no-mute.no-volume.playful .fp-duration{right:12px}
600
+ .is-rtl.playful .fp-remaining,.is-rtl.playful .fp-duration{right:auto;left:152px;}
601
+ .no-volume.is-rtl.playful .fp-remaining,.no-volume.is-rtl.playful .fp-duration{left:62px}
602
+ .no-mute.is-rtl.playful .fp-remaining,.no-mute.is-rtl.playful .fp-duration{left:114px}
603
+ .no-mute.no-volume.is-rtl.playful .fp-remaining,.no-mute.no-volume.is-rtl.playful .fp-duration{left:12px}
604
  .playful .fp-remaining{display:none}
605
  .playful.color-light .fp-time{color:#222;text-shadow:0 0 1px #fff}
606
  .playful.color-light .fp-remaining,.playful.color-light .fp-duration{color:#666}
607
  .playful.aside-time .fp-time{position:absolute;top:12px;left:12px;bottom:auto !important;width:110px;}
608
  .playful.aside-time .fp-time strong,.playful.aside-time .fp-time em{position:static}
609
+ .playful.aside-time .fp-time .fp-elapsed{margin-right:12px;}
610
+ .is-rtl.playful.aside-time .fp-time .fp-elapsed{margin-right:auto;margin-left:12px}
611
  .playful.is-long.aside-time .fp-time{width:130px}
612
  .playful.is-splash,.playful.is-poster{cursor:pointer;}
613
  .playful.is-splash .fp-controls,.playful.is-poster .fp-controls,.playful.is-splash .fp-fullscreen,.playful.is-poster .fp-fullscreen,.playful.is-splash .fp-unload,.playful.is-poster .fp-unload,.playful.is-splash .fp-time,.playful.is-poster .fp-time,.playful.is-splash .fp-embed,.playful.is-poster .fp-embed{display:none !important}
615
  .playful.is-loading .fp-waiting{display:block}
616
  .playful.is-loading .fp-controls,.playful.is-loading .fp-time{display:none}
617
  .playful.is-loading .fp-ui{background-position:-9999em}
618
+ .playful.is-loading video.fp-engine{position:absolute;top:-9999em}
619
  .playful.is-seeking .fp-waiting{display:block}
620
+ .playful.is-playing{background-image:none !important;background-color:#333;}
621
+ .playful.is-playing.hls-fix.is-finished .fp-engine{position:absolute;top:-9999em}
622
+ .playful.is-fullscreen{position:fixed !important;top:0 !important;left:0 !important;border:0 !important;margin:0 !important;width:100% !important;height:100% !important;max-width:100% !important;z-index:99999 !important;-webkit-box-shadow:0 !important;-moz-box-shadow:0 !important;box-shadow:0 !important;background-image:none !important;background-color:#333;}
623
+ .is-rtl.playful.is-fullscreen{left:auto !important;right:0 !important}
624
  .playful.is-error{border:1px solid #909090;background:#fdfdfd !important;}
625
  .playful.is-error h2{font-weight:bold;font-size:large;margin-top:10%}
626
  .playful.is-error .fp-message{display:block}
638
  .playful.fixed-controls .fp-time em{bottom:-23px;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);}
639
  .is-fullscreen.playful.fixed-controls .fp-time em{bottom:12px}
640
  .playful.is-disabled .fp-progress{background-color:#999}
641
+ .playful.is-flash-disabled{background-color:#333;}
642
+ .playful.is-flash-disabled object.fp-engine{z-index:100}
643
+ .playful.is-flash-disabled .fp-flash-disabled{display:block;z-index:101}
644
+ .playful .fp-embed{position:absolute;top:12px;left:12px;display:block;width:25px;height:20px;background-position:3px -237px;}
645
+ .is-rtl.playful .fp-embed{background-position:22px -237px;left:auto;right:12px}
646
  .playful .fp-embed-code{position:absolute;display:none;top:10px;left:40px;background-color:#333;padding:3px 5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 0 3px #ccc;-moz-box-shadow:0 0 3px #ccc;box-shadow:0 0 3px #ccc;font-size:12px;}
647
  .playful .fp-embed-code:before{content:'';width:0;height:0;position:absolute;top:2px;left:-10px;border:5px solid transparent;border-right-color:#333}
648
+ .is-rtl.playful .fp-embed-code{left:auto;right:40px;}
649
+ .is-rtl.playful .fp-embed-code:before{left:auto;right:-10px;border-right-color:transparent;border-left-color:#333}
650
  .playful .fp-embed-code textarea{width:400px;height:16px;font-family:monaco,"courier new",verdana;color:#777;white-space:nowrap;resize:none;overflow:hidden;border:0;outline:0;background-color:transparent;color:#ccc}
651
  .playful .fp-embed-code label{display:block;color:#999}
652
  .playful.is-embedding .fp-embed,.playful.is-embedding .fp-embed-code{display:block;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
653
+ .playful.aside-time .fp-embed{left:110px;}
654
+ .is-rtl.playful.aside-time .fp-embed{left:auto;right:110px}
655
+ .playful.aside-time .fp-embed-code{left:140px;}
656
+ .is-rtl.playful.aside-time .fp-embed-code{left:auto;right:140px}
657
  .playful.aside-time.is-embedding .fp-time{opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
658
+ .playful.is-long.aside-time .fp-embed{left:130px;}
659
+ .is-rtl.playful.is-long.aside-time .fp-embed{left:auto;right:130px}
660
+ .playful.no-time .fp-embed{left:12px !important;}
661
+ .is-rtl.playful.no-time .fp-embed{left:auto;right:12px !important}
662
+ .playful.is-live .fp-timeline,.playful.is-live .fp-duration,.playful.is-live .fp-remaining{display:none}
663
+ .playful .fp-context-menu{position:absolute;display:none;z-index:1001;background-color:#fff;padding:10px;border:1px solid #aaa;-webkit-box-shadow:0 0 4px #888;-moz-box-shadow:0 0 4px #888;box-shadow:0 0 4px #888;width:170px;}
664
+ .playful .fp-context-menu li{text-align:center;padding:10px;color:#444;margin:0 -10px 0 -10px;}
665
+ .playful .fp-context-menu li a{color:#00a7c8;font-size:110%}
666
+ .playful .fp-context-menu li:hover:not(.copyright){background-color:#eee}
667
+ .playful .fp-context-menu li.copyright{margin:0;padding-left:110px;background-image:url("img/flowplayer.png");background-repeat:no-repeat;background-size:100px 20px;background-position:5px 5px;border-bottom:1px solid #bbb;}
668
+ @media (-webkit-min-device-pixel-ratio: 2){.playful .fp-context-menu li.copyright{background-image:url("img/flowplayer@2x.png")}
669
+ }@-moz-keyframes pulse{0%{opacity:0}
670
  100%{opacity:1}
671
  }@-webkit-keyframes pulse{0%{opacity:0}
672
  100%{opacity:1}
680
  .playful .fp-timeline,.playful .fp-volumeslider{background-color:#555;background-image:-moz-linear-gradient(rgba(255,255,255,0.01),rgba(255,255,255,0.3));background-image:-webkit-gradient(linear,0 0,0 100%,from(rgba(255,255,255,0.01)),to(rgba(255,255,255,0.3)))}
681
  .playful .fp-buffer{background-color:#eee}
682
  .playful .fp-progress{background-color:#008000}
683
+ .playful.is-touch.is-mouseover .fp-progress:before{background-color:#008000}
684
  .playful .fp-volumelevel{background-color:#fff}
685
  .playful .fp-mute{display:block;width:38px;height:20px;background-position:0 -79px;}
686
+ .is-rtl.playful .fp-mute{background-position:0 -79px}
687
  .is-muted.playful .fp-mute{background-position:0 -109px;opacity:.85;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=85)}
688
  .playful .fp-play{background-position:9px -20px;}
689
+ .is-rtl.playful .fp-play{background-position:18px -20px}
690
+ .is-paused.playful .fp-play{background-position:9px 11px;}
691
+ .is-rtl.is-paused.playful .fp-play{background-position:18px 11px}
692
  .playful .fp-timeline,.playful .fp-volumeslider{border:1px inset;border-color:rgba(0,0,0,0.3) rgba(17,17,17,0.05)}
693
  .playful .fp-controls,.playful .fp-progress{background-image:-moz-linear-gradient(rgba(255,255,255,0.3),rgba(255,255,255,0.01));background-image:-webkit-gradient(linear,0 0,0 100%,from(rgba(255,255,255,0.3)),to(rgba(255,255,255,0.01)))}
694
  .playful .fp-timeline,.playful .fp-progress,.playful .fp-buffer,.playful .fp-volumeslider,.playful .fp-volumelevel{-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}
695
  .playful.color-light .fp-controls{background-color:#eee;background-image:-moz-linear-gradient(rgba(0,0,0,0.01),rgba(0,0,0,0.3));background-image:-webkit-gradient(linear,0 0,0 100%,from(rgba(0,0,0,0.01)),to(rgba(0,0,0,0.3)))}
696
  .playful.color-light .fp-timeline,.playful.color-light .fp-volumeslider{border-color:#eee #ccc}
697
  .playful.color-alt .fp-progress,.playful.color-alt .fp-volumelevel{background-color:#111}
698
+ .playful.color-alt.is-touch.is-mouseover .fp-progress:before{background-color:#111}
699
  .playful.color-alt2 .fp-progress,.playful.color-alt2 .fp-volumelevel{background-color:#900}
700
+ .playful.color-alt2.is-touch.is-mouseover .fp-progress:before{background-color:#900}
lib/{functional.css → skin/functional.css} RENAMED
@@ -1,4 +1,4 @@
1
- .flowplayer{position:relative;width:100%;text-align:left;background-size:contain;background-repeat:no-repeat;background-position:center center;display:inline-block;}
2
  .flowplayer *{font-weight:inherit;font-family:inherit;font-style:inherit;text-decoration:inherit;font-size:100%;padding:0;border:0;margin:0;list-style-type:none}
3
  .flowplayer a:focus{outline:0}
4
  .flowplayer video{width:100%}
@@ -23,7 +23,7 @@
23
  .flowplayer .fp-speed.fp-hilite{opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
24
  .flowplayer .fp-help{position:absolute;top:0;left:-9999em;z-index:100;background-color:#333;background-color:rgba(51,51,51,0.9);width:100%;height:100%;opacity:0;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);-webkit-transition:opacity .2s;-moz-transition:opacity .2s;transition:opacity .2s;text-align:center;}
25
  .is-help.flowplayer .fp-help{left:0;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
26
- .flowplayer .fp-help .fp-help-section{margin:3%}
27
  .flowplayer .fp-help .fp-help-basics{margin-top:6%}
28
  .flowplayer .fp-help p{color:#eee;margin:.5em 0;font-size:14px;line-height:1.5;display:inline-block;margin:1% 2%}
29
  .flowplayer .fp-help em{background:#eee;-webkit-border-radius:.3em;-moz-border-radius:.3em;border-radius:.3em;margin-right:.4em;padding:.3em .6em;color:#333}
@@ -35,46 +35,88 @@
35
  .flowplayer .fp-subtitle p:after{content:'';clear:both}
36
  .flowplayer .fp-subtitle.fp-active{left:0;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
37
  .flowplayer .fp-fullscreen,.flowplayer .fp-unload,.flowplayer .fp-mute,.flowplayer .fp-embed,.flowplayer .fp-close,.flowplayer .fp-play{background-image:url(img/white.png);background-size:37px 300px;}
 
38
  .color-light.flowplayer .fp-fullscreen,.color-light.flowplayer .fp-unload,.color-light.flowplayer .fp-mute,.color-light.flowplayer .fp-embed,.color-light.flowplayer .fp-close,.color-light.flowplayer .fp-play{background-image:url(img/black.png);}
 
39
  @media (-webkit-min-device-pixel-ratio: 2){.color-light.flowplayer .fp-fullscreen,.color-light.flowplayer .fp-unload,.color-light.flowplayer .fp-mute,.color-light.flowplayer .fp-embed,.color-light.flowplayer .fp-close,.color-light.flowplayer .fp-play{background-image:url(img/black@x2.png)}
 
40
  }@media (-webkit-min-device-pixel-ratio: 2){.flowplayer .fp-fullscreen,.flowplayer .fp-unload,.flowplayer .fp-mute,.flowplayer .fp-embed,.flowplayer .fp-close,.flowplayer .fp-play{background-image:url(img/white@x2.png)}
41
- }.is-splash.flowplayer .fp-ui,.is-paused.flowplayer .fp-ui{background:url(img/play_white.png) center no-repeat;background-size:12%;}
 
 
 
42
  @media (-webkit-min-device-pixel-ratio: 2){.is-splash.flowplayer .fp-ui,.is-paused.flowplayer .fp-ui{background:url(img/play_white@x2.png) center no-repeat;background-size:12%}
43
- }.color-light.is-splash.flowplayer .fp-ui,.color-light.is-paused.flowplayer .fp-ui{background-image:url(img/play_black.png)}
44
- @media (-webkit-min-device-pixel-ratio: 2){.color-light.is-splash.flowplayer .fp-ui,.color-light.is-paused.flowplayer .fp-ui{background-image:url(img/play_black@x2.png)}
 
 
 
45
  }.is-fullscreen.flowplayer .fp-ui{background-size:auto}
46
  .is-seeking.flowplayer .fp-ui,.is-loading.flowplayer .fp-ui{background-image:none}
47
  .flowplayer .fp-logo{position:absolute;top:auto;left:15px;bottom:40px;cursor:pointer;display:none;z-index:100;}
48
  .flowplayer .fp-logo img{width:100%}
49
  .is-embedded.flowplayer .fp-logo{display:block}
50
  .fixed-controls.flowplayer .fp-logo{bottom:15px}
51
- .flowplayer .fp-fullscreen,.flowplayer .fp-unload,.flowplayer .fp-close{position:absolute;top:10px;left:auto;right:10px;display:block;width:30px;height:23px;background-position:12px -197px;cursor:pointer}
52
- .flowplayer .fp-unload,.flowplayer .fp-close{background-position:14px -175px;display:none}
 
 
53
  .flowplayer .fp-play{display:none;width:27px;height:30px;background-position:9px -24px;position:absolute;bottom:0;left:0;}
 
54
  .play-button.flowplayer .fp-play{display:block}
55
- .is-paused.flowplayer .fp-play{background-position:9px 7px}
 
56
  .flowplayer.is-ready.is-closeable .fp-unload{display:block}
57
  .flowplayer.is-ready.is-closeable .fp-fullscreen{display:none}
58
- .flowplayer.is-fullscreen .fp-fullscreen{background-position:10px -217px;display:block !important}
 
59
  .flowplayer.is-fullscreen .fp-unload,.flowplayer.is-fullscreen .fp-close{display:none !important}
60
  .flowplayer .fp-timeline{height:3px;position:relative;overflow:hidden;top:10px;height:10px;margin:0 165px 0 55px;}
61
  .no-volume.flowplayer .fp-timeline{margin-right:75px}
62
- .no-mute.flowplayer .fp-timeline{margin-right:55px}
 
63
  .play-button.flowplayer .fp-timeline{margin-left:72px}
 
 
 
 
 
64
  .is-long.flowplayer .fp-timeline{margin:0 195px 0 85px;}
65
  .no-volume.is-long.flowplayer .fp-timeline{margin-right:105px}
66
  .no-mute.is-long.flowplayer .fp-timeline{margin-right:85px}
67
  .play-button.is-long.flowplayer .fp-timeline{margin-left:102px}
 
 
 
 
68
  .aside-time.flowplayer .fp-timeline,.no-time.flowplayer .fp-timeline{margin:0 120px 0 10px}
69
  .aside-time.no-volume.flowplayer .fp-timeline,.no-time.no-volume.flowplayer .fp-timeline{margin-right:30px}
70
  .aside-time.no-mute.flowplayer .fp-timeline,.no-time.no-mute.flowplayer .fp-timeline{margin-right:10px}
71
  .play-button.no-time.flowplayer .fp-timeline,.play-button.aside-time.flowplayer .fp-timeline{margin-left:27px}
 
 
 
 
72
  .flowplayer .fp-buffer,.flowplayer .fp-progress{position:absolute;top:0;left:auto;height:100%;cursor:col-resize}
73
  .flowplayer .fp-buffer{-webkit-transition:width .25s linear;-moz-transition:width .25s linear;transition:width .25s linear}
74
- .flowplayer .fp-volume{position:absolute;top:11px;right:10px}
75
- .flowplayer .fp-mute{width:10px;height:15px;float:left;position:relative;top:-3.5px;left:;cursor:pointer;background-position:-2px -99px;}
 
 
 
 
 
 
 
 
 
 
 
 
 
76
  .no-mute.flowplayer .fp-mute{display:none}
77
  .flowplayer .fp-volumeslider{width:90px;height:8px;cursor:col-resize;float:left;}
 
78
  .no-volume.flowplayer .fp-volumeslider{display:none}
79
  .flowplayer .fp-volumelevel{height:100%}
80
  .flowplayer .fp-time{text-shadow:0 0 1px #000;font-size:12px;font-weight:bold;color:#fff;width:100%;}
@@ -85,15 +127,23 @@
85
  .is-long.flowplayer .fp-time em{width:65px}
86
  .flowplayer .fp-elapsed{left:10px;}
87
  .play-button.flowplayer .fp-elapsed{left:27px}
 
 
88
  .flowplayer .fp-remaining,.flowplayer .fp-duration{right:120px;color:#eee;}
89
  .no-volume.flowplayer .fp-remaining,.no-volume.flowplayer .fp-duration{right:30px}
90
- .no-mute.flowplayer .fp-remaining,.no-mute.flowplayer .fp-duration{right:10px}
 
 
 
 
 
91
  .flowplayer .fp-remaining{display:none}
92
  .flowplayer.color-light .fp-time{color:#222;text-shadow:0 0 1px #fff}
93
  .flowplayer.color-light .fp-remaining,.flowplayer.color-light .fp-duration{color:#666}
94
  .flowplayer.aside-time .fp-time{position:absolute;top:10px;left:10px;bottom:auto !important;width:100px;}
95
  .flowplayer.aside-time .fp-time strong,.flowplayer.aside-time .fp-time em{position:static}
96
- .flowplayer.aside-time .fp-time .fp-elapsed{margin-right:10px}
 
97
  .flowplayer.is-long.aside-time .fp-time{width:130px}
98
  .flowplayer.is-splash,.flowplayer.is-poster{cursor:pointer;}
99
  .flowplayer.is-splash .fp-controls,.flowplayer.is-poster .fp-controls,.flowplayer.is-splash .fp-fullscreen,.flowplayer.is-poster .fp-fullscreen,.flowplayer.is-splash .fp-unload,.flowplayer.is-poster .fp-unload,.flowplayer.is-splash .fp-time,.flowplayer.is-poster .fp-time,.flowplayer.is-splash .fp-embed,.flowplayer.is-poster .fp-embed{display:none !important}
@@ -101,8 +151,12 @@
101
  .flowplayer.is-loading .fp-waiting{display:block}
102
  .flowplayer.is-loading .fp-controls,.flowplayer.is-loading .fp-time{display:none}
103
  .flowplayer.is-loading .fp-ui{background-position:-9999em}
 
104
  .flowplayer.is-seeking .fp-waiting{display:block}
105
- .flowplayer.is-fullscreen{position:fixed !important;top:0 !important;left:0 !important;border:0 !important;margin:0 !important;width:100% !important;height:100% !important;max-width:100% !important;z-index:99999 !important;-webkit-box-shadow:0 !important;-moz-box-shadow:0 !important;box-shadow:0 !important;background-image:none !important;background-color:#333}
 
 
 
106
  .flowplayer.is-error{border:1px solid #909090;background:#fdfdfd !important;}
107
  .flowplayer.is-error h2{font-weight:bold;font-size:large;margin-top:10%}
108
  .flowplayer.is-error .fp-message{display:block}
@@ -120,18 +174,35 @@
120
  .flowplayer.fixed-controls .fp-time em{bottom:-20px;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);}
121
  .is-fullscreen.flowplayer.fixed-controls .fp-time em{bottom:10px}
122
  .flowplayer.is-disabled .fp-progress{background-color:#999}
123
- .flowplayer .fp-embed{position:absolute;top:10px;left:10px;display:block;width:25px;height:20px;background-position:3px -237px}
 
 
 
 
124
  .flowplayer .fp-embed-code{position:absolute;display:none;top:10px;left:40px;background-color:#333;padding:3px 5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 0 3px #ccc;-moz-box-shadow:0 0 3px #ccc;box-shadow:0 0 3px #ccc;font-size:12px;}
125
  .flowplayer .fp-embed-code:before{content:'';width:0;height:0;position:absolute;top:2px;left:-10px;border:5px solid transparent;border-right-color:#333}
 
 
126
  .flowplayer .fp-embed-code textarea{width:400px;height:16px;font-family:monaco,"courier new",verdana;color:#777;white-space:nowrap;resize:none;overflow:hidden;border:0;outline:0;background-color:transparent;color:#ccc}
127
  .flowplayer .fp-embed-code label{display:block;color:#999}
128
  .flowplayer.is-embedding .fp-embed,.flowplayer.is-embedding .fp-embed-code{display:block;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
129
- .flowplayer.aside-time .fp-embed{left:100px}
130
- .flowplayer.aside-time .fp-embed-code{left:130px}
 
 
131
  .flowplayer.aside-time.is-embedding .fp-time{opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
132
- .flowplayer.is-long.aside-time .fp-embed{left:130px}
133
- .flowplayer.no-time .fp-embed{left:10px !important}
134
- @-moz-keyframes pulse{0%{opacity:0}
 
 
 
 
 
 
 
 
 
135
  100%{opacity:1}
136
  }@-webkit-keyframes pulse{0%{opacity:0}
137
  100%{opacity:1}
@@ -145,6 +216,7 @@
145
  .flowplayer .fp-timeline{background-color:#555}
146
  .flowplayer .fp-buffer{background-color:#eee}
147
  .flowplayer .fp-progress{background-color:#4da5d8}
 
148
  .flowplayer .fp-volumelevel{background-color:#fff}
149
  .flowplayer .fp-volumeslider{background-color:#555}
150
  .flowplayer .fp-timeline,.flowplayer .fp-volumeslider{border:1px inset;border-color:rgba(0,0,0,0.2) rgba(17,17,17,0.05)}
@@ -154,5 +226,7 @@
154
  .flowplayer.color-light .fp-timeline,.flowplayer.color-light .fp-volumeslider{border-color:#eee #ccc}
155
  .flowplayer.color-light .fp-timeline,.flowplayer.color-light .fp-volumeslider{background-color:#ccc;font-size:10px}
156
  .flowplayer.color-alt .fp-progress{background-image:-moz-linear-gradient(#999,#111);background-image:-webkit-gradient(linear,0 0,0 100%,from(#999),to(#111))}
 
157
  .flowplayer.color-alt .fp-timeline,.flowplayer.color-alt .fp-volumeslider{background-color:#111}
158
  .flowplayer.color-alt2 .fp-progress{background-color:#900}
 
1
+ .flowplayer{position:relative;width:100%;background-size:contain;background-repeat:no-repeat;background-position:center center;display:inline-block;}
2
  .flowplayer *{font-weight:inherit;font-family:inherit;font-style:inherit;text-decoration:inherit;font-size:100%;padding:0;border:0;margin:0;list-style-type:none}
3
  .flowplayer a:focus{outline:0}
4
  .flowplayer video{width:100%}
23
  .flowplayer .fp-speed.fp-hilite{opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
24
  .flowplayer .fp-help{position:absolute;top:0;left:-9999em;z-index:100;background-color:#333;background-color:rgba(51,51,51,0.9);width:100%;height:100%;opacity:0;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);-webkit-transition:opacity .2s;-moz-transition:opacity .2s;transition:opacity .2s;text-align:center;}
25
  .is-help.flowplayer .fp-help{left:0;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
26
+ .flowplayer .fp-help .fp-help-section{margin:3%;direction:ltr}
27
  .flowplayer .fp-help .fp-help-basics{margin-top:6%}
28
  .flowplayer .fp-help p{color:#eee;margin:.5em 0;font-size:14px;line-height:1.5;display:inline-block;margin:1% 2%}
29
  .flowplayer .fp-help em{background:#eee;-webkit-border-radius:.3em;-moz-border-radius:.3em;border-radius:.3em;margin-right:.4em;padding:.3em .6em;color:#333}
35
  .flowplayer .fp-subtitle p:after{content:'';clear:both}
36
  .flowplayer .fp-subtitle.fp-active{left:0;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
37
  .flowplayer .fp-fullscreen,.flowplayer .fp-unload,.flowplayer .fp-mute,.flowplayer .fp-embed,.flowplayer .fp-close,.flowplayer .fp-play{background-image:url(img/white.png);background-size:37px 300px;}
38
+ .is-rtl.flowplayer .fp-fullscreen,.is-rtl.flowplayer .fp-unload,.is-rtl.flowplayer .fp-mute,.is-rtl.flowplayer .fp-embed,.is-rtl.flowplayer .fp-close,.is-rtl.flowplayer .fp-play{background-image:url(img/white_rtl.png)}
39
  .color-light.flowplayer .fp-fullscreen,.color-light.flowplayer .fp-unload,.color-light.flowplayer .fp-mute,.color-light.flowplayer .fp-embed,.color-light.flowplayer .fp-close,.color-light.flowplayer .fp-play{background-image:url(img/black.png);}
40
+ .is-rtl.color-light.flowplayer .fp-fullscreen,.is-rtl.color-light.flowplayer .fp-unload,.is-rtl.color-light.flowplayer .fp-mute,.is-rtl.color-light.flowplayer .fp-embed,.is-rtl.color-light.flowplayer .fp-close,.is-rtl.color-light.flowplayer .fp-play{background-image:url(img/black_rtl.png)}
41
  @media (-webkit-min-device-pixel-ratio: 2){.color-light.flowplayer .fp-fullscreen,.color-light.flowplayer .fp-unload,.color-light.flowplayer .fp-mute,.color-light.flowplayer .fp-embed,.color-light.flowplayer .fp-close,.color-light.flowplayer .fp-play{background-image:url(img/black@x2.png)}
42
+ .is-rtl.color-light.flowplayer .fp-fullscreen,.is-rtl.color-light.flowplayer .fp-unload,.is-rtl.color-light.flowplayer .fp-mute,.is-rtl.color-light.flowplayer .fp-embed,.is-rtl.color-light.flowplayer .fp-close,.is-rtl.color-light.flowplayer .fp-play{background-image:url(img/black_rtl@x2.png)}
43
  }@media (-webkit-min-device-pixel-ratio: 2){.flowplayer .fp-fullscreen,.flowplayer .fp-unload,.flowplayer .fp-mute,.flowplayer .fp-embed,.flowplayer .fp-close,.flowplayer .fp-play{background-image:url(img/white@x2.png)}
44
+ .is-rtl.flowplayer .fp-fullscreen,.is-rtl.flowplayer .fp-unload,.is-rtl.flowplayer .fp-mute,.is-rtl.flowplayer .fp-embed,.is-rtl.flowplayer .fp-close,.is-rtl.flowplayer .fp-play{background-image:url(img/white_rtl@x2.png)}
45
+ }.flowplayer .fp-flash-disabled{background:#333;width:390px;margin:0 auto;position:absolute;bottom:0;color:#fff}
46
+ .is-splash.flowplayer .fp-ui,.is-paused.flowplayer .fp-ui{background:url(img/play_white.png) center no-repeat;background-size:12%;}
47
+ .is-rtl.is-splash.flowplayer .fp-ui,.is-rtl.is-paused.flowplayer .fp-ui{background:url(img/play_white_rtl.png) center no-repeat;background-size:12%}
48
  @media (-webkit-min-device-pixel-ratio: 2){.is-splash.flowplayer .fp-ui,.is-paused.flowplayer .fp-ui{background:url(img/play_white@x2.png) center no-repeat;background-size:12%}
49
+ .is-rtl.is-splash.flowplayer .fp-ui,.is-rtl.is-paused.flowplayer .fp-ui{background:url(img/play_white_rtl@x2.png) center no-repeat;background-size:12%}
50
+ }.color-light.is-splash.flowplayer .fp-ui,.color-light.is-paused.flowplayer .fp-ui{background-image:url(img/play_black.png);}
51
+ .is-rtl.color-light.is-splash.flowplayer .fp-ui,.is-rtl.color-light.is-paused.flowplayer .fp-ui{background-image:url(img/play_black_rtl.png)}
52
+ @media (-webkit-min-device-pixel-ratio: 2){.color-light.is-splash.flowplayer .fp-ui,.color-light.is-paused.flowplayer .fp-ui{background-image:url(img/play_black@x2.png);}
53
+ .is-rtl.color-light.is-splash.flowplayer .fp-ui,.is-rtl.color-light.is-paused.flowplayer .fp-ui{background-image:url(img/play_black_rtl@x2.png)}
54
  }.is-fullscreen.flowplayer .fp-ui{background-size:auto}
55
  .is-seeking.flowplayer .fp-ui,.is-loading.flowplayer .fp-ui{background-image:none}
56
  .flowplayer .fp-logo{position:absolute;top:auto;left:15px;bottom:40px;cursor:pointer;display:none;z-index:100;}
57
  .flowplayer .fp-logo img{width:100%}
58
  .is-embedded.flowplayer .fp-logo{display:block}
59
  .fixed-controls.flowplayer .fp-logo{bottom:15px}
60
+ .flowplayer .fp-fullscreen,.flowplayer .fp-unload,.flowplayer .fp-close{position:absolute;top:10px;left:auto;right:10px;display:block;width:30px;height:23px;background-position:12px -197px;cursor:pointer;}
61
+ .is-rtl.flowplayer .fp-fullscreen,.is-rtl.flowplayer .fp-unload,.is-rtl.flowplayer .fp-close{right:auto;left:10px;background-position:18px -197px}
62
+ .flowplayer .fp-unload,.flowplayer .fp-close{background-position:14px -175px;display:none;}
63
+ .is-rtl.flowplayer .fp-unload,.is-rtl.flowplayer .fp-close{background-position:14px -175px}
64
  .flowplayer .fp-play{display:none;width:27px;height:30px;background-position:9px -24px;position:absolute;bottom:0;left:0;}
65
+ .is-rtl.flowplayer .fp-play{background-position:18px -24px;left:auto;right:0}
66
  .play-button.flowplayer .fp-play{display:block}
67
+ .is-paused.flowplayer .fp-play{background-position:9px 7px;}
68
+ .is-rtl.is-paused.flowplayer .fp-play{background-position:18px 7px}
69
  .flowplayer.is-ready.is-closeable .fp-unload{display:block}
70
  .flowplayer.is-ready.is-closeable .fp-fullscreen{display:none}
71
+ .flowplayer.is-fullscreen .fp-fullscreen{background-position:10px -217px;display:block !important;}
72
+ .is-rtl.flowplayer.is-fullscreen .fp-fullscreen{background-position:21px -217px}
73
  .flowplayer.is-fullscreen .fp-unload,.flowplayer.is-fullscreen .fp-close{display:none !important}
74
  .flowplayer .fp-timeline{height:3px;position:relative;overflow:hidden;top:10px;height:10px;margin:0 165px 0 55px;}
75
  .no-volume.flowplayer .fp-timeline{margin-right:75px}
76
+ .no-mute.flowplayer .fp-timeline{margin-right:155px}
77
+ .no-mute.no-volume.flowplayer .fp-timeline{margin-right:55px}
78
  .play-button.flowplayer .fp-timeline{margin-left:72px}
79
+ .is-rtl.flowplayer .fp-timeline{margin:0 55px 0 165px;}
80
+ .no-volume.is-rtl.flowplayer .fp-timeline{margin-left:75px}
81
+ .no-mute.is-rtl.flowplayer .fp-timeline{margin-left:155px}
82
+ .no-mute.no-volume.is-rtl.flowplayer .fp-timeline{margin-left:55px}
83
+ .play-button.is-rtl.flowplayer .fp-timeline{margin-right:72px}
84
  .is-long.flowplayer .fp-timeline{margin:0 195px 0 85px;}
85
  .no-volume.is-long.flowplayer .fp-timeline{margin-right:105px}
86
  .no-mute.is-long.flowplayer .fp-timeline{margin-right:85px}
87
  .play-button.is-long.flowplayer .fp-timeline{margin-left:102px}
88
+ .is-rtl.is-long.flowplayer .fp-timeline{margin:85px 0 195px 0;}
89
+ .no-volume.is-rtl.is-long.flowplayer .fp-timeline{margin-left:105px}
90
+ .no-mute.is-rtl.is-long.flowplayer .fp-timeline{margin-left:85px}
91
+ .play-button.is-rtl.is-long.flowplayer .fp-timeline{margin-left:102px}
92
  .aside-time.flowplayer .fp-timeline,.no-time.flowplayer .fp-timeline{margin:0 120px 0 10px}
93
  .aside-time.no-volume.flowplayer .fp-timeline,.no-time.no-volume.flowplayer .fp-timeline{margin-right:30px}
94
  .aside-time.no-mute.flowplayer .fp-timeline,.no-time.no-mute.flowplayer .fp-timeline{margin-right:10px}
95
  .play-button.no-time.flowplayer .fp-timeline,.play-button.aside-time.flowplayer .fp-timeline{margin-left:27px}
96
+ .is-rtl.aside-time.flowplayer .fp-timeline,.is-rtl.no-time.flowplayer .fp-timeline{margin:0 10px 0 120px}
97
+ .is-rtl.aside-time.no-volume.flowplayer .fp-timeline,.is-rtl.no-time.no-volume.flowplayer .fp-timeline{margin-left:30px}
98
+ .is-rtl.aside-time.no-mute.flowplayer .fp-timeline,.is-rtl.no-time.no-mute.flowplayer .fp-timeline{margin-left:10px}
99
+ .is-rtl.play-button.no-time.flowplayer .fp-timeline,.is-rtl.play-button.aside-time.flowplayer .fp-timeline{margin-right:27px}
100
  .flowplayer .fp-buffer,.flowplayer .fp-progress{position:absolute;top:0;left:auto;height:100%;cursor:col-resize}
101
  .flowplayer .fp-buffer{-webkit-transition:width .25s linear;-moz-transition:width .25s linear;transition:width .25s linear}
102
+ .flowplayer .fp-timeline.no-animation .fp-buffer{-webkit-transition:none;-moz-transition:none;transition:none}
103
+ .flowplayer.is-touch .fp-timeline{overflow:visible}
104
+ .flowplayer.is-touch .fp-progress{-webkit-transition:width .2s linear;-moz-transition:width .2s linear;transition:width .2s linear}
105
+ .flowplayer.is-touch .fp-timeline.is-dragging .fp-progress{-webkit-transition:right .1s linear,border .1s linear,top .1s linear,left .1s linear;-moz-transition:right .1s linear,border .1s linear,top .1s linear,left .1s linear;transition:right .1s linear,border .1s linear,top .1s linear,left .1s linear}
106
+ .flowplayer.is-touch.is-mouseover .fp-progress:after,.flowplayer.is-touch.is-mouseover .fp-progress:before{content:'';display:block;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;position:absolute;right:-5px}
107
+ .flowplayer.is-touch.is-rtl.is-mouseover .fp-progress:after,.flowplayer.is-touch.is-rtl.is-mouseover .fp-progress:before{right:auto;left:-5px}
108
+ .flowplayer.is-touch.is-rtl.is-mouseover .fp-progress:after{left:-10px;-webkit-box-shadow:-1px 0 4px rgba(0,0,0,0.5);-moz-box-shadow:-1px 0 4px rgba(0,0,0,0.5);box-shadow:-1px 0 4px rgba(0,0,0,0.5)}
109
+ .flowplayer.is-touch.is-mouseover .fp-progress:before{width:10px;height:10px}
110
+ .flowplayer.is-touch.is-mouseover .fp-progress:after{height:10px;width:10px;top:-5px;right:-10px;border:5px solid rgba(255,255,255,0.65);-webkit-box-shadow:1px 0 4px rgba(0,0,0,0.5);-moz-box-shadow:1px 0 4px rgba(0,0,0,0.5);box-shadow:1px 0 4px rgba(0,0,0,0.5)}
111
+ .flowplayer.is-touch.is-mouseover .fp-timeline.is-dragging .fp-progress:after{border:10px solid #fff;-webkit-border-radius:20px;-moz-border-radius:20px;border-radius:20px;-webkit-transition:inherit;-moz-transition:inherit;transition:inherit;top:-10px;right:-15px}
112
+ .flowplayer.is-touch.is-rtl.is-mouseover .fp-timeline.is-dragging .fp-progress:after{left:-15px;right:auto;border:10px solid #fff}
113
+ .flowplayer .fp-volume{position:absolute;top:11px;right:10px;}
114
+ .is-rtl.flowplayer .fp-volume{right:auto;left:10px}
115
+ .flowplayer .fp-mute{position:relative;width:10px;height:15px;float:left;top:-3.5px;cursor:pointer;background-position:-2px -99px;}
116
+ .is-rtl.flowplayer .fp-mute{float:right;background-position:-25px -99px}
117
  .no-mute.flowplayer .fp-mute{display:none}
118
  .flowplayer .fp-volumeslider{width:90px;height:8px;cursor:col-resize;float:left;}
119
+ .is-rtl.flowplayer .fp-volumeslider{float:right}
120
  .no-volume.flowplayer .fp-volumeslider{display:none}
121
  .flowplayer .fp-volumelevel{height:100%}
122
  .flowplayer .fp-time{text-shadow:0 0 1px #000;font-size:12px;font-weight:bold;color:#fff;width:100%;}
127
  .is-long.flowplayer .fp-time em{width:65px}
128
  .flowplayer .fp-elapsed{left:10px;}
129
  .play-button.flowplayer .fp-elapsed{left:27px}
130
+ .is-rtl.flowplayer .fp-elapsed{left:auto;right:10px;}
131
+ .play-button.is-rtl.flowplayer .fp-elapsed{right:27px}
132
  .flowplayer .fp-remaining,.flowplayer .fp-duration{right:120px;color:#eee;}
133
  .no-volume.flowplayer .fp-remaining,.no-volume.flowplayer .fp-duration{right:30px}
134
+ .no-mute.flowplayer .fp-remaining,.no-mute.flowplayer .fp-duration{right:110px}
135
+ .no-mute.no-volume.flowplayer .fp-remaining,.no-mute.no-volume.flowplayer .fp-duration{right:10px}
136
+ .is-rtl.flowplayer .fp-remaining,.is-rtl.flowplayer .fp-duration{right:auto;left:120px;}
137
+ .no-volume.is-rtl.flowplayer .fp-remaining,.no-volume.is-rtl.flowplayer .fp-duration{left:30px}
138
+ .no-mute.is-rtl.flowplayer .fp-remaining,.no-mute.is-rtl.flowplayer .fp-duration{left:110px}
139
+ .no-mute.no-volume.is-rtl.flowplayer .fp-remaining,.no-mute.no-volume.is-rtl.flowplayer .fp-duration{left:10px}
140
  .flowplayer .fp-remaining{display:none}
141
  .flowplayer.color-light .fp-time{color:#222;text-shadow:0 0 1px #fff}
142
  .flowplayer.color-light .fp-remaining,.flowplayer.color-light .fp-duration{color:#666}
143
  .flowplayer.aside-time .fp-time{position:absolute;top:10px;left:10px;bottom:auto !important;width:100px;}
144
  .flowplayer.aside-time .fp-time strong,.flowplayer.aside-time .fp-time em{position:static}
145
+ .flowplayer.aside-time .fp-time .fp-elapsed{margin-right:10px;}
146
+ .is-rtl.flowplayer.aside-time .fp-time .fp-elapsed{margin-right:auto;margin-left:10px}
147
  .flowplayer.is-long.aside-time .fp-time{width:130px}
148
  .flowplayer.is-splash,.flowplayer.is-poster{cursor:pointer;}
149
  .flowplayer.is-splash .fp-controls,.flowplayer.is-poster .fp-controls,.flowplayer.is-splash .fp-fullscreen,.flowplayer.is-poster .fp-fullscreen,.flowplayer.is-splash .fp-unload,.flowplayer.is-poster .fp-unload,.flowplayer.is-splash .fp-time,.flowplayer.is-poster .fp-time,.flowplayer.is-splash .fp-embed,.flowplayer.is-poster .fp-embed{display:none !important}
151
  .flowplayer.is-loading .fp-waiting{display:block}
152
  .flowplayer.is-loading .fp-controls,.flowplayer.is-loading .fp-time{display:none}
153
  .flowplayer.is-loading .fp-ui{background-position:-9999em}
154
+ .flowplayer.is-loading video.fp-engine{position:absolute;top:-9999em}
155
  .flowplayer.is-seeking .fp-waiting{display:block}
156
+ .flowplayer.is-playing{background-image:none !important;background-color:#333;}
157
+ .flowplayer.is-playing.hls-fix.is-finished .fp-engine{position:absolute;top:-9999em}
158
+ .flowplayer.is-fullscreen{position:fixed !important;top:0 !important;left:0 !important;border:0 !important;margin:0 !important;width:100% !important;height:100% !important;max-width:100% !important;z-index:99999 !important;-webkit-box-shadow:0 !important;-moz-box-shadow:0 !important;box-shadow:0 !important;background-image:none !important;background-color:#333;}
159
+ .is-rtl.flowplayer.is-fullscreen{left:auto !important;right:0 !important}
160
  .flowplayer.is-error{border:1px solid #909090;background:#fdfdfd !important;}
161
  .flowplayer.is-error h2{font-weight:bold;font-size:large;margin-top:10%}
162
  .flowplayer.is-error .fp-message{display:block}
174
  .flowplayer.fixed-controls .fp-time em{bottom:-20px;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);}
175
  .is-fullscreen.flowplayer.fixed-controls .fp-time em{bottom:10px}
176
  .flowplayer.is-disabled .fp-progress{background-color:#999}
177
+ .flowplayer.is-flash-disabled{background-color:#333;}
178
+ .flowplayer.is-flash-disabled object.fp-engine{z-index:100}
179
+ .flowplayer.is-flash-disabled .fp-flash-disabled{display:block;z-index:101}
180
+ .flowplayer .fp-embed{position:absolute;top:10px;left:10px;display:block;width:25px;height:20px;background-position:3px -237px;}
181
+ .is-rtl.flowplayer .fp-embed{background-position:22px -237px;left:auto;right:10px}
182
  .flowplayer .fp-embed-code{position:absolute;display:none;top:10px;left:40px;background-color:#333;padding:3px 5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 0 3px #ccc;-moz-box-shadow:0 0 3px #ccc;box-shadow:0 0 3px #ccc;font-size:12px;}
183
  .flowplayer .fp-embed-code:before{content:'';width:0;height:0;position:absolute;top:2px;left:-10px;border:5px solid transparent;border-right-color:#333}
184
+ .is-rtl.flowplayer .fp-embed-code{left:auto;right:40px;}
185
+ .is-rtl.flowplayer .fp-embed-code:before{left:auto;right:-10px;border-right-color:transparent;border-left-color:#333}
186
  .flowplayer .fp-embed-code textarea{width:400px;height:16px;font-family:monaco,"courier new",verdana;color:#777;white-space:nowrap;resize:none;overflow:hidden;border:0;outline:0;background-color:transparent;color:#ccc}
187
  .flowplayer .fp-embed-code label{display:block;color:#999}
188
  .flowplayer.is-embedding .fp-embed,.flowplayer.is-embedding .fp-embed-code{display:block;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
189
+ .flowplayer.aside-time .fp-embed{left:100px;}
190
+ .is-rtl.flowplayer.aside-time .fp-embed{left:auto;right:100px}
191
+ .flowplayer.aside-time .fp-embed-code{left:130px;}
192
+ .is-rtl.flowplayer.aside-time .fp-embed-code{left:auto;right:130px}
193
  .flowplayer.aside-time.is-embedding .fp-time{opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
194
+ .flowplayer.is-long.aside-time .fp-embed{left:130px;}
195
+ .is-rtl.flowplayer.is-long.aside-time .fp-embed{left:auto;right:130px}
196
+ .flowplayer.no-time .fp-embed{left:10px !important;}
197
+ .is-rtl.flowplayer.no-time .fp-embed{left:auto;right:10px !important}
198
+ .flowplayer.is-live .fp-timeline,.flowplayer.is-live .fp-duration,.flowplayer.is-live .fp-remaining{display:none}
199
+ .flowplayer .fp-context-menu{position:absolute;display:none;z-index:1001;background-color:#fff;padding:10px;border:1px solid #aaa;-webkit-box-shadow:0 0 4px #888;-moz-box-shadow:0 0 4px #888;box-shadow:0 0 4px #888;width:170px;}
200
+ .flowplayer .fp-context-menu li{text-align:center;padding:10px;color:#444;margin:0 -10px 0 -10px;}
201
+ .flowplayer .fp-context-menu li a{color:#00a7c8;font-size:110%}
202
+ .flowplayer .fp-context-menu li:hover:not(.copyright){background-color:#eee}
203
+ .flowplayer .fp-context-menu li.copyright{margin:0;padding-left:110px;background-image:url("img/flowplayer.png");background-repeat:no-repeat;background-size:100px 20px;background-position:5px 5px;border-bottom:1px solid #bbb;}
204
+ @media (-webkit-min-device-pixel-ratio: 2){.flowplayer .fp-context-menu li.copyright{background-image:url("img/flowplayer@2x.png")}
205
+ }@-moz-keyframes pulse{0%{opacity:0}
206
  100%{opacity:1}
207
  }@-webkit-keyframes pulse{0%{opacity:0}
208
  100%{opacity:1}
216
  .flowplayer .fp-timeline{background-color:#555}
217
  .flowplayer .fp-buffer{background-color:#eee}
218
  .flowplayer .fp-progress{background-color:#4da5d8}
219
+ .flowplayer.is-touch.is-mouseover .fp-progress:before{background-color:#4da5d8}
220
  .flowplayer .fp-volumelevel{background-color:#fff}
221
  .flowplayer .fp-volumeslider{background-color:#555}
222
  .flowplayer .fp-timeline,.flowplayer .fp-volumeslider{border:1px inset;border-color:rgba(0,0,0,0.2) rgba(17,17,17,0.05)}
226
  .flowplayer.color-light .fp-timeline,.flowplayer.color-light .fp-volumeslider{border-color:#eee #ccc}
227
  .flowplayer.color-light .fp-timeline,.flowplayer.color-light .fp-volumeslider{background-color:#ccc;font-size:10px}
228
  .flowplayer.color-alt .fp-progress{background-image:-moz-linear-gradient(#999,#111);background-image:-webkit-gradient(linear,0 0,0 100%,from(#999),to(#111))}
229
+ .flowplayer.color-alt.is-touch.is-mouseover .fp-progress:before{background-image:-moz-linear-gradient(#999,#111);background-image:-webkit-gradient(linear,0 0,0 100%,from(#999),to(#111))}
230
  .flowplayer.color-alt .fp-timeline,.flowplayer.color-alt .fp-volumeslider{background-color:#111}
231
  .flowplayer.color-alt2 .fp-progress{background-color:#900}
232
+ .flowplayer.color-alt2.is-touch.is-mouseover .fp-progress:before{background-color:#900}
lib/skin/img/black.png ADDED
Binary file
lib/skin/img/black@x2.png ADDED
Binary file
lib/skin/img/black_rtl.png ADDED
Binary file
lib/skin/img/black_rtl@x2.png ADDED
Binary file
lib/skin/img/flowplayer.png ADDED
Binary file
lib/skin/img/flowplayer@2x.png ADDED
Binary file
lib/skin/img/play_black.png ADDED
Binary file
lib/skin/img/play_black@x2.png ADDED
Binary file
lib/skin/img/play_black_rtl.png ADDED
Binary file
lib/skin/img/play_black_rtl@x2.png ADDED
Binary file
lib/skin/img/play_white.png ADDED
Binary file
lib/skin/img/play_white@x2.png ADDED
Binary file
lib/skin/img/play_white_rtl.png ADDED
Binary file
lib/skin/img/play_white_rtl@x2.png ADDED
Binary file
lib/skin/img/playful_black.png ADDED
Binary file
lib/{img → skin/img}/playful_black@x2.png RENAMED
File without changes
lib/skin/img/playful_black_rtl.png ADDED
Binary file
lib/skin/img/playful_black_rtl@x2.png ADDED
Binary file
lib/skin/img/playful_white.png ADDED
Binary file
lib/{img → skin/img}/playful_white@x2.png RENAMED
File without changes
lib/skin/img/playful_white_rtl.png ADDED
Binary file
lib/skin/img/playful_white_rtl@x2.png ADDED
Binary file
lib/skin/img/white.png ADDED
Binary file
lib/skin/img/white@x2.png ADDED
Binary file
lib/skin/img/white_rtl.png ADDED
Binary file
lib/skin/img/white_rtl@x2.png ADDED
Binary file
lib/{minimalist.css → skin/minimalist.css} RENAMED
@@ -1,4 +1,4 @@
1
- .flowplayer{position:relative;width:100%;text-align:left;background-size:contain;background-repeat:no-repeat;background-position:center center;display:inline-block;}
2
  .flowplayer *{font-weight:inherit;font-family:inherit;font-style:inherit;text-decoration:inherit;font-size:100%;padding:0;border:0;margin:0;list-style-type:none}
3
  .flowplayer a:focus{outline:0}
4
  .flowplayer video{width:100%}
@@ -23,7 +23,7 @@
23
  .flowplayer .fp-speed.fp-hilite{opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
24
  .flowplayer .fp-help{position:absolute;top:0;left:-9999em;z-index:100;background-color:#333;background-color:rgba(51,51,51,0.9);width:100%;height:100%;opacity:0;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);-webkit-transition:opacity .2s;-moz-transition:opacity .2s;transition:opacity .2s;text-align:center;}
25
  .is-help.flowplayer .fp-help{left:0;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
26
- .flowplayer .fp-help .fp-help-section{margin:3%}
27
  .flowplayer .fp-help .fp-help-basics{margin-top:6%}
28
  .flowplayer .fp-help p{color:#eee;margin:.5em 0;font-size:14px;line-height:1.5;display:inline-block;margin:1% 2%}
29
  .flowplayer .fp-help em{background:#eee;-webkit-border-radius:.3em;-moz-border-radius:.3em;border-radius:.3em;margin-right:.4em;padding:.3em .6em;color:#333}
@@ -35,46 +35,88 @@
35
  .flowplayer .fp-subtitle p:after{content:'';clear:both}
36
  .flowplayer .fp-subtitle.fp-active{left:0;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
37
  .flowplayer .fp-fullscreen,.flowplayer .fp-unload,.flowplayer .fp-mute,.flowplayer .fp-embed,.flowplayer .fp-close,.flowplayer .fp-play{background-image:url(img/white.png);background-size:37px 300px;}
 
38
  .color-light.flowplayer .fp-fullscreen,.color-light.flowplayer .fp-unload,.color-light.flowplayer .fp-mute,.color-light.flowplayer .fp-embed,.color-light.flowplayer .fp-close,.color-light.flowplayer .fp-play{background-image:url(img/black.png);}
 
39
  @media (-webkit-min-device-pixel-ratio: 2){.color-light.flowplayer .fp-fullscreen,.color-light.flowplayer .fp-unload,.color-light.flowplayer .fp-mute,.color-light.flowplayer .fp-embed,.color-light.flowplayer .fp-close,.color-light.flowplayer .fp-play{background-image:url(img/black@x2.png)}
 
40
  }@media (-webkit-min-device-pixel-ratio: 2){.flowplayer .fp-fullscreen,.flowplayer .fp-unload,.flowplayer .fp-mute,.flowplayer .fp-embed,.flowplayer .fp-close,.flowplayer .fp-play{background-image:url(img/white@x2.png)}
41
- }.is-splash.flowplayer .fp-ui,.is-paused.flowplayer .fp-ui{background:url(img/play_white.png) center no-repeat;background-size:12%;}
 
 
 
42
  @media (-webkit-min-device-pixel-ratio: 2){.is-splash.flowplayer .fp-ui,.is-paused.flowplayer .fp-ui{background:url(img/play_white@x2.png) center no-repeat;background-size:12%}
43
- }.color-light.is-splash.flowplayer .fp-ui,.color-light.is-paused.flowplayer .fp-ui{background-image:url(img/play_black.png)}
44
- @media (-webkit-min-device-pixel-ratio: 2){.color-light.is-splash.flowplayer .fp-ui,.color-light.is-paused.flowplayer .fp-ui{background-image:url(img/play_black@x2.png)}
 
 
 
45
  }.is-fullscreen.flowplayer .fp-ui{background-size:auto}
46
  .is-seeking.flowplayer .fp-ui,.is-loading.flowplayer .fp-ui{background-image:none}
47
  .flowplayer .fp-logo{position:absolute;top:auto;left:15px;bottom:30px;cursor:pointer;display:none;z-index:100;}
48
  .flowplayer .fp-logo img{width:100%}
49
  .is-embedded.flowplayer .fp-logo{display:block}
50
  .fixed-controls.flowplayer .fp-logo{bottom:15px}
51
- .flowplayer .fp-fullscreen,.flowplayer .fp-unload,.flowplayer .fp-close{position:absolute;top:5px;left:auto;right:5px;display:block;width:30px;height:23px;background-position:12px -197px;cursor:pointer}
52
- .flowplayer .fp-unload,.flowplayer .fp-close{background-position:14px -175px;display:none}
 
 
53
  .flowplayer .fp-play{display:none;width:27px;height:20px;background-position:9px -24px;position:absolute;bottom:0;left:0;}
 
54
  .play-button.flowplayer .fp-play{display:block}
55
- .is-paused.flowplayer .fp-play{background-position:9px 7px}
 
56
  .flowplayer.is-ready.is-closeable .fp-unload{display:block}
57
  .flowplayer.is-ready.is-closeable .fp-fullscreen{display:none}
58
- .flowplayer.is-fullscreen .fp-fullscreen{background-position:10px -217px;display:block !important}
 
59
  .flowplayer.is-fullscreen .fp-unload,.flowplayer.is-fullscreen .fp-close{display:none !important}
60
  .flowplayer .fp-timeline{height:3px;position:relative;overflow:hidden;top:5px;height:10px;margin:0 150px 0 45px;}
61
  .no-volume.flowplayer .fp-timeline{margin-right:60px}
62
- .no-mute.flowplayer .fp-timeline{margin-right:45px}
 
63
  .play-button.flowplayer .fp-timeline{margin-left:67px}
 
 
 
 
 
64
  .is-long.flowplayer .fp-timeline{margin:0 180px 0 75px;}
65
  .no-volume.is-long.flowplayer .fp-timeline{margin-right:90px}
66
  .no-mute.is-long.flowplayer .fp-timeline{margin-right:75px}
67
  .play-button.is-long.flowplayer .fp-timeline{margin-left:97px}
 
 
 
 
68
  .aside-time.flowplayer .fp-timeline,.no-time.flowplayer .fp-timeline{margin:0 110px 0 5px}
69
  .aside-time.no-volume.flowplayer .fp-timeline,.no-time.no-volume.flowplayer .fp-timeline{margin-right:20px}
70
  .aside-time.no-mute.flowplayer .fp-timeline,.no-time.no-mute.flowplayer .fp-timeline{margin-right:5px}
71
  .play-button.no-time.flowplayer .fp-timeline,.play-button.aside-time.flowplayer .fp-timeline{margin-left:27px}
 
 
 
 
72
  .flowplayer .fp-buffer,.flowplayer .fp-progress{position:absolute;top:0;left:auto;height:100%;cursor:col-resize}
73
  .flowplayer .fp-buffer{-webkit-transition:width .25s linear;-moz-transition:width .25s linear;transition:width .25s linear}
74
- .flowplayer .fp-volume{position:absolute;top:7.5px;right:5px}
75
- .flowplayer .fp-mute{width:10px;height:15px;float:left;position:relative;top:-5px;left:;cursor:pointer;background-position:-2px -99px;}
 
 
 
 
 
 
 
 
 
 
 
 
 
76
  .no-mute.flowplayer .fp-mute{display:none}
77
  .flowplayer .fp-volumeslider{width:90px;height:5px;cursor:col-resize;float:left;}
 
78
  .no-volume.flowplayer .fp-volumeslider{display:none}
79
  .flowplayer .fp-volumelevel{height:100%}
80
  .flowplayer .fp-time{text-shadow:0 0 1px #000;font-size:12px;font-weight:bold;color:#fff;width:100%;}
@@ -85,15 +127,23 @@
85
  .is-long.flowplayer .fp-time em{width:65px}
86
  .flowplayer .fp-elapsed{left:5px;}
87
  .play-button.flowplayer .fp-elapsed{left:27px}
 
 
88
  .flowplayer .fp-remaining,.flowplayer .fp-duration{right:110px;color:#eee;}
89
  .no-volume.flowplayer .fp-remaining,.no-volume.flowplayer .fp-duration{right:20px}
90
- .no-mute.flowplayer .fp-remaining,.no-mute.flowplayer .fp-duration{right:5px}
 
 
 
 
 
91
  .flowplayer .fp-remaining{display:none}
92
  .flowplayer.color-light .fp-time{color:#222;text-shadow:0 0 1px #fff}
93
  .flowplayer.color-light .fp-remaining,.flowplayer.color-light .fp-duration{color:#666}
94
  .flowplayer.aside-time .fp-time{position:absolute;top:5px;left:5px;bottom:auto !important;width:85px;}
95
  .flowplayer.aside-time .fp-time strong,.flowplayer.aside-time .fp-time em{position:static}
96
- .flowplayer.aside-time .fp-time .fp-elapsed{margin-right:5px}
 
97
  .flowplayer.is-long.aside-time .fp-time{width:130px}
98
  .flowplayer.is-splash,.flowplayer.is-poster{cursor:pointer;}
99
  .flowplayer.is-splash .fp-controls,.flowplayer.is-poster .fp-controls,.flowplayer.is-splash .fp-fullscreen,.flowplayer.is-poster .fp-fullscreen,.flowplayer.is-splash .fp-unload,.flowplayer.is-poster .fp-unload,.flowplayer.is-splash .fp-time,.flowplayer.is-poster .fp-time,.flowplayer.is-splash .fp-embed,.flowplayer.is-poster .fp-embed{display:none !important}
@@ -101,8 +151,12 @@
101
  .flowplayer.is-loading .fp-waiting{display:block}
102
  .flowplayer.is-loading .fp-controls,.flowplayer.is-loading .fp-time{display:none}
103
  .flowplayer.is-loading .fp-ui{background-position:-9999em}
 
104
  .flowplayer.is-seeking .fp-waiting{display:block}
105
- .flowplayer.is-fullscreen{position:fixed !important;top:0 !important;left:0 !important;border:0 !important;margin:0 !important;width:100% !important;height:100% !important;max-width:100% !important;z-index:99999 !important;-webkit-box-shadow:0 !important;-moz-box-shadow:0 !important;box-shadow:0 !important;background-image:none !important;background-color:#333}
 
 
 
106
  .flowplayer.is-error{border:1px solid #909090;background:#fdfdfd !important;}
107
  .flowplayer.is-error h2{font-weight:bold;font-size:large;margin-top:10%}
108
  .flowplayer.is-error .fp-message{display:block}
@@ -120,18 +174,35 @@
120
  .flowplayer.fixed-controls .fp-time em{bottom:-15px;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);}
121
  .is-fullscreen.flowplayer.fixed-controls .fp-time em{bottom:5px}
122
  .flowplayer.is-disabled .fp-progress{background-color:#999}
123
- .flowplayer .fp-embed{position:absolute;top:5px;left:5px;display:block;width:25px;height:20px;background-position:3px -237px}
 
 
 
 
124
  .flowplayer .fp-embed-code{position:absolute;display:none;top:10px;left:40px;background-color:#333;padding:3px 5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 0 3px #ccc;-moz-box-shadow:0 0 3px #ccc;box-shadow:0 0 3px #ccc;font-size:12px;}
125
  .flowplayer .fp-embed-code:before{content:'';width:0;height:0;position:absolute;top:2px;left:-10px;border:5px solid transparent;border-right-color:#333}
 
 
126
  .flowplayer .fp-embed-code textarea{width:400px;height:16px;font-family:monaco,"courier new",verdana;color:#777;white-space:nowrap;resize:none;overflow:hidden;border:0;outline:0;background-color:transparent;color:#ccc}
127
  .flowplayer .fp-embed-code label{display:block;color:#999}
128
  .flowplayer.is-embedding .fp-embed,.flowplayer.is-embedding .fp-embed-code{display:block;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
129
- .flowplayer.aside-time .fp-embed{left:85px}
130
- .flowplayer.aside-time .fp-embed-code{left:115px}
 
 
131
  .flowplayer.aside-time.is-embedding .fp-time{opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
132
- .flowplayer.is-long.aside-time .fp-embed{left:130px}
133
- .flowplayer.no-time .fp-embed{left:5px !important}
134
- @-moz-keyframes pulse{0%{opacity:0}
 
 
 
 
 
 
 
 
 
135
  100%{opacity:1}
136
  }@-webkit-keyframes pulse{0%{opacity:0}
137
  100%{opacity:1}
@@ -149,10 +220,13 @@
149
  .flowplayer .fp-volumeslider{background-color:#000}
150
  .flowplayer .fp-volumelevel{background-color:#fff}
151
  .flowplayer .fp-play{height:24px}
 
152
  .flowplayer.color-light .fp-controls{background-color:rgba(255,255,255,0.6)}
153
  .flowplayer.color-light.fixed-controls .fp-controls{background-color:#fff}
154
  .flowplayer.color-light .fp-volumeslider{background-color:#ddd}
155
  .flowplayer.color-light .fp-volumelevel{background-color:#222}
156
  .flowplayer.color-alt .fp-progress{background-color:#fff}
 
157
  .flowplayer.color-alt .fp-buffer{background-color:#999}
158
  .flowplayer.color-alt2 .fp-progress{background-color:#900}
 
1
+ .flowplayer{position:relative;width:100%;background-size:contain;background-repeat:no-repeat;background-position:center center;display:inline-block;}
2
  .flowplayer *{font-weight:inherit;font-family:inherit;font-style:inherit;text-decoration:inherit;font-size:100%;padding:0;border:0;margin:0;list-style-type:none}
3
  .flowplayer a:focus{outline:0}
4
  .flowplayer video{width:100%}
23
  .flowplayer .fp-speed.fp-hilite{opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
24
  .flowplayer .fp-help{position:absolute;top:0;left:-9999em;z-index:100;background-color:#333;background-color:rgba(51,51,51,0.9);width:100%;height:100%;opacity:0;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);-webkit-transition:opacity .2s;-moz-transition:opacity .2s;transition:opacity .2s;text-align:center;}
25
  .is-help.flowplayer .fp-help{left:0;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
26
+ .flowplayer .fp-help .fp-help-section{margin:3%;direction:ltr}
27
  .flowplayer .fp-help .fp-help-basics{margin-top:6%}
28
  .flowplayer .fp-help p{color:#eee;margin:.5em 0;font-size:14px;line-height:1.5;display:inline-block;margin:1% 2%}
29
  .flowplayer .fp-help em{background:#eee;-webkit-border-radius:.3em;-moz-border-radius:.3em;border-radius:.3em;margin-right:.4em;padding:.3em .6em;color:#333}
35
  .flowplayer .fp-subtitle p:after{content:'';clear:both}
36
  .flowplayer .fp-subtitle.fp-active{left:0;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
37
  .flowplayer .fp-fullscreen,.flowplayer .fp-unload,.flowplayer .fp-mute,.flowplayer .fp-embed,.flowplayer .fp-close,.flowplayer .fp-play{background-image:url(img/white.png);background-size:37px 300px;}
38
+ .is-rtl.flowplayer .fp-fullscreen,.is-rtl.flowplayer .fp-unload,.is-rtl.flowplayer .fp-mute,.is-rtl.flowplayer .fp-embed,.is-rtl.flowplayer .fp-close,.is-rtl.flowplayer .fp-play{background-image:url(img/white_rtl.png)}
39
  .color-light.flowplayer .fp-fullscreen,.color-light.flowplayer .fp-unload,.color-light.flowplayer .fp-mute,.color-light.flowplayer .fp-embed,.color-light.flowplayer .fp-close,.color-light.flowplayer .fp-play{background-image:url(img/black.png);}
40
+ .is-rtl.color-light.flowplayer .fp-fullscreen,.is-rtl.color-light.flowplayer .fp-unload,.is-rtl.color-light.flowplayer .fp-mute,.is-rtl.color-light.flowplayer .fp-embed,.is-rtl.color-light.flowplayer .fp-close,.is-rtl.color-light.flowplayer .fp-play{background-image:url(img/black_rtl.png)}
41
  @media (-webkit-min-device-pixel-ratio: 2){.color-light.flowplayer .fp-fullscreen,.color-light.flowplayer .fp-unload,.color-light.flowplayer .fp-mute,.color-light.flowplayer .fp-embed,.color-light.flowplayer .fp-close,.color-light.flowplayer .fp-play{background-image:url(img/black@x2.png)}
42
+ .is-rtl.color-light.flowplayer .fp-fullscreen,.is-rtl.color-light.flowplayer .fp-unload,.is-rtl.color-light.flowplayer .fp-mute,.is-rtl.color-light.flowplayer .fp-embed,.is-rtl.color-light.flowplayer .fp-close,.is-rtl.color-light.flowplayer .fp-play{background-image:url(img/black_rtl@x2.png)}
43
  }@media (-webkit-min-device-pixel-ratio: 2){.flowplayer .fp-fullscreen,.flowplayer .fp-unload,.flowplayer .fp-mute,.flowplayer .fp-embed,.flowplayer .fp-close,.flowplayer .fp-play{background-image:url(img/white@x2.png)}
44
+ .is-rtl.flowplayer .fp-fullscreen,.is-rtl.flowplayer .fp-unload,.is-rtl.flowplayer .fp-mute,.is-rtl.flowplayer .fp-embed,.is-rtl.flowplayer .fp-close,.is-rtl.flowplayer .fp-play{background-image:url(img/white_rtl@x2.png)}
45
+ }.flowplayer .fp-flash-disabled{background:#333;width:390px;margin:0 auto;position:absolute;bottom:0;color:#fff}
46
+ .is-splash.flowplayer .fp-ui,.is-paused.flowplayer .fp-ui{background:url(img/play_white.png) center no-repeat;background-size:12%;}
47
+ .is-rtl.is-splash.flowplayer .fp-ui,.is-rtl.is-paused.flowplayer .fp-ui{background:url(img/play_white_rtl.png) center no-repeat;background-size:12%}
48
  @media (-webkit-min-device-pixel-ratio: 2){.is-splash.flowplayer .fp-ui,.is-paused.flowplayer .fp-ui{background:url(img/play_white@x2.png) center no-repeat;background-size:12%}
49
+ .is-rtl.is-splash.flowplayer .fp-ui,.is-rtl.is-paused.flowplayer .fp-ui{background:url(img/play_white_rtl@x2.png) center no-repeat;background-size:12%}
50
+ }.color-light.is-splash.flowplayer .fp-ui,.color-light.is-paused.flowplayer .fp-ui{background-image:url(img/play_black.png);}
51
+ .is-rtl.color-light.is-splash.flowplayer .fp-ui,.is-rtl.color-light.is-paused.flowplayer .fp-ui{background-image:url(img/play_black_rtl.png)}
52
+ @media (-webkit-min-device-pixel-ratio: 2){.color-light.is-splash.flowplayer .fp-ui,.color-light.is-paused.flowplayer .fp-ui{background-image:url(img/play_black@x2.png);}
53
+ .is-rtl.color-light.is-splash.flowplayer .fp-ui,.is-rtl.color-light.is-paused.flowplayer .fp-ui{background-image:url(img/play_black_rtl@x2.png)}
54
  }.is-fullscreen.flowplayer .fp-ui{background-size:auto}
55
  .is-seeking.flowplayer .fp-ui,.is-loading.flowplayer .fp-ui{background-image:none}
56
  .flowplayer .fp-logo{position:absolute;top:auto;left:15px;bottom:30px;cursor:pointer;display:none;z-index:100;}
57
  .flowplayer .fp-logo img{width:100%}
58
  .is-embedded.flowplayer .fp-logo{display:block}
59
  .fixed-controls.flowplayer .fp-logo{bottom:15px}
60
+ .flowplayer .fp-fullscreen,.flowplayer .fp-unload,.flowplayer .fp-close{position:absolute;top:5px;left:auto;right:5px;display:block;width:30px;height:23px;background-position:12px -197px;cursor:pointer;}
61
+ .is-rtl.flowplayer .fp-fullscreen,.is-rtl.flowplayer .fp-unload,.is-rtl.flowplayer .fp-close{right:auto;left:5px;background-position:18px -197px}
62
+ .flowplayer .fp-unload,.flowplayer .fp-close{background-position:14px -175px;display:none;}
63
+ .is-rtl.flowplayer .fp-unload,.is-rtl.flowplayer .fp-close{background-position:14px -175px}
64
  .flowplayer .fp-play{display:none;width:27px;height:20px;background-position:9px -24px;position:absolute;bottom:0;left:0;}
65
+ .is-rtl.flowplayer .fp-play{background-position:18px -24px;left:auto;right:0}
66
  .play-button.flowplayer .fp-play{display:block}
67
+ .is-paused.flowplayer .fp-play{background-position:9px 7px;}
68
+ .is-rtl.is-paused.flowplayer .fp-play{background-position:18px 7px}
69
  .flowplayer.is-ready.is-closeable .fp-unload{display:block}
70
  .flowplayer.is-ready.is-closeable .fp-fullscreen{display:none}
71
+ .flowplayer.is-fullscreen .fp-fullscreen{background-position:10px -217px;display:block !important;}
72
+ .is-rtl.flowplayer.is-fullscreen .fp-fullscreen{background-position:21px -217px}
73
  .flowplayer.is-fullscreen .fp-unload,.flowplayer.is-fullscreen .fp-close{display:none !important}
74
  .flowplayer .fp-timeline{height:3px;position:relative;overflow:hidden;top:5px;height:10px;margin:0 150px 0 45px;}
75
  .no-volume.flowplayer .fp-timeline{margin-right:60px}
76
+ .no-mute.flowplayer .fp-timeline{margin-right:140px}
77
+ .no-mute.no-volume.flowplayer .fp-timeline{margin-right:45px}
78
  .play-button.flowplayer .fp-timeline{margin-left:67px}
79
+ .is-rtl.flowplayer .fp-timeline{margin:0 45px 0 150px;}
80
+ .no-volume.is-rtl.flowplayer .fp-timeline{margin-left:60px}
81
+ .no-mute.is-rtl.flowplayer .fp-timeline{margin-left:140px}
82
+ .no-mute.no-volume.is-rtl.flowplayer .fp-timeline{margin-left:45px}
83
+ .play-button.is-rtl.flowplayer .fp-timeline{margin-right:67px}
84
  .is-long.flowplayer .fp-timeline{margin:0 180px 0 75px;}
85
  .no-volume.is-long.flowplayer .fp-timeline{margin-right:90px}
86
  .no-mute.is-long.flowplayer .fp-timeline{margin-right:75px}
87
  .play-button.is-long.flowplayer .fp-timeline{margin-left:97px}
88
+ .is-rtl.is-long.flowplayer .fp-timeline{margin:75px 0 180px 0;}
89
+ .no-volume.is-rtl.is-long.flowplayer .fp-timeline{margin-left:90px}
90
+ .no-mute.is-rtl.is-long.flowplayer .fp-timeline{margin-left:75px}
91
+ .play-button.is-rtl.is-long.flowplayer .fp-timeline{margin-left:97px}
92
  .aside-time.flowplayer .fp-timeline,.no-time.flowplayer .fp-timeline{margin:0 110px 0 5px}
93
  .aside-time.no-volume.flowplayer .fp-timeline,.no-time.no-volume.flowplayer .fp-timeline{margin-right:20px}
94
  .aside-time.no-mute.flowplayer .fp-timeline,.no-time.no-mute.flowplayer .fp-timeline{margin-right:5px}
95
  .play-button.no-time.flowplayer .fp-timeline,.play-button.aside-time.flowplayer .fp-timeline{margin-left:27px}
96
+ .is-rtl.aside-time.flowplayer .fp-timeline,.is-rtl.no-time.flowplayer .fp-timeline{margin:0 5px 0 110px}
97
+ .is-rtl.aside-time.no-volume.flowplayer .fp-timeline,.is-rtl.no-time.no-volume.flowplayer .fp-timeline{margin-left:20px}
98
+ .is-rtl.aside-time.no-mute.flowplayer .fp-timeline,.is-rtl.no-time.no-mute.flowplayer .fp-timeline{margin-left:5px}
99
+ .is-rtl.play-button.no-time.flowplayer .fp-timeline,.is-rtl.play-button.aside-time.flowplayer .fp-timeline{margin-right:27px}
100
  .flowplayer .fp-buffer,.flowplayer .fp-progress{position:absolute;top:0;left:auto;height:100%;cursor:col-resize}
101
  .flowplayer .fp-buffer{-webkit-transition:width .25s linear;-moz-transition:width .25s linear;transition:width .25s linear}
102
+ .flowplayer .fp-timeline.no-animation .fp-buffer{-webkit-transition:none;-moz-transition:none;transition:none}
103
+ .flowplayer.is-touch .fp-timeline{overflow:visible}
104
+ .flowplayer.is-touch .fp-progress{-webkit-transition:width .2s linear;-moz-transition:width .2s linear;transition:width .2s linear}
105
+ .flowplayer.is-touch .fp-timeline.is-dragging .fp-progress{-webkit-transition:right .1s linear,border .1s linear,top .1s linear,left .1s linear;-moz-transition:right .1s linear,border .1s linear,top .1s linear,left .1s linear;transition:right .1s linear,border .1s linear,top .1s linear,left .1s linear}
106
+ .flowplayer.is-touch.is-mouseover .fp-progress:after,.flowplayer.is-touch.is-mouseover .fp-progress:before{content:'';display:block;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;position:absolute;right:-5px}
107
+ .flowplayer.is-touch.is-rtl.is-mouseover .fp-progress:after,.flowplayer.is-touch.is-rtl.is-mouseover .fp-progress:before{right:auto;left:-5px}
108
+ .flowplayer.is-touch.is-rtl.is-mouseover .fp-progress:after{left:-10px;-webkit-box-shadow:-1px 0 4px rgba(0,0,0,0.5);-moz-box-shadow:-1px 0 4px rgba(0,0,0,0.5);box-shadow:-1px 0 4px rgba(0,0,0,0.5)}
109
+ .flowplayer.is-touch.is-mouseover .fp-progress:before{width:10px;height:10px}
110
+ .flowplayer.is-touch.is-mouseover .fp-progress:after{height:10px;width:10px;top:-5px;right:-10px;border:5px solid rgba(255,255,255,0.65);-webkit-box-shadow:1px 0 4px rgba(0,0,0,0.5);-moz-box-shadow:1px 0 4px rgba(0,0,0,0.5);box-shadow:1px 0 4px rgba(0,0,0,0.5)}
111
+ .flowplayer.is-touch.is-mouseover .fp-timeline.is-dragging .fp-progress:after{border:10px solid #fff;-webkit-border-radius:20px;-moz-border-radius:20px;border-radius:20px;-webkit-transition:inherit;-moz-transition:inherit;transition:inherit;top:-10px;right:-15px}
112
+ .flowplayer.is-touch.is-rtl.is-mouseover .fp-timeline.is-dragging .fp-progress:after{left:-15px;right:auto;border:10px solid #fff}
113
+ .flowplayer .fp-volume{position:absolute;top:7.5px;right:5px;}
114
+ .is-rtl.flowplayer .fp-volume{right:auto;left:5px}
115
+ .flowplayer .fp-mute{position:relative;width:10px;height:15px;float:left;top:-5px;cursor:pointer;background-position:-2px -99px;}
116
+ .is-rtl.flowplayer .fp-mute{float:right;background-position:-25px -99px}
117
  .no-mute.flowplayer .fp-mute{display:none}
118
  .flowplayer .fp-volumeslider{width:90px;height:5px;cursor:col-resize;float:left;}
119
+ .is-rtl.flowplayer .fp-volumeslider{float:right}
120
  .no-volume.flowplayer .fp-volumeslider{display:none}
121
  .flowplayer .fp-volumelevel{height:100%}
122
  .flowplayer .fp-time{text-shadow:0 0 1px #000;font-size:12px;font-weight:bold;color:#fff;width:100%;}
127
  .is-long.flowplayer .fp-time em{width:65px}
128
  .flowplayer .fp-elapsed{left:5px;}
129
  .play-button.flowplayer .fp-elapsed{left:27px}
130
+ .is-rtl.flowplayer .fp-elapsed{left:auto;right:5px;}
131
+ .play-button.is-rtl.flowplayer .fp-elapsed{right:27px}
132
  .flowplayer .fp-remaining,.flowplayer .fp-duration{right:110px;color:#eee;}
133
  .no-volume.flowplayer .fp-remaining,.no-volume.flowplayer .fp-duration{right:20px}
134
+ .no-mute.flowplayer .fp-remaining,.no-mute.flowplayer .fp-duration{right:100px}
135
+ .no-mute.no-volume.flowplayer .fp-remaining,.no-mute.no-volume.flowplayer .fp-duration{right:5px}
136
+ .is-rtl.flowplayer .fp-remaining,.is-rtl.flowplayer .fp-duration{right:auto;left:110px;}
137
+ .no-volume.is-rtl.flowplayer .fp-remaining,.no-volume.is-rtl.flowplayer .fp-duration{left:20px}
138
+ .no-mute.is-rtl.flowplayer .fp-remaining,.no-mute.is-rtl.flowplayer .fp-duration{left:100px}
139
+ .no-mute.no-volume.is-rtl.flowplayer .fp-remaining,.no-mute.no-volume.is-rtl.flowplayer .fp-duration{left:5px}
140
  .flowplayer .fp-remaining{display:none}
141
  .flowplayer.color-light .fp-time{color:#222;text-shadow:0 0 1px #fff}
142
  .flowplayer.color-light .fp-remaining,.flowplayer.color-light .fp-duration{color:#666}
143
  .flowplayer.aside-time .fp-time{position:absolute;top:5px;left:5px;bottom:auto !important;width:85px;}
144
  .flowplayer.aside-time .fp-time strong,.flowplayer.aside-time .fp-time em{position:static}
145
+ .flowplayer.aside-time .fp-time .fp-elapsed{margin-right:5px;}
146
+ .is-rtl.flowplayer.aside-time .fp-time .fp-elapsed{margin-right:auto;margin-left:5px}
147
  .flowplayer.is-long.aside-time .fp-time{width:130px}
148
  .flowplayer.is-splash,.flowplayer.is-poster{cursor:pointer;}
149
  .flowplayer.is-splash .fp-controls,.flowplayer.is-poster .fp-controls,.flowplayer.is-splash .fp-fullscreen,.flowplayer.is-poster .fp-fullscreen,.flowplayer.is-splash .fp-unload,.flowplayer.is-poster .fp-unload,.flowplayer.is-splash .fp-time,.flowplayer.is-poster .fp-time,.flowplayer.is-splash .fp-embed,.flowplayer.is-poster .fp-embed{display:none !important}
151
  .flowplayer.is-loading .fp-waiting{display:block}
152
  .flowplayer.is-loading .fp-controls,.flowplayer.is-loading .fp-time{display:none}
153
  .flowplayer.is-loading .fp-ui{background-position:-9999em}
154
+ .flowplayer.is-loading video.fp-engine{position:absolute;top:-9999em}
155
  .flowplayer.is-seeking .fp-waiting{display:block}
156
+ .flowplayer.is-playing{background-image:none !important;background-color:#333;}
157
+ .flowplayer.is-playing.hls-fix.is-finished .fp-engine{position:absolute;top:-9999em}
158
+ .flowplayer.is-fullscreen{position:fixed !important;top:0 !important;left:0 !important;border:0 !important;margin:0 !important;width:100% !important;height:100% !important;max-width:100% !important;z-index:99999 !important;-webkit-box-shadow:0 !important;-moz-box-shadow:0 !important;box-shadow:0 !important;background-image:none !important;background-color:#333;}
159
+ .is-rtl.flowplayer.is-fullscreen{left:auto !important;right:0 !important}
160
  .flowplayer.is-error{border:1px solid #909090;background:#fdfdfd !important;}
161
  .flowplayer.is-error h2{font-weight:bold;font-size:large;margin-top:10%}
162
  .flowplayer.is-error .fp-message{display:block}
174
  .flowplayer.fixed-controls .fp-time em{bottom:-15px;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);}
175
  .is-fullscreen.flowplayer.fixed-controls .fp-time em{bottom:5px}
176
  .flowplayer.is-disabled .fp-progress{background-color:#999}
177
+ .flowplayer.is-flash-disabled{background-color:#333;}
178
+ .flowplayer.is-flash-disabled object.fp-engine{z-index:100}
179
+ .flowplayer.is-flash-disabled .fp-flash-disabled{display:block;z-index:101}
180
+ .flowplayer .fp-embed{position:absolute;top:5px;left:5px;display:block;width:25px;height:20px;background-position:3px -237px;}
181
+ .is-rtl.flowplayer .fp-embed{background-position:22px -237px;left:auto;right:5px}
182
  .flowplayer .fp-embed-code{position:absolute;display:none;top:10px;left:40px;background-color:#333;padding:3px 5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 0 3px #ccc;-moz-box-shadow:0 0 3px #ccc;box-shadow:0 0 3px #ccc;font-size:12px;}
183
  .flowplayer .fp-embed-code:before{content:'';width:0;height:0;position:absolute;top:2px;left:-10px;border:5px solid transparent;border-right-color:#333}
184
+ .is-rtl.flowplayer .fp-embed-code{left:auto;right:40px;}
185
+ .is-rtl.flowplayer .fp-embed-code:before{left:auto;right:-10px;border-right-color:transparent;border-left-color:#333}
186
  .flowplayer .fp-embed-code textarea{width:400px;height:16px;font-family:monaco,"courier new",verdana;color:#777;white-space:nowrap;resize:none;overflow:hidden;border:0;outline:0;background-color:transparent;color:#ccc}
187
  .flowplayer .fp-embed-code label{display:block;color:#999}
188
  .flowplayer.is-embedding .fp-embed,.flowplayer.is-embedding .fp-embed-code{display:block;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
189
+ .flowplayer.aside-time .fp-embed{left:85px;}
190
+ .is-rtl.flowplayer.aside-time .fp-embed{left:auto;right:85px}
191
+ .flowplayer.aside-time .fp-embed-code{left:115px;}
192
+ .is-rtl.flowplayer.aside-time .fp-embed-code{left:auto;right:115px}
193
  .flowplayer.aside-time.is-embedding .fp-time{opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
194
+ .flowplayer.is-long.aside-time .fp-embed{left:130px;}
195
+ .is-rtl.flowplayer.is-long.aside-time .fp-embed{left:auto;right:130px}
196
+ .flowplayer.no-time .fp-embed{left:5px !important;}
197
+ .is-rtl.flowplayer.no-time .fp-embed{left:auto;right:5px !important}
198
+ .flowplayer.is-live .fp-timeline,.flowplayer.is-live .fp-duration,.flowplayer.is-live .fp-remaining{display:none}
199
+ .flowplayer .fp-context-menu{position:absolute;display:none;z-index:1001;background-color:#fff;padding:10px;border:1px solid #aaa;-webkit-box-shadow:0 0 4px #888;-moz-box-shadow:0 0 4px #888;box-shadow:0 0 4px #888;width:170px;}
200
+ .flowplayer .fp-context-menu li{text-align:center;padding:10px;color:#444;margin:0 -10px 0 -10px;}
201
+ .flowplayer .fp-context-menu li a{color:#00a7c8;font-size:110%}
202
+ .flowplayer .fp-context-menu li:hover:not(.copyright){background-color:#eee}
203
+ .flowplayer .fp-context-menu li.copyright{margin:0;padding-left:110px;background-image:url("img/flowplayer.png");background-repeat:no-repeat;background-size:100px 20px;background-position:5px 5px;border-bottom:1px solid #bbb;}
204
+ @media (-webkit-min-device-pixel-ratio: 2){.flowplayer .fp-context-menu li.copyright{background-image:url("img/flowplayer@2x.png")}
205
+ }@-moz-keyframes pulse{0%{opacity:0}
206
  100%{opacity:1}
207
  }@-webkit-keyframes pulse{0%{opacity:0}
208
  100%{opacity:1}
220
  .flowplayer .fp-volumeslider{background-color:#000}
221
  .flowplayer .fp-volumelevel{background-color:#fff}
222
  .flowplayer .fp-play{height:24px}
223
+ .flowplayer.is-touch.is-mouseover .fp-progress:before{background-color:#00a7c8}
224
  .flowplayer.color-light .fp-controls{background-color:rgba(255,255,255,0.6)}
225
  .flowplayer.color-light.fixed-controls .fp-controls{background-color:#fff}
226
  .flowplayer.color-light .fp-volumeslider{background-color:#ddd}
227
  .flowplayer.color-light .fp-volumelevel{background-color:#222}
228
  .flowplayer.color-alt .fp-progress{background-color:#fff}
229
+ .flowplayer.color-alt.is-touch.is-mouseover .fp-progress:before{background-color:#fff}
230
  .flowplayer.color-alt .fp-buffer{background-color:#999}
231
  .flowplayer.color-alt2 .fp-progress{background-color:#900}
232
+ .flowplayer.color-alt2.is-touch.is-mouseover .fp-progress:before{background-color:#900}
lib/{playful.css → skin/playful.css} RENAMED
@@ -1,4 +1,4 @@
1
- .flowplayer{position:relative;width:100%;text-align:left;background-size:contain;background-repeat:no-repeat;background-position:center center;display:inline-block;}
2
  .flowplayer *{font-weight:inherit;font-family:inherit;font-style:inherit;text-decoration:inherit;font-size:100%;padding:0;border:0;margin:0;list-style-type:none}
3
  .flowplayer a:focus{outline:0}
4
  .flowplayer video{width:100%}
@@ -23,7 +23,7 @@
23
  .flowplayer .fp-speed.fp-hilite{opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
24
  .flowplayer .fp-help{position:absolute;top:0;left:-9999em;z-index:100;background-color:#333;background-color:rgba(51,51,51,0.9);width:100%;height:100%;opacity:0;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);-webkit-transition:opacity .2s;-moz-transition:opacity .2s;transition:opacity .2s;text-align:center;}
25
  .is-help.flowplayer .fp-help{left:0;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
26
- .flowplayer .fp-help .fp-help-section{margin:3%}
27
  .flowplayer .fp-help .fp-help-basics{margin-top:6%}
28
  .flowplayer .fp-help p{color:#eee;margin:.5em 0;font-size:14px;line-height:1.5;display:inline-block;margin:1% 2%}
29
  .flowplayer .fp-help em{background:#eee;-webkit-border-radius:.3em;-moz-border-radius:.3em;border-radius:.3em;margin-right:.4em;padding:.3em .6em;color:#333}
@@ -35,46 +35,88 @@
35
  .flowplayer .fp-subtitle p:after{content:'';clear:both}
36
  .flowplayer .fp-subtitle.fp-active{left:0;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
37
  .flowplayer .fp-fullscreen,.flowplayer .fp-unload,.flowplayer .fp-mute,.flowplayer .fp-embed,.flowplayer .fp-close,.flowplayer .fp-play{background-image:url(img/playful_white.png);background-size:37px 300px;}
 
38
  .color-light.flowplayer .fp-fullscreen,.color-light.flowplayer .fp-unload,.color-light.flowplayer .fp-mute,.color-light.flowplayer .fp-embed,.color-light.flowplayer .fp-close,.color-light.flowplayer .fp-play{background-image:url(img/playful_black.png);}
 
39
  @media (-webkit-min-device-pixel-ratio: 2){.color-light.flowplayer .fp-fullscreen,.color-light.flowplayer .fp-unload,.color-light.flowplayer .fp-mute,.color-light.flowplayer .fp-embed,.color-light.flowplayer .fp-close,.color-light.flowplayer .fp-play{background-image:url(img/playful_black@x2.png)}
 
40
  }@media (-webkit-min-device-pixel-ratio: 2){.flowplayer .fp-fullscreen,.flowplayer .fp-unload,.flowplayer .fp-mute,.flowplayer .fp-embed,.flowplayer .fp-close,.flowplayer .fp-play{background-image:url(img/playful_white@x2.png)}
41
- }.is-splash.flowplayer .fp-ui,.is-paused.flowplayer .fp-ui{background:url(img/play_white.png) center no-repeat;background-size:12%;}
 
 
 
42
  @media (-webkit-min-device-pixel-ratio: 2){.is-splash.flowplayer .fp-ui,.is-paused.flowplayer .fp-ui{background:url(img/play_white@x2.png) center no-repeat;background-size:12%}
43
- }.color-light.is-splash.flowplayer .fp-ui,.color-light.is-paused.flowplayer .fp-ui{background-image:url(img/play_black.png)}
44
- @media (-webkit-min-device-pixel-ratio: 2){.color-light.is-splash.flowplayer .fp-ui,.color-light.is-paused.flowplayer .fp-ui{background-image:url(img/play_black@x2.png)}
 
 
 
45
  }.is-fullscreen.flowplayer .fp-ui{background-size:auto}
46
  .is-seeking.flowplayer .fp-ui,.is-loading.flowplayer .fp-ui{background-image:none}
47
  .flowplayer .fp-logo{position:absolute;top:auto;left:15px;bottom:45px;cursor:pointer;display:none;z-index:100;}
48
  .flowplayer .fp-logo img{width:100%}
49
  .is-embedded.flowplayer .fp-logo{display:block}
50
  .fixed-controls.flowplayer .fp-logo{bottom:15px}
51
- .flowplayer .fp-fullscreen,.flowplayer .fp-unload,.flowplayer .fp-close{position:absolute;top:12px;left:auto;right:12px;display:block;width:30px;height:23px;background-position:12px -197px;cursor:pointer}
52
- .flowplayer .fp-unload,.flowplayer .fp-close{background-position:14px -175px;display:none}
 
 
53
  .flowplayer .fp-play{display:none;width:27px;height:35px;background-position:9px -24px;position:absolute;bottom:0;left:0;}
 
54
  .play-button.flowplayer .fp-play{display:block}
55
- .is-paused.flowplayer .fp-play{background-position:9px 7px}
 
56
  .flowplayer.is-ready.is-closeable .fp-unload{display:block}
57
  .flowplayer.is-ready.is-closeable .fp-fullscreen{display:none}
58
- .flowplayer.is-fullscreen .fp-fullscreen{background-position:10px -217px;display:block !important}
 
59
  .flowplayer.is-fullscreen .fp-unload,.flowplayer.is-fullscreen .fp-close{display:none !important}
60
  .flowplayer .fp-timeline{height:3px;position:relative;overflow:hidden;top:12px;height:11px;margin:0 199px 0 59px;}
61
  .no-volume.flowplayer .fp-timeline{margin-right:109px}
62
- .no-mute.flowplayer .fp-timeline{margin-right:59px}
 
63
  .play-button.flowplayer .fp-timeline{margin-left:74px}
 
 
 
 
 
64
  .is-long.flowplayer .fp-timeline{margin:0 229px 0 89px;}
65
  .no-volume.is-long.flowplayer .fp-timeline{margin-right:139px}
66
  .no-mute.is-long.flowplayer .fp-timeline{margin-right:89px}
67
  .play-button.is-long.flowplayer .fp-timeline{margin-left:104px}
 
 
 
 
68
  .aside-time.flowplayer .fp-timeline,.no-time.flowplayer .fp-timeline{margin:0 152px 0 12px}
69
  .aside-time.no-volume.flowplayer .fp-timeline,.no-time.no-volume.flowplayer .fp-timeline{margin-right:62px}
70
  .aside-time.no-mute.flowplayer .fp-timeline,.no-time.no-mute.flowplayer .fp-timeline{margin-right:12px}
71
  .play-button.no-time.flowplayer .fp-timeline,.play-button.aside-time.flowplayer .fp-timeline{margin-left:27px}
 
 
 
 
72
  .flowplayer .fp-buffer,.flowplayer .fp-progress{position:absolute;top:0;left:auto;height:100%;cursor:col-resize}
73
  .flowplayer .fp-buffer{-webkit-transition:width .25s linear;-moz-transition:width .25s linear;transition:width .25s linear}
74
- .flowplayer .fp-volume{position:absolute;top:12px;right:12px}
75
- .flowplayer .fp-mute{width:38px;height:20px;float:left;position:relative;top:-4.5px;left:;cursor:pointer;background-position:-2px -99px;}
 
 
 
 
 
 
 
 
 
 
 
 
 
76
  .no-mute.flowplayer .fp-mute{display:none}
77
  .flowplayer .fp-volumeslider{width:90px;height:11px;cursor:col-resize;float:left;}
 
78
  .no-volume.flowplayer .fp-volumeslider{display:none}
79
  .flowplayer .fp-volumelevel{height:100%}
80
  .flowplayer .fp-time{text-shadow:0 0 1px #000;font-size:12px;font-weight:bold;color:#fff;width:100%;}
@@ -85,15 +127,23 @@
85
  .is-long.flowplayer .fp-time em{width:65px}
86
  .flowplayer .fp-elapsed{left:12px;}
87
  .play-button.flowplayer .fp-elapsed{left:27px}
 
 
88
  .flowplayer .fp-remaining,.flowplayer .fp-duration{right:152px;color:#eee;}
89
  .no-volume.flowplayer .fp-remaining,.no-volume.flowplayer .fp-duration{right:62px}
90
- .no-mute.flowplayer .fp-remaining,.no-mute.flowplayer .fp-duration{right:12px}
 
 
 
 
 
91
  .flowplayer .fp-remaining{display:none}
92
  .flowplayer.color-light .fp-time{color:#222;text-shadow:0 0 1px #fff}
93
  .flowplayer.color-light .fp-remaining,.flowplayer.color-light .fp-duration{color:#666}
94
  .flowplayer.aside-time .fp-time{position:absolute;top:12px;left:12px;bottom:auto !important;width:110px;}
95
  .flowplayer.aside-time .fp-time strong,.flowplayer.aside-time .fp-time em{position:static}
96
- .flowplayer.aside-time .fp-time .fp-elapsed{margin-right:12px}
 
97
  .flowplayer.is-long.aside-time .fp-time{width:130px}
98
  .flowplayer.is-splash,.flowplayer.is-poster{cursor:pointer;}
99
  .flowplayer.is-splash .fp-controls,.flowplayer.is-poster .fp-controls,.flowplayer.is-splash .fp-fullscreen,.flowplayer.is-poster .fp-fullscreen,.flowplayer.is-splash .fp-unload,.flowplayer.is-poster .fp-unload,.flowplayer.is-splash .fp-time,.flowplayer.is-poster .fp-time,.flowplayer.is-splash .fp-embed,.flowplayer.is-poster .fp-embed{display:none !important}
@@ -101,8 +151,12 @@
101
  .flowplayer.is-loading .fp-waiting{display:block}
102
  .flowplayer.is-loading .fp-controls,.flowplayer.is-loading .fp-time{display:none}
103
  .flowplayer.is-loading .fp-ui{background-position:-9999em}
 
104
  .flowplayer.is-seeking .fp-waiting{display:block}
105
- .flowplayer.is-fullscreen{position:fixed !important;top:0 !important;left:0 !important;border:0 !important;margin:0 !important;width:100% !important;height:100% !important;max-width:100% !important;z-index:99999 !important;-webkit-box-shadow:0 !important;-moz-box-shadow:0 !important;box-shadow:0 !important;background-image:none !important;background-color:#333}
 
 
 
106
  .flowplayer.is-error{border:1px solid #909090;background:#fdfdfd !important;}
107
  .flowplayer.is-error h2{font-weight:bold;font-size:large;margin-top:10%}
108
  .flowplayer.is-error .fp-message{display:block}
@@ -120,18 +174,35 @@
120
  .flowplayer.fixed-controls .fp-time em{bottom:-23px;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);}
121
  .is-fullscreen.flowplayer.fixed-controls .fp-time em{bottom:12px}
122
  .flowplayer.is-disabled .fp-progress{background-color:#999}
123
- .flowplayer .fp-embed{position:absolute;top:12px;left:12px;display:block;width:25px;height:20px;background-position:3px -237px}
 
 
 
 
124
  .flowplayer .fp-embed-code{position:absolute;display:none;top:10px;left:40px;background-color:#333;padding:3px 5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 0 3px #ccc;-moz-box-shadow:0 0 3px #ccc;box-shadow:0 0 3px #ccc;font-size:12px;}
125
  .flowplayer .fp-embed-code:before{content:'';width:0;height:0;position:absolute;top:2px;left:-10px;border:5px solid transparent;border-right-color:#333}
 
 
126
  .flowplayer .fp-embed-code textarea{width:400px;height:16px;font-family:monaco,"courier new",verdana;color:#777;white-space:nowrap;resize:none;overflow:hidden;border:0;outline:0;background-color:transparent;color:#ccc}
127
  .flowplayer .fp-embed-code label{display:block;color:#999}
128
  .flowplayer.is-embedding .fp-embed,.flowplayer.is-embedding .fp-embed-code{display:block;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
129
- .flowplayer.aside-time .fp-embed{left:110px}
130
- .flowplayer.aside-time .fp-embed-code{left:140px}
 
 
131
  .flowplayer.aside-time.is-embedding .fp-time{opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
132
- .flowplayer.is-long.aside-time .fp-embed{left:130px}
133
- .flowplayer.no-time .fp-embed{left:12px !important}
134
- @-moz-keyframes pulse{0%{opacity:0}
 
 
 
 
 
 
 
 
 
135
  100%{opacity:1}
136
  }@-webkit-keyframes pulse{0%{opacity:0}
137
  100%{opacity:1}
@@ -145,15 +216,21 @@
145
  .flowplayer .fp-timeline,.flowplayer .fp-volumeslider{background-color:#555;background-image:-moz-linear-gradient(rgba(255,255,255,0.01),rgba(255,255,255,0.3));background-image:-webkit-gradient(linear,0 0,0 100%,from(rgba(255,255,255,0.01)),to(rgba(255,255,255,0.3)))}
146
  .flowplayer .fp-buffer{background-color:#eee}
147
  .flowplayer .fp-progress{background-color:#008000}
 
148
  .flowplayer .fp-volumelevel{background-color:#fff}
149
  .flowplayer .fp-mute{display:block;width:38px;height:20px;background-position:0 -79px;}
 
150
  .is-muted.flowplayer .fp-mute{background-position:0 -109px;opacity:.85;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=85)}
151
  .flowplayer .fp-play{background-position:9px -20px;}
152
- .is-paused.flowplayer .fp-play{background-position:9px 11px}
 
 
153
  .flowplayer .fp-timeline,.flowplayer .fp-volumeslider{border:1px inset;border-color:rgba(0,0,0,0.3) rgba(17,17,17,0.05)}
154
  .flowplayer .fp-controls,.flowplayer .fp-progress{background-image:-moz-linear-gradient(rgba(255,255,255,0.3),rgba(255,255,255,0.01));background-image:-webkit-gradient(linear,0 0,0 100%,from(rgba(255,255,255,0.3)),to(rgba(255,255,255,0.01)))}
155
  .flowplayer .fp-timeline,.flowplayer .fp-progress,.flowplayer .fp-buffer,.flowplayer .fp-volumeslider,.flowplayer .fp-volumelevel{-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}
156
  .flowplayer.color-light .fp-controls{background-color:#eee;background-image:-moz-linear-gradient(rgba(0,0,0,0.01),rgba(0,0,0,0.3));background-image:-webkit-gradient(linear,0 0,0 100%,from(rgba(0,0,0,0.01)),to(rgba(0,0,0,0.3)))}
157
  .flowplayer.color-light .fp-timeline,.flowplayer.color-light .fp-volumeslider{border-color:#eee #ccc}
158
  .flowplayer.color-alt .fp-progress,.flowplayer.color-alt .fp-volumelevel{background-color:#111}
 
159
  .flowplayer.color-alt2 .fp-progress,.flowplayer.color-alt2 .fp-volumelevel{background-color:#900}
 
1
+ .flowplayer{position:relative;width:100%;background-size:contain;background-repeat:no-repeat;background-position:center center;display:inline-block;}
2
  .flowplayer *{font-weight:inherit;font-family:inherit;font-style:inherit;text-decoration:inherit;font-size:100%;padding:0;border:0;margin:0;list-style-type:none}
3
  .flowplayer a:focus{outline:0}
4
  .flowplayer video{width:100%}
23
  .flowplayer .fp-speed.fp-hilite{opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
24
  .flowplayer .fp-help{position:absolute;top:0;left:-9999em;z-index:100;background-color:#333;background-color:rgba(51,51,51,0.9);width:100%;height:100%;opacity:0;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0);-webkit-transition:opacity .2s;-moz-transition:opacity .2s;transition:opacity .2s;text-align:center;}
25
  .is-help.flowplayer .fp-help{left:0;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
26
+ .flowplayer .fp-help .fp-help-section{margin:3%;direction:ltr}
27
  .flowplayer .fp-help .fp-help-basics{margin-top:6%}
28
  .flowplayer .fp-help p{color:#eee;margin:.5em 0;font-size:14px;line-height:1.5;display:inline-block;margin:1% 2%}
29
  .flowplayer .fp-help em{background:#eee;-webkit-border-radius:.3em;-moz-border-radius:.3em;border-radius:.3em;margin-right:.4em;padding:.3em .6em;color:#333}
35
  .flowplayer .fp-subtitle p:after{content:'';clear:both}
36
  .flowplayer .fp-subtitle.fp-active{left:0;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
37
  .flowplayer .fp-fullscreen,.flowplayer .fp-unload,.flowplayer .fp-mute,.flowplayer .fp-embed,.flowplayer .fp-close,.flowplayer .fp-play{background-image:url(img/playful_white.png);background-size:37px 300px;}
38
+ .is-rtl.flowplayer .fp-fullscreen,.is-rtl.flowplayer .fp-unload,.is-rtl.flowplayer .fp-mute,.is-rtl.flowplayer .fp-embed,.is-rtl.flowplayer .fp-close,.is-rtl.flowplayer .fp-play{background-image:url(img/playful_white_rtl.png)}
39
  .color-light.flowplayer .fp-fullscreen,.color-light.flowplayer .fp-unload,.color-light.flowplayer .fp-mute,.color-light.flowplayer .fp-embed,.color-light.flowplayer .fp-close,.color-light.flowplayer .fp-play{background-image:url(img/playful_black.png);}
40
+ .is-rtl.color-light.flowplayer .fp-fullscreen,.is-rtl.color-light.flowplayer .fp-unload,.is-rtl.color-light.flowplayer .fp-mute,.is-rtl.color-light.flowplayer .fp-embed,.is-rtl.color-light.flowplayer .fp-close,.is-rtl.color-light.flowplayer .fp-play{background-image:url(img/playful_black_rtl.png)}
41
  @media (-webkit-min-device-pixel-ratio: 2){.color-light.flowplayer .fp-fullscreen,.color-light.flowplayer .fp-unload,.color-light.flowplayer .fp-mute,.color-light.flowplayer .fp-embed,.color-light.flowplayer .fp-close,.color-light.flowplayer .fp-play{background-image:url(img/playful_black@x2.png)}
42
+ .is-rtl.color-light.flowplayer .fp-fullscreen,.is-rtl.color-light.flowplayer .fp-unload,.is-rtl.color-light.flowplayer .fp-mute,.is-rtl.color-light.flowplayer .fp-embed,.is-rtl.color-light.flowplayer .fp-close,.is-rtl.color-light.flowplayer .fp-play{background-image:url(img/playful_black_rtl@x2.png)}
43
  }@media (-webkit-min-device-pixel-ratio: 2){.flowplayer .fp-fullscreen,.flowplayer .fp-unload,.flowplayer .fp-mute,.flowplayer .fp-embed,.flowplayer .fp-close,.flowplayer .fp-play{background-image:url(img/playful_white@x2.png)}
44
+ .is-rtl.flowplayer .fp-fullscreen,.is-rtl.flowplayer .fp-unload,.is-rtl.flowplayer .fp-mute,.is-rtl.flowplayer .fp-embed,.is-rtl.flowplayer .fp-close,.is-rtl.flowplayer .fp-play{background-image:url(img/playful_white_rtl@x2.png)}
45
+ }.flowplayer .fp-flash-disabled{background:#333;width:390px;margin:0 auto;position:absolute;bottom:0;color:#fff}
46
+ .is-splash.flowplayer .fp-ui,.is-paused.flowplayer .fp-ui{background:url(img/play_white.png) center no-repeat;background-size:12%;}
47
+ .is-rtl.is-splash.flowplayer .fp-ui,.is-rtl.is-paused.flowplayer .fp-ui{background:url(img/play_white_rtl.png) center no-repeat;background-size:12%}
48
  @media (-webkit-min-device-pixel-ratio: 2){.is-splash.flowplayer .fp-ui,.is-paused.flowplayer .fp-ui{background:url(img/play_white@x2.png) center no-repeat;background-size:12%}
49
+ .is-rtl.is-splash.flowplayer .fp-ui,.is-rtl.is-paused.flowplayer .fp-ui{background:url(img/play_white_rtl@x2.png) center no-repeat;background-size:12%}
50
+ }.color-light.is-splash.flowplayer .fp-ui,.color-light.is-paused.flowplayer .fp-ui{background-image:url(img/play_black.png);}
51
+ .is-rtl.color-light.is-splash.flowplayer .fp-ui,.is-rtl.color-light.is-paused.flowplayer .fp-ui{background-image:url(img/play_black_rtl.png)}
52
+ @media (-webkit-min-device-pixel-ratio: 2){.color-light.is-splash.flowplayer .fp-ui,.color-light.is-paused.flowplayer .fp-ui{background-image:url(img/play_black@x2.png);}
53
+ .is-rtl.color-light.is-splash.flowplayer .fp-ui,.is-rtl.color-light.is-paused.flowplayer .fp-ui{background-image:url(img/play_black_rtl@x2.png)}
54
  }.is-fullscreen.flowplayer .fp-ui{background-size:auto}
55
  .is-seeking.flowplayer .fp-ui,.is-loading.flowplayer .fp-ui{background-image:none}
56
  .flowplayer .fp-logo{position:absolute;top:auto;left:15px;bottom:45px;cursor:pointer;display:none;z-index:100;}
57
  .flowplayer .fp-logo img{width:100%}
58
  .is-embedded.flowplayer .fp-logo{display:block}
59
  .fixed-controls.flowplayer .fp-logo{bottom:15px}
60
+ .flowplayer .fp-fullscreen,.flowplayer .fp-unload,.flowplayer .fp-close{position:absolute;top:12px;left:auto;right:12px;display:block;width:30px;height:23px;background-position:12px -197px;cursor:pointer;}
61
+ .is-rtl.flowplayer .fp-fullscreen,.is-rtl.flowplayer .fp-unload,.is-rtl.flowplayer .fp-close{right:auto;left:12px;background-position:18px -197px}
62
+ .flowplayer .fp-unload,.flowplayer .fp-close{background-position:14px -175px;display:none;}
63
+ .is-rtl.flowplayer .fp-unload,.is-rtl.flowplayer .fp-close{background-position:14px -175px}
64
  .flowplayer .fp-play{display:none;width:27px;height:35px;background-position:9px -24px;position:absolute;bottom:0;left:0;}
65
+ .is-rtl.flowplayer .fp-play{background-position:18px -24px;left:auto;right:0}
66
  .play-button.flowplayer .fp-play{display:block}
67
+ .is-paused.flowplayer .fp-play{background-position:9px 7px;}
68
+ .is-rtl.is-paused.flowplayer .fp-play{background-position:18px 7px}
69
  .flowplayer.is-ready.is-closeable .fp-unload{display:block}
70
  .flowplayer.is-ready.is-closeable .fp-fullscreen{display:none}
71
+ .flowplayer.is-fullscreen .fp-fullscreen{background-position:10px -217px;display:block !important;}
72
+ .is-rtl.flowplayer.is-fullscreen .fp-fullscreen{background-position:21px -217px}
73
  .flowplayer.is-fullscreen .fp-unload,.flowplayer.is-fullscreen .fp-close{display:none !important}
74
  .flowplayer .fp-timeline{height:3px;position:relative;overflow:hidden;top:12px;height:11px;margin:0 199px 0 59px;}
75
  .no-volume.flowplayer .fp-timeline{margin-right:109px}
76
+ .no-mute.flowplayer .fp-timeline{margin-right:161px}
77
+ .no-mute.no-volume.flowplayer .fp-timeline{margin-right:59px}
78
  .play-button.flowplayer .fp-timeline{margin-left:74px}
79
+ .is-rtl.flowplayer .fp-timeline{margin:0 59px 0 199px;}
80
+ .no-volume.is-rtl.flowplayer .fp-timeline{margin-left:109px}
81
+ .no-mute.is-rtl.flowplayer .fp-timeline{margin-left:161px}
82
+ .no-mute.no-volume.is-rtl.flowplayer .fp-timeline{margin-left:59px}
83
+ .play-button.is-rtl.flowplayer .fp-timeline{margin-right:74px}
84
  .is-long.flowplayer .fp-timeline{margin:0 229px 0 89px;}
85
  .no-volume.is-long.flowplayer .fp-timeline{margin-right:139px}
86
  .no-mute.is-long.flowplayer .fp-timeline{margin-right:89px}
87
  .play-button.is-long.flowplayer .fp-timeline{margin-left:104px}
88
+ .is-rtl.is-long.flowplayer .fp-timeline{margin:89px 0 229px 0;}
89
+ .no-volume.is-rtl.is-long.flowplayer .fp-timeline{margin-left:139px}
90
+ .no-mute.is-rtl.is-long.flowplayer .fp-timeline{margin-left:89px}
91
+ .play-button.is-rtl.is-long.flowplayer .fp-timeline{margin-left:104px}
92
  .aside-time.flowplayer .fp-timeline,.no-time.flowplayer .fp-timeline{margin:0 152px 0 12px}
93
  .aside-time.no-volume.flowplayer .fp-timeline,.no-time.no-volume.flowplayer .fp-timeline{margin-right:62px}
94
  .aside-time.no-mute.flowplayer .fp-timeline,.no-time.no-mute.flowplayer .fp-timeline{margin-right:12px}
95
  .play-button.no-time.flowplayer .fp-timeline,.play-button.aside-time.flowplayer .fp-timeline{margin-left:27px}
96
+ .is-rtl.aside-time.flowplayer .fp-timeline,.is-rtl.no-time.flowplayer .fp-timeline{margin:0 12px 0 152px}
97
+ .is-rtl.aside-time.no-volume.flowplayer .fp-timeline,.is-rtl.no-time.no-volume.flowplayer .fp-timeline{margin-left:62px}
98
+ .is-rtl.aside-time.no-mute.flowplayer .fp-timeline,.is-rtl.no-time.no-mute.flowplayer .fp-timeline{margin-left:12px}
99
+ .is-rtl.play-button.no-time.flowplayer .fp-timeline,.is-rtl.play-button.aside-time.flowplayer .fp-timeline{margin-right:27px}
100
  .flowplayer .fp-buffer,.flowplayer .fp-progress{position:absolute;top:0;left:auto;height:100%;cursor:col-resize}
101
  .flowplayer .fp-buffer{-webkit-transition:width .25s linear;-moz-transition:width .25s linear;transition:width .25s linear}
102
+ .flowplayer .fp-timeline.no-animation .fp-buffer{-webkit-transition:none;-moz-transition:none;transition:none}
103
+ .flowplayer.is-touch .fp-timeline{overflow:visible}
104
+ .flowplayer.is-touch .fp-progress{-webkit-transition:width .2s linear;-moz-transition:width .2s linear;transition:width .2s linear}
105
+ .flowplayer.is-touch .fp-timeline.is-dragging .fp-progress{-webkit-transition:right .1s linear,border .1s linear,top .1s linear,left .1s linear;-moz-transition:right .1s linear,border .1s linear,top .1s linear,left .1s linear;transition:right .1s linear,border .1s linear,top .1s linear,left .1s linear}
106
+ .flowplayer.is-touch.is-mouseover .fp-progress:after,.flowplayer.is-touch.is-mouseover .fp-progress:before{content:'';display:block;-webkit-border-radius:10px;-moz-border-radius:10px;border-radius:10px;position:absolute;right:-5px}
107
+ .flowplayer.is-touch.is-rtl.is-mouseover .fp-progress:after,.flowplayer.is-touch.is-rtl.is-mouseover .fp-progress:before{right:auto;left:-5px}
108
+ .flowplayer.is-touch.is-rtl.is-mouseover .fp-progress:after{left:-10px;-webkit-box-shadow:-1px 0 4px rgba(0,0,0,0.5);-moz-box-shadow:-1px 0 4px rgba(0,0,0,0.5);box-shadow:-1px 0 4px rgba(0,0,0,0.5)}
109
+ .flowplayer.is-touch.is-mouseover .fp-progress:before{width:10px;height:10px}
110
+ .flowplayer.is-touch.is-mouseover .fp-progress:after{height:10px;width:10px;top:-5px;right:-10px;border:5px solid rgba(255,255,255,0.65);-webkit-box-shadow:1px 0 4px rgba(0,0,0,0.5);-moz-box-shadow:1px 0 4px rgba(0,0,0,0.5);box-shadow:1px 0 4px rgba(0,0,0,0.5)}
111
+ .flowplayer.is-touch.is-mouseover .fp-timeline.is-dragging .fp-progress:after{border:10px solid #fff;-webkit-border-radius:20px;-moz-border-radius:20px;border-radius:20px;-webkit-transition:inherit;-moz-transition:inherit;transition:inherit;top:-10px;right:-15px}
112
+ .flowplayer.is-touch.is-rtl.is-mouseover .fp-timeline.is-dragging .fp-progress:after{left:-15px;right:auto;border:10px solid #fff}
113
+ .flowplayer .fp-volume{position:absolute;top:12px;right:12px;}
114
+ .is-rtl.flowplayer .fp-volume{right:auto;left:12px}
115
+ .flowplayer .fp-mute{position:relative;width:38px;height:20px;float:left;top:-4.5px;cursor:pointer;background-position:-2px -99px;}
116
+ .is-rtl.flowplayer .fp-mute{float:right;background-position:-25px -99px}
117
  .no-mute.flowplayer .fp-mute{display:none}
118
  .flowplayer .fp-volumeslider{width:90px;height:11px;cursor:col-resize;float:left;}
119
+ .is-rtl.flowplayer .fp-volumeslider{float:right}
120
  .no-volume.flowplayer .fp-volumeslider{display:none}
121
  .flowplayer .fp-volumelevel{height:100%}
122
  .flowplayer .fp-time{text-shadow:0 0 1px #000;font-size:12px;font-weight:bold;color:#fff;width:100%;}
127
  .is-long.flowplayer .fp-time em{width:65px}
128
  .flowplayer .fp-elapsed{left:12px;}
129
  .play-button.flowplayer .fp-elapsed{left:27px}
130
+ .is-rtl.flowplayer .fp-elapsed{left:auto;right:12px;}
131
+ .play-button.is-rtl.flowplayer .fp-elapsed{right:27px}
132
  .flowplayer .fp-remaining,.flowplayer .fp-duration{right:152px;color:#eee;}
133
  .no-volume.flowplayer .fp-remaining,.no-volume.flowplayer .fp-duration{right:62px}
134
+ .no-mute.flowplayer .fp-remaining,.no-mute.flowplayer .fp-duration{right:114px}
135
+ .no-mute.no-volume.flowplayer .fp-remaining,.no-mute.no-volume.flowplayer .fp-duration{right:12px}
136
+ .is-rtl.flowplayer .fp-remaining,.is-rtl.flowplayer .fp-duration{right:auto;left:152px;}
137
+ .no-volume.is-rtl.flowplayer .fp-remaining,.no-volume.is-rtl.flowplayer .fp-duration{left:62px}
138
+ .no-mute.is-rtl.flowplayer .fp-remaining,.no-mute.is-rtl.flowplayer .fp-duration{left:114px}
139
+ .no-mute.no-volume.is-rtl.flowplayer .fp-remaining,.no-mute.no-volume.is-rtl.flowplayer .fp-duration{left:12px}
140
  .flowplayer .fp-remaining{display:none}
141
  .flowplayer.color-light .fp-time{color:#222;text-shadow:0 0 1px #fff}
142
  .flowplayer.color-light .fp-remaining,.flowplayer.color-light .fp-duration{color:#666}
143
  .flowplayer.aside-time .fp-time{position:absolute;top:12px;left:12px;bottom:auto !important;width:110px;}
144
  .flowplayer.aside-time .fp-time strong,.flowplayer.aside-time .fp-time em{position:static}
145
+ .flowplayer.aside-time .fp-time .fp-elapsed{margin-right:12px;}
146
+ .is-rtl.flowplayer.aside-time .fp-time .fp-elapsed{margin-right:auto;margin-left:12px}
147
  .flowplayer.is-long.aside-time .fp-time{width:130px}
148
  .flowplayer.is-splash,.flowplayer.is-poster{cursor:pointer;}
149
  .flowplayer.is-splash .fp-controls,.flowplayer.is-poster .fp-controls,.flowplayer.is-splash .fp-fullscreen,.flowplayer.is-poster .fp-fullscreen,.flowplayer.is-splash .fp-unload,.flowplayer.is-poster .fp-unload,.flowplayer.is-splash .fp-time,.flowplayer.is-poster .fp-time,.flowplayer.is-splash .fp-embed,.flowplayer.is-poster .fp-embed{display:none !important}
151
  .flowplayer.is-loading .fp-waiting{display:block}
152
  .flowplayer.is-loading .fp-controls,.flowplayer.is-loading .fp-time{display:none}
153
  .flowplayer.is-loading .fp-ui{background-position:-9999em}
154
+ .flowplayer.is-loading video.fp-engine{position:absolute;top:-9999em}
155
  .flowplayer.is-seeking .fp-waiting{display:block}
156
+ .flowplayer.is-playing{background-image:none !important;background-color:#333;}
157
+ .flowplayer.is-playing.hls-fix.is-finished .fp-engine{position:absolute;top:-9999em}
158
+ .flowplayer.is-fullscreen{position:fixed !important;top:0 !important;left:0 !important;border:0 !important;margin:0 !important;width:100% !important;height:100% !important;max-width:100% !important;z-index:99999 !important;-webkit-box-shadow:0 !important;-moz-box-shadow:0 !important;box-shadow:0 !important;background-image:none !important;background-color:#333;}
159
+ .is-rtl.flowplayer.is-fullscreen{left:auto !important;right:0 !important}
160
  .flowplayer.is-error{border:1px solid #909090;background:#fdfdfd !important;}
161
  .flowplayer.is-error h2{font-weight:bold;font-size:large;margin-top:10%}
162
  .flowplayer.is-error .fp-message{display:block}
174
  .flowplayer.fixed-controls .fp-time em{bottom:-23px;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);}
175
  .is-fullscreen.flowplayer.fixed-controls .fp-time em{bottom:12px}
176
  .flowplayer.is-disabled .fp-progress{background-color:#999}
177
+ .flowplayer.is-flash-disabled{background-color:#333;}
178
+ .flowplayer.is-flash-disabled object.fp-engine{z-index:100}
179
+ .flowplayer.is-flash-disabled .fp-flash-disabled{display:block;z-index:101}
180
+ .flowplayer .fp-embed{position:absolute;top:12px;left:12px;display:block;width:25px;height:20px;background-position:3px -237px;}
181
+ .is-rtl.flowplayer .fp-embed{background-position:22px -237px;left:auto;right:12px}
182
  .flowplayer .fp-embed-code{position:absolute;display:none;top:10px;left:40px;background-color:#333;padding:3px 5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 0 3px #ccc;-moz-box-shadow:0 0 3px #ccc;box-shadow:0 0 3px #ccc;font-size:12px;}
183
  .flowplayer .fp-embed-code:before{content:'';width:0;height:0;position:absolute;top:2px;left:-10px;border:5px solid transparent;border-right-color:#333}
184
+ .is-rtl.flowplayer .fp-embed-code{left:auto;right:40px;}
185
+ .is-rtl.flowplayer .fp-embed-code:before{left:auto;right:-10px;border-right-color:transparent;border-left-color:#333}
186
  .flowplayer .fp-embed-code textarea{width:400px;height:16px;font-family:monaco,"courier new",verdana;color:#777;white-space:nowrap;resize:none;overflow:hidden;border:0;outline:0;background-color:transparent;color:#ccc}
187
  .flowplayer .fp-embed-code label{display:block;color:#999}
188
  .flowplayer.is-embedding .fp-embed,.flowplayer.is-embedding .fp-embed-code{display:block;opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
189
+ .flowplayer.aside-time .fp-embed{left:110px;}
190
+ .is-rtl.flowplayer.aside-time .fp-embed{left:auto;right:110px}
191
+ .flowplayer.aside-time .fp-embed-code{left:140px;}
192
+ .is-rtl.flowplayer.aside-time .fp-embed-code{left:auto;right:140px}
193
  .flowplayer.aside-time.is-embedding .fp-time{opacity:1;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100)}
194
+ .flowplayer.is-long.aside-time .fp-embed{left:130px;}
195
+ .is-rtl.flowplayer.is-long.aside-time .fp-embed{left:auto;right:130px}
196
+ .flowplayer.no-time .fp-embed{left:12px !important;}
197
+ .is-rtl.flowplayer.no-time .fp-embed{left:auto;right:12px !important}
198
+ .flowplayer.is-live .fp-timeline,.flowplayer.is-live .fp-duration,.flowplayer.is-live .fp-remaining{display:none}
199
+ .flowplayer .fp-context-menu{position:absolute;display:none;z-index:1001;background-color:#fff;padding:10px;border:1px solid #aaa;-webkit-box-shadow:0 0 4px #888;-moz-box-shadow:0 0 4px #888;box-shadow:0 0 4px #888;width:170px;}
200
+ .flowplayer .fp-context-menu li{text-align:center;padding:10px;color:#444;margin:0 -10px 0 -10px;}
201
+ .flowplayer .fp-context-menu li a{color:#00a7c8;font-size:110%}
202
+ .flowplayer .fp-context-menu li:hover:not(.copyright){background-color:#eee}
203
+ .flowplayer .fp-context-menu li.copyright{margin:0;padding-left:110px;background-image:url("img/flowplayer.png");background-repeat:no-repeat;background-size:100px 20px;background-position:5px 5px;border-bottom:1px solid #bbb;}
204
+ @media (-webkit-min-device-pixel-ratio: 2){.flowplayer .fp-context-menu li.copyright{background-image:url("img/flowplayer@2x.png")}
205
+ }@-moz-keyframes pulse{0%{opacity:0}
206
  100%{opacity:1}
207
  }@-webkit-keyframes pulse{0%{opacity:0}
208
  100%{opacity:1}
216
  .flowplayer .fp-timeline,.flowplayer .fp-volumeslider{background-color:#555;background-image:-moz-linear-gradient(rgba(255,255,255,0.01),rgba(255,255,255,0.3));background-image:-webkit-gradient(linear,0 0,0 100%,from(rgba(255,255,255,0.01)),to(rgba(255,255,255,0.3)))}
217
  .flowplayer .fp-buffer{background-color:#eee}
218
  .flowplayer .fp-progress{background-color:#008000}
219
+ .flowplayer.is-touch.is-mouseover .fp-progress:before{background-color:#008000}
220
  .flowplayer .fp-volumelevel{background-color:#fff}
221
  .flowplayer .fp-mute{display:block;width:38px;height:20px;background-position:0 -79px;}
222
+ .is-rtl.flowplayer .fp-mute{background-position:0 -79px}
223
  .is-muted.flowplayer .fp-mute{background-position:0 -109px;opacity:.85;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=85)}
224
  .flowplayer .fp-play{background-position:9px -20px;}
225
+ .is-rtl.flowplayer .fp-play{background-position:18px -20px}
226
+ .is-paused.flowplayer .fp-play{background-position:9px 11px;}
227
+ .is-rtl.is-paused.flowplayer .fp-play{background-position:18px 11px}
228
  .flowplayer .fp-timeline,.flowplayer .fp-volumeslider{border:1px inset;border-color:rgba(0,0,0,0.3) rgba(17,17,17,0.05)}
229
  .flowplayer .fp-controls,.flowplayer .fp-progress{background-image:-moz-linear-gradient(rgba(255,255,255,0.3),rgba(255,255,255,0.01));background-image:-webkit-gradient(linear,0 0,0 100%,from(rgba(255,255,255,0.3)),to(rgba(255,255,255,0.01)))}
230
  .flowplayer .fp-timeline,.flowplayer .fp-progress,.flowplayer .fp-buffer,.flowplayer .fp-volumeslider,.flowplayer .fp-volumelevel{-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}
231
  .flowplayer.color-light .fp-controls{background-color:#eee;background-image:-moz-linear-gradient(rgba(0,0,0,0.01),rgba(0,0,0,0.3));background-image:-webkit-gradient(linear,0 0,0 100%,from(rgba(0,0,0,0.01)),to(rgba(0,0,0,0.3)))}
232
  .flowplayer.color-light .fp-timeline,.flowplayer.color-light .fp-volumeslider{border-color:#eee #ccc}
233
  .flowplayer.color-alt .fp-progress,.flowplayer.color-alt .fp-volumelevel{background-color:#111}
234
+ .flowplayer.color-alt.is-touch.is-mouseover .fp-progress:before{background-color:#111}
235
  .flowplayer.color-alt2 .fp-progress,.flowplayer.color-alt2 .fp-volumelevel{background-color:#900}
236
+ .flowplayer.color-alt2.is-touch.is-mouseover .fp-progress:before{background-color:#900}
readme.txt CHANGED
@@ -1,10 +1,10 @@
1
  === Easy Video Player ===
2
  Contributors: naa986
3
- Donate link: http://easywpguide.wordpress.com/
4
  Tags: video, wpvideo, flash, html5, iPad, iphone, ipod, mobile, playlists, embed video, flowplayer, video html5, flash player, player, video player
5
  Requires at least: 3.0.1
6
- Tested up to: 3.6
7
- Stable tag: 1.0.2
8
  License: GPLv3 or later
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
@@ -19,6 +19,9 @@ Easy Video Player is a user-friendly WordPress plugin to showcase your videos. Y
19
  * Embed MP4 videos into your blog.
20
  * Embed responsive videos for a better user experience while viewing from a mobile device.
21
  * Embed HTML5 videos which are compatible with all major browsers.
 
 
 
22
 
23
  = Easy Video Player Plugin Usage =
24
 
@@ -42,9 +45,11 @@ If you want a particular video to start playing when the page loads you can set
42
 
43
  *Control Size*
44
 
45
- Many users don't care if the videos are not responsive, and therefore want to control the player size. You can easily do so by specifying a width and height for your video:
46
 
47
- `[evp_embed_video url="http://example.com/wp-content/uploads/videos/myvid.mp4" width="500" height="400"]`
 
 
48
 
49
  *Control Player Ratio*
50
 
@@ -52,8 +57,24 @@ The player ratio is set to "0.417" by default. But you can override it by specif
52
 
53
  `[evp_embed_video url="http://example.com/wp-content/uploads/videos/myvid.mp4" ratio="0.345"]`
54
 
55
- For detailed documentation please visit the [Easy Video Player](http://easywpguide.wordpress.com/?p=25) plugin page
 
 
 
 
 
 
 
 
 
 
 
 
 
 
56
 
 
 
57
 
58
  == Installation ==
59
 
@@ -83,13 +104,36 @@ Yes.
83
 
84
  == Screenshots ==
85
 
86
- For screenshots please visit the [Easy Video Player](http://easywpguide.wordpress.com/?p=25) plugin page
87
 
88
  == Upgrade Notice ==
89
  none
90
 
91
  == Changelog ==
92
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
93
  = 1.0.2 =
94
  * The plugin can now automatically start playing a video
95
  * The player can be resized using a specific width and height
1
  === Easy Video Player ===
2
  Contributors: naa986
3
+ Donate link: http://noorsplugin.com/
4
  Tags: video, wpvideo, flash, html5, iPad, iphone, ipod, mobile, playlists, embed video, flowplayer, video html5, flash player, player, video player
5
  Requires at least: 3.0.1
6
+ Tested up to: 4.3
7
+ Stable tag: 1.0.9
8
  License: GPLv3 or later
9
  License URI: http://www.gnu.org/licenses/gpl-3.0.html
10
 
19
  * Embed MP4 videos into your blog.
20
  * Embed responsive videos for a better user experience while viewing from a mobile device.
21
  * Embed HTML5 videos which are compatible with all major browsers.
22
+ * Embed videos with poster images.
23
+ * Customize the video player using modifier classes
24
+ * Embed videos using three different skins
25
 
26
  = Easy Video Player Plugin Usage =
27
 
45
 
46
  *Control Size*
47
 
48
+ By default, the player takes up the full width of the content area. You can easily control the size by specifying a width for it:
49
 
50
+ `[evp_embed_video url="http://example.com/wp-content/uploads/videos/myvid.mp4" width="500"]`
51
+
52
+ The height will be automatically determined based on the ratio (please see the "Control Player Ratio section" for details).
53
 
54
  *Control Player Ratio*
55
 
57
 
58
  `[evp_embed_video url="http://example.com/wp-content/uploads/videos/myvid.mp4" ratio="0.345"]`
59
 
60
+ *Control Player Skin*
61
+
62
+ By default, the player uses the "minimalist" skin. But you can override it by specifying a different skin in the shortcode:
63
+
64
+ `[evp_embed_video url="http://example.com/wp-content/uploads/videos/myvid.mp4" class="functional"]`
65
+
66
+ *Video Loop*
67
+
68
+ If you want a particular video to start playing again when it ends you can set the "loop" option to "true":
69
+
70
+ `[evp_embed_video url="http://example.com/wp-content/uploads/videos/myvid.mp4" loop="true"]`
71
+
72
+ For detailed documentation please visit the [Easy Video Player](http://noorsplugin.com/wordpress-video-plugin/) plugin page
73
+
74
+ = Recommended Reading =
75
 
76
+ * Easy Video Player [Documentation](http://noorsplugin.com/wordpress-video-plugin/)
77
+ * My Other [Free WordPress Plugins](http://noorsplugin.com/wordpress-plugins/)
78
 
79
  == Installation ==
80
 
104
 
105
  == Screenshots ==
106
 
107
+ 1. Easy Video Player Demo
108
 
109
  == Upgrade Notice ==
110
  none
111
 
112
  == Changelog ==
113
 
114
+ = 1.0.9 =
115
+ * Easy Video Player is now compatible with WordPress 4.3
116
+
117
+ = 1.0.8 =
118
+ * Added a new shortcode parameter "loop" to start playback again from the beginning when the video ends
119
+
120
+ = 1.0.7 =
121
+ * Video shortcode now accepts custom class names which can be used to customize the player
122
+
123
+ = 1.0.6 =
124
+ * Updated flowplayer library to version 5.5.2
125
+ * Disabled external embedding option in the player
126
+
127
+ = 1.0.5 =
128
+ * Video shortcode can now be embedded in a text widget
129
+
130
+ = 1.0.4 =
131
+ * Easy video player is now compatible with WordPress 4.0
132
+ * Added a new parameter in the shortcode to accept poster image for a video
133
+
134
+ = 1.0.3 =
135
+ * Easy video player is now compatible with WordPress 3.9
136
+
137
  = 1.0.2 =
138
  * The plugin can now automatically start playing a video
139
  * The player can be resized using a specific width and height