From db4e7b432bbe7fd7a4c928a46874eb83885145c0 Mon Sep 17 00:00:00 2001
From: "cedric@yterium.com" <>
Date: Mon, 13 Oct 2014 21:45:03 +0000
Subject: [PATCH] Integation du player html5 mediaelement
 http://mediaelementjs.com/ pour la lecture native des audio/video. Modele
 audio refactore, modele video a venir

---
 .gitattributes                                |   24 +
 ...T CHANGE THESE FILES. USE -src- FOLDER.txt |    0
 lib/mejs/background.png                       |  Bin 0 -> 166 bytes
 lib/mejs/bigplay.fw.png                       |  Bin 0 -> 79426 bytes
 lib/mejs/bigplay.png                          |  Bin 0 -> 3001 bytes
 lib/mejs/bigplay.svg                          |   14 +
 lib/mejs/controls-ted.png                     |  Bin 0 -> 1559 bytes
 lib/mejs/controls-wmp-bg.png                  |  Bin 0 -> 1960 bytes
 lib/mejs/controls-wmp.png                     |  Bin 0 -> 5511 bytes
 lib/mejs/controls.fw.png                      |  Bin 0 -> 80753 bytes
 lib/mejs/controls.png                         |  Bin 0 -> 1892 bytes
 lib/mejs/controls.svg                         |    1 +
 lib/mejs/flashmediaelement-cdn.swf            |  Bin 0 -> 57058 bytes
 lib/mejs/flashmediaelement.swf                |  Bin 0 -> 57052 bytes
 lib/mejs/loading.gif                          |  Bin 0 -> 6224 bytes
 lib/mejs/mediaelement-and-player.js           | 5291 +++++++++++++++++
 lib/mejs/mediaelement-and-player.min.js       |  183 +
 lib/mejs/mediaelement.js                      | 1961 ++++++
 lib/mejs/mediaelement.min.js                  |   72 +
 lib/mejs/mediaelementplayer.css               |  954 +++
 lib/mejs/mediaelementplayer.js                | 3328 +++++++++++
 lib/mejs/mediaelementplayer.min.css           |    1 +
 lib/mejs/mediaelementplayer.min.js            |  109 +
 lib/mejs/mejs-skins.css                       |  289 +
 lib/mejs/silverlightmediaelement.xap          |  Bin 0 -> 12461 bytes
 modeles/audio.html                            |   59 +-
 paquet.xml                                    |    2 +-
 27 files changed, 12276 insertions(+), 12 deletions(-)
 create mode 100755 lib/mejs/DO NOT CHANGE THESE FILES. USE -src- FOLDER.txt
 create mode 100755 lib/mejs/background.png
 create mode 100755 lib/mejs/bigplay.fw.png
 create mode 100755 lib/mejs/bigplay.png
 create mode 100755 lib/mejs/bigplay.svg
 create mode 100755 lib/mejs/controls-ted.png
 create mode 100755 lib/mejs/controls-wmp-bg.png
 create mode 100755 lib/mejs/controls-wmp.png
 create mode 100755 lib/mejs/controls.fw.png
 create mode 100755 lib/mejs/controls.png
 create mode 100755 lib/mejs/controls.svg
 create mode 100755 lib/mejs/flashmediaelement-cdn.swf
 create mode 100755 lib/mejs/flashmediaelement.swf
 create mode 100755 lib/mejs/loading.gif
 create mode 100755 lib/mejs/mediaelement-and-player.js
 create mode 100755 lib/mejs/mediaelement-and-player.min.js
 create mode 100755 lib/mejs/mediaelement.js
 create mode 100755 lib/mejs/mediaelement.min.js
 create mode 100755 lib/mejs/mediaelementplayer.css
 create mode 100755 lib/mejs/mediaelementplayer.js
 create mode 100755 lib/mejs/mediaelementplayer.min.css
 create mode 100755 lib/mejs/mediaelementplayer.min.js
 create mode 100755 lib/mejs/mejs-skins.css
 create mode 100755 lib/mejs/silverlightmediaelement.xap

diff --git a/.gitattributes b/.gitattributes
index 15978a50..3662f16c 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -116,6 +116,30 @@ lang/paquet-medias_pt.php -text
 lang/paquet-medias_pt_br.php -text
 lang/paquet-medias_ru.php -text
 lang/paquet-medias_sk.php -text
+lib/mejs/DO[!!-~]NOT[!!-~]CHANGE[!!-~]THESE[!!-~]FILES.[!!-~]USE[!!-~]-src-[!!-~]FOLDER.txt -text
+lib/mejs/background.png -text
+lib/mejs/bigplay.fw.png -text
+lib/mejs/bigplay.png -text
+lib/mejs/bigplay.svg -text
+lib/mejs/controls-ted.png -text
+lib/mejs/controls-wmp-bg.png -text
+lib/mejs/controls-wmp.png -text
+lib/mejs/controls.fw.png -text
+lib/mejs/controls.png -text
+lib/mejs/controls.svg -text
+lib/mejs/flashmediaelement-cdn.swf -text
+lib/mejs/flashmediaelement.swf -text
+lib/mejs/loading.gif -text
+lib/mejs/mediaelement-and-player.js -text
+lib/mejs/mediaelement-and-player.min.js -text
+lib/mejs/mediaelement.js -text
+lib/mejs/mediaelement.min.js -text
+lib/mejs/mediaelementplayer.css -text
+lib/mejs/mediaelementplayer.js -text
+lib/mejs/mediaelementplayer.min.css -text
+lib/mejs/mediaelementplayer.min.js -text
+lib/mejs/mejs-skins.css -text
+lib/mejs/silverlightmediaelement.xap -text
 /medias_administrations.php -text
 /medias_autoriser.php -text
 /medias_fonctions.php -text
diff --git a/lib/mejs/DO NOT CHANGE THESE FILES. USE -src- FOLDER.txt b/lib/mejs/DO NOT CHANGE THESE FILES. USE -src- FOLDER.txt
new file mode 100755
index 00000000..e69de29b
diff --git a/lib/mejs/background.png b/lib/mejs/background.png
new file mode 100755
index 0000000000000000000000000000000000000000..fd428412ae26af13dab448ec833b1cb603e37ee9
GIT binary patch
literal 166
zcmeAS@N?(olHy`uVBq!ia0y~yU@!t<4mJh`208nVjSLJ7k|nMYCBgY=CFO}lsSJ)O
z`AMk?p1FzXsX?iUDV2pMQ*9U+7(6^(978H@y*Y0v$e_T(u#x?LUY3A3&)y@Bex|ww
j(M~QzfG7Rx2N+y>8O3+Juk2x9U|{fc^>bP0l+XkK?WQjj

literal 0
HcmV?d00001

diff --git a/lib/mejs/bigplay.fw.png b/lib/mejs/bigplay.fw.png
new file mode 100755
index 0000000000000000000000000000000000000000..66d0e3cb73ceec0b1ffc7cdd4c1bc5edaf960556
GIT binary patch
literal 79426
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
S!7HF!gFIdRT-G@yGywoci3MW-

literal 0
HcmV?d00001

diff --git a/lib/mejs/bigplay.png b/lib/mejs/bigplay.png
new file mode 100755
index 0000000000000000000000000000000000000000..694553e31c387188b6bde397a5200c212aff2dc5
GIT binary patch
literal 3001
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
V{5N~47Xt$WgQu&X%Q~loCIC=jhBg2I

literal 0
HcmV?d00001

diff --git a/lib/mejs/bigplay.svg b/lib/mejs/bigplay.svg
new file mode 100755
index 00000000..2b781700
--- /dev/null
+++ b/lib/mejs/bigplay.svg
@@ -0,0 +1,14 @@
+<?xml version="1.0" standalone="no"?>
+<svg id="bigplay" viewBox="0 0 100 200" style="background-color:#ffffff00" version="1.1"
+	xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve"
+	x="0px" y="0px" width="100px" height="200px"
+>
+	<g id="dark">
+		<path id="Polygon"  d="M 72.5 49.5 L 38.75 68.9856 L 38.75 30.0144 L 72.5 49.5 Z" fill="#ffffff" opacity="0.75" />
+		<path id="Ellipse" d="M 13 50.5 C 13 29.7891 29.7891 13 50.5 13 C 71.2109 13 88 29.7891 88 50.5 C 88 71.2109 71.2109 88 50.5 88 C 29.7891 88 13 71.2109 13 50.5 Z" stroke="#ffffff" stroke-width="5" fill="none" opacity="0.75"/>
+	</g>
+	<g id="light">
+		<path id="Polygon2"  d="M 72.5 149.5 L 38.75 168.9856 L 38.75 130.0144 L 72.5 149.5 Z" fill="#ffffff" opacity="1.0" />
+		<path id="Ellipse2" d="M 13 150.5 C 13 129.7891 29.7891 113 50.5 113 C 71.2109 113 88 129.7891 88 150.5 C 88 171.211 71.2109 188 50.5 188 C 29.7891 188 13 171.211 13 150.5 Z" stroke="#ffffff" stroke-width="5" fill="none" opacity="1.0"/>
+	</g>
+</svg>
\ No newline at end of file
diff --git a/lib/mejs/controls-ted.png b/lib/mejs/controls-ted.png
new file mode 100755
index 0000000000000000000000000000000000000000..3aac05aa83cb7fed54831a19d85a8c267e939720
GIT binary patch
literal 1559
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

literal 0
HcmV?d00001

diff --git a/lib/mejs/controls-wmp-bg.png b/lib/mejs/controls-wmp-bg.png
new file mode 100755
index 0000000000000000000000000000000000000000..89bb9b95602ecfca6290f6006f817da365da7b90
GIT binary patch
literal 1960
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

literal 0
HcmV?d00001

diff --git a/lib/mejs/controls-wmp.png b/lib/mejs/controls-wmp.png
new file mode 100755
index 0000000000000000000000000000000000000000..4775ef5b02faf2b826d35dfc72511b6b27fea87b
GIT binary patch
literal 5511
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
M>FVdQ&MBb@0FGDV1^@s6

literal 0
HcmV?d00001

diff --git a/lib/mejs/controls.fw.png b/lib/mejs/controls.fw.png
new file mode 100755
index 0000000000000000000000000000000000000000..e27682ae107408748ac91805eee0e1554d618cd5
GIT binary patch
literal 80753
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

literal 0
HcmV?d00001

diff --git a/lib/mejs/controls.png b/lib/mejs/controls.png
new file mode 100755
index 0000000000000000000000000000000000000000..f6a857d800b64264443af4609e0ebf7175593d8f
GIT binary patch
literal 1892
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

literal 0
HcmV?d00001

diff --git a/lib/mejs/controls.svg b/lib/mejs/controls.svg
new file mode 100755
index 00000000..af3bd416
--- /dev/null
+++ b/lib/mejs/controls.svg
@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?>
<!-- Generator: Adobe Fireworks CS6, Export SVG Extension by Aaron Beall (http://fireworks.abeall.com) . Version: 0.6.1  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg id="controls.fw-Page%201" viewBox="0 0 144 32" style="background-color:#ffffff00" version="1.1"
	xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve"
	x="0px" y="0px" width="144px" height="32px"
>
	<defs>
		<radialGradient id="gradient1" cx="50%" cy="50%" r="50%">
			<stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
			<stop stop-color="#f2f2f2" stop-opacity="0.2" offset="100%"/>
		</radialGradient>
		<linearGradient id="gradient2" x1="50%" y1="-7.8652%" x2="50%" y2="249.6629%">
			<stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
			<stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
		</linearGradient>
		<linearGradient id="gradient3" x1="50%" y1="0%" x2="50%" y2="238.75%">
			<stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
			<stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
		</linearGradient>
		<linearGradient id="gradient4" x1="50%" y1="0%" x2="50%" y2="100%">
			<stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
			<stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
		</linearGradient>
		<linearGradient id="gradient5" x1="50%" y1="-33.3333%" x2="50%" y2="152.0833%">
			<stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
			<stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
		</linearGradient>
		<linearGradient id="gradient6" x1="50%" y1="0%" x2="50%" y2="100%">
			<stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
			<stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
		</linearGradient>
		<linearGradient id="gradient7" x1="50%" y1="-33.3333%" x2="50%" y2="152.0833%">
			<stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
			<stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
		</linearGradient>
		<linearGradient id="gradient8" x1="50%" y1="0%" x2="50%" y2="100%">
			<stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
			<stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
		</linearGradient>
		<linearGradient id="gradient9" x1="50%" y1="0%" x2="50%" y2="100%">
			<stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
			<stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
		</linearGradient>
		<linearGradient id="gradient10" x1="50%" y1="0%" x2="50%" y2="100%">
			<stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
			<stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
		</linearGradient>
		<linearGradient id="gradient11" x1="50%" y1="0%" x2="50%" y2="100%">
			<stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
			<stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
		</linearGradient>
		<linearGradient id="gradient12" x1="50%" y1="0%" x2="50%" y2="238.75%">
			<stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
			<stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
		</linearGradient>
		<linearGradient id="gradient13" x1="40%" y1="-140%" x2="40%" y2="98.75%">
			<stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
			<stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
		</linearGradient>
		<linearGradient id="gradient14" x1="50%" y1="0%" x2="50%" y2="238.75%">
			<stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
			<stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
		</linearGradient>
		<linearGradient id="gradient15" x1="60%" y1="-140%" x2="60%" y2="98.75%">
			<stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
			<stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
		</linearGradient>
		<linearGradient id="gradient16" x1="50%" y1="0%" x2="50%" y2="298.4375%">
			<stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
			<stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
		</linearGradient>
		<linearGradient id="gradient17" x1="50%" y1="0%" x2="50%" y2="238.75%">
			<stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
			<stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
		</linearGradient>
		<linearGradient id="gradient18" x1="50%" y1="-200%" x2="50%" y2="100%">
			<stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
			<stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
		</linearGradient>
		<linearGradient id="gradient19" x1="50%" y1="-200%" x2="50%" y2="110.9375%">
			<stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
			<stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
		</linearGradient>
		<linearGradient id="gradient20" x1="55%" y1="0%" x2="55%" y2="100%">
			<stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
			<stop stop-color="#c8c8c8" stop-opacity="1" offset="100%"/>
		</linearGradient>
		<linearGradient id="gradient21" x1="50%" y1="0%" x2="50%" y2="100%">
			<stop stop-color="#ffffff" stop-opacity="1" offset="0%"/>
			<stop stop-color="#c8c8c8" stop-opacity="1" offset="99.4444%"/>
		</linearGradient>
	</defs>
	<g id="BG">
	</g>
	<g id="controls">
		<path id="Line" d="M 98.5 7.5 L 109.5 7.5 " stroke="#ffffff" stroke-width="1" fill="none"/>
		<path id="Line2" d="M 98.5 3.5 L 109.5 3.5 " stroke="#ffffff" stroke-width="1" fill="none"/>
		<path id="Line3" d="M 98.5 11.5 L 109.5 11.5 " stroke="#ffffff" stroke-width="1" fill="none"/>
		<path id="Ellipse" d="M 108 11.5 C 108 10.6716 108.4477 10 109 10 C 109.5523 10 110 10.6716 110 11.5 C 110 12.3284 109.5523 13 109 13 C 108.4477 13 108 12.3284 108 11.5 Z" fill="#ffffff"/>
		<path id="Ellipse2" d="M 104 7.5 C 104 6.6716 104.4477 6 105 6 C 105.5523 6 106 6.6716 106 7.5 C 106 8.3284 105.5523 9 105 9 C 104.4477 9 104 8.3284 104 7.5 Z" fill="#ffffff"/>
		<path id="Ellipse3" d="M 108 3.5 C 108 2.6716 108.4477 2 109 2 C 109.5523 2 110 2.6716 110 3.5 C 110 4.3284 109.5523 5 109 5 C 108.4477 5 108 4.3284 108 3.5 Z" fill="#ffffff"/>
	</g>
	<g id="backlight">
		<g id="off">
			<rect x="83" y="21" width="10" height="6" stroke="#ffffff" stroke-width="1" fill="#333333"/>
		</g>
		<g id="on">
			<path id="Ellipse4" d="M 81 8 C 81 5.2385 84.134 3 88 3 C 91.866 3 95 5.2385 95 8 C 95 10.7615 91.866 13 88 13 C 84.134 13 81 10.7615 81 8 Z" fill="url(#gradient1)"/>
			<rect x="83" y="5" width="10" height="6" stroke="#ffffff" stroke-width="1" fill="#333333"/>
		</g>
	</g>
	<g id="loop">
		<g id="on2">
			<path d="M 73.795 4.205 C 75.2155 4.8785 76.2 6.3234 76.2 8 C 76.2 10.3196 74.3196 12.2 72 12.2 C 69.6804 12.2 67.8 10.3196 67.8 8 C 67.8 6.3234 68.7845 4.8785 70.205 4.205 L 68.875 2.875 C 67.1501 3.9289 66 5.8306 66 8 C 66 11.3138 68.6862 14 72 14 C 75.3138 14 78 11.3138 78 8 C 78 5.8306 76.8499 3.9289 75.125 2.875 L 73.795 4.205 Z" fill="url(#gradient2)"/>
			<path d="M 71 2 L 66 2 L 71 7 L 71 2 Z" fill="url(#gradient3)"/>
		</g>
		<g id="off2">
			<path d="M 73.795 20.205 C 75.2155 20.8785 76.2 22.3234 76.2 24 C 76.2 26.3196 74.3196 28.2 72 28.2 C 69.6804 28.2 67.8 26.3196 67.8 24 C 67.8 22.3234 68.7845 20.8785 70.205 20.205 L 68.875 18.875 C 67.1501 19.9289 66 21.8306 66 24 C 66 27.3138 68.6862 30 72 30 C 75.3138 30 78 27.3138 78 24 C 78 21.8306 76.8499 19.9289 75.125 18.875 L 73.795 20.205 Z" fill="#a8a8b7"/>
			<path d="M 71 18 L 66 18 L 71 23 L 71 18 Z" fill="#a8a8b7"/>
		</g>
	</g>
	<g id="cc">
		<rect visibility="hidden" x="49" y="2" width="14" height="12" stroke="#b0b0b0" stroke-width="1" fill="none"/>
		<text visibility="hidden" x="49" y="17" width="14" fill="#ffffff" style="font-size: 10px; color: #ffffff; font-family: Arial; text-align: center; "><tspan><![CDATA[cc]]></tspan></text>
		<path d="M 55 7 C 50.2813 3.7813 50.063 12.9405 55 10 " stroke="#ffffff" stroke-width="1" fill="none"/>
		<path d="M 60 7 C 55.2813 3.7813 55.063 12.9405 60 10 " stroke="#ffffff" stroke-width="1" fill="none"/>
		<path d="M 50 3 L 62 3 L 62 13 L 50 13 L 50 3 ZM 49 2 L 49 14 L 63 14 L 63 2 L 49 2 Z" fill="url(#gradient4)"/>
		<rect x="49" y="2" width="14" height="12" fill="none"/>
	</g>
	<g id="volume">
		<g id="no%20sound">
			<rect x="17" y="5" width="5" height="6" fill="url(#gradient5)"/>
			<path d="M 21 5 L 25 2 L 25 14 L 21 11.0625 L 21 5 Z" fill="url(#gradient6)"/>
		</g>
		<g id="sound%20bars">
			<rect x="17" y="21" width="5" height="6" fill="url(#gradient7)"/>
			<path d="M 21 21 L 25 18 L 25 30 L 21 27.0625 L 21 21 Z" fill="url(#gradient8)"/>
			<path d="M 27 18 C 27 18 30.0625 17.375 30 24 C 29.9375 30.625 27 30 27 30 " stroke="#ffffff" stroke-width="1" fill="none"/>
			<path d="M 26 21.0079 C 26 21.0079 28.041 20.6962 27.9994 24 C 27.9577 27.3038 26 26.9921 26 26.9921 " stroke="#ffffff" stroke-width="1" fill="none"/>
		</g>
	</g>
	<g id="play/pause">
		<g id="play">
			<path id="Polygon" d="M 14 8.5 L 3 14 L 3 3 L 14 8.5 Z" fill="url(#gradient9)"/>
		</g>
		<g id="pause">
			<rect x="3" y="18" width="3" height="12" fill="url(#gradient10)"/>
			<rect x="10" y="18" width="3" height="12" fill="url(#gradient11)"/>
		</g>
	</g>
	<g id="fullscreen">
		<g id="enter%201">
			<path d="M 34 2 L 39 2 L 34 7 L 34 2 Z" fill="url(#gradient12)"/>
			<path d="M 34 14 L 39 14 L 34 9 L 34 14 Z" fill="url(#gradient13)"/>
			<path d="M 46 2 L 41 2 L 46 7 L 46 2 Z" fill="url(#gradient14)"/>
			<path d="M 46 14 L 41 14 L 46 9 L 46 14 Z" fill="url(#gradient15)"/>
		</g>
		<g id="exit">
			<path d="M 42 22 L 46 22 L 42 18 L 42 22 Z" fill="url(#gradient16)"/>
			<path d="M 38 22 L 38 18 L 34 22 L 38 22 Z" fill="url(#gradient17)"/>
			<path d="M 38 26 L 34 26 L 38 30 L 38 26 Z" fill="url(#gradient18)"/>
			<path d="M 42 26 L 42 30 L 46 26 L 42 26 Z" fill="url(#gradient19)"/>
		</g>
	</g>
	<g id="stop">
		<rect x="115" y="3" width="10" height="10" fill="url(#gradient20)"/>
	</g>
	<g id="chooser">
		<path d="M 135.2346 6.1522 C 136.2551 5.7295 137.4251 6.2141 137.8478 7.2346 C 138.2704 8.2551 137.7859 9.425 136.7654 9.8478 C 135.7449 10.2705 134.5749 9.7859 134.1522 8.7654 C 133.7295 7.7449 134.2141 6.5749 135.2346 6.1522 ZM 133.2735 1.4176 L 136 4.0054 L 138.7265 1.4176 L 138.8246 5.1754 L 142.5824 5.2735 L 139.9946 8 L 142.5824 10.7265 L 138.8246 10.8246 L 138.7265 14.5824 L 136 11.9946 L 133.2735 14.5824 L 133.1754 10.8246 L 129.4176 10.7265 L 132.0054 8 L 129.4176 5.2735 L 133.1754 5.1754 L 133.2735 1.4176 Z" fill="url(#gradient21)"/>
	</g>
</svg>
\ No newline at end of file
diff --git a/lib/mejs/flashmediaelement-cdn.swf b/lib/mejs/flashmediaelement-cdn.swf
new file mode 100755
index 0000000000000000000000000000000000000000..9b222e9cf6799975243bf9621ebe76bdcecbf6b3
GIT binary patch
literal 57058
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

literal 0
HcmV?d00001

diff --git a/lib/mejs/flashmediaelement.swf b/lib/mejs/flashmediaelement.swf
new file mode 100755
index 0000000000000000000000000000000000000000..5998d67699f32fb155a763f7e92373f4c1879aff
GIT binary patch
literal 57052
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
Q_eW$`=Ys$8jY>Dw03Qt&z5oCK

literal 0
HcmV?d00001

diff --git a/lib/mejs/loading.gif b/lib/mejs/loading.gif
new file mode 100755
index 0000000000000000000000000000000000000000..612222be5e474c36c345042dd6f697fa1d16a6a0
GIT binary patch
literal 6224
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

literal 0
HcmV?d00001

diff --git a/lib/mejs/mediaelement-and-player.js b/lib/mejs/mediaelement-and-player.js
new file mode 100755
index 00000000..bbdd6766
--- /dev/null
+++ b/lib/mejs/mediaelement-and-player.js
@@ -0,0 +1,5291 @@
+/*!
+* MediaElement.js
+* HTML5 <video> and <audio> shim and player
+* http://mediaelementjs.com/
+*
+* Creates a JavaScript object that mimics HTML5 MediaElement API
+* for browsers that don't understand HTML5 or can't play the provided codec
+* Can play MP4 (H.264), Ogg, WebM, FLV, WMV, WMA, ACC, and MP3
+*
+* Copyright 2010-2014, John Dyer (http://j.hn)
+* License: MIT
+*
+*/
+// Namespace
+var mejs = mejs || {};
+
+// version number
+mejs.version = '2.15.1'; 
+
+
+// player number (for missing, same id attr)
+mejs.meIndex = 0;
+
+// media types accepted by plugins
+mejs.plugins = {
+	silverlight: [
+		{version: [3,0], types: ['video/mp4','video/m4v','video/mov','video/wmv','audio/wma','audio/m4a','audio/mp3','audio/wav','audio/mpeg']}
+	],
+	flash: [
+		{version: [9,0,124], types: ['video/mp4','video/m4v','video/mov','video/flv','video/rtmp','video/x-flv','audio/flv','audio/x-flv','audio/mp3','audio/m4a','audio/mpeg', 'video/youtube', 'video/x-youtube', 'application/x-mpegURL']}
+		//,{version: [12,0], types: ['video/webm']} // for future reference (hopefully!)
+	],
+	youtube: [
+		{version: null, types: ['video/youtube', 'video/x-youtube', 'audio/youtube', 'audio/x-youtube']}
+	],
+	vimeo: [
+		{version: null, types: ['video/vimeo', 'video/x-vimeo']}
+	]
+};
+
+/*
+Utility methods
+*/
+mejs.Utility = {
+	encodeUrl: function(url) {
+		return encodeURIComponent(url); //.replace(/\?/gi,'%3F').replace(/=/gi,'%3D').replace(/&/gi,'%26');
+	},
+	escapeHTML: function(s) {
+		return s.toString().split('&').join('&amp;').split('<').join('&lt;').split('"').join('&quot;');
+	},
+	absolutizeUrl: function(url) {
+		var el = document.createElement('div');
+		el.innerHTML = '<a href="' + this.escapeHTML(url) + '">x</a>';
+		return el.firstChild.href;
+	},
+	getScriptPath: function(scriptNames) {
+		var
+			i = 0,
+			j,
+			codePath = '',
+			testname = '',
+			slashPos,
+			filenamePos,
+			scriptUrl,
+			scriptPath,			
+			scriptFilename,
+			scripts = document.getElementsByTagName('script'),
+			il = scripts.length,
+			jl = scriptNames.length;
+			
+		// go through all <script> tags
+		for (; i < il; i++) {
+			scriptUrl = scripts[i].src;
+			slashPos = scriptUrl.lastIndexOf('/');
+			if (slashPos > -1) {
+				scriptFilename = scriptUrl.substring(slashPos + 1);
+				scriptPath = scriptUrl.substring(0, slashPos + 1);
+			} else {
+				scriptFilename = scriptUrl;
+				scriptPath = '';			
+			}
+			
+			// see if any <script> tags have a file name that matches the 
+			for (j = 0; j < jl; j++) {
+				testname = scriptNames[j];
+				filenamePos = scriptFilename.indexOf(testname);
+				if (filenamePos > -1) {
+					codePath = scriptPath;
+					break;
+				}
+			}
+			
+			// if we found a path, then break and return it
+			if (codePath !== '') {
+				break;
+			}
+		}
+		
+		// send the best path back
+		return codePath;
+	},
+	secondsToTimeCode: function(time, forceHours, showFrameCount, fps) {
+		//add framecount
+		if (typeof showFrameCount == 'undefined') {
+		    showFrameCount=false;
+		} else if(typeof fps == 'undefined') {
+		    fps = 25;
+		}
+	
+		var hours = Math.floor(time / 3600) % 24,
+			minutes = Math.floor(time / 60) % 60,
+			seconds = Math.floor(time % 60),
+			frames = Math.floor(((time % 1)*fps).toFixed(3)),
+			result = 
+					( (forceHours || hours > 0) ? (hours < 10 ? '0' + hours : hours) + ':' : '')
+						+ (minutes < 10 ? '0' + minutes : minutes) + ':'
+						+ (seconds < 10 ? '0' + seconds : seconds)
+						+ ((showFrameCount) ? ':' + (frames < 10 ? '0' + frames : frames) : '');
+	
+		return result;
+	},
+	
+	timeCodeToSeconds: function(hh_mm_ss_ff, forceHours, showFrameCount, fps){
+		if (typeof showFrameCount == 'undefined') {
+		    showFrameCount=false;
+		} else if(typeof fps == 'undefined') {
+		    fps = 25;
+		}
+	
+		var tc_array = hh_mm_ss_ff.split(":"),
+			tc_hh = parseInt(tc_array[0], 10),
+			tc_mm = parseInt(tc_array[1], 10),
+			tc_ss = parseInt(tc_array[2], 10),
+			tc_ff = 0,
+			tc_in_seconds = 0;
+		
+		if (showFrameCount) {
+		    tc_ff = parseInt(tc_array[3])/fps;
+		}
+		
+		tc_in_seconds = ( tc_hh * 3600 ) + ( tc_mm * 60 ) + tc_ss + tc_ff;
+		
+		return tc_in_seconds;
+	},
+	
+
+	convertSMPTEtoSeconds: function (SMPTE) {
+		if (typeof SMPTE != 'string') 
+			return false;
+
+		SMPTE = SMPTE.replace(',', '.');
+		
+		var secs = 0,
+			decimalLen = (SMPTE.indexOf('.') != -1) ? SMPTE.split('.')[1].length : 0,
+			multiplier = 1;
+		
+		SMPTE = SMPTE.split(':').reverse();
+		
+		for (var i = 0; i < SMPTE.length; i++) {
+			multiplier = 1;
+			if (i > 0) {
+				multiplier = Math.pow(60, i); 
+			}
+			secs += Number(SMPTE[i]) * multiplier;
+		}
+		return Number(secs.toFixed(decimalLen));
+	},	
+	
+	/* borrowed from SWFObject: http://code.google.com/p/swfobject/source/browse/trunk/swfobject/src/swfobject.js#474 */
+	removeSwf: function(id) {
+		var obj = document.getElementById(id);
+		if (obj && /object|embed/i.test(obj.nodeName)) {
+			if (mejs.MediaFeatures.isIE) {
+				obj.style.display = "none";
+				(function(){
+					if (obj.readyState == 4) {
+						mejs.Utility.removeObjectInIE(id);
+					} else {
+						setTimeout(arguments.callee, 10);
+					}
+				})();
+			} else {
+				obj.parentNode.removeChild(obj);
+			}
+		}
+	},
+	removeObjectInIE: function(id) {
+		var obj = document.getElementById(id);
+		if (obj) {
+			for (var i in obj) {
+				if (typeof obj[i] == "function") {
+					obj[i] = null;
+				}
+			}
+			obj.parentNode.removeChild(obj);
+		}		
+	}
+};
+
+
+// Core detector, plugins are added below
+mejs.PluginDetector = {
+
+	// main public function to test a plug version number PluginDetector.hasPluginVersion('flash',[9,0,125]);
+	hasPluginVersion: function(plugin, v) {
+		var pv = this.plugins[plugin];
+		v[1] = v[1] || 0;
+		v[2] = v[2] || 0;
+		return (pv[0] > v[0] || (pv[0] == v[0] && pv[1] > v[1]) || (pv[0] == v[0] && pv[1] == v[1] && pv[2] >= v[2])) ? true : false;
+	},
+
+	// cached values
+	nav: window.navigator,
+	ua: window.navigator.userAgent.toLowerCase(),
+
+	// stored version numbers
+	plugins: [],
+
+	// runs detectPlugin() and stores the version number
+	addPlugin: function(p, pluginName, mimeType, activeX, axDetect) {
+		this.plugins[p] = this.detectPlugin(pluginName, mimeType, activeX, axDetect);
+	},
+
+	// get the version number from the mimetype (all but IE) or ActiveX (IE)
+	detectPlugin: function(pluginName, mimeType, activeX, axDetect) {
+
+		var version = [0,0,0],
+			description,
+			i,
+			ax;
+
+		// Firefox, Webkit, Opera
+		if (typeof(this.nav.plugins) != 'undefined' && typeof this.nav.plugins[pluginName] == 'object') {
+			description = this.nav.plugins[pluginName].description;
+			if (description && !(typeof this.nav.mimeTypes != 'undefined' && this.nav.mimeTypes[mimeType] && !this.nav.mimeTypes[mimeType].enabledPlugin)) {
+				version = description.replace(pluginName, '').replace(/^\s+/,'').replace(/\sr/gi,'.').split('.');
+				for (i=0; i<version.length; i++) {
+					version[i] = parseInt(version[i].match(/\d+/), 10);
+				}
+			}
+		// Internet Explorer / ActiveX
+		} else if (typeof(window.ActiveXObject) != 'undefined') {
+			try {
+				ax = new ActiveXObject(activeX);
+				if (ax) {
+					version = axDetect(ax);
+				}
+			}
+			catch (e) { }
+		}
+		return version;
+	}
+};
+
+// Add Flash detection
+mejs.PluginDetector.addPlugin('flash','Shockwave Flash','application/x-shockwave-flash','ShockwaveFlash.ShockwaveFlash', function(ax) {
+	// adapted from SWFObject
+	var version = [],
+		d = ax.GetVariable("$version");
+	if (d) {
+		d = d.split(" ")[1].split(",");
+		version = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
+	}
+	return version;
+});
+
+// Add Silverlight detection
+mejs.PluginDetector.addPlugin('silverlight','Silverlight Plug-In','application/x-silverlight-2','AgControl.AgControl', function (ax) {
+	// Silverlight cannot report its version number to IE
+	// but it does have a isVersionSupported function, so we have to loop through it to get a version number.
+	// adapted from http://www.silverlightversion.com/
+	var v = [0,0,0,0],
+		loopMatch = function(ax, v, i, n) {
+			while(ax.isVersionSupported(v[0]+ "."+ v[1] + "." + v[2] + "." + v[3])){
+				v[i]+=n;
+			}
+			v[i] -= n;
+		};
+	loopMatch(ax, v, 0, 1);
+	loopMatch(ax, v, 1, 1);
+	loopMatch(ax, v, 2, 10000); // the third place in the version number is usually 5 digits (4.0.xxxxx)
+	loopMatch(ax, v, 2, 1000);
+	loopMatch(ax, v, 2, 100);
+	loopMatch(ax, v, 2, 10);
+	loopMatch(ax, v, 2, 1);
+	loopMatch(ax, v, 3, 1);
+
+	return v;
+});
+// add adobe acrobat
+/*
+PluginDetector.addPlugin('acrobat','Adobe Acrobat','application/pdf','AcroPDF.PDF', function (ax) {
+	var version = [],
+		d = ax.GetVersions().split(',')[0].split('=')[1].split('.');
+
+	if (d) {
+		version = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
+	}
+	return version;
+});
+*/
+// necessary detection (fixes for <IE9)
+mejs.MediaFeatures = {
+	init: function() {
+		var
+			t = this,
+			d = document,
+			nav = mejs.PluginDetector.nav,
+			ua = mejs.PluginDetector.ua.toLowerCase(),
+			i,
+			v,
+			html5Elements = ['source','track','audio','video'];
+
+		// detect browsers (only the ones that have some kind of quirk we need to work around)
+		t.isiPad = (ua.match(/ipad/i) !== null);
+		t.isiPhone = (ua.match(/iphone/i) !== null);
+		t.isiOS = t.isiPhone || t.isiPad;
+		t.isAndroid = (ua.match(/android/i) !== null);
+		t.isBustedAndroid = (ua.match(/android 2\.[12]/) !== null);
+		t.isBustedNativeHTTPS = (location.protocol === 'https:' && (ua.match(/android [12]\./) !== null || ua.match(/macintosh.* version.* safari/) !== null));
+		t.isIE = (nav.appName.toLowerCase().indexOf("microsoft") != -1 || nav.appName.toLowerCase().match(/trident/gi) !== null);
+		t.isChrome = (ua.match(/chrome/gi) !== null);
+		t.isChromium = (ua.match(/chromium/gi) !== null);
+		t.isFirefox = (ua.match(/firefox/gi) !== null);
+		t.isWebkit = (ua.match(/webkit/gi) !== null);
+		t.isGecko = (ua.match(/gecko/gi) !== null) && !t.isWebkit && !t.isIE;
+		t.isOpera = (ua.match(/opera/gi) !== null);
+		t.hasTouch = ('ontouchstart' in window); //  && window.ontouchstart != null); // this breaks iOS 7
+		
+		// borrowed from Modernizr
+		t.svg = !! document.createElementNS &&
+				!! document.createElementNS('http://www.w3.org/2000/svg','svg').createSVGRect;
+
+		// create HTML5 media elements for IE before 9, get a <video> element for fullscreen detection
+		for (i=0; i<html5Elements.length; i++) {
+			v = document.createElement(html5Elements[i]);
+		}
+		
+		t.supportsMediaTag = (typeof v.canPlayType !== 'undefined' || t.isBustedAndroid);
+
+		// Fix for IE9 on Windows 7N / Windows 7KN (Media Player not installer)
+		try{
+			v.canPlayType("video/mp4");
+		}catch(e){
+			t.supportsMediaTag = false;
+		}
+
+		// detect native JavaScript fullscreen (Safari/Firefox only, Chrome still fails)
+		
+		// iOS
+		t.hasSemiNativeFullScreen = (typeof v.webkitEnterFullscreen !== 'undefined');
+		
+		// W3C
+		t.hasNativeFullscreen = (typeof v.requestFullscreen !== 'undefined');
+		
+		// webkit/firefox/IE11+
+		t.hasWebkitNativeFullScreen = (typeof v.webkitRequestFullScreen !== 'undefined');
+		t.hasMozNativeFullScreen = (typeof v.mozRequestFullScreen !== 'undefined');
+		t.hasMsNativeFullScreen = (typeof v.msRequestFullscreen !== 'undefined');
+		
+		t.hasTrueNativeFullScreen = (t.hasWebkitNativeFullScreen || t.hasMozNativeFullScreen || t.hasMsNativeFullScreen);
+		t.nativeFullScreenEnabled = t.hasTrueNativeFullScreen;
+		
+		// Enabled?
+		if (t.hasMozNativeFullScreen) {
+			t.nativeFullScreenEnabled = document.mozFullScreenEnabled;
+		} else if (t.hasMsNativeFullScreen) {
+			t.nativeFullScreenEnabled = document.msFullscreenEnabled;		
+		}
+		
+		if (t.isChrome) {
+			t.hasSemiNativeFullScreen = false;
+		}
+		
+		if (t.hasTrueNativeFullScreen) {
+			
+			t.fullScreenEventName = '';
+			if (t.hasWebkitNativeFullScreen) { 
+				t.fullScreenEventName = 'webkitfullscreenchange';
+				
+			} else if (t.hasMozNativeFullScreen) {
+				t.fullScreenEventName = 'mozfullscreenchange';
+				
+			} else if (t.hasMsNativeFullScreen) {
+				t.fullScreenEventName = 'MSFullscreenChange';
+			}
+			
+			t.isFullScreen = function() {
+				if (t.hasMozNativeFullScreen) {
+					return d.mozFullScreen;
+				
+				} else if (t.hasWebkitNativeFullScreen) {
+					return d.webkitIsFullScreen;
+				
+				} else if (t.hasMsNativeFullScreen) {
+					return d.msFullscreenElement !== null;
+				}
+			}
+					
+			t.requestFullScreen = function(el) {
+		
+				if (t.hasWebkitNativeFullScreen) {
+					el.webkitRequestFullScreen();
+					
+				} else if (t.hasMozNativeFullScreen) {
+					el.mozRequestFullScreen();
+
+				} else if (t.hasMsNativeFullScreen) {
+					el.msRequestFullscreen();
+
+				}
+			}
+			
+			t.cancelFullScreen = function() {				
+				if (t.hasWebkitNativeFullScreen) {
+					document.webkitCancelFullScreen();
+					
+				} else if (t.hasMozNativeFullScreen) {
+					document.mozCancelFullScreen();
+					
+				} else if (t.hasMsNativeFullScreen) {
+					document.msExitFullscreen();
+					
+				}
+			}	
+			
+		}
+		
+		
+		// OS X 10.5 can't do this even if it says it can :(
+		if (t.hasSemiNativeFullScreen && ua.match(/mac os x 10_5/i)) {
+			t.hasNativeFullScreen = false;
+			t.hasSemiNativeFullScreen = false;
+		}
+		
+	}
+};
+mejs.MediaFeatures.init();
+
+/*
+extension methods to <video> or <audio> object to bring it into parity with PluginMediaElement (see below)
+*/
+mejs.HtmlMediaElement = {
+	pluginType: 'native',
+	isFullScreen: false,
+
+	setCurrentTime: function (time) {
+		this.currentTime = time;
+	},
+
+	setMuted: function (muted) {
+		this.muted = muted;
+	},
+
+	setVolume: function (volume) {
+		this.volume = volume;
+	},
+
+	// for parity with the plugin versions
+	stop: function () {
+		this.pause();
+	},
+
+	// This can be a url string
+	// or an array [{src:'file.mp4',type:'video/mp4'},{src:'file.webm',type:'video/webm'}]
+	setSrc: function (url) {
+		
+		// Fix for IE9 which can't set .src when there are <source> elements. Awesome, right?
+		var 
+			existingSources = this.getElementsByTagName('source');
+		while (existingSources.length > 0){
+			this.removeChild(existingSources[0]);
+		}
+	
+		if (typeof url == 'string') {
+			this.src = url;
+		} else {
+			var i, media;
+
+			for (i=0; i<url.length; i++) {
+				media = url[i];
+				if (this.canPlayType(media.type)) {
+					this.src = media.src;
+					break;
+				}
+			}
+		}
+	},
+
+	setVideoSize: function (width, height) {
+		this.width = width;
+		this.height = height;
+	}
+};
+
+/*
+Mimics the <video/audio> element by calling Flash's External Interface or Silverlights [ScriptableMember]
+*/
+mejs.PluginMediaElement = function (pluginid, pluginType, mediaUrl) {
+	this.id = pluginid;
+	this.pluginType = pluginType;
+	this.src = mediaUrl;
+	this.events = {};
+	this.attributes = {};
+};
+
+// JavaScript values and ExternalInterface methods that match HTML5 video properties methods
+// http://www.adobe.com/livedocs/flash/9.0/ActionScriptLangRefV3/fl/video/FLVPlayback.html
+// http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html
+mejs.PluginMediaElement.prototype = {
+
+	// special
+	pluginElement: null,
+	pluginType: '',
+	isFullScreen: false,
+
+	// not implemented :(
+	playbackRate: -1,
+	defaultPlaybackRate: -1,
+	seekable: [],
+	played: [],
+
+	// HTML5 read-only properties
+	paused: true,
+	ended: false,
+	seeking: false,
+	duration: 0,
+	error: null,
+	tagName: '',
+
+	// HTML5 get/set properties, but only set (updated by event handlers)
+	muted: false,
+	volume: 1,
+	currentTime: 0,
+
+	// HTML5 methods
+	play: function () {
+		if (this.pluginApi != null) {
+			if (this.pluginType == 'youtube' || this.pluginType == 'vimeo') {
+				this.pluginApi.playVideo();
+			} else {
+				this.pluginApi.playMedia();
+			}
+			this.paused = false;
+		}
+	},
+	load: function () {
+		if (this.pluginApi != null) {
+			if (this.pluginType == 'youtube' || this.pluginType == 'vimeo') {
+			} else {
+				this.pluginApi.loadMedia();
+			}
+			
+			this.paused = false;
+		}
+	},
+	pause: function () {
+		if (this.pluginApi != null) {
+			if (this.pluginType == 'youtube' || this.pluginType == 'vimeo') {
+				this.pluginApi.pauseVideo();
+			} else {
+				this.pluginApi.pauseMedia();
+			}			
+			
+			
+			this.paused = true;
+		}
+	},
+	stop: function () {
+		if (this.pluginApi != null) {
+			if (this.pluginType == 'youtube' || this.pluginType == 'vimeo') {
+				this.pluginApi.stopVideo();
+			} else {
+				this.pluginApi.stopMedia();
+			}	
+			this.paused = true;
+		}
+	},
+	canPlayType: function(type) {
+		var i,
+			j,
+			pluginInfo,
+			pluginVersions = mejs.plugins[this.pluginType];
+
+		for (i=0; i<pluginVersions.length; i++) {
+			pluginInfo = pluginVersions[i];
+
+			// test if user has the correct plugin version
+			if (mejs.PluginDetector.hasPluginVersion(this.pluginType, pluginInfo.version)) {
+
+				// test for plugin playback types
+				for (j=0; j<pluginInfo.types.length; j++) {
+					// find plugin that can play the type
+					if (type == pluginInfo.types[j]) {
+						return 'probably';
+					}
+				}
+			}
+		}
+
+		return '';
+	},
+	
+	positionFullscreenButton: function(x,y,visibleAndAbove) {
+		if (this.pluginApi != null && this.pluginApi.positionFullscreenButton) {
+			this.pluginApi.positionFullscreenButton(Math.floor(x),Math.floor(y),visibleAndAbove);
+		}
+	},
+	
+	hideFullscreenButton: function() {
+		if (this.pluginApi != null && this.pluginApi.hideFullscreenButton) {
+			this.pluginApi.hideFullscreenButton();
+		}		
+	},	
+	
+
+	// custom methods since not all JavaScript implementations support get/set
+
+	// This can be a url string
+	// or an array [{src:'file.mp4',type:'video/mp4'},{src:'file.webm',type:'video/webm'}]
+	setSrc: function (url) {
+		if (typeof url == 'string') {
+			this.pluginApi.setSrc(mejs.Utility.absolutizeUrl(url));
+			this.src = mejs.Utility.absolutizeUrl(url);
+		} else {
+			var i, media;
+
+			for (i=0; i<url.length; i++) {
+				media = url[i];
+				if (this.canPlayType(media.type)) {
+					this.pluginApi.setSrc(mejs.Utility.absolutizeUrl(media.src));
+					this.src = mejs.Utility.absolutizeUrl(url);
+					break;
+				}
+			}
+		}
+
+	},
+	setCurrentTime: function (time) {
+		if (this.pluginApi != null) {
+			if (this.pluginType == 'youtube' || this.pluginType == 'vimeo') {
+				this.pluginApi.seekTo(time);
+			} else {
+				this.pluginApi.setCurrentTime(time);
+			}				
+			
+			
+			
+			this.currentTime = time;
+		}
+	},
+	setVolume: function (volume) {
+		if (this.pluginApi != null) {
+			// same on YouTube and MEjs
+			if (this.pluginType == 'youtube') {
+				this.pluginApi.setVolume(volume * 100);
+			} else {
+				this.pluginApi.setVolume(volume);
+			}
+			this.volume = volume;
+		}
+	},
+	setMuted: function (muted) {
+		if (this.pluginApi != null) {
+			if (this.pluginType == 'youtube') {
+				if (muted) {
+					this.pluginApi.mute();
+				} else {
+					this.pluginApi.unMute();
+				}
+				this.muted = muted;
+				this.dispatchEvent('volumechange');
+			} else {
+				this.pluginApi.setMuted(muted);
+			}
+			this.muted = muted;
+		}
+	},
+
+	// additional non-HTML5 methods
+	setVideoSize: function (width, height) {
+		
+		//if (this.pluginType == 'flash' || this.pluginType == 'silverlight') {
+			if (this.pluginElement && this.pluginElement.style) {
+				this.pluginElement.style.width = width + 'px';
+				this.pluginElement.style.height = height + 'px';
+			}
+			if (this.pluginApi != null && this.pluginApi.setVideoSize) {
+				this.pluginApi.setVideoSize(width, height);
+			}
+		//}
+	},
+
+	setFullscreen: function (fullscreen) {
+		if (this.pluginApi != null && this.pluginApi.setFullscreen) {
+			this.pluginApi.setFullscreen(fullscreen);
+		}
+	},
+	
+	enterFullScreen: function() {
+		if (this.pluginApi != null && this.pluginApi.setFullscreen) {
+			this.setFullscreen(true);
+		}		
+		
+	},
+	
+	exitFullScreen: function() {
+		if (this.pluginApi != null && this.pluginApi.setFullscreen) {
+			this.setFullscreen(false);
+		}
+	},	
+
+	// start: fake events
+	addEventListener: function (eventName, callback, bubble) {
+		this.events[eventName] = this.events[eventName] || [];
+		this.events[eventName].push(callback);
+	},
+	removeEventListener: function (eventName, callback) {
+		if (!eventName) { this.events = {}; return true; }
+		var callbacks = this.events[eventName];
+		if (!callbacks) return true;
+		if (!callback) { this.events[eventName] = []; return true; }
+		for (var i = 0; i < callbacks.length; i++) {
+			if (callbacks[i] === callback) {
+				this.events[eventName].splice(i, 1);
+				return true;
+			}
+		}
+		return false;
+	},	
+	dispatchEvent: function (eventName) {
+		var i,
+			args,
+			callbacks = this.events[eventName];
+
+		if (callbacks) {
+			args = Array.prototype.slice.call(arguments, 1);
+			for (i = 0; i < callbacks.length; i++) {
+				callbacks[i].apply(null, args);
+			}
+		}
+	},
+	// end: fake events
+	
+	// fake DOM attribute methods
+	hasAttribute: function(name){
+		return (name in this.attributes);  
+	},
+	removeAttribute: function(name){
+		delete this.attributes[name];
+	},
+	getAttribute: function(name){
+		if (this.hasAttribute(name)) {
+			return this.attributes[name];
+		}
+		return '';
+	},
+	setAttribute: function(name, value){
+		this.attributes[name] = value;
+	},
+
+	remove: function() {
+		mejs.Utility.removeSwf(this.pluginElement.id);
+		mejs.MediaPluginBridge.unregisterPluginElement(this.pluginElement.id);
+	}
+};
+
+// Handles calls from Flash/Silverlight and reports them as native <video/audio> events and properties
+mejs.MediaPluginBridge = {
+
+	pluginMediaElements:{},
+	htmlMediaElements:{},
+
+	registerPluginElement: function (id, pluginMediaElement, htmlMediaElement) {
+		this.pluginMediaElements[id] = pluginMediaElement;
+		this.htmlMediaElements[id] = htmlMediaElement;
+	},
+
+	unregisterPluginElement: function (id) {
+		delete this.pluginMediaElements[id];
+		delete this.htmlMediaElements[id];
+	},
+
+	// when Flash/Silverlight is ready, it calls out to this method
+	initPlugin: function (id) {
+
+		var pluginMediaElement = this.pluginMediaElements[id],
+			htmlMediaElement = this.htmlMediaElements[id];
+
+		if (pluginMediaElement) {
+			// find the javascript bridge
+			switch (pluginMediaElement.pluginType) {
+				case "flash":
+					pluginMediaElement.pluginElement = pluginMediaElement.pluginApi = document.getElementById(id);
+					break;
+				case "silverlight":
+					pluginMediaElement.pluginElement = document.getElementById(pluginMediaElement.id);
+					pluginMediaElement.pluginApi = pluginMediaElement.pluginElement.Content.MediaElementJS;
+					break;
+			}
+	
+			if (pluginMediaElement.pluginApi != null && pluginMediaElement.success) {
+				pluginMediaElement.success(pluginMediaElement, htmlMediaElement);
+			}
+		}
+	},
+
+	// receives events from Flash/Silverlight and sends them out as HTML5 media events
+	// http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html
+	fireEvent: function (id, eventName, values) {
+
+		var
+			e,
+			i,
+			bufferedTime,
+			pluginMediaElement = this.pluginMediaElements[id];
+
+		if(!pluginMediaElement){
+            return;
+        }
+        
+		// fake event object to mimic real HTML media event.
+		e = {
+			type: eventName,
+			target: pluginMediaElement
+		};
+
+		// attach all values to element and event object
+		for (i in values) {
+			pluginMediaElement[i] = values[i];
+			e[i] = values[i];
+		}
+
+		// fake the newer W3C buffered TimeRange (loaded and total have been removed)
+		bufferedTime = values.bufferedTime || 0;
+
+		e.target.buffered = e.buffered = {
+			start: function(index) {
+				return 0;
+			},
+			end: function (index) {
+				return bufferedTime;
+			},
+			length: 1
+		};
+
+		pluginMediaElement.dispatchEvent(e.type, e);
+	}
+};
+
+/*
+Default options
+*/
+mejs.MediaElementDefaults = {
+	// allows testing on HTML5, flash, silverlight
+	// auto: attempts to detect what the browser can do
+	// auto_plugin: prefer plugins and then attempt native HTML5
+	// native: forces HTML5 playback
+	// shim: disallows HTML5, will attempt either Flash or Silverlight
+	// none: forces fallback view
+	mode: 'auto',
+	// remove or reorder to change plugin priority and availability
+	plugins: ['flash','silverlight','youtube','vimeo'],
+	// shows debug errors on screen
+	enablePluginDebug: false,
+	// use plugin for browsers that have trouble with Basic Authentication on HTTPS sites
+	httpsBasicAuthSite: false,
+	// overrides the type specified, useful for dynamic instantiation
+	type: '',
+	// path to Flash and Silverlight plugins
+	pluginPath: mejs.Utility.getScriptPath(['mediaelement.js','mediaelement.min.js','mediaelement-and-player.js','mediaelement-and-player.min.js']),
+	// name of flash file
+	flashName: 'flashmediaelement.swf',
+	// streamer for RTMP streaming
+	flashStreamer: '',
+	// turns on the smoothing filter in Flash
+	enablePluginSmoothing: false,
+	// enabled pseudo-streaming (seek) on .mp4 files
+	enablePseudoStreaming: false,
+	// start query parameter sent to server for pseudo-streaming
+	pseudoStreamingStartQueryParam: 'start',
+	// name of silverlight file
+	silverlightName: 'silverlightmediaelement.xap',
+	// default if the <video width> is not specified
+	defaultVideoWidth: 480,
+	// default if the <video height> is not specified
+	defaultVideoHeight: 270,
+	// overrides <video width>
+	pluginWidth: -1,
+	// overrides <video height>
+	pluginHeight: -1,
+	// additional plugin variables in 'key=value' form
+	pluginVars: [],	
+	// rate in milliseconds for Flash and Silverlight to fire the timeupdate event
+	// larger number is less accurate, but less strain on plugin->JavaScript bridge
+	timerRate: 250,
+	// initial volume for player
+	startVolume: 0.8,
+	success: function () { },
+	error: function () { }
+};
+
+/*
+Determines if a browser supports the <video> or <audio> element
+and returns either the native element or a Flash/Silverlight version that
+mimics HTML5 MediaElement
+*/
+mejs.MediaElement = function (el, o) {
+	return mejs.HtmlMediaElementShim.create(el,o);
+};
+
+mejs.HtmlMediaElementShim = {
+
+	create: function(el, o) {
+		var
+			options = mejs.MediaElementDefaults,
+			htmlMediaElement = (typeof(el) == 'string') ? document.getElementById(el) : el,
+			tagName = htmlMediaElement.tagName.toLowerCase(),
+			isMediaTag = (tagName === 'audio' || tagName === 'video'),
+			src = (isMediaTag) ? htmlMediaElement.getAttribute('src') : htmlMediaElement.getAttribute('href'),
+			poster = htmlMediaElement.getAttribute('poster'),
+			autoplay =  htmlMediaElement.getAttribute('autoplay'),
+			preload =  htmlMediaElement.getAttribute('preload'),
+			controls =  htmlMediaElement.getAttribute('controls'),
+			playback,
+			prop;
+
+		// extend options
+		for (prop in o) {
+			options[prop] = o[prop];
+		}
+
+		// clean up attributes
+		src = 		(typeof src == 'undefined' 	|| src === null || src == '') ? null : src;		
+		poster =	(typeof poster == 'undefined' 	|| poster === null) ? '' : poster;
+		preload = 	(typeof preload == 'undefined' 	|| preload === null || preload === 'false') ? 'none' : preload;
+		autoplay = 	!(typeof autoplay == 'undefined' || autoplay === null || autoplay === 'false');
+		controls = 	!(typeof controls == 'undefined' || controls === null || controls === 'false');
+
+		// test for HTML5 and plugin capabilities
+		playback = this.determinePlayback(htmlMediaElement, options, mejs.MediaFeatures.supportsMediaTag, isMediaTag, src);
+		playback.url = (playback.url !== null) ? mejs.Utility.absolutizeUrl(playback.url) : '';
+
+		if (playback.method == 'native') {
+			// second fix for android
+			if (mejs.MediaFeatures.isBustedAndroid) {
+				htmlMediaElement.src = playback.url;
+				htmlMediaElement.addEventListener('click', function() {
+					htmlMediaElement.play();
+				}, false);
+			}
+		
+			// add methods to native HTMLMediaElement
+			return this.updateNative(playback, options, autoplay, preload);
+		} else if (playback.method !== '') {
+			// create plugin to mimic HTMLMediaElement
+			
+			return this.createPlugin( playback,  options, poster, autoplay, preload, controls);
+		} else {
+			// boo, no HTML5, no Flash, no Silverlight.
+			this.createErrorMessage( playback, options, poster );
+			
+			return this;
+		}
+	},
+	
+	determinePlayback: function(htmlMediaElement, options, supportsMediaTag, isMediaTag, src) {
+		var
+			mediaFiles = [],
+			i,
+			j,
+			k,
+			l,
+			n,
+			type,
+			result = { method: '', url: '', htmlMediaElement: htmlMediaElement, isVideo: (htmlMediaElement.tagName.toLowerCase() != 'audio')},
+			pluginName,
+			pluginVersions,
+			pluginInfo,
+			dummy,
+			media;
+			
+		// STEP 1: Get URL and type from <video src> or <source src>
+
+		// supplied type overrides <video type> and <source type>
+		if (typeof options.type != 'undefined' && options.type !== '') {
+			
+			// accept either string or array of types
+			if (typeof options.type == 'string') {
+				mediaFiles.push({type:options.type, url:src});
+			} else {
+				
+				for (i=0; i<options.type.length; i++) {
+					mediaFiles.push({type:options.type[i], url:src});
+				}
+			}
+
+		// test for src attribute first
+		} else if (src !== null) {
+			type = this.formatType(src, htmlMediaElement.getAttribute('type'));
+			mediaFiles.push({type:type, url:src});
+
+		// then test for <source> elements
+		} else {
+			// test <source> types to see if they are usable
+			for (i = 0; i < htmlMediaElement.childNodes.length; i++) {
+				n = htmlMediaElement.childNodes[i];
+				if (n.nodeType == 1 && n.tagName.toLowerCase() == 'source') {
+					src = n.getAttribute('src');
+					type = this.formatType(src, n.getAttribute('type'));
+					media = n.getAttribute('media');
+
+					if (!media || !window.matchMedia || (window.matchMedia && window.matchMedia(media).matches)) {
+						mediaFiles.push({type:type, url:src});
+					}
+				}
+			}
+		}
+		
+		// in the case of dynamicly created players
+		// check for audio types
+		if (!isMediaTag && mediaFiles.length > 0 && mediaFiles[0].url !== null && this.getTypeFromFile(mediaFiles[0].url).indexOf('audio') > -1) {
+			result.isVideo = false;
+		}
+		
+
+		// STEP 2: Test for playback method
+		
+		// special case for Android which sadly doesn't implement the canPlayType function (always returns '')
+		if (mejs.MediaFeatures.isBustedAndroid) {
+			htmlMediaElement.canPlayType = function(type) {
+				return (type.match(/video\/(mp4|m4v)/gi) !== null) ? 'maybe' : '';
+			};
+		}		
+		
+		// special case for Chromium to specify natively supported video codecs (i.e. WebM and Theora) 
+		if (mejs.MediaFeatures.isChromium) { 
+			htmlMediaElement.canPlayType = function(type) { 
+				return (type.match(/video\/(webm|ogv|ogg)/gi) !== null) ? 'maybe' : ''; 
+			}; 
+		}
+
+		// test for native playback first
+		if (supportsMediaTag && (options.mode === 'auto' || options.mode === 'auto_plugin' || options.mode === 'native')  && !(mejs.MediaFeatures.isBustedNativeHTTPS && options.httpsBasicAuthSite === true)) {
+						
+			if (!isMediaTag) {
+
+				// create a real HTML5 Media Element 
+				dummy = document.createElement( result.isVideo ? 'video' : 'audio');			
+				htmlMediaElement.parentNode.insertBefore(dummy, htmlMediaElement);
+				htmlMediaElement.style.display = 'none';
+				
+				// use this one from now on
+				result.htmlMediaElement = htmlMediaElement = dummy;
+			}
+				
+			for (i=0; i<mediaFiles.length; i++) {
+				// normal check
+				if (mediaFiles[i].type == "video/m3u8" || htmlMediaElement.canPlayType(mediaFiles[i].type).replace(/no/, '') !== ''
+					// special case for Mac/Safari 5.0.3 which answers '' to canPlayType('audio/mp3') but 'maybe' to canPlayType('audio/mpeg')
+					|| htmlMediaElement.canPlayType(mediaFiles[i].type.replace(/mp3/,'mpeg')).replace(/no/, '') !== ''
+					// special case for m4a supported by detecting mp4 support
+					|| htmlMediaElement.canPlayType(mediaFiles[i].type.replace(/m4a/,'mp4')).replace(/no/, '') !== '') {
+					result.method = 'native';
+					result.url = mediaFiles[i].url;
+					break;
+				}
+			}			
+			
+			if (result.method === 'native') {
+				if (result.url !== null) {
+					htmlMediaElement.src = result.url;
+				}
+			
+				// if `auto_plugin` mode, then cache the native result but try plugins.
+				if (options.mode !== 'auto_plugin') {
+					return result;
+				}
+			}
+		}
+
+		// if native playback didn't work, then test plugins
+		if (options.mode === 'auto' || options.mode === 'auto_plugin' || options.mode === 'shim') {
+			for (i=0; i<mediaFiles.length; i++) {
+				type = mediaFiles[i].type;
+
+				// test all plugins in order of preference [silverlight, flash]
+				for (j=0; j<options.plugins.length; j++) {
+
+					pluginName = options.plugins[j];
+			
+					// test version of plugin (for future features)
+					pluginVersions = mejs.plugins[pluginName];				
+					
+					for (k=0; k<pluginVersions.length; k++) {
+						pluginInfo = pluginVersions[k];
+					
+						// test if user has the correct plugin version
+						
+						// for youtube/vimeo
+						if (pluginInfo.version == null || 
+							
+							mejs.PluginDetector.hasPluginVersion(pluginName, pluginInfo.version)) {
+
+							// test for plugin playback types
+							for (l=0; l<pluginInfo.types.length; l++) {
+								// find plugin that can play the type
+								if (type == pluginInfo.types[l]) {
+									result.method = pluginName;
+									result.url = mediaFiles[i].url;
+									return result;
+								}
+							}
+						}
+					}
+				}
+			}
+		}
+		
+		// at this point, being in 'auto_plugin' mode implies that we tried plugins but failed.
+		// if we have native support then return that.
+		if (options.mode === 'auto_plugin' && result.method === 'native') {
+			return result;
+		}
+
+		// what if there's nothing to play? just grab the first available
+		if (result.method === '' && mediaFiles.length > 0) {
+			result.url = mediaFiles[0].url;
+		}
+
+		return result;
+	},
+
+	formatType: function(url, type) {
+		var ext;
+
+		// if no type is supplied, fake it with the extension
+		if (url && !type) {		
+			return this.getTypeFromFile(url);
+		} else {
+			// only return the mime part of the type in case the attribute contains the codec
+			// see http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#the-source-element
+			// `video/mp4; codecs="avc1.42E01E, mp4a.40.2"` becomes `video/mp4`
+			
+			if (type && ~type.indexOf(';')) {
+				return type.substr(0, type.indexOf(';')); 
+			} else {
+				return type;
+			}
+		}
+	},
+	
+	getTypeFromFile: function(url) {
+		url = url.split('?')[0];
+		var ext = url.substring(url.lastIndexOf('.') + 1).toLowerCase();
+		return (/(mp4|m4v|ogg|ogv|m3u8|webm|webmv|flv|wmv|mpeg|mov)/gi.test(ext) ? 'video' : 'audio') + '/' + this.getTypeFromExtension(ext);
+	},
+	
+	getTypeFromExtension: function(ext) {
+		
+		switch (ext) {
+			case 'mp4':
+			case 'm4v':
+			case 'm4a':
+				return 'mp4';
+			case 'webm':
+			case 'webma':
+			case 'webmv':	
+				return 'webm';
+			case 'ogg':
+			case 'oga':
+			case 'ogv':	
+				return 'ogg';
+			default:
+				return ext;
+		}
+	},
+
+	createErrorMessage: function(playback, options, poster) {
+		var 
+			htmlMediaElement = playback.htmlMediaElement,
+			errorContainer = document.createElement('div');
+			
+		errorContainer.className = 'me-cannotplay';
+
+		try {
+			errorContainer.style.width = htmlMediaElement.width + 'px';
+			errorContainer.style.height = htmlMediaElement.height + 'px';
+		} catch (e) {}
+
+    if (options.customError) {
+      errorContainer.innerHTML = options.customError;
+    } else {
+      errorContainer.innerHTML = (poster !== '') ?
+        '<a href="' + playback.url + '"><img src="' + poster + '" width="100%" height="100%" /></a>' :
+        '<a href="' + playback.url + '"><span>' + mejs.i18n.t('Download File') + '</span></a>';
+    }
+
+		htmlMediaElement.parentNode.insertBefore(errorContainer, htmlMediaElement);
+		htmlMediaElement.style.display = 'none';
+
+		options.error(htmlMediaElement);
+	},
+
+	createPlugin:function(playback, options, poster, autoplay, preload, controls) {
+		var 
+			htmlMediaElement = playback.htmlMediaElement,
+			width = 1,
+			height = 1,
+			pluginid = 'me_' + playback.method + '_' + (mejs.meIndex++),
+			pluginMediaElement = new mejs.PluginMediaElement(pluginid, playback.method, playback.url),
+			container = document.createElement('div'),
+			specialIEContainer,
+			node,
+			initVars;
+
+		// copy tagName from html media element
+		pluginMediaElement.tagName = htmlMediaElement.tagName
+
+		// copy attributes from html media element to plugin media element
+		for (var i = 0; i < htmlMediaElement.attributes.length; i++) {
+			var attribute = htmlMediaElement.attributes[i];
+			if (attribute.specified == true) {
+				pluginMediaElement.setAttribute(attribute.name, attribute.value);
+			}
+		}
+
+		// check for placement inside a <p> tag (sometimes WYSIWYG editors do this)
+		node = htmlMediaElement.parentNode;
+		while (node !== null && node.tagName.toLowerCase() !== 'body' && node.parentNode != null) {
+			if (node.parentNode.tagName.toLowerCase() === 'p') {
+				node.parentNode.parentNode.insertBefore(node, node.parentNode);
+				break;
+			}
+			node = node.parentNode;
+		}
+
+		if (playback.isVideo) {
+			width = (options.pluginWidth > 0) ? options.pluginWidth : (options.videoWidth > 0) ? options.videoWidth : (htmlMediaElement.getAttribute('width') !== null) ? htmlMediaElement.getAttribute('width') : options.defaultVideoWidth;
+			height = (options.pluginHeight > 0) ? options.pluginHeight : (options.videoHeight > 0) ? options.videoHeight : (htmlMediaElement.getAttribute('height') !== null) ? htmlMediaElement.getAttribute('height') : options.defaultVideoHeight;
+		
+			// in case of '%' make sure it's encoded
+			width = mejs.Utility.encodeUrl(width);
+			height = mejs.Utility.encodeUrl(height);
+		
+		} else {
+			if (options.enablePluginDebug) {
+				width = 320;
+				height = 240;
+			}
+		}
+
+		// register plugin
+		pluginMediaElement.success = options.success;
+		mejs.MediaPluginBridge.registerPluginElement(pluginid, pluginMediaElement, htmlMediaElement);
+
+		// add container (must be added to DOM before inserting HTML for IE)
+		container.className = 'me-plugin';
+		container.id = pluginid + '_container';
+		
+		if (playback.isVideo) {
+				htmlMediaElement.parentNode.insertBefore(container, htmlMediaElement);
+		} else {
+				document.body.insertBefore(container, document.body.childNodes[0]);
+		}
+
+		// flash/silverlight vars
+		initVars = [
+			'id=' + pluginid,
+			'isvideo=' + ((playback.isVideo) ? "true" : "false"),
+			'autoplay=' + ((autoplay) ? "true" : "false"),
+			'preload=' + preload,
+			'width=' + width,
+			'startvolume=' + options.startVolume,
+			'timerrate=' + options.timerRate,
+			'flashstreamer=' + options.flashStreamer,
+			'height=' + height,
+      'pseudostreamstart=' + options.pseudoStreamingStartQueryParam];
+
+		if (playback.url !== null) {
+			if (playback.method == 'flash') {
+				initVars.push('file=' + mejs.Utility.encodeUrl(playback.url));
+			} else {
+				initVars.push('file=' + playback.url);
+			}
+		}
+		if (options.enablePluginDebug) {
+			initVars.push('debug=true');
+		}
+		if (options.enablePluginSmoothing) {
+			initVars.push('smoothing=true');
+		}
+    if (options.enablePseudoStreaming) {
+      initVars.push('pseudostreaming=true');
+    }
+		if (controls) {
+			initVars.push('controls=true'); // shows controls in the plugin if desired
+		}
+		if (options.pluginVars) {
+			initVars = initVars.concat(options.pluginVars);
+		}		
+
+		switch (playback.method) {
+			case 'silverlight':
+				container.innerHTML =
+'<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" id="' + pluginid + '" name="' + pluginid + '" width="' + width + '" height="' + height + '" class="mejs-shim">' +
+'<param name="initParams" value="' + initVars.join(',') + '" />' +
+'<param name="windowless" value="true" />' +
+'<param name="background" value="black" />' +
+'<param name="minRuntimeVersion" value="3.0.0.0" />' +
+'<param name="autoUpgrade" value="true" />' +
+'<param name="source" value="' + options.pluginPath + options.silverlightName + '" />' +
+'</object>';
+					break;
+
+			case 'flash':
+
+				if (mejs.MediaFeatures.isIE) {
+					specialIEContainer = document.createElement('div');
+					container.appendChild(specialIEContainer);
+					specialIEContainer.outerHTML =
+'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" ' +
+'id="' + pluginid + '" width="' + width + '" height="' + height + '" class="mejs-shim">' +
+'<param name="movie" value="' + options.pluginPath + options.flashName + '?x=' + (new Date()) + '" />' +
+'<param name="flashvars" value="' + initVars.join('&amp;') + '" />' +
+'<param name="quality" value="high" />' +
+'<param name="bgcolor" value="#000000" />' +
+'<param name="wmode" value="transparent" />' +
+'<param name="allowScriptAccess" value="always" />' +
+'<param name="allowFullScreen" value="true" />' +
+'<param name="scale" value="default" />' + 
+'</object>';
+
+				} else {
+
+					container.innerHTML =
+'<embed id="' + pluginid + '" name="' + pluginid + '" ' +
+'play="true" ' +
+'loop="false" ' +
+'quality="high" ' +
+'bgcolor="#000000" ' +
+'wmode="transparent" ' +
+'allowScriptAccess="always" ' +
+'allowFullScreen="true" ' +
+'type="application/x-shockwave-flash" pluginspage="//www.macromedia.com/go/getflashplayer" ' +
+'src="' + options.pluginPath + options.flashName + '" ' +
+'flashvars="' + initVars.join('&') + '" ' +
+'width="' + width + '" ' +
+'height="' + height + '" ' +
+'scale="default"' + 
+'class="mejs-shim"></embed>';
+				}
+				break;
+			
+			case 'youtube':
+			
+				
+				var videoId;
+				// youtu.be url from share button
+				if (playback.url.lastIndexOf("youtu.be") != -1) {
+					videoId = playback.url.substr(playback.url.lastIndexOf('/')+1);
+					if (videoId.indexOf('?') != -1) {
+						videoId = videoId.substr(0, videoId.indexOf('?'));
+					}
+				}
+				else {
+					videoId = playback.url.substr(playback.url.lastIndexOf('=')+1);
+				}
+				youtubeSettings = {
+						container: container,
+						containerId: container.id,
+						pluginMediaElement: pluginMediaElement,
+						pluginId: pluginid,
+						videoId: videoId,
+						height: height,
+						width: width	
+					};				
+				
+				if (mejs.PluginDetector.hasPluginVersion('flash', [10,0,0]) ) {
+					mejs.YouTubeApi.createFlash(youtubeSettings);
+				} else {
+					mejs.YouTubeApi.enqueueIframe(youtubeSettings);		
+				}
+				
+				break;
+			
+			// DEMO Code. Does NOT work.
+			case 'vimeo':
+				var player_id = pluginid + "_player";
+				pluginMediaElement.vimeoid = playback.url.substr(playback.url.lastIndexOf('/')+1);
+				
+				container.innerHTML ='<iframe src="//player.vimeo.com/video/' + pluginMediaElement.vimeoid + '?api=1&portrait=0&byline=0&title=0&player_id=' + player_id + '" width="' + width +'" height="' + height +'" frameborder="0" class="mejs-shim" id="' + player_id + '"></iframe>';
+				if (typeof($f) == 'function') { // froogaloop available
+					var player = $f(container.childNodes[0]);
+					player.addEvent('ready', function() {
+						$.extend( player, {
+							playVideo: function() {
+								player.api( 'play' );
+							}, 
+							stopVideo: function() {
+								player.api( 'unload' );
+							}, 
+							pauseVideo: function() {
+								player.api( 'pause' );
+							}, 
+							seekTo: function( seconds ) {
+								player.api( 'seekTo', seconds );
+							}, 
+							setVolume: function( volume ) {
+								player.api( 'setVolume', volume );
+							}, 
+							setMuted: function( muted ) {
+								if( muted ) {
+									player.lastVolume = player.api( 'getVolume' );
+									player.api( 'setVolume', 0 );
+								} else {
+									player.api( 'setVolume', player.lastVolume );
+									delete player.lastVolume;
+								}
+							}
+						});
+
+						function createEvent(player, pluginMediaElement, eventName, e) {
+							var obj = {
+								type: eventName,
+								target: pluginMediaElement
+							};
+							if (eventName == 'timeupdate') {
+								pluginMediaElement.currentTime = obj.currentTime = e.seconds;
+								pluginMediaElement.duration = obj.duration = e.duration;
+							}
+							pluginMediaElement.dispatchEvent(obj.type, obj);
+						}
+
+						player.addEvent('play', function() {
+							createEvent(player, pluginMediaElement, 'play');
+							createEvent(player, pluginMediaElement, 'playing');
+						});
+
+						player.addEvent('pause', function() {
+							createEvent(player, pluginMediaElement, 'pause');
+						});
+
+						player.addEvent('finish', function() {
+							createEvent(player, pluginMediaElement, 'ended');
+						});
+
+						player.addEvent('playProgress', function(e) {
+							createEvent(player, pluginMediaElement, 'timeupdate', e);
+						});
+
+						pluginMediaElement.pluginElement = container;
+						pluginMediaElement.pluginApi = player;
+
+						// init mejs
+						mejs.MediaPluginBridge.initPlugin(pluginid);
+					});
+				}
+				else {
+					console.warn("You need to include froogaloop for vimeo to work");
+				}
+				break;			
+		}
+		// hide original element
+		htmlMediaElement.style.display = 'none';
+		// prevent browser from autoplaying when using a plugin
+		htmlMediaElement.removeAttribute('autoplay');
+
+		// FYI: options.success will be fired by the MediaPluginBridge
+		
+		return pluginMediaElement;
+	},
+
+	updateNative: function(playback, options, autoplay, preload) {
+		
+		var htmlMediaElement = playback.htmlMediaElement,
+			m;
+		
+		
+		// add methods to video object to bring it into parity with Flash Object
+		for (m in mejs.HtmlMediaElement) {
+			htmlMediaElement[m] = mejs.HtmlMediaElement[m];
+		}
+
+		/*
+		Chrome now supports preload="none"
+		if (mejs.MediaFeatures.isChrome) {
+		
+			// special case to enforce preload attribute (Chrome doesn't respect this)
+			if (preload === 'none' && !autoplay) {
+			
+				// forces the browser to stop loading (note: fails in IE9)
+				htmlMediaElement.src = '';
+				htmlMediaElement.load();
+				htmlMediaElement.canceledPreload = true;
+
+				htmlMediaElement.addEventListener('play',function() {
+					if (htmlMediaElement.canceledPreload) {
+						htmlMediaElement.src = playback.url;
+						htmlMediaElement.load();
+						htmlMediaElement.play();
+						htmlMediaElement.canceledPreload = false;
+					}
+				}, false);
+			// for some reason Chrome forgets how to autoplay sometimes.
+			} else if (autoplay) {
+				htmlMediaElement.load();
+				htmlMediaElement.play();
+			}
+		}
+		*/
+
+		// fire success code
+		options.success(htmlMediaElement, htmlMediaElement);
+		
+		return htmlMediaElement;
+	}
+};
+
+/*
+ - test on IE (object vs. embed)
+ - determine when to use iframe (Firefox, Safari, Mobile) vs. Flash (Chrome, IE)
+ - fullscreen?
+*/
+
+// YouTube Flash and Iframe API
+mejs.YouTubeApi = {
+	isIframeStarted: false,
+	isIframeLoaded: false,
+	loadIframeApi: function() {
+		if (!this.isIframeStarted) {
+			var tag = document.createElement('script');
+			tag.src = "//www.youtube.com/player_api";
+			var firstScriptTag = document.getElementsByTagName('script')[0];
+			firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
+			this.isIframeStarted = true;
+		}
+	},
+	iframeQueue: [],
+	enqueueIframe: function(yt) {
+		
+		if (this.isLoaded) {
+			this.createIframe(yt);
+		} else {
+			this.loadIframeApi();
+			this.iframeQueue.push(yt);
+		}
+	},
+	createIframe: function(settings) {
+		
+		var
+		pluginMediaElement = settings.pluginMediaElement,	
+		player = new YT.Player(settings.containerId, {
+			height: settings.height,
+			width: settings.width,
+			videoId: settings.videoId,
+			playerVars: {controls:0},
+			events: {
+				'onReady': function() {
+					
+					// hook up iframe object to MEjs
+					settings.pluginMediaElement.pluginApi = player;
+					
+					// init mejs
+					mejs.MediaPluginBridge.initPlugin(settings.pluginId);
+					
+					// create timer
+					setInterval(function() {
+						mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'timeupdate');
+					}, 250);					
+				},
+				'onStateChange': function(e) {
+					
+					mejs.YouTubeApi.handleStateChange(e.data, player, pluginMediaElement);
+					
+				}
+			}
+		});
+	},
+	
+	createEvent: function (player, pluginMediaElement, eventName) {
+		var obj = {
+			type: eventName,
+			target: pluginMediaElement
+		};
+
+		if (player && player.getDuration) {
+			
+			// time 
+			pluginMediaElement.currentTime = obj.currentTime = player.getCurrentTime();
+			pluginMediaElement.duration = obj.duration = player.getDuration();
+			
+			// state
+			obj.paused = pluginMediaElement.paused;
+			obj.ended = pluginMediaElement.ended;			
+			
+			// sound
+			obj.muted = player.isMuted();
+			obj.volume = player.getVolume() / 100;
+			
+			// progress
+			obj.bytesTotal = player.getVideoBytesTotal();
+			obj.bufferedBytes = player.getVideoBytesLoaded();
+			
+			// fake the W3C buffered TimeRange
+			var bufferedTime = obj.bufferedBytes / obj.bytesTotal * obj.duration;
+			
+			obj.target.buffered = obj.buffered = {
+				start: function(index) {
+					return 0;
+				},
+				end: function (index) {
+					return bufferedTime;
+				},
+				length: 1
+			};
+
+		}
+		
+		// send event up the chain
+		pluginMediaElement.dispatchEvent(obj.type, obj);
+	},	
+	
+	iFrameReady: function() {
+		
+		this.isLoaded = true;
+		this.isIframeLoaded = true;
+		
+		while (this.iframeQueue.length > 0) {
+			var settings = this.iframeQueue.pop();
+			this.createIframe(settings);
+		}	
+	},
+	
+	// FLASH!
+	flashPlayers: {},
+	createFlash: function(settings) {
+		
+		this.flashPlayers[settings.pluginId] = settings;
+		
+		/*
+		settings.container.innerHTML =
+			'<object type="application/x-shockwave-flash" id="' + settings.pluginId + '" data="//www.youtube.com/apiplayer?enablejsapi=1&amp;playerapiid=' + settings.pluginId  + '&amp;version=3&amp;autoplay=0&amp;controls=0&amp;modestbranding=1&loop=0" ' +
+				'width="' + settings.width + '" height="' + settings.height + '" style="visibility: visible; " class="mejs-shim">' +
+				'<param name="allowScriptAccess" value="always">' +
+				'<param name="wmode" value="transparent">' +
+			'</object>';
+		*/
+
+		var specialIEContainer,
+			youtubeUrl = '//www.youtube.com/apiplayer?enablejsapi=1&amp;playerapiid=' + settings.pluginId  + '&amp;version=3&amp;autoplay=0&amp;controls=0&amp;modestbranding=1&loop=0';
+			
+		if (mejs.MediaFeatures.isIE) {
+			
+			specialIEContainer = document.createElement('div');
+			settings.container.appendChild(specialIEContainer);
+			specialIEContainer.outerHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" ' +
+'id="' + settings.pluginId + '" width="' + settings.width + '" height="' + settings.height + '" class="mejs-shim">' +
+	'<param name="movie" value="' + youtubeUrl + '" />' +
+	'<param name="wmode" value="transparent" />' +
+	'<param name="allowScriptAccess" value="always" />' +
+	'<param name="allowFullScreen" value="true" />' +
+'</object>';
+		} else {
+		settings.container.innerHTML =
+			'<object type="application/x-shockwave-flash" id="' + settings.pluginId + '" data="' + youtubeUrl + '" ' +
+				'width="' + settings.width + '" height="' + settings.height + '" style="visibility: visible; " class="mejs-shim">' +
+				'<param name="allowScriptAccess" value="always">' +
+				'<param name="wmode" value="transparent">' +
+			'</object>';
+		}		
+		
+	},
+	
+	flashReady: function(id) {
+		var
+			settings = this.flashPlayers[id],
+			player = document.getElementById(id),
+			pluginMediaElement = settings.pluginMediaElement;
+		
+		// hook up and return to MediaELementPlayer.success	
+		pluginMediaElement.pluginApi = 
+		pluginMediaElement.pluginElement = player;
+		mejs.MediaPluginBridge.initPlugin(id);
+		
+		// load the youtube video
+		player.cueVideoById(settings.videoId);
+		
+		var callbackName = settings.containerId + '_callback';
+		
+		window[callbackName] = function(e) {
+			mejs.YouTubeApi.handleStateChange(e, player, pluginMediaElement);
+		}
+		
+		player.addEventListener('onStateChange', callbackName);
+		
+		setInterval(function() {
+			mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'timeupdate');
+		}, 250);
+		
+		mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'canplay');
+	},
+	
+	handleStateChange: function(youTubeState, player, pluginMediaElement) {
+		switch (youTubeState) {
+			case -1: // not started
+				pluginMediaElement.paused = true;
+				pluginMediaElement.ended = true;
+				mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'loadedmetadata');
+				//createYouTubeEvent(player, pluginMediaElement, 'loadeddata');
+				break;
+			case 0:
+				pluginMediaElement.paused = false;
+				pluginMediaElement.ended = true;
+				mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'ended');
+				break;
+			case 1:
+				pluginMediaElement.paused = false;
+				pluginMediaElement.ended = false;				
+				mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'play');
+				mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'playing');
+				break;
+			case 2:
+				pluginMediaElement.paused = true;
+				pluginMediaElement.ended = false;				
+				mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'pause');
+				break;
+			case 3: // buffering
+				mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'progress');
+				break;
+			case 5:
+				// cued?
+				break;						
+			
+		}			
+		
+	}
+}
+// IFRAME
+function onYouTubePlayerAPIReady() {
+	mejs.YouTubeApi.iFrameReady();
+}
+// FLASH
+function onYouTubePlayerReady(id) {
+	mejs.YouTubeApi.flashReady(id);
+}
+
+window.mejs = mejs;
+window.MediaElement = mejs.MediaElement;
+
+/*!
+ * Adds Internationalization and localization to mediaelement.
+ *
+ * This file does not contain translations, you have to add the manually.
+ * The schema is always the same: me-i18n-locale-[ISO_639-1 Code].js
+ *
+ * Examples are provided both for german and chinese translation.
+ *
+ *
+ * What is the concept beyond i18n?
+ *   http://en.wikipedia.org/wiki/Internationalization_and_localization
+ *
+ * What langcode should i use?
+ *   http://en.wikipedia.org/wiki/ISO_639-1
+ *
+ *
+ * License?
+ *
+ *   The i18n file uses methods from the Drupal project (drupal.js):
+ *     - i18n.methods.t() (modified)
+ *     - i18n.methods.checkPlain() (full copy)
+ *
+ *   The Drupal project is (like mediaelementjs) licensed under GPLv2.
+ *    - http://drupal.org/licensing/faq/#q1
+ *    - https://github.com/johndyer/mediaelement
+ *    - http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ *
+ * @author
+ *   Tim Latz (latz.tim@gmail.com)
+ *
+ *
+ * @params
+ *  - context - document, iframe ..
+ *  - exports - CommonJS, window ..
+ *
+ */
+;(function(context, exports, undefined) {
+    "use strict";
+    var i18n = {
+        "locale": {
+            "language" : '',
+            "strings" : {}
+        },
+        "methods" : {}
+    };
+// start i18n
+
+
+    /**
+     * Get language, fallback to browser's language if empty
+     */
+    i18n.getLanguage = function () {
+        var language = i18n.locale.language || window.navigator.userLanguage || window.navigator.language;
+        // convert to iso 639-1 (2-letters, lower case)
+        return language.substr(0, 2).toLowerCase();
+    };
+
+    // i18n fixes for compatibility with WordPress
+    if ( typeof mejsL10n != 'undefined' ) {
+        i18n.locale.language = mejsL10n.language;
+    }
+
+
+
+    /**
+     * Encode special characters in a plain-text string for display as HTML.
+     */
+    i18n.methods.checkPlain = function (str) {
+        var character, regex,
+        replace = {
+            '&': '&amp;',
+            '"': '&quot;',
+            '<': '&lt;',
+            '>': '&gt;'
+        };
+        str = String(str);
+        for (character in replace) {
+            if (replace.hasOwnProperty(character)) {
+                regex = new RegExp(character, 'g');
+                str = str.replace(regex, replace[character]);
+            }
+        }
+        return str;
+    };
+
+    /**
+     * Translate strings to the page language or a given language.
+     *
+     *
+     * @param str
+     *   A string containing the English string to translate.
+     *
+     * @param options
+     *   - 'context' (defaults to the default context): The context the source string
+     *     belongs to.
+     *
+     * @return
+     *   The translated string, escaped via i18n.methods.checkPlain()
+     */
+    i18n.methods.t = function (str, options) {
+
+        // Fetch the localized version of the string.
+        if (i18n.locale.strings && i18n.locale.strings[options.context] && i18n.locale.strings[options.context][str]) {
+            str = i18n.locale.strings[options.context][str];
+        }
+
+        return i18n.methods.checkPlain(str);
+    };
+
+
+    /**
+     * Wrapper for i18n.methods.t()
+     *
+     * @see i18n.methods.t()
+     * @throws InvalidArgumentException
+     */
+    i18n.t = function(str, options) {
+
+        if (typeof str === 'string' && str.length > 0) {
+
+            // check every time due language can change for
+            // different reasons (translation, lang switcher ..)
+            var language = i18n.getLanguage();
+
+            options = options || {
+                "context" : language
+            };
+
+            return i18n.methods.t(str, options);
+        }
+        else {
+            throw {
+                "name" : 'InvalidArgumentException',
+                "message" : 'First argument is either not a string or empty.'
+            };
+        }
+    };
+
+// end i18n
+    exports.i18n = i18n;
+}(document, mejs));
+
+// i18n fixes for compatibility with WordPress
+;(function(exports, undefined) {
+
+    "use strict";
+
+    if ( typeof mejsL10n != 'undefined' ) {
+        exports[mejsL10n.language] = mejsL10n.strings;
+    }
+
+}(mejs.i18n.locale.strings));
+
+/*!
+ * This is a i18n.locale language object.
+ *
+ * German translation by Tim Latz, latz.tim@gmail.com
+ *
+ * @author
+ *   Tim Latz (latz.tim@gmail.com)
+ *
+ * @see
+ *   me-i18n.js
+ *
+ * @params
+ *  - exports - CommonJS, window ..
+ */
+;(function(exports, undefined) {
+
+    "use strict";
+
+    if (typeof exports.de === 'undefined') {
+        exports.de = {
+            "Fullscreen" : "Vollbild",
+            "Go Fullscreen" : "Vollbild an",
+            "Turn off Fullscreen" : "Vollbild aus",
+            "Close" : "Schließen"
+        };
+    }
+
+}(mejs.i18n.locale.strings));
+/*!
+ * This is a i18n.locale language object.
+ *
+ * Traditional chinese translation by Tim Latz, latz.tim@gmail.com
+ *
+ * @author
+ *   Tim Latz (latz.tim@gmail.com)
+ *
+ * @see
+ *   me-i18n.js
+ *
+ * @params
+ *  - exports - CommonJS, window ..
+ */
+;(function(exports, undefined) {
+
+    "use strict";
+
+    if (typeof exports.zh === 'undefined') {
+        exports.zh = {
+            "Fullscreen" : "全螢幕",
+            "Go Fullscreen" : "全屏模式",
+            "Turn off Fullscreen" : "退出全屏模式",
+            "Close" : "關閉"
+        };
+    }
+
+}(mejs.i18n.locale.strings));
+
+
+/*!
+ * MediaElementPlayer
+ * http://mediaelementjs.com/
+ *
+ * Creates a controller bar for HTML5 <video> add <audio> tags
+ * using jQuery and MediaElement.js (HTML5 Flash/Silverlight wrapper)
+ *
+ * Copyright 2010-2013, John Dyer (http://j.hn/)
+ * License: MIT
+ *
+ */
+if (typeof jQuery != 'undefined') {
+	mejs.$ = jQuery;
+} else if (typeof ender != 'undefined') {
+	mejs.$ = ender;
+}
+(function ($) {
+
+	// default player values
+	mejs.MepDefaults = {
+		// url to poster (to fix iOS 3.x)
+		poster: '',
+		// When the video is ended, we can show the poster.
+		showPosterWhenEnded: false,
+		// default if the <video width> is not specified
+		defaultVideoWidth: 480,
+		// default if the <video height> is not specified
+		defaultVideoHeight: 270,
+		// if set, overrides <video width>
+		videoWidth: -1,
+		// if set, overrides <video height>
+		videoHeight: -1,
+		// default if the user doesn't specify
+		defaultAudioWidth: 400,
+		// default if the user doesn't specify
+		defaultAudioHeight: 30,
+
+		// default amount to move back when back key is pressed
+		defaultSeekBackwardInterval: function(media) {
+			return (media.duration * 0.05);
+		},
+		// default amount to move forward when forward key is pressed
+		defaultSeekForwardInterval: function(media) {
+			return (media.duration * 0.05);
+		},
+
+		// set dimensions via JS instead of CSS
+		setDimensions: true,
+
+		// width of audio player
+		audioWidth: -1,
+		// height of audio player
+		audioHeight: -1,
+		// initial volume when the player starts (overrided by user cookie)
+		startVolume: 0.8,
+		// useful for <audio> player loops
+		loop: false,
+		// rewind to beginning when media ends
+                autoRewind: true,
+		// resize to media dimensions
+		enableAutosize: true,
+		// forces the hour marker (##:00:00)
+		alwaysShowHours: false,
+
+		// show framecount in timecode (##:00:00:00)
+		showTimecodeFrameCount: false,
+		// used when showTimecodeFrameCount is set to true
+		framesPerSecond: 25,
+
+		// automatically calculate the width of the progress bar based on the sizes of other elements
+		autosizeProgress : true,
+		// Hide controls when playing and mouse is not over the video
+		alwaysShowControls: false,
+		// Display the video control
+		hideVideoControlsOnLoad: false,
+		// Enable click video element to toggle play/pause
+		clickToPlayPause: true,
+		// force iPad's native controls
+		iPadUseNativeControls: false,
+		// force iPhone's native controls
+		iPhoneUseNativeControls: false,
+		// force Android's native controls
+		AndroidUseNativeControls: false,
+		// features to show
+		features: ['playpause','current','progress','duration','tracks','volume','fullscreen'],
+		// only for dynamic
+		isVideo: true,
+
+		// turns keyboard support on and off for this instance
+		enableKeyboard: true,
+
+		// whenthis player starts, it will pause other players
+		pauseOtherPlayers: true,
+
+		// array of keyboard actions such as play pause
+		keyActions: [
+				{
+						keys: [
+								32, // SPACE
+								179 // GOOGLE play/pause button
+							  ],
+						action: function(player, media) {
+								if (media.paused || media.ended) {
+										player.play();
+								} else {
+										player.pause();
+								}
+						}
+				},
+				{
+						keys: [38], // UP
+						action: function(player, media) {
+								player.container.find('.mejs-volume-slider').css('display','block');
+								if (player.isVideo) {
+										player.showControls();
+										player.startControlsTimer();
+								}
+
+								var newVolume = Math.min(media.volume + 0.1, 1);
+								media.setVolume(newVolume);
+						}
+				},
+				{
+						keys: [40], // DOWN
+						action: function(player, media) {
+								player.container.find('.mejs-volume-slider').css('display','block');
+								if (player.isVideo) {
+										player.showControls();
+										player.startControlsTimer();
+								}
+
+								var newVolume = Math.max(media.volume - 0.1, 0);
+								media.setVolume(newVolume);
+						}
+				},
+				{
+						keys: [
+								37, // LEFT
+								227 // Google TV rewind
+						],
+						action: function(player, media) {
+								if (!isNaN(media.duration) && media.duration > 0) {
+										if (player.isVideo) {
+												player.showControls();
+												player.startControlsTimer();
+										}
+
+										// 5%
+										var newTime = Math.max(media.currentTime - player.options.defaultSeekBackwardInterval(media), 0);
+										media.setCurrentTime(newTime);
+								}
+						}
+				},
+				{
+						keys: [
+								39, // RIGHT
+								228 // Google TV forward
+						],
+						action: function(player, media) {
+								if (!isNaN(media.duration) && media.duration > 0) {
+										if (player.isVideo) {
+												player.showControls();
+												player.startControlsTimer();
+										}
+
+										// 5%
+										var newTime = Math.min(media.currentTime + player.options.defaultSeekForwardInterval(media), media.duration);
+										media.setCurrentTime(newTime);
+								}
+						}
+				},
+				{
+						keys: [70], // F
+						action: function(player, media) {
+								if (typeof player.enterFullScreen != 'undefined') {
+										if (player.isFullScreen) {
+												player.exitFullScreen();
+										} else {
+												player.enterFullScreen();
+										}
+								}
+						}
+				},
+				{
+						keys: [77], // M
+						action: function(player, media) {
+								player.container.find('.mejs-volume-slider').css('display','block');
+								if (player.isVideo) {
+										player.showControls();
+										player.startControlsTimer();
+								}
+								if (player.media.muted) {
+										player.setMuted(false);
+								} else {
+										player.setMuted(true);
+								}
+						}
+				}
+		]
+	};
+
+	mejs.mepIndex = 0;
+
+	mejs.players = {};
+
+	// wraps a MediaElement object in player controls
+	mejs.MediaElementPlayer = function(node, o) {
+		// enforce object, even without "new" (via John Resig)
+		if ( !(this instanceof mejs.MediaElementPlayer) ) {
+			return new mejs.MediaElementPlayer(node, o);
+		}
+
+		var t = this;
+
+		// these will be reset after the MediaElement.success fires
+		t.$media = t.$node = $(node);
+		t.node = t.media = t.$media[0];
+
+		// check for existing player
+		if (typeof t.node.player != 'undefined') {
+			return t.node.player;
+		} else {
+			// attach player to DOM node for reference
+			t.node.player = t;
+		}
+
+
+		// try to get options from data-mejsoptions
+		if (typeof o == 'undefined') {
+			o = t.$node.data('mejsoptions');
+		}
+
+		// extend default options
+		t.options = $.extend({},mejs.MepDefaults,o);
+
+		// unique ID
+		t.id = 'mep_' + mejs.mepIndex++;
+
+		// add to player array (for focus events)
+		mejs.players[t.id] = t;
+
+		// start up
+		t.init();
+
+		return t;
+	};
+
+	// actual player
+	mejs.MediaElementPlayer.prototype = {
+
+		hasFocus: false,
+
+		controlsAreVisible: true,
+
+		init: function() {
+
+			var
+				t = this,
+				mf = mejs.MediaFeatures,
+				// options for MediaElement (shim)
+				meOptions = $.extend(true, {}, t.options, {
+					success: function(media, domNode) { t.meReady(media, domNode); },
+					error: function(e) { t.handleError(e);}
+				}),
+				tagName = t.media.tagName.toLowerCase();
+
+			t.isDynamic = (tagName !== 'audio' && tagName !== 'video');
+
+			if (t.isDynamic) {
+				// get video from src or href?
+				t.isVideo = t.options.isVideo;
+			} else {
+				t.isVideo = (tagName !== 'audio' && t.options.isVideo);
+			}
+
+			// use native controls in iPad, iPhone, and Android
+			if ((mf.isiPad && t.options.iPadUseNativeControls) || (mf.isiPhone && t.options.iPhoneUseNativeControls)) {
+
+				// add controls and stop
+				t.$media.attr('controls', 'controls');
+
+				// attempt to fix iOS 3 bug
+				//t.$media.removeAttr('poster');
+                                // no Issue found on iOS3 -ttroxell
+
+				// override Apple's autoplay override for iPads
+				if (mf.isiPad && t.media.getAttribute('autoplay') !== null) {
+					t.play();
+				}
+
+			} else if (mf.isAndroid && t.options.AndroidUseNativeControls) {
+
+				// leave default player
+
+			} else {
+
+				// DESKTOP: use MediaElementPlayer controls
+
+				// remove native controls
+				t.$media.removeAttr('controls');
+
+				// build container
+				t.container =
+					$('<div id="' + t.id + '" class="mejs-container ' + (mejs.MediaFeatures.svg ? 'svg' : 'no-svg') + '">'+
+						'<div class="mejs-inner">'+
+							'<div class="mejs-mediaelement"></div>'+
+							'<div class="mejs-layers"></div>'+
+							'<div class="mejs-controls"></div>'+
+							'<div class="mejs-clear"></div>'+
+						'</div>' +
+					'</div>')
+					.addClass(t.$media[0].className)
+					.insertBefore(t.$media);
+
+				// add classes for user and content
+				t.container.addClass(
+					(mf.isAndroid ? 'mejs-android ' : '') +
+					(mf.isiOS ? 'mejs-ios ' : '') +
+					(mf.isiPad ? 'mejs-ipad ' : '') +
+					(mf.isiPhone ? 'mejs-iphone ' : '') +
+					(t.isVideo ? 'mejs-video ' : 'mejs-audio ')
+				);
+
+
+				// move the <video/video> tag into the right spot
+				if (mf.isiOS) {
+
+					// sadly, you can't move nodes in iOS, so we have to destroy and recreate it!
+					var $newMedia = t.$media.clone();
+
+					t.container.find('.mejs-mediaelement').append($newMedia);
+
+					t.$media.remove();
+					t.$node = t.$media = $newMedia;
+					t.node = t.media = $newMedia[0]
+
+				} else {
+
+					// normal way of moving it into place (doesn't work on iOS)
+					t.container.find('.mejs-mediaelement').append(t.$media);
+				}
+
+				// find parts
+				t.controls = t.container.find('.mejs-controls');
+				t.layers = t.container.find('.mejs-layers');
+
+				// determine the size
+
+				/* size priority:
+					(1) videoWidth (forced),
+					(2) style="width;height;"
+					(3) width attribute,
+					(4) defaultVideoWidth (for unspecified cases)
+				*/
+
+				var tagType = (t.isVideo ? 'video' : 'audio'),
+					capsTagName = tagType.substring(0,1).toUpperCase() + tagType.substring(1);
+
+
+
+				if (t.options[tagType + 'Width'] > 0 || t.options[tagType + 'Width'].toString().indexOf('%') > -1) {
+					t.width = t.options[tagType + 'Width'];
+				} else if (t.media.style.width !== '' && t.media.style.width !== null) {
+					t.width = t.media.style.width;
+				} else if (t.media.getAttribute('width') !== null) {
+					t.width = t.$media.attr('width');
+				} else {
+					t.width = t.options['default' + capsTagName + 'Width'];
+				}
+
+				if (t.options[tagType + 'Height'] > 0 || t.options[tagType + 'Height'].toString().indexOf('%') > -1) {
+					t.height = t.options[tagType + 'Height'];
+				} else if (t.media.style.height !== '' && t.media.style.height !== null) {
+					t.height = t.media.style.height;
+				} else if (t.$media[0].getAttribute('height') !== null) {
+					t.height = t.$media.attr('height');
+				} else {
+					t.height = t.options['default' + capsTagName + 'Height'];
+				}
+
+				// set the size, while we wait for the plugins to load below
+				t.setPlayerSize(t.width, t.height);
+
+				// create MediaElementShim
+				meOptions.pluginWidth = t.width;
+				meOptions.pluginHeight = t.height;
+			}
+
+			// create MediaElement shim
+			mejs.MediaElement(t.$media[0], meOptions);
+
+			if (typeof(t.container) != 'undefined' && t.controlsAreVisible){
+			    // controls are shown when loaded
+			    t.container.trigger('controlsshown');
+			}
+		},
+
+		showControls: function(doAnimation) {
+			var t = this;
+
+			doAnimation = typeof doAnimation == 'undefined' || doAnimation;
+
+			if (t.controlsAreVisible)
+				return;
+
+			if (doAnimation) {
+				t.controls
+					.css('visibility','visible')
+					.stop(true, true).fadeIn(200, function() {
+					      t.controlsAreVisible = true;
+					      t.container.trigger('controlsshown');
+					});
+
+				// any additional controls people might add and want to hide
+				t.container.find('.mejs-control')
+					.css('visibility','visible')
+					.stop(true, true).fadeIn(200, function() {t.controlsAreVisible = true;});
+
+			} else {
+				t.controls
+					.css('visibility','visible')
+					.css('display','block');
+
+				// any additional controls people might add and want to hide
+				t.container.find('.mejs-control')
+					.css('visibility','visible')
+					.css('display','block');
+
+				t.controlsAreVisible = true;
+				t.container.trigger('controlsshown');
+			}
+
+			t.setControlsSize();
+
+		},
+
+		hideControls: function(doAnimation) {
+			var t = this;
+
+			doAnimation = typeof doAnimation == 'undefined' || doAnimation;
+
+			if (!t.controlsAreVisible || t.options.alwaysShowControls)
+				return;
+
+			if (doAnimation) {
+				// fade out main controls
+				t.controls.stop(true, true).fadeOut(200, function() {
+					$(this)
+						.css('visibility','hidden')
+						.css('display','block');
+
+					t.controlsAreVisible = false;
+					t.container.trigger('controlshidden');
+				});
+
+				// any additional controls people might add and want to hide
+				t.container.find('.mejs-control').stop(true, true).fadeOut(200, function() {
+					$(this)
+						.css('visibility','hidden')
+						.css('display','block');
+				});
+			} else {
+
+				// hide main controls
+				t.controls
+					.css('visibility','hidden')
+					.css('display','block');
+
+				// hide others
+				t.container.find('.mejs-control')
+					.css('visibility','hidden')
+					.css('display','block');
+
+				t.controlsAreVisible = false;
+				t.container.trigger('controlshidden');
+			}
+		},
+
+		controlsTimer: null,
+
+		startControlsTimer: function(timeout) {
+
+			var t = this;
+
+			timeout = typeof timeout != 'undefined' ? timeout : 1500;
+
+			t.killControlsTimer('start');
+
+			t.controlsTimer = setTimeout(function() {
+				//
+				t.hideControls();
+				t.killControlsTimer('hide');
+			}, timeout);
+		},
+
+		killControlsTimer: function(src) {
+
+			var t = this;
+
+			if (t.controlsTimer !== null) {
+				clearTimeout(t.controlsTimer);
+				delete t.controlsTimer;
+				t.controlsTimer = null;
+			}
+		},
+
+		controlsEnabled: true,
+
+		disableControls: function() {
+			var t= this;
+
+			t.killControlsTimer();
+			t.hideControls(false);
+			this.controlsEnabled = false;
+		},
+
+		enableControls: function() {
+			var t= this;
+
+			t.showControls(false);
+
+			t.controlsEnabled = true;
+		},
+
+
+		// Sets up all controls and events
+		meReady: function(media, domNode) {
+
+
+			var t = this,
+				mf = mejs.MediaFeatures,
+				autoplayAttr = domNode.getAttribute('autoplay'),
+				autoplay = !(typeof autoplayAttr == 'undefined' || autoplayAttr === null || autoplayAttr === 'false'),
+				featureIndex,
+				feature;
+
+			// make sure it can't create itself again if a plugin reloads
+			if (t.created) {
+				return;
+			} else {
+				t.created = true;
+			}
+
+			t.media = media;
+			t.domNode = domNode;
+
+			if (!(mf.isAndroid && t.options.AndroidUseNativeControls) && !(mf.isiPad && t.options.iPadUseNativeControls) && !(mf.isiPhone && t.options.iPhoneUseNativeControls)) {
+
+				// two built in features
+				t.buildposter(t, t.controls, t.layers, t.media);
+				t.buildkeyboard(t, t.controls, t.layers, t.media);
+				t.buildoverlays(t, t.controls, t.layers, t.media);
+
+				// grab for use by features
+				t.findTracks();
+
+				// add user-defined features/controls
+				for (featureIndex in t.options.features) {
+					feature = t.options.features[featureIndex];
+					if (t['build' + feature]) {
+						try {
+							t['build' + feature](t, t.controls, t.layers, t.media);
+						} catch (e) {
+							// TODO: report control error
+							//throw e;
+							
+							
+						}
+					}
+				}
+
+				t.container.trigger('controlsready');
+
+				// reset all layers and controls
+				t.setPlayerSize(t.width, t.height);
+				t.setControlsSize();
+
+
+				// controls fade
+				if (t.isVideo) {
+
+					if (mejs.MediaFeatures.hasTouch) {
+
+						// for touch devices (iOS, Android)
+						// show/hide without animation on touch
+
+						t.$media.bind('touchstart', function() {
+
+
+							// toggle controls
+							if (t.controlsAreVisible) {
+								t.hideControls(false);
+							} else {
+								if (t.controlsEnabled) {
+									t.showControls(false);
+								}
+							}
+						});
+
+					} else {
+
+						// create callback here since it needs access to current
+						// MediaElement object
+						t.clickToPlayPauseCallback = function() {
+							//
+
+							if (t.options.clickToPlayPause) {
+								if (t.media.paused) {
+									t.play();
+								} else {
+									t.pause();
+								}
+							}
+						};
+
+			            // click to play/pause
+			            t.media.addEventListener('click', t.clickToPlayPauseCallback, false);
+
+						// show/hide controls
+						t.container
+							.bind('mouseenter mouseover', function () {
+								if (t.controlsEnabled) {
+									if (!t.options.alwaysShowControls ) {
+										t.killControlsTimer('enter');
+										t.showControls();
+										t.startControlsTimer(2500);
+									}
+								}
+							})
+							.bind('mousemove', function() {
+								if (t.controlsEnabled) {
+									if (!t.controlsAreVisible) {
+										t.showControls();
+									}
+									if (!t.options.alwaysShowControls) {
+										t.startControlsTimer(2500);
+									}
+								}
+							})
+							.bind('mouseleave', function () {
+								if (t.controlsEnabled) {
+									if (!t.media.paused && !t.options.alwaysShowControls) {
+										t.startControlsTimer(1000);
+									}
+								}
+							});
+					}
+
+					if(t.options.hideVideoControlsOnLoad) {
+						t.hideControls(false);
+					}
+
+					// check for autoplay
+					if (autoplay && !t.options.alwaysShowControls) {
+						t.hideControls();
+					}
+
+					// resizer
+					if (t.options.enableAutosize) {
+						t.media.addEventListener('loadedmetadata', function(e) {
+							// if the <video height> was not set and the options.videoHeight was not set
+							// then resize to the real dimensions
+							if (t.options.videoHeight <= 0 && t.domNode.getAttribute('height') === null && !isNaN(e.target.videoHeight)) {
+								t.setPlayerSize(e.target.videoWidth, e.target.videoHeight);
+								t.setControlsSize();
+								t.media.setVideoSize(e.target.videoWidth, e.target.videoHeight);
+							}
+						}, false);
+					}
+				}
+
+				// EVENTS
+
+				// FOCUS: when a video starts playing, it takes focus from other players (possibily pausing them)
+				media.addEventListener('play', function() {
+					var playerIndex;
+
+					// go through all other players
+					for (playerIndex in mejs.players) {
+						var p = mejs.players[playerIndex];
+						if (p.id != t.id && t.options.pauseOtherPlayers && !p.paused && !p.ended) {
+							p.pause();
+						}
+						p.hasFocus = false;
+					}
+
+					t.hasFocus = true;
+				},false);
+
+
+				// ended for all
+				t.media.addEventListener('ended', function (e) {
+					if(t.options.autoRewind) {
+						try{
+							t.media.setCurrentTime(0);
+						} catch (exp) {
+
+						}
+					}
+					t.media.pause();
+
+					if (t.setProgressRail) {
+						t.setProgressRail();
+					}
+					if (t.setCurrentRail) {
+						t.setCurrentRail();
+					}
+
+					if (t.options.loop) {
+						t.play();
+					} else if (!t.options.alwaysShowControls && t.controlsEnabled) {
+						t.showControls();
+					}
+				}, false);
+
+				// resize on the first play
+				t.media.addEventListener('loadedmetadata', function(e) {
+					if (t.updateDuration) {
+						t.updateDuration();
+					}
+					if (t.updateCurrent) {
+						t.updateCurrent();
+					}
+
+					if (!t.isFullScreen) {
+						t.setPlayerSize(t.width, t.height);
+						t.setControlsSize();
+					}
+				}, false);
+
+
+				// webkit has trouble doing this without a delay
+				setTimeout(function () {
+					t.setPlayerSize(t.width, t.height);
+					t.setControlsSize();
+				}, 50);
+
+				// adjust controls whenever window sizes (used to be in fullscreen only)
+				t.globalBind('resize', function() {
+
+					// don't resize for fullscreen mode
+					if ( !(t.isFullScreen || (mejs.MediaFeatures.hasTrueNativeFullScreen && document.webkitIsFullScreen)) ) {
+						t.setPlayerSize(t.width, t.height);
+					}
+
+					// always adjust controls
+					t.setControlsSize();
+				});
+
+				// TEMP: needs to be moved somewhere else
+				if (t.media.pluginType == 'youtube' && t.options.autoplay) {
+				//LOK-Soft: added t.options.autoplay to if -- I can only guess this is for hiding play button when autoplaying youtube, general hiding play button layer causes missing button on player load
+					t.container.find('.mejs-overlay-play').hide();
+				}
+			}
+
+			// force autoplay for HTML5
+			if (autoplay && media.pluginType == 'native') {
+				t.play();
+			}
+
+
+			if (t.options.success) {
+
+				if (typeof t.options.success == 'string') {
+					window[t.options.success](t.media, t.domNode, t);
+				} else {
+					t.options.success(t.media, t.domNode, t);
+				}
+			}
+		},
+
+		handleError: function(e) {
+			var t = this;
+
+			t.controls.hide();
+
+			// Tell user that the file cannot be played
+			if (t.options.error) {
+				t.options.error(e);
+			}
+		},
+
+		setPlayerSize: function(width,height) {
+			var t = this;
+
+			if( !t.options.setDimensions ) {
+				return false;
+			}
+
+			if (typeof width != 'undefined') {
+				t.width = width;
+			}
+
+			if (typeof height != 'undefined') {
+				t.height = height;
+			}
+
+			// detect 100% mode - use currentStyle for IE since css() doesn't return percentages
+			if (t.height.toString().indexOf('%') > 0 || t.$node.css('max-width') === '100%' || (t.$node[0].currentStyle && t.$node[0].currentStyle.maxWidth === '100%')) {
+
+				// do we have the native dimensions yet?
+				var nativeWidth = (function() {
+					if (t.isVideo) {
+						if (t.media.videoWidth && t.media.videoWidth > 0) {
+							return t.media.videoWidth;
+						} else if (t.media.getAttribute('width') !== null) {
+							return t.media.getAttribute('width');
+						} else {
+							return t.options.defaultVideoWidth;
+						}
+					} else {
+						return t.options.defaultAudioWidth;
+					}
+				})();
+
+				var nativeHeight = (function() {
+					if (t.isVideo) {
+						if (t.media.videoHeight && t.media.videoHeight > 0) {
+							return t.media.videoHeight;
+						} else if (t.media.getAttribute('height') !== null) {
+							return t.media.getAttribute('height');
+						} else {
+							return t.options.defaultVideoHeight;
+						}
+					} else {
+						return t.options.defaultAudioHeight;
+					}
+				})();
+
+				var
+					parentWidth = t.container.parent().closest(':visible').width(),
+					parentHeight = t.container.parent().closest(':visible').height(),
+					newHeight = t.isVideo || !t.options.autosizeProgress ? parseInt(parentWidth * nativeHeight/nativeWidth, 10) : nativeHeight;
+
+				// When we use percent, the newHeight can't be calculated so we get the container height
+				if(isNaN(newHeight) || ( parentHeight != 0 && newHeight > parentHeight )) {
+					newHeight = parentHeight;
+				}
+
+				if (t.container.parent()[0].tagName.toLowerCase() === 'body') { // && t.container.siblings().count == 0) {
+					parentWidth = $(window).width();
+					newHeight = $(window).height();
+				}
+
+				if ( newHeight != 0 && parentWidth != 0 ) {
+					// set outer container size
+					t.container
+						.width(parentWidth)
+						.height(newHeight);
+
+					// set native <video> or <audio> and shims
+					t.$media.add(t.container.find('.mejs-shim'))
+						.width('100%')
+						.height('100%');
+
+					// if shim is ready, send the size to the embeded plugin
+					if (t.isVideo) {
+						if (t.media.setVideoSize) {
+							t.media.setVideoSize(parentWidth, newHeight);
+						}
+					}
+
+					// set the layers
+					t.layers.children('.mejs-layer')
+						.width('100%')
+						.height('100%');
+				}
+
+
+			} else {
+
+				t.container
+					.width(t.width)
+					.height(t.height);
+
+				t.layers.children('.mejs-layer')
+					.width(t.width)
+					.height(t.height);
+
+			}
+
+			// special case for big play button so it doesn't go over the controls area
+			var playLayer = t.layers.find('.mejs-overlay-play'),
+				playButton = playLayer.find('.mejs-overlay-button');
+
+			playLayer.height(t.container.height() - t.controls.height());
+			playButton.css('margin-top', '-' + (playButton.height()/2 - t.controls.height()/2).toString() + 'px'  );
+
+		},
+
+		setControlsSize: function() {
+			var t = this,
+				usedWidth = 0,
+				railWidth = 0,
+				rail = t.controls.find('.mejs-time-rail'),
+				total = t.controls.find('.mejs-time-total'),
+				current = t.controls.find('.mejs-time-current'),
+				loaded = t.controls.find('.mejs-time-loaded'),
+				others = rail.siblings(),
+				lastControl = others.last(),
+				lastControlPosition = null;
+
+			// skip calculation if hidden
+			if (!t.container.is(':visible') || !rail.length || !rail.is(':visible')) {
+				return;
+			}
+
+
+			// allow the size to come from custom CSS
+			if (t.options && !t.options.autosizeProgress) {
+				// Also, frontends devs can be more flexible
+				// due the opportunity of absolute positioning.
+				railWidth = parseInt(rail.css('width'));
+			}
+
+			// attempt to autosize
+			if (railWidth === 0 || !railWidth) {
+
+				// find the size of all the other controls besides the rail
+				others.each(function() {
+					var $this = $(this);
+					if ($this.css('position') != 'absolute' && $this.is(':visible')) {
+						usedWidth += $(this).outerWidth(true);
+					}
+				});
+
+				// fit the rail into the remaining space
+				railWidth = t.controls.width() - usedWidth - (rail.outerWidth(true) - rail.width());
+			}
+
+			// resize the rail,
+			// but then check if the last control (say, the fullscreen button) got pushed down
+			// this often happens when zoomed
+			do {
+				// outer area
+				rail.width(railWidth);
+				// dark space
+				total.width(railWidth - (total.outerWidth(true) - total.width()));
+
+				if (lastControl.css('position') != 'absolute') {
+					lastControlPosition = lastControl.position();
+					railWidth--;
+				}
+			} while (lastControlPosition != null && lastControlPosition.top > 0 && railWidth > 0);
+
+			if (t.setProgressRail)
+				t.setProgressRail();
+			if (t.setCurrentRail)
+				t.setCurrentRail();
+		},
+
+
+		buildposter: function(player, controls, layers, media) {
+			var t = this,
+				poster =
+				$('<div class="mejs-poster mejs-layer">' +
+				'</div>')
+					.appendTo(layers),
+				posterUrl = player.$media.attr('poster');
+
+			// prioriy goes to option (this is useful if you need to support iOS 3.x (iOS completely fails with poster)
+			if (player.options.poster !== '') {
+				posterUrl = player.options.poster;
+			}
+
+			// second, try the real poster
+			if (posterUrl !== '' && posterUrl != null) {
+				t.setPoster(posterUrl);
+			} else {
+				poster.hide();
+			}
+
+			media.addEventListener('play',function() {
+				poster.hide();
+			}, false);
+
+			if(player.options.showPosterWhenEnded && player.options.autoRewind){
+				media.addEventListener('ended',function() {
+					poster.show();
+				}, false);
+			}
+		},
+
+		setPoster: function(url) {
+			var t = this,
+				posterDiv = t.container.find('.mejs-poster'),
+				posterImg = posterDiv.find('img');
+
+			if (posterImg.length == 0) {
+				posterImg = $('<img width="100%" height="100%" />').appendTo(posterDiv);
+			}
+
+			posterImg.attr('src', url);
+			posterDiv.css({'background-image' : 'url(' + url + ')'});
+		},
+
+		buildoverlays: function(player, controls, layers, media) {
+            var t = this;
+			if (!player.isVideo)
+				return;
+
+			var
+			loading =
+				$('<div class="mejs-overlay mejs-layer">'+
+					'<div class="mejs-overlay-loading"><span></span></div>'+
+				'</div>')
+				.hide() // start out hidden
+				.appendTo(layers),
+			error =
+				$('<div class="mejs-overlay mejs-layer">'+
+					'<div class="mejs-overlay-error"></div>'+
+				'</div>')
+				.hide() // start out hidden
+				.appendTo(layers),
+			// this needs to come last so it's on top
+			bigPlay =
+				$('<div class="mejs-overlay mejs-layer mejs-overlay-play">'+
+					'<div class="mejs-overlay-button"></div>'+
+				'</div>')
+				.appendTo(layers)
+				.bind('click', function() {  // Removed 'touchstart' due issues on Samsung Android devices where a tap on bigPlay started and immediately stopped the video
+					if (t.options.clickToPlayPause) {
+						if (media.paused) {
+							media.play();
+						}
+					}
+				});
+
+			/*
+			if (mejs.MediaFeatures.isiOS || mejs.MediaFeatures.isAndroid) {
+				bigPlay.remove();
+				loading.remove();
+			}
+			*/
+
+
+			// show/hide big play button
+			media.addEventListener('play',function() {
+				bigPlay.hide();
+				loading.hide();
+				controls.find('.mejs-time-buffering').hide();
+				error.hide();
+			}, false);
+
+			media.addEventListener('playing', function() {
+				bigPlay.hide();
+				loading.hide();
+				controls.find('.mejs-time-buffering').hide();
+				error.hide();
+			}, false);
+
+			media.addEventListener('seeking', function() {
+				loading.show();
+				controls.find('.mejs-time-buffering').show();
+			}, false);
+
+			media.addEventListener('seeked', function() {
+				loading.hide();
+				controls.find('.mejs-time-buffering').hide();
+			}, false);
+
+			media.addEventListener('pause',function() {
+				if (!mejs.MediaFeatures.isiPhone) {
+					bigPlay.show();
+				}
+			}, false);
+
+			media.addEventListener('waiting', function() {
+				loading.show();
+				controls.find('.mejs-time-buffering').show();
+			}, false);
+
+
+			// show/hide loading
+			media.addEventListener('loadeddata',function() {
+				// for some reason Chrome is firing this event
+				//if (mejs.MediaFeatures.isChrome && media.getAttribute && media.getAttribute('preload') === 'none')
+				//	return;
+
+				loading.show();
+				controls.find('.mejs-time-buffering').show();
+			}, false);
+			media.addEventListener('canplay',function() {
+				loading.hide();
+				controls.find('.mejs-time-buffering').hide();
+			}, false);
+
+			// error handling
+			media.addEventListener('error',function() {
+				loading.hide();
+				controls.find('.mejs-time-buffering').hide();
+				error.show();
+				error.find('mejs-overlay-error').html("Error loading this resource");
+			}, false);
+
+			media.addEventListener('keydown', function(e) {
+				t.onkeydown(player, media, e);
+			}, false);
+		},
+
+		buildkeyboard: function(player, controls, layers, media) {
+
+				var t = this;
+
+				// listen for key presses
+				t.globalBind('keydown', function(e) {
+					return t.onkeydown(player, media, e);
+				});
+
+				// check if someone clicked outside a player region, then kill its focus
+				t.globalBind('click', function(event) {
+					player.hasFocus = $(event.target).closest('.mejs-container').length != 0;
+				});
+
+		},
+		onkeydown: function(player, media, e) {
+			if (player.hasFocus && player.options.enableKeyboard) {
+				// find a matching key
+				for (var i = 0, il = player.options.keyActions.length; i < il; i++) {
+					var keyAction = player.options.keyActions[i];
+
+					for (var j = 0, jl = keyAction.keys.length; j < jl; j++) {
+						if (e.keyCode == keyAction.keys[j]) {
+							if (typeof(e.preventDefault) == "function") e.preventDefault();
+							keyAction.action(player, media, e.keyCode);
+							return false;
+						}
+					}
+				}
+			}
+
+			return true;
+		},
+
+		findTracks: function() {
+			var t = this,
+				tracktags = t.$media.find('track');
+
+			// store for use by plugins
+			t.tracks = [];
+			tracktags.each(function(index, track) {
+
+				track = $(track);
+
+				t.tracks.push({
+					srclang: (track.attr('srclang')) ? track.attr('srclang').toLowerCase() : '',
+					src: track.attr('src'),
+					kind: track.attr('kind'),
+					label: track.attr('label') || '',
+					entries: [],
+					isLoaded: false
+				});
+			});
+		},
+		changeSkin: function(className) {
+			this.container[0].className = 'mejs-container ' + className;
+			this.setPlayerSize(this.width, this.height);
+			this.setControlsSize();
+		},
+		play: function() {
+			this.load();
+			this.media.play();
+		},
+		pause: function() {
+			try {
+				this.media.pause();
+			} catch (e) {}
+		},
+		load: function() {
+			if (!this.isLoaded) {
+				this.media.load();
+			}
+
+			this.isLoaded = true;
+		},
+		setMuted: function(muted) {
+			this.media.setMuted(muted);
+		},
+		setCurrentTime: function(time) {
+			this.media.setCurrentTime(time);
+		},
+		getCurrentTime: function() {
+			return this.media.currentTime;
+		},
+		setVolume: function(volume) {
+			this.media.setVolume(volume);
+		},
+		getVolume: function() {
+			return this.media.volume;
+		},
+		setSrc: function(src) {
+			this.media.setSrc(src);
+		},
+		remove: function() {
+			var t = this, featureIndex, feature;
+
+			// invoke features cleanup
+			for (featureIndex in t.options.features) {
+				feature = t.options.features[featureIndex];
+				if (t['clean' + feature]) {
+					try {
+						t['clean' + feature](t);
+					} catch (e) {
+						// TODO: report control error
+						//throw e;
+						//
+						//
+					}
+				}
+			}
+
+			// grab video and put it back in place
+			if (!t.isDynamic) {
+				t.$media.prop('controls', true);
+				// detach events from the video
+				// TODO: detach event listeners better than this;
+				//       also detach ONLY the events attached by this plugin!
+				t.$node.clone().insertBefore(t.container).show();
+				t.$node.remove();
+			} else {
+				t.$node.insertBefore(t.container);
+			}
+
+			if (t.media.pluginType !== 'native') {
+				t.media.remove();
+			}
+
+			// Remove the player from the mejs.players object so that pauseOtherPlayers doesn't blow up when trying to pause a non existance flash api.
+			delete mejs.players[t.id];
+
+			if (typeof t.container == 'object') {
+				t.container.remove();
+			}
+			t.globalUnbind();
+			delete t.node.player;
+		}
+	};
+
+	(function(){
+		var rwindow = /^((after|before)print|(before)?unload|hashchange|message|o(ff|n)line|page(hide|show)|popstate|resize|storage)\b/;
+
+		function splitEvents(events, id) {
+			// add player ID as an event namespace so it's easier to unbind them all later
+			var ret = {d: [], w: []};
+			$.each((events || '').split(' '), function(k, v){
+				var eventname = v + '.' + id;
+				if (eventname.indexOf('.') === 0) {
+					ret.d.push(eventname);
+					ret.w.push(eventname);
+				}
+				else {
+					ret[rwindow.test(v) ? 'w' : 'd'].push(eventname);
+				}
+			});
+			ret.d = ret.d.join(' ');
+			ret.w = ret.w.join(' ');
+			return ret;
+		}
+
+		mejs.MediaElementPlayer.prototype.globalBind = function(events, data, callback) {
+			var t = this;
+			events = splitEvents(events, t.id);
+			if (events.d) $(document).bind(events.d, data, callback);
+			if (events.w) $(window).bind(events.w, data, callback);
+		};
+
+		mejs.MediaElementPlayer.prototype.globalUnbind = function(events, callback) {
+			var t = this;
+			events = splitEvents(events, t.id);
+			if (events.d) $(document).unbind(events.d, callback);
+			if (events.w) $(window).unbind(events.w, callback);
+		};
+	})();
+
+	// turn into jQuery plugin
+	if (typeof $ != 'undefined') {
+		$.fn.mediaelementplayer = function (options) {
+			if (options === false) {
+				this.each(function () {
+					var player = $(this).data('mediaelementplayer');
+					if (player) {
+						player.remove();
+					}
+					$(this).removeData('mediaelementplayer');
+				});
+			}
+			else {
+				this.each(function () {
+					$(this).data('mediaelementplayer', new mejs.MediaElementPlayer(this, options));
+				});
+			}
+			return this;
+		};
+
+
+		$(document).ready(function() {
+			// auto enable using JSON attribute
+			$('.mejs-player').mediaelementplayer();
+		});
+	}
+
+	// push out to window
+	window.MediaElementPlayer = mejs.MediaElementPlayer;
+
+})(mejs.$);
+
+(function($) {
+
+	$.extend(mejs.MepDefaults, {
+		playpauseText: mejs.i18n.t('Play/Pause')
+	});
+
+	// PLAY/pause BUTTON
+	$.extend(MediaElementPlayer.prototype, {
+		buildplaypause: function(player, controls, layers, media) {
+			var 
+				t = this,
+				play = 
+				$('<div class="mejs-button mejs-playpause-button mejs-play" >' +
+					'<button type="button" aria-controls="' + t.id + '" title="' + t.options.playpauseText + '" aria-label="' + t.options.playpauseText + '"></button>' +
+				'</div>')
+				.appendTo(controls)
+				.click(function(e) {
+					e.preventDefault();
+				
+					if (media.paused) {
+						media.play();
+					} else {
+						media.pause();
+					}
+					
+					return false;
+				});
+
+			media.addEventListener('play',function() {
+				play.removeClass('mejs-play').addClass('mejs-pause');
+			}, false);
+			media.addEventListener('playing',function() {
+				play.removeClass('mejs-play').addClass('mejs-pause');
+			}, false);
+
+
+			media.addEventListener('pause',function() {
+				play.removeClass('mejs-pause').addClass('mejs-play');
+			}, false);
+			media.addEventListener('paused',function() {
+				play.removeClass('mejs-pause').addClass('mejs-play');
+			}, false);
+		}
+	});
+	
+})(mejs.$);
+
+(function($) {
+
+	$.extend(mejs.MepDefaults, {
+		stopText: 'Stop'
+	});
+
+	// STOP BUTTON
+	$.extend(MediaElementPlayer.prototype, {
+		buildstop: function(player, controls, layers, media) {
+			var t = this,
+				stop = 
+				$('<div class="mejs-button mejs-stop-button mejs-stop">' +
+					'<button type="button" aria-controls="' + t.id + '" title="' + t.options.stopText + '" aria-label="' + t.options.stopText + '"></button>' +
+				'</div>')
+				.appendTo(controls)
+				.click(function() {
+					if (!media.paused) {
+						media.pause();
+					}
+					if (media.currentTime > 0) {
+						media.setCurrentTime(0);
+                        media.pause();
+						controls.find('.mejs-time-current').width('0px');
+						controls.find('.mejs-time-handle').css('left', '0px');
+						controls.find('.mejs-time-float-current').html( mejs.Utility.secondsToTimeCode(0) );
+						controls.find('.mejs-currenttime').html( mejs.Utility.secondsToTimeCode(0) );					
+						layers.find('.mejs-poster').show();
+					}
+				});
+		}
+	});
+	
+})(mejs.$);
+
+(function($) {
+	// progress/loaded bar
+	$.extend(MediaElementPlayer.prototype, {
+		buildprogress: function(player, controls, layers, media) {
+
+			$('<div class="mejs-time-rail">'+
+				'<span class="mejs-time-total">'+
+					'<span class="mejs-time-buffering"></span>'+
+					'<span class="mejs-time-loaded"></span>'+
+					'<span class="mejs-time-current"></span>'+
+					'<span class="mejs-time-handle"></span>'+
+					'<span class="mejs-time-float">' + 
+						'<span class="mejs-time-float-current">00:00</span>' + 
+						'<span class="mejs-time-float-corner"></span>' + 
+					'</span>'+
+				'</span>'+
+			'</div>')
+				.appendTo(controls);
+				controls.find('.mejs-time-buffering').hide();
+
+			var 
+				t = this,
+				total = controls.find('.mejs-time-total'),
+				loaded  = controls.find('.mejs-time-loaded'),
+				current  = controls.find('.mejs-time-current'),
+				handle  = controls.find('.mejs-time-handle'),
+				timefloat  = controls.find('.mejs-time-float'),
+				timefloatcurrent  = controls.find('.mejs-time-float-current'),
+				handleMouseMove = function (e) {
+					// mouse or touch position relative to the object
+					if (e.originalEvent.changedTouches) {
+						var x = e.originalEvent.changedTouches[0].pageX;
+					}else{
+						var x = e.pageX;
+					}
+					
+					var offset = total.offset(),
+						width = total.outerWidth(true),
+						percentage = 0,
+						newTime = 0,
+						pos = 0;
+
+
+					if (media.duration) {
+						if (x < offset.left) {
+							x = offset.left;
+						} else if (x > width + offset.left) {
+							x = width + offset.left;
+						}
+						
+						pos = x - offset.left;
+						percentage = (pos / width);
+						newTime = (percentage <= 0.02) ? 0 : percentage * media.duration;
+
+						// seek to where the mouse is
+						if (mouseIsDown && newTime !== media.currentTime) {
+							media.setCurrentTime(newTime);
+						}
+
+						// position floating time box
+						if (!mejs.MediaFeatures.hasTouch) {
+								timefloat.css('left', pos);
+								timefloatcurrent.html( mejs.Utility.secondsToTimeCode(newTime) );
+								timefloat.show();
+						}
+					}
+				},
+				mouseIsDown = false,
+				mouseIsOver = false;
+
+			// handle clicks
+			//controls.find('.mejs-time-rail').delegate('span', 'click', handleMouseMove);
+			total
+				.bind('mousedown touchstart', function (e) {
+					// only handle left clicks or touch
+					if (e.which === 1 || e.which === 0) {
+						mouseIsDown = true;
+						handleMouseMove(e);
+						t.globalBind('mousemove.dur touchmove.dur', function(e) {
+							handleMouseMove(e);
+						});
+						t.globalBind('mouseup.dur touchend.dur', function (e) {
+							mouseIsDown = false;
+							timefloat.hide();
+							t.globalUnbind('.dur');
+						});
+						return false;
+					}
+				})
+				.bind('mouseenter', function(e) {
+					mouseIsOver = true;
+					t.globalBind('mousemove.dur', function(e) {
+						handleMouseMove(e);
+					});
+					if (!mejs.MediaFeatures.hasTouch) {
+						timefloat.show();
+					}
+				})
+				.bind('mouseleave',function(e) {
+					mouseIsOver = false;
+					if (!mouseIsDown) {
+						t.globalUnbind('.dur');
+						timefloat.hide();
+					}
+				});
+
+			// loading
+			media.addEventListener('progress', function (e) {
+				player.setProgressRail(e);
+				player.setCurrentRail(e);
+			}, false);
+
+			// current time
+			media.addEventListener('timeupdate', function(e) {
+				player.setProgressRail(e);
+				player.setCurrentRail(e);
+			}, false);
+			
+			
+			// store for later use
+			t.loaded = loaded;
+			t.total = total;
+			t.current = current;
+			t.handle = handle;
+		},
+		setProgressRail: function(e) {
+
+			var
+				t = this,
+				target = (e != undefined) ? e.target : t.media,
+				percent = null;			
+
+			// newest HTML5 spec has buffered array (FF4, Webkit)
+			if (target && target.buffered && target.buffered.length > 0 && target.buffered.end && target.duration) {
+				// TODO: account for a real array with multiple values (only Firefox 4 has this so far) 
+				percent = target.buffered.end(0) / target.duration;
+			} 
+			// Some browsers (e.g., FF3.6 and Safari 5) cannot calculate target.bufferered.end()
+			// to be anything other than 0. If the byte count is available we use this instead.
+			// Browsers that support the else if do not seem to have the bufferedBytes value and
+			// should skip to there. Tested in Safari 5, Webkit head, FF3.6, Chrome 6, IE 7/8.
+			else if (target && target.bytesTotal != undefined && target.bytesTotal > 0 && target.bufferedBytes != undefined) {
+				percent = target.bufferedBytes / target.bytesTotal;
+			}
+			// Firefox 3 with an Ogg file seems to go this way
+			else if (e && e.lengthComputable && e.total != 0) {
+				percent = e.loaded/e.total;
+			}
+
+			// finally update the progress bar
+			if (percent !== null) {
+				percent = Math.min(1, Math.max(0, percent));
+				// update loaded bar
+				if (t.loaded && t.total) {
+					t.loaded.width(t.total.width() * percent);
+				}
+			}
+		},
+		setCurrentRail: function() {
+
+			var t = this;
+		
+			if (t.media.currentTime != undefined && t.media.duration) {
+
+				// update bar and handle
+				if (t.total && t.handle) {
+					var 
+						newWidth = Math.round(t.total.width() * t.media.currentTime / t.media.duration),
+						handlePos = newWidth - Math.round(t.handle.outerWidth(true) / 2);
+
+					t.current.width(newWidth);
+					t.handle.css('left', handlePos);
+				}
+			}
+
+		}	
+	});
+})(mejs.$);
+
+(function($) {
+	
+	// options
+	$.extend(mejs.MepDefaults, {
+		duration: -1,
+		timeAndDurationSeparator: '<span> | </span>'
+	});
+
+
+	// current and duration 00:00 / 00:00
+	$.extend(MediaElementPlayer.prototype, {
+		buildcurrent: function(player, controls, layers, media) {
+			var t = this;
+			
+			$('<div class="mejs-time">'+
+					'<span class="mejs-currenttime">' + (player.options.alwaysShowHours ? '00:' : '')
+					+ (player.options.showTimecodeFrameCount? '00:00:00':'00:00')+ '</span>'+
+					'</div>')
+					.appendTo(controls);
+			
+			t.currenttime = t.controls.find('.mejs-currenttime');
+
+			media.addEventListener('timeupdate',function() {
+				player.updateCurrent();
+			}, false);
+		},
+
+
+		buildduration: function(player, controls, layers, media) {
+			var t = this;
+			
+			if (controls.children().last().find('.mejs-currenttime').length > 0) {
+				$(t.options.timeAndDurationSeparator +
+					'<span class="mejs-duration">' + 
+						(t.options.duration > 0 ? 
+							mejs.Utility.secondsToTimeCode(t.options.duration, t.options.alwaysShowHours || t.media.duration > 3600, t.options.showTimecodeFrameCount,  t.options.framesPerSecond || 25) :
+				   			((player.options.alwaysShowHours ? '00:' : '') + (player.options.showTimecodeFrameCount? '00:00:00':'00:00')) 
+				   		) + 
+					'</span>')
+					.appendTo(controls.find('.mejs-time'));
+			} else {
+
+				// add class to current time
+				controls.find('.mejs-currenttime').parent().addClass('mejs-currenttime-container');
+				
+				$('<div class="mejs-time mejs-duration-container">'+
+					'<span class="mejs-duration">' + 
+						(t.options.duration > 0 ? 
+							mejs.Utility.secondsToTimeCode(t.options.duration, t.options.alwaysShowHours || t.media.duration > 3600, t.options.showTimecodeFrameCount,  t.options.framesPerSecond || 25) :
+				   			((player.options.alwaysShowHours ? '00:' : '') + (player.options.showTimecodeFrameCount? '00:00:00':'00:00')) 
+				   		) + 
+					'</span>' +
+				'</div>')
+				.appendTo(controls);
+			}
+			
+			t.durationD = t.controls.find('.mejs-duration');
+
+			media.addEventListener('timeupdate',function() {
+				player.updateDuration();
+			}, false);
+		},
+		
+		updateCurrent:  function() {
+			var t = this;
+
+			if (t.currenttime) {
+				t.currenttime.html(mejs.Utility.secondsToTimeCode(t.media.currentTime, t.options.alwaysShowHours || t.media.duration > 3600, t.options.showTimecodeFrameCount,  t.options.framesPerSecond || 25));
+			}
+		},
+		
+		updateDuration: function() {
+			var t = this;
+
+			//Toggle the long video class if the video is longer than an hour.
+			t.container.toggleClass("mejs-long-video", t.media.duration > 3600);
+			
+			if (t.durationD && (t.options.duration > 0 || t.media.duration)) {
+				t.durationD.html(mejs.Utility.secondsToTimeCode(t.options.duration > 0 ? t.options.duration : t.media.duration, t.options.alwaysShowHours, t.options.showTimecodeFrameCount, t.options.framesPerSecond || 25));
+			}		
+		}
+	});
+
+})(mejs.$);
+
+(function($) {
+
+	$.extend(mejs.MepDefaults, {
+		muteText: mejs.i18n.t('Mute Toggle'),
+		hideVolumeOnTouchDevices: true,
+		
+		audioVolume: 'horizontal',
+		videoVolume: 'vertical'
+	});
+
+	$.extend(MediaElementPlayer.prototype, {
+		buildvolume: function(player, controls, layers, media) {
+				
+			// Android and iOS don't support volume controls
+			if ((mejs.MediaFeatures.isAndroid || mejs.MediaFeatures.isiOS) && this.options.hideVolumeOnTouchDevices)
+				return;
+			
+			var t = this,
+				mode = (t.isVideo) ? t.options.videoVolume : t.options.audioVolume,
+				mute = (mode == 'horizontal') ?
+				
+				// horizontal version
+				$('<div class="mejs-button mejs-volume-button mejs-mute">'+
+					'<button type="button" aria-controls="' + t.id + '" title="' + t.options.muteText + '" aria-label="' + t.options.muteText + '"></button>'+
+				'</div>' +
+				'<div class="mejs-horizontal-volume-slider">'+ // outer background
+					'<div class="mejs-horizontal-volume-total"></div>'+ // line background
+					'<div class="mejs-horizontal-volume-current"></div>'+ // current volume
+					'<div class="mejs-horizontal-volume-handle"></div>'+ // handle
+				'</div>'
+				)
+					.appendTo(controls) :
+				
+				// vertical version
+				$('<div class="mejs-button mejs-volume-button mejs-mute">'+
+					'<button type="button" aria-controls="' + t.id + '" title="' + t.options.muteText + '" aria-label="' + t.options.muteText + '"></button>'+
+					'<div class="mejs-volume-slider">'+ // outer background
+						'<div class="mejs-volume-total"></div>'+ // line background
+						'<div class="mejs-volume-current"></div>'+ // current volume
+						'<div class="mejs-volume-handle"></div>'+ // handle
+					'</div>'+
+				'</div>')
+					.appendTo(controls),
+			volumeSlider = t.container.find('.mejs-volume-slider, .mejs-horizontal-volume-slider'),
+			volumeTotal = t.container.find('.mejs-volume-total, .mejs-horizontal-volume-total'),
+			volumeCurrent = t.container.find('.mejs-volume-current, .mejs-horizontal-volume-current'),
+			volumeHandle = t.container.find('.mejs-volume-handle, .mejs-horizontal-volume-handle'),
+
+			positionVolumeHandle = function(volume, secondTry) {
+
+				if (!volumeSlider.is(':visible') && typeof secondTry == 'undefined') {
+					volumeSlider.show();
+					positionVolumeHandle(volume, true);
+					volumeSlider.hide()
+					return;
+				}
+			
+				// correct to 0-1
+				volume = Math.max(0,volume);
+				volume = Math.min(volume,1);					
+				
+				// ajust mute button style
+				if (volume == 0) {
+					mute.removeClass('mejs-mute').addClass('mejs-unmute');
+				} else {
+					mute.removeClass('mejs-unmute').addClass('mejs-mute');
+				}				
+
+				// position slider 
+				if (mode == 'vertical') {
+					var 
+					
+						// height of the full size volume slider background
+						totalHeight = volumeTotal.height(),
+						
+						// top/left of full size volume slider background
+						totalPosition = volumeTotal.position(),
+						
+						// the new top position based on the current volume
+						// 70% volume on 100px height == top:30px
+						newTop = totalHeight - (totalHeight * volume);
+	
+					// handle
+					volumeHandle.css('top', Math.round(totalPosition.top + newTop - (volumeHandle.height() / 2)));
+	
+					// show the current visibility
+					volumeCurrent.height(totalHeight - newTop );
+					volumeCurrent.css('top', totalPosition.top + newTop);
+				} else {
+					var 
+					
+						// height of the full size volume slider background
+						totalWidth = volumeTotal.width(),
+						
+						// top/left of full size volume slider background
+						totalPosition = volumeTotal.position(),
+						
+						// the new left position based on the current volume
+						newLeft = totalWidth * volume;
+	
+					// handle
+					volumeHandle.css('left', Math.round(totalPosition.left + newLeft - (volumeHandle.width() / 2)));
+	
+					// rezize the current part of the volume bar
+					volumeCurrent.width( Math.round(newLeft) );
+				}
+			},
+			handleVolumeMove = function(e) {
+				
+				var volume = null,
+					totalOffset = volumeTotal.offset();
+				
+				// calculate the new volume based on the moust position
+				if (mode == 'vertical') {
+				
+					var
+						railHeight = volumeTotal.height(),
+						totalTop = parseInt(volumeTotal.css('top').replace(/px/,''),10),
+						newY = e.pageY - totalOffset.top;
+						
+					volume = (railHeight - newY) / railHeight;
+						
+					// the controls just hide themselves (usually when mouse moves too far up)
+					if (totalOffset.top == 0 || totalOffset.left == 0)
+						return;
+					
+				} else {
+					var
+						railWidth = volumeTotal.width(),
+						newX = e.pageX - totalOffset.left;
+						
+					volume = newX / railWidth;
+				}
+				
+				// ensure the volume isn't outside 0-1
+				volume = Math.max(0,volume);
+				volume = Math.min(volume,1);
+				
+				// position the slider and handle			
+				positionVolumeHandle(volume);
+				
+				// set the media object (this will trigger the volumechanged event)
+				if (volume == 0) {
+					media.setMuted(true);
+				} else {
+					media.setMuted(false);
+				}
+				media.setVolume(volume);			
+			},
+			mouseIsDown = false,
+			mouseIsOver = false;
+
+			// SLIDER
+			
+			mute
+				.hover(function() {
+					volumeSlider.show();
+					mouseIsOver = true;
+				}, function() {
+					mouseIsOver = false;	
+						
+					if (!mouseIsDown && mode == 'vertical')	{
+						volumeSlider.hide();
+					}
+				});
+			
+			volumeSlider
+				.bind('mouseover', function() {
+					mouseIsOver = true;	
+				})
+				.bind('mousedown', function (e) {
+					handleVolumeMove(e);
+					t.globalBind('mousemove.vol', function(e) {
+						handleVolumeMove(e);
+					});
+					t.globalBind('mouseup.vol', function () {
+						mouseIsDown = false;
+						t.globalUnbind('.vol');
+
+						if (!mouseIsOver && mode == 'vertical') {
+							volumeSlider.hide();
+						}
+					});
+					mouseIsDown = true;
+						
+					return false;
+				});
+
+
+			// MUTE button
+			mute.find('button').click(function() {
+				media.setMuted( !media.muted );
+			});
+
+			// listen for volume change events from other sources
+			media.addEventListener('volumechange', function(e) {
+				if (!mouseIsDown) {
+					if (media.muted) {
+						positionVolumeHandle(0);
+						mute.removeClass('mejs-mute').addClass('mejs-unmute');
+					} else {
+						positionVolumeHandle(media.volume);
+						mute.removeClass('mejs-unmute').addClass('mejs-mute');
+					}
+				}
+			}, false);
+
+			if (t.container.is(':visible')) {
+				// set initial volume
+				positionVolumeHandle(player.options.startVolume);
+
+				// mutes the media and sets the volume icon muted if the initial volume is set to 0
+        if (player.options.startVolume === 0) {
+          media.setMuted(true);
+        }
+
+				// shim gets the startvolume as a parameter, but we have to set it on the native <video> and <audio> elements
+				if (media.pluginType === 'native') {
+					media.setVolume(player.options.startVolume);
+				}
+			}
+		}
+	});
+	
+})(mejs.$);
+
+(function($) {
+
+	$.extend(mejs.MepDefaults, {
+		usePluginFullScreen: true,
+		newWindowCallback: function() { return '';},
+		fullscreenText: mejs.i18n.t('Fullscreen')
+	});
+
+	$.extend(MediaElementPlayer.prototype, {
+
+		isFullScreen: false,
+
+		isNativeFullScreen: false,
+
+		isInIframe: false,
+
+		buildfullscreen: function(player, controls, layers, media) {
+
+			if (!player.isVideo)
+				return;
+
+			player.isInIframe = (window.location != window.parent.location);
+
+			// native events
+			if (mejs.MediaFeatures.hasTrueNativeFullScreen) {
+
+				// chrome doesn't alays fire this in an iframe
+				var func = function(e) {
+					if (player.isFullScreen) {
+						if (mejs.MediaFeatures.isFullScreen()) {
+							player.isNativeFullScreen = true;
+							// reset the controls once we are fully in full screen
+							player.setControlsSize();
+						} else {
+							player.isNativeFullScreen = false;
+							// when a user presses ESC
+							// make sure to put the player back into place
+							player.exitFullScreen();
+						}
+					}
+				};
+
+				player.globalBind(mejs.MediaFeatures.fullScreenEventName, func);
+			}
+
+			var t = this,
+				normalHeight = 0,
+				normalWidth = 0,
+				container = player.container,
+				fullscreenBtn =
+					$('<div class="mejs-button mejs-fullscreen-button">' +
+						'<button type="button" aria-controls="' + t.id + '" title="' + t.options.fullscreenText + '" aria-label="' + t.options.fullscreenText + '"></button>' +
+					'</div>')
+					.appendTo(controls);
+
+				if (t.media.pluginType === 'native' || (!t.options.usePluginFullScreen && !mejs.MediaFeatures.isFirefox)) {
+
+					fullscreenBtn.click(function() {
+						var isFullScreen = (mejs.MediaFeatures.hasTrueNativeFullScreen && mejs.MediaFeatures.isFullScreen()) || player.isFullScreen;
+
+						if (isFullScreen) {
+							player.exitFullScreen();
+						} else {
+							player.enterFullScreen();
+						}
+					});
+
+				} else {
+
+					var hideTimeout = null,
+						supportsPointerEvents = (function() {
+							// TAKEN FROM MODERNIZR
+							var element = document.createElement('x'),
+								documentElement = document.documentElement,
+								getComputedStyle = window.getComputedStyle,
+								supports;
+							if(!('pointerEvents' in element.style)){
+								return false;
+							}
+							element.style.pointerEvents = 'auto';
+							element.style.pointerEvents = 'x';
+							documentElement.appendChild(element);
+							supports = getComputedStyle &&
+								getComputedStyle(element, '').pointerEvents === 'auto';
+							documentElement.removeChild(element);
+							return !!supports;
+						})();
+
+					//
+
+					if (supportsPointerEvents && !mejs.MediaFeatures.isOpera) { // opera doesn't allow this :(
+
+						// allows clicking through the fullscreen button and controls down directly to Flash
+
+						/*
+						 When a user puts his mouse over the fullscreen button, the controls are disabled
+						 So we put a div over the video and another one on iether side of the fullscreen button
+						 that caputre mouse movement
+						 and restore the controls once the mouse moves outside of the fullscreen button
+						*/
+
+						var fullscreenIsDisabled = false,
+							restoreControls = function() {
+								if (fullscreenIsDisabled) {
+									// hide the hovers
+									for (var i in hoverDivs) {
+										hoverDivs[i].hide();
+									}
+
+									// restore the control bar
+									fullscreenBtn.css('pointer-events', '');
+									t.controls.css('pointer-events', '');
+
+									// prevent clicks from pausing video
+									t.media.removeEventListener('click', t.clickToPlayPauseCallback);
+
+									// store for later
+									fullscreenIsDisabled = false;
+								}
+							},
+							hoverDivs = {},
+							hoverDivNames = ['top', 'left', 'right', 'bottom'],
+							i, len,
+							positionHoverDivs = function() {
+								var fullScreenBtnOffsetLeft = fullscreenBtn.offset().left - t.container.offset().left,
+									fullScreenBtnOffsetTop = fullscreenBtn.offset().top - t.container.offset().top,
+									fullScreenBtnWidth = fullscreenBtn.outerWidth(true),
+									fullScreenBtnHeight = fullscreenBtn.outerHeight(true),
+									containerWidth = t.container.width(),
+									containerHeight = t.container.height();
+
+								for (i in hoverDivs) {
+									hoverDivs[i].css({position: 'absolute', top: 0, left: 0}); //, backgroundColor: '#f00'});
+								}
+
+								// over video, but not controls
+								hoverDivs['top']
+									.width( containerWidth )
+									.height( fullScreenBtnOffsetTop );
+
+								// over controls, but not the fullscreen button
+								hoverDivs['left']
+									.width( fullScreenBtnOffsetLeft )
+									.height( fullScreenBtnHeight )
+									.css({top: fullScreenBtnOffsetTop});
+
+								// after the fullscreen button
+								hoverDivs['right']
+									.width( containerWidth - fullScreenBtnOffsetLeft - fullScreenBtnWidth )
+									.height( fullScreenBtnHeight )
+									.css({top: fullScreenBtnOffsetTop,
+										 left: fullScreenBtnOffsetLeft + fullScreenBtnWidth});
+
+								// under the fullscreen button
+								hoverDivs['bottom']
+									.width( containerWidth )
+									.height( containerHeight - fullScreenBtnHeight - fullScreenBtnOffsetTop )
+									.css({top: fullScreenBtnOffsetTop + fullScreenBtnHeight});
+							};
+
+						t.globalBind('resize', function() {
+							positionHoverDivs();
+						});
+
+						for (i = 0, len = hoverDivNames.length; i < len; i++) {
+							hoverDivs[hoverDivNames[i]] = $('<div class="mejs-fullscreen-hover" />').appendTo(t.container).mouseover(restoreControls).hide();
+						}
+
+						// on hover, kill the fullscreen button's HTML handling, allowing clicks down to Flash
+						fullscreenBtn.on('mouseover',function() {
+
+							if (!t.isFullScreen) {
+
+								var buttonPos = fullscreenBtn.offset(),
+									containerPos = player.container.offset();
+
+								// move the button in Flash into place
+								media.positionFullscreenButton(buttonPos.left - containerPos.left, buttonPos.top - containerPos.top, false);
+
+								// allows click through
+								fullscreenBtn.css('pointer-events', 'none');
+								t.controls.css('pointer-events', 'none');
+
+								// restore click-to-play
+								t.media.addEventListener('click', t.clickToPlayPauseCallback);
+
+								// show the divs that will restore things
+								for (i in hoverDivs) {
+									hoverDivs[i].show();
+								}
+
+								positionHoverDivs();
+
+								fullscreenIsDisabled = true;
+							}
+
+						});
+
+						// restore controls anytime the user enters or leaves fullscreen
+						media.addEventListener('fullscreenchange', function(e) {
+							t.isFullScreen = !t.isFullScreen;
+							// don't allow plugin click to pause video - messes with
+							// plugin's controls
+							if (t.isFullScreen) {
+								t.media.removeEventListener('click', t.clickToPlayPauseCallback);
+							} else {
+								t.media.addEventListener('click', t.clickToPlayPauseCallback);
+							}
+							restoreControls();
+						});
+
+
+						// the mouseout event doesn't work on the fullscren button, because we already killed the pointer-events
+						// so we use the document.mousemove event to restore controls when the mouse moves outside the fullscreen button
+
+						t.globalBind('mousemove', function(e) {
+
+							// if the mouse is anywhere but the fullsceen button, then restore it all
+							if (fullscreenIsDisabled) {
+
+								var fullscreenBtnPos = fullscreenBtn.offset();
+
+
+								if (e.pageY < fullscreenBtnPos.top || e.pageY > fullscreenBtnPos.top + fullscreenBtn.outerHeight(true) ||
+									e.pageX < fullscreenBtnPos.left || e.pageX > fullscreenBtnPos.left + fullscreenBtn.outerWidth(true)
+									) {
+
+									fullscreenBtn.css('pointer-events', '');
+									t.controls.css('pointer-events', '');
+
+									fullscreenIsDisabled = false;
+								}
+							}
+						});
+
+
+
+					} else {
+
+						// the hover state will show the fullscreen button in Flash to hover up and click
+
+						fullscreenBtn
+							.on('mouseover', function() {
+
+								if (hideTimeout !== null) {
+									clearTimeout(hideTimeout);
+									delete hideTimeout;
+								}
+
+								var buttonPos = fullscreenBtn.offset(),
+									containerPos = player.container.offset();
+
+								media.positionFullscreenButton(buttonPos.left - containerPos.left, buttonPos.top - containerPos.top, true);
+
+							})
+							.on('mouseout', function() {
+
+								if (hideTimeout !== null) {
+									clearTimeout(hideTimeout);
+									delete hideTimeout;
+								}
+
+								hideTimeout = setTimeout(function() {
+									media.hideFullscreenButton();
+								}, 1500);
+
+
+							});
+					}
+				}
+
+			player.fullscreenBtn = fullscreenBtn;
+
+			t.globalBind('keydown',function (e) {
+				if (((mejs.MediaFeatures.hasTrueNativeFullScreen && mejs.MediaFeatures.isFullScreen()) || t.isFullScreen) && e.keyCode == 27) {
+					player.exitFullScreen();
+				}
+			});
+
+		},
+
+		cleanfullscreen: function(player) {
+			player.exitFullScreen();
+		},
+
+        containerSizeTimeout: null,
+
+		enterFullScreen: function() {
+
+			var t = this;
+
+			// firefox+flash can't adjust plugin sizes without resetting :(
+			if (t.media.pluginType !== 'native' && (mejs.MediaFeatures.isFirefox || t.options.usePluginFullScreen)) {
+				//t.media.setFullscreen(true);
+				//player.isFullScreen = true;
+				return;
+			}
+
+			// set it to not show scroll bars so 100% will work
+            $(document.documentElement).addClass('mejs-fullscreen');
+
+			// store sizing
+			normalHeight = t.container.height();
+			normalWidth = t.container.width();
+
+			// attempt to do true fullscreen (Safari 5.1 and Firefox Nightly only for now)
+			if (t.media.pluginType === 'native') {
+				if (mejs.MediaFeatures.hasTrueNativeFullScreen) {
+
+					mejs.MediaFeatures.requestFullScreen(t.container[0]);
+					//return;
+
+					if (t.isInIframe) {
+						// sometimes exiting from fullscreen doesn't work
+						// notably in Chrome <iframe>. Fixed in version 17
+						setTimeout(function checkFullscreen() {
+
+							if (t.isNativeFullScreen) {
+								var zoomMultiplier = window["devicePixelRatio"] || 1;
+								// Use a percent error margin since devicePixelRatio is a float and not exact.
+								var percentErrorMargin = 0.002; // 0.2%
+								var windowWidth = zoomMultiplier * $(window).width();
+								var screenWidth = screen.width;
+								var absDiff = Math.abs(screenWidth - windowWidth);
+								var marginError = screenWidth * percentErrorMargin;
+
+								// check if the video is suddenly not really fullscreen
+								if (absDiff > marginError) {
+									// manually exit
+									t.exitFullScreen();
+								} else {
+									// test again
+									setTimeout(checkFullscreen, 500);
+								}
+							}
+
+
+						}, 500);
+					}
+
+				} else if (mejs.MediaFeatures.hasSemiNativeFullScreen) {
+					t.media.webkitEnterFullscreen();
+					return;
+				}
+			}
+
+			// check for iframe launch
+			if (t.isInIframe) {
+				var url = t.options.newWindowCallback(this);
+
+
+				if (url !== '') {
+
+					// launch immediately
+					if (!mejs.MediaFeatures.hasTrueNativeFullScreen) {
+						t.pause();
+						window.open(url, t.id, 'top=0,left=0,width=' + screen.availWidth + ',height=' + screen.availHeight + ',resizable=yes,scrollbars=no,status=no,toolbar=no');
+						return;
+					} else {
+						setTimeout(function() {
+							if (!t.isNativeFullScreen) {
+								t.pause();
+								window.open(url, t.id, 'top=0,left=0,width=' + screen.availWidth + ',height=' + screen.availHeight + ',resizable=yes,scrollbars=no,status=no,toolbar=no');
+							}
+						}, 250);
+					}
+				}
+
+			}
+
+			// full window code
+
+
+
+			// make full size
+			t.container
+				.addClass('mejs-container-fullscreen')
+				.width('100%')
+				.height('100%');
+				//.css({position: 'fixed', left: 0, top: 0, right: 0, bottom: 0, overflow: 'hidden', width: '100%', height: '100%', 'z-index': 1000});
+
+			// Only needed for safari 5.1 native full screen, can cause display issues elsewhere
+			// Actually, it seems to be needed for IE8, too
+			//if (mejs.MediaFeatures.hasTrueNativeFullScreen) {
+				t.containerSizeTimeout = setTimeout(function() {
+					t.container.css({width: '100%', height: '100%'});
+					t.setControlsSize();
+				}, 500);
+			//}
+
+			if (t.media.pluginType === 'native') {
+				t.$media
+					.width('100%')
+					.height('100%');
+			} else {
+				t.container.find('.mejs-shim')
+					.width('100%')
+					.height('100%');
+
+				//if (!mejs.MediaFeatures.hasTrueNativeFullScreen) {
+					t.media.setVideoSize($(window).width(),$(window).height());
+				//}
+			}
+
+			t.layers.children('div')
+				.width('100%')
+				.height('100%');
+
+			if (t.fullscreenBtn) {
+				t.fullscreenBtn
+					.removeClass('mejs-fullscreen')
+					.addClass('mejs-unfullscreen');
+			}
+
+			t.setControlsSize();
+			t.isFullScreen = true;
+
+			t.container.find('.mejs-captions-text').css('font-size', screen.width / t.width * 1.00 * 100 + '%');
+			t.container.find('.mejs-captions-position').css('bottom', '45px');
+		},
+
+		exitFullScreen: function() {
+
+			var t = this;
+
+            // Prevent container from attempting to stretch a second time
+            clearTimeout(t.containerSizeTimeout);
+
+			// firefox can't adjust plugins
+			if (t.media.pluginType !== 'native' && mejs.MediaFeatures.isFirefox) {
+				t.media.setFullscreen(false);
+				//player.isFullScreen = false;
+				return;
+			}
+
+			// come outo of native fullscreen
+			if (mejs.MediaFeatures.hasTrueNativeFullScreen && (mejs.MediaFeatures.isFullScreen() || t.isFullScreen)) {
+				mejs.MediaFeatures.cancelFullScreen();
+			}
+
+			// restore scroll bars to document
+            $(document.documentElement).removeClass('mejs-fullscreen');
+
+			t.container
+				.removeClass('mejs-container-fullscreen')
+				.width(normalWidth)
+				.height(normalHeight);
+				//.css({position: '', left: '', top: '', right: '', bottom: '', overflow: 'inherit', width: normalWidth + 'px', height: normalHeight + 'px', 'z-index': 1});
+
+			if (t.media.pluginType === 'native') {
+				t.$media
+					.width(normalWidth)
+					.height(normalHeight);
+			} else {
+				t.container.find('.mejs-shim')
+					.width(normalWidth)
+					.height(normalHeight);
+
+				t.media.setVideoSize(normalWidth, normalHeight);
+			}
+
+			t.layers.children('div')
+				.width(normalWidth)
+				.height(normalHeight);
+
+			t.fullscreenBtn
+				.removeClass('mejs-unfullscreen')
+				.addClass('mejs-fullscreen');
+
+			t.setControlsSize();
+			t.isFullScreen = false;
+
+			t.container.find('.mejs-captions-text').css('font-size','');
+			t.container.find('.mejs-captions-position').css('bottom', '');
+		}
+	});
+
+})(mejs.$);
+
+(function($) {
+
+	// Speed
+	$.extend(mejs.MepDefaults, {
+
+		speeds: ['1.50', '1.25', '1.00', '0.75'],
+
+		defaultSpeed: '1.00'
+
+	});
+
+	$.extend(MediaElementPlayer.prototype, {
+
+		buildspeed: function(player, controls, layers, media) {
+			var t = this;
+
+			if (t.media.pluginType == 'native') {
+				var s = '<div class="mejs-button mejs-speed-button"><button type="button">'+t.options.defaultSpeed+'x</button><div class="mejs-speed-selector"><ul>';
+				var i, ss;
+
+				if ($.inArray(t.options.defaultSpeed, t.options.speeds) === -1) {
+					t.options.speeds.push(t.options.defaultSpeed);
+				}
+
+				t.options.speeds.sort(function(a, b) {
+					return parseFloat(b) - parseFloat(a);
+				});
+
+				for (i = 0; i < t.options.speeds.length; i++) {
+					s += '<li><input type="radio" name="speed" value="' + t.options.speeds[i] + '" id="' + t.options.speeds[i] + '" ';
+					if (t.options.speeds[i] == t.options.defaultSpeed) {
+						s += 'checked=true ';
+						s += '/><label for="' + t.options.speeds[i] + '" class="mejs-speed-selected">'+ t.options.speeds[i] + 'x</label></li>';
+					} else {
+						s += '/><label for="' + t.options.speeds[i] + '">'+ t.options.speeds[i] + 'x</label></li>';
+					}
+				}
+				s += '</ul></div></div>';
+
+				player.speedButton = $(s).appendTo(controls);
+
+				player.playbackspeed = t.options.defaultSpeed;
+
+				player.speedButton
+				.on('click', 'input[type=radio]', function() {
+					player.playbackspeed = $(this).attr('value');
+					media.playbackRate = parseFloat(player.playbackspeed);
+					player.speedButton.find('button').text(player.playbackspeed + 'x');
+					player.speedButton.find('.mejs-speed-selected').removeClass('mejs-speed-selected');
+					player.speedButton.find('input[type=radio]:checked').next().addClass('mejs-speed-selected');
+				});
+
+				ss = player.speedButton.find('.mejs-speed-selector');
+				ss.height(this.speedButton.find('.mejs-speed-selector ul').outerHeight(true) + player.speedButton.find('.mejs-speed-translations').outerHeight(true));
+				ss.css('top', (-1 * ss.height()) + 'px');
+			}
+		}
+	});
+
+})(mejs.$);
+
+(function($) {
+
+	// add extra default options
+	$.extend(mejs.MepDefaults, {
+		// this will automatically turn on a <track>
+		startLanguage: '',
+
+		tracksText: mejs.i18n.t('Captions/Subtitles'),
+
+		// option to remove the [cc] button when no <track kind="subtitles"> are present
+		hideCaptionsButtonWhenEmpty: true,
+
+		// If true and we only have one track, change captions to popup
+		toggleCaptionsButtonWhenOnlyOne: false,
+
+		// #id or .class
+		slidesSelector: ''
+	});
+
+	$.extend(MediaElementPlayer.prototype, {
+
+		hasChapters: false,
+
+		buildtracks: function(player, controls, layers, media) {
+			if (player.tracks.length === 0)
+				return;
+
+			var t = this,
+				i,
+				options = '';
+
+			if (t.domNode.textTracks) { // if browser will do native captions, prefer mejs captions, loop through tracks and hide
+				for (i = t.domNode.textTracks.length - 1; i >= 0; i--) {
+					t.domNode.textTracks[i].mode = "hidden";
+				}
+			}
+			player.chapters =
+					$('<div class="mejs-chapters mejs-layer"></div>')
+						.prependTo(layers).hide();
+			player.captions =
+					$('<div class="mejs-captions-layer mejs-layer"><div class="mejs-captions-position mejs-captions-position-hover"><span class="mejs-captions-text"></span></div></div>')
+						.prependTo(layers).hide();
+			player.captionsText = player.captions.find('.mejs-captions-text');
+			player.captionsButton =
+					$('<div class="mejs-button mejs-captions-button">'+
+						'<button type="button" aria-controls="' + t.id + '" title="' + t.options.tracksText + '" aria-label="' + t.options.tracksText + '"></button>'+
+						'<div class="mejs-captions-selector">'+
+							'<ul>'+
+								'<li>'+
+									'<input type="radio" name="' + player.id + '_captions" id="' + player.id + '_captions_none" value="none" checked="checked" />' +
+									'<label for="' + player.id + '_captions_none">' + mejs.i18n.t('None') +'</label>'+
+								'</li>'	+
+							'</ul>'+
+						'</div>'+
+					'</div>')
+						.appendTo(controls);
+
+
+			var subtitleCount = 0;
+			for (i=0; i<player.tracks.length; i++) {
+				if (player.tracks[i].kind == 'subtitles') {
+					subtitleCount++;
+				}
+			}
+
+			// if only one language then just make the button a toggle
+			if (t.options.toggleCaptionsButtonWhenOnlyOne && subtitleCount == 1){
+				// click
+				player.captionsButton.on('click',function() {
+					if (player.selectedTrack === null) {
+						lang = player.tracks[0].srclang;
+					} else {
+						lang = 'none';
+					}
+					player.setTrack(lang);
+				});
+			} else {
+				// hover or keyboard focus
+				player.captionsButton.on( 'mouseenter focusin', function() {
+					$(this).find('.mejs-captions-selector').css('visibility','visible');
+				})
+
+				// handle clicks to the language radio buttons
+				.on('click','input[type=radio]',function() {
+					lang = this.value;
+					player.setTrack(lang);
+				});
+
+				player.captionsButton.on( 'mouseleave focusout', function() {
+					$(this).find(".mejs-captions-selector").css("visibility","hidden");
+				});
+
+			}
+
+			if (!player.options.alwaysShowControls) {
+				// move with controls
+				player.container
+					.bind('controlsshown', function () {
+						// push captions above controls
+						player.container.find('.mejs-captions-position').addClass('mejs-captions-position-hover');
+
+					})
+					.bind('controlshidden', function () {
+						if (!media.paused) {
+							// move back to normal place
+							player.container.find('.mejs-captions-position').removeClass('mejs-captions-position-hover');
+						}
+					});
+			} else {
+				player.container.find('.mejs-captions-position').addClass('mejs-captions-position-hover');
+			}
+
+			player.trackToLoad = -1;
+			player.selectedTrack = null;
+			player.isLoadingTrack = false;
+
+			// add to list
+			for (i=0; i<player.tracks.length; i++) {
+				if (player.tracks[i].kind == 'subtitles') {
+					player.addTrackButton(player.tracks[i].srclang, player.tracks[i].label);
+				}
+			}
+
+			// start loading tracks
+			player.loadNextTrack();
+
+			media.addEventListener('timeupdate',function(e) {
+				player.displayCaptions();
+			}, false);
+
+			if (player.options.slidesSelector !== '') {
+				player.slidesContainer = $(player.options.slidesSelector);
+
+				media.addEventListener('timeupdate',function(e) {
+					player.displaySlides();
+				}, false);
+
+			}
+
+			media.addEventListener('loadedmetadata', function(e) {
+				player.displayChapters();
+			}, false);
+
+			player.container.hover(
+				function () {
+					// chapters
+					if (player.hasChapters) {
+						player.chapters.css('visibility','visible');
+						player.chapters.fadeIn(200).height(player.chapters.find('.mejs-chapter').outerHeight());
+					}
+				},
+				function () {
+					if (player.hasChapters && !media.paused) {
+						player.chapters.fadeOut(200, function() {
+							$(this).css('visibility','hidden');
+							$(this).css('display','block');
+						});
+					}
+				});
+
+			// check for autoplay
+			if (player.node.getAttribute('autoplay') !== null) {
+				player.chapters.css('visibility','hidden');
+			}
+		},
+
+		setTrack: function(lang){
+
+			var t = this,
+				i;
+
+			if (lang == 'none') {
+				t.selectedTrack = null;
+				t.captionsButton.removeClass('mejs-captions-enabled');
+			} else {
+				for (i=0; i<t.tracks.length; i++) {
+					if (t.tracks[i].srclang == lang) {
+						if (t.selectedTrack === null)
+							t.captionsButton.addClass('mejs-captions-enabled');
+						t.selectedTrack = t.tracks[i];
+						t.captions.attr('lang', t.selectedTrack.srclang);
+						t.displayCaptions();
+						break;
+					}
+				}
+			}
+		},
+
+		loadNextTrack: function() {
+			var t = this;
+
+			t.trackToLoad++;
+			if (t.trackToLoad < t.tracks.length) {
+				t.isLoadingTrack = true;
+				t.loadTrack(t.trackToLoad);
+			} else {
+				// add done?
+				t.isLoadingTrack = false;
+
+				t.checkForTracks();
+			}
+		},
+
+		loadTrack: function(index){
+			var
+				t = this,
+				track = t.tracks[index],
+				after = function() {
+
+					track.isLoaded = true;
+
+					// create button
+					//t.addTrackButton(track.srclang);
+					t.enableTrackButton(track.srclang, track.label);
+
+					t.loadNextTrack();
+
+				};
+
+
+			$.ajax({
+				url: track.src,
+				dataType: "text",
+				success: function(d) {
+
+					// parse the loaded file
+					if (typeof d == "string" && (/<tt\s+xml/ig).exec(d)) {
+						track.entries = mejs.TrackFormatParser.dfxp.parse(d);
+					} else {
+						track.entries = mejs.TrackFormatParser.webvtt.parse(d);
+					}
+
+					after();
+
+					if (track.kind == 'chapters') {
+						t.media.addEventListener('play', function(e) {
+							if (t.media.duration > 0) {
+								t.displayChapters(track);
+							}
+						}, false);
+					}
+
+					if (track.kind == 'slides') {
+						t.setupSlides(track);
+					}
+				},
+				error: function() {
+					t.loadNextTrack();
+				}
+			});
+		},
+
+		enableTrackButton: function(lang, label) {
+			var t = this;
+
+			if (label === '') {
+				label = mejs.language.codes[lang] || lang;
+			}
+
+			t.captionsButton
+				.find('input[value=' + lang + ']')
+					.prop('disabled',false)
+				.siblings('label')
+					.html( label );
+
+			// auto select
+			if (t.options.startLanguage == lang) {
+				$('#' + t.id + '_captions_' + lang).prop('checked', true).trigger('click');
+			}
+
+			t.adjustLanguageBox();
+		},
+
+		addTrackButton: function(lang, label) {
+			var t = this;
+			if (label === '') {
+				label = mejs.language.codes[lang] || lang;
+			}
+
+			t.captionsButton.find('ul').append(
+				$('<li>'+
+					'<input type="radio" name="' + t.id + '_captions" id="' + t.id + '_captions_' + lang + '" value="' + lang + '" disabled="disabled" />' +
+					'<label for="' + t.id + '_captions_' + lang + '">' + label + ' (loading)' + '</label>'+
+				'</li>')
+			);
+
+			t.adjustLanguageBox();
+
+			// remove this from the dropdownlist (if it exists)
+			t.container.find('.mejs-captions-translations option[value=' + lang + ']').remove();
+		},
+
+		adjustLanguageBox:function() {
+			var t = this;
+			// adjust the size of the outer box
+			t.captionsButton.find('.mejs-captions-selector').height(
+				t.captionsButton.find('.mejs-captions-selector ul').outerHeight(true) +
+				t.captionsButton.find('.mejs-captions-translations').outerHeight(true)
+			);
+		},
+
+		checkForTracks: function() {
+			var
+				t = this,
+				hasSubtitles = false;
+
+			// check if any subtitles
+			if (t.options.hideCaptionsButtonWhenEmpty) {
+				for (i=0; i<t.tracks.length; i++) {
+					if (t.tracks[i].kind == 'subtitles') {
+						hasSubtitles = true;
+						break;
+					}
+				}
+
+				if (!hasSubtitles) {
+					t.captionsButton.hide();
+					t.setControlsSize();
+				}
+			}
+		},
+
+		displayCaptions: function() {
+
+			if (typeof this.tracks == 'undefined')
+				return;
+
+			var
+				t = this,
+				i,
+				track = t.selectedTrack;
+
+			if (track !== null && track.isLoaded) {
+				for (i=0; i<track.entries.times.length; i++) {
+					if (t.media.currentTime >= track.entries.times[i].start && t.media.currentTime <= track.entries.times[i].stop) {
+						// Set the line before the timecode as a class so the cue can be targeted if needed
+						t.captionsText.html(track.entries.text[i]).attr('class', 'mejs-captions-text ' + (track.entries.times[i].identifier || ''));
+						t.captions.show().height(0);
+						return; // exit out if one is visible;
+					}
+				}
+				t.captions.hide();
+			} else {
+				t.captions.hide();
+			}
+		},
+
+		setupSlides: function(track) {
+			var t = this;
+
+			t.slides = track;
+			t.slides.entries.imgs = [t.slides.entries.text.length];
+			t.showSlide(0);
+
+		},
+
+		showSlide: function(index) {
+			if (typeof this.tracks == 'undefined' || typeof this.slidesContainer == 'undefined') {
+				return;
+			}
+
+			var t = this,
+				url = t.slides.entries.text[index],
+				img = t.slides.entries.imgs[index];
+
+			if (typeof img == 'undefined' || typeof img.fadeIn == 'undefined') {
+
+				t.slides.entries.imgs[index] = img = $('<img src="' + url + '">')
+						.on('load', function() {
+							img.appendTo(t.slidesContainer)
+								.hide()
+								.fadeIn()
+								.siblings(':visible')
+									.fadeOut();
+
+						});
+
+			} else {
+
+				if (!img.is(':visible') && !img.is(':animated')) {
+
+					//
+
+					img.fadeIn()
+						.siblings(':visible')
+							.fadeOut();
+				}
+			}
+
+		},
+
+		displaySlides: function() {
+
+			if (typeof this.slides == 'undefined')
+				return;
+
+			var
+				t = this,
+				slides = t.slides,
+				i;
+
+			for (i=0; i<slides.entries.times.length; i++) {
+				if (t.media.currentTime >= slides.entries.times[i].start && t.media.currentTime <= slides.entries.times[i].stop){
+
+					t.showSlide(i);
+
+					return; // exit out if one is visible;
+				}
+			}
+		},
+
+		displayChapters: function() {
+			var
+				t = this,
+				i;
+
+			for (i=0; i<t.tracks.length; i++) {
+				if (t.tracks[i].kind == 'chapters' && t.tracks[i].isLoaded) {
+					t.drawChapters(t.tracks[i]);
+					t.hasChapters = true;
+					break;
+				}
+			}
+		},
+
+		drawChapters: function(chapters) {
+			var
+				t = this,
+				i,
+				dur,
+				//width,
+				//left,
+				percent = 0,
+				usedPercent = 0;
+
+			t.chapters.empty();
+
+			for (i=0; i<chapters.entries.times.length; i++) {
+				dur = chapters.entries.times[i].stop - chapters.entries.times[i].start;
+				percent = Math.floor(dur / t.media.duration * 100);
+				if (percent + usedPercent > 100 || // too large
+					i == chapters.entries.times.length-1 && percent + usedPercent < 100) // not going to fill it in
+					{
+					percent = 100 - usedPercent;
+				}
+				//width = Math.floor(t.width * dur / t.media.duration);
+				//left = Math.floor(t.width * chapters.entries.times[i].start / t.media.duration);
+				//if (left + width > t.width) {
+				//	width = t.width - left;
+				//}
+
+				t.chapters.append( $(
+					'<div class="mejs-chapter" rel="' + chapters.entries.times[i].start + '" style="left: ' + usedPercent.toString() + '%;width: ' + percent.toString() + '%;">' +
+						'<div class="mejs-chapter-block' + ((i==chapters.entries.times.length-1) ? ' mejs-chapter-block-last' : '') + '">' +
+							'<span class="ch-title">' + chapters.entries.text[i] + '</span>' +
+							'<span class="ch-time">' + mejs.Utility.secondsToTimeCode(chapters.entries.times[i].start) + '&ndash;' + mejs.Utility.secondsToTimeCode(chapters.entries.times[i].stop) + '</span>' +
+						'</div>' +
+					'</div>'));
+				usedPercent += percent;
+			}
+
+			t.chapters.find('div.mejs-chapter').click(function() {
+				t.media.setCurrentTime( parseFloat( $(this).attr('rel') ) );
+				if (t.media.paused) {
+					t.media.play();
+				}
+			});
+
+			t.chapters.show();
+		}
+	});
+
+
+
+	mejs.language = {
+		codes:  {
+			af:'Afrikaans',
+			sq:'Albanian',
+			ar:'Arabic',
+			be:'Belarusian',
+			bg:'Bulgarian',
+			ca:'Catalan',
+			zh:'Chinese',
+			'zh-cn':'Chinese Simplified',
+			'zh-tw':'Chinese Traditional',
+			hr:'Croatian',
+			cs:'Czech',
+			da:'Danish',
+			nl:'Dutch',
+			en:'English',
+			et:'Estonian',
+			fl:'Filipino',
+			fi:'Finnish',
+			fr:'French',
+			gl:'Galician',
+			de:'German',
+			el:'Greek',
+			ht:'Haitian Creole',
+			iw:'Hebrew',
+			hi:'Hindi',
+			hu:'Hungarian',
+			is:'Icelandic',
+			id:'Indonesian',
+			ga:'Irish',
+			it:'Italian',
+			ja:'Japanese',
+			ko:'Korean',
+			lv:'Latvian',
+			lt:'Lithuanian',
+			mk:'Macedonian',
+			ms:'Malay',
+			mt:'Maltese',
+			no:'Norwegian',
+			fa:'Persian',
+			pl:'Polish',
+			pt:'Portuguese',
+			// 'pt-pt':'Portuguese (Portugal)',
+			ro:'Romanian',
+			ru:'Russian',
+			sr:'Serbian',
+			sk:'Slovak',
+			sl:'Slovenian',
+			es:'Spanish',
+			sw:'Swahili',
+			sv:'Swedish',
+			tl:'Tagalog',
+			th:'Thai',
+			tr:'Turkish',
+			uk:'Ukrainian',
+			vi:'Vietnamese',
+			cy:'Welsh',
+			yi:'Yiddish'
+		}
+	};
+
+	/*
+	Parses WebVTT format which should be formatted as
+	================================
+	WEBVTT
+
+	1
+	00:00:01,1 --> 00:00:05,000
+	A line of text
+
+	2
+	00:01:15,1 --> 00:02:05,000
+	A second line of text
+
+	===============================
+
+	Adapted from: http://www.delphiki.com/html5/playr
+	*/
+	mejs.TrackFormatParser = {
+		webvtt: {
+			pattern_timecode: /^((?:[0-9]{1,2}:)?[0-9]{2}:[0-9]{2}([,.][0-9]{1,3})?) --\> ((?:[0-9]{1,2}:)?[0-9]{2}:[0-9]{2}([,.][0-9]{3})?)(.*)$/,
+
+			parse: function(trackText) {
+				var
+					i = 0,
+					lines = mejs.TrackFormatParser.split2(trackText, /\r?\n/),
+					entries = {text:[], times:[]},
+					timecode,
+					text,
+					identifier;
+				for(; i<lines.length; i++) {
+					timecode = this.pattern_timecode.exec(lines[i]);
+
+					if (timecode && i<lines.length) {
+						if ((i - 1) >= 0 && lines[i - 1] !== '') {
+							identifier = lines[i - 1];
+						}
+						i++;
+						// grab all the (possibly multi-line) text that follows
+						text = lines[i];
+						i++;
+						while(lines[i] !== '' && i<lines.length){
+							text = text + '\n' + lines[i];
+							i++;
+						}
+						text = $.trim(text).replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig, "<a href='$1' target='_blank'>$1</a>");
+						// Text is in a different array so I can use .join
+						entries.text.push(text);
+						entries.times.push(
+						{
+							identifier: identifier,
+							start: (mejs.Utility.convertSMPTEtoSeconds(timecode[1]) === 0) ? 0.200 : mejs.Utility.convertSMPTEtoSeconds(timecode[1]),
+							stop: mejs.Utility.convertSMPTEtoSeconds(timecode[3]),
+							settings: timecode[5]
+						});
+					}
+					identifier = '';
+				}
+				return entries;
+			}
+		},
+		// Thanks to Justin Capella: https://github.com/johndyer/mediaelement/pull/420
+		dfxp: {
+			parse: function(trackText) {
+				trackText = $(trackText).filter("tt");
+				var
+					i = 0,
+					container = trackText.children("div").eq(0),
+					lines = container.find("p"),
+					styleNode = trackText.find("#" + container.attr("style")),
+					styles,
+					begin,
+					end,
+					text,
+					entries = {text:[], times:[]};
+
+
+				if (styleNode.length) {
+					var attributes = styleNode.removeAttr("id").get(0).attributes;
+					if (attributes.length) {
+						styles = {};
+						for (i = 0; i < attributes.length; i++) {
+							styles[attributes[i].name.split(":")[1]] = attributes[i].value;
+						}
+					}
+				}
+
+				for(i = 0; i<lines.length; i++) {
+					var style;
+					var _temp_times = {
+						start: null,
+						stop: null,
+						style: null
+					};
+					if (lines.eq(i).attr("begin")) _temp_times.start = mejs.Utility.convertSMPTEtoSeconds(lines.eq(i).attr("begin"));
+					if (!_temp_times.start && lines.eq(i-1).attr("end")) _temp_times.start = mejs.Utility.convertSMPTEtoSeconds(lines.eq(i-1).attr("end"));
+					if (lines.eq(i).attr("end")) _temp_times.stop = mejs.Utility.convertSMPTEtoSeconds(lines.eq(i).attr("end"));
+					if (!_temp_times.stop && lines.eq(i+1).attr("begin")) _temp_times.stop = mejs.Utility.convertSMPTEtoSeconds(lines.eq(i+1).attr("begin"));
+					if (styles) {
+						style = "";
+						for (var _style in styles) {
+							style += _style + ":" + styles[_style] + ";";
+						}
+					}
+					if (style) _temp_times.style = style;
+					if (_temp_times.start === 0) _temp_times.start = 0.200;
+					entries.times.push(_temp_times);
+					text = $.trim(lines.eq(i).html()).replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig, "<a href='$1' target='_blank'>$1</a>");
+					entries.text.push(text);
+					if (entries.times.start === 0) entries.times.start = 2;
+				}
+				return entries;
+			}
+		},
+		split2: function (text, regex) {
+			// normal version for compliant browsers
+			// see below for IE fix
+			return text.split(regex);
+		}
+	};
+
+	// test for browsers with bad String.split method.
+	if ('x\n\ny'.split(/\n/gi).length != 3) {
+		// add super slow IE8 and below version
+		mejs.TrackFormatParser.split2 = function(text, regex) {
+			var
+				parts = [],
+				chunk = '',
+				i;
+
+			for (i=0; i<text.length; i++) {
+				chunk += text.substring(i,i+1);
+				if (regex.test(chunk)) {
+					parts.push(chunk.replace(regex, ''));
+					chunk = '';
+				}
+			}
+			parts.push(chunk);
+			return parts;
+		};
+	}
+
+})(mejs.$);
+
+/*
+* ContextMenu Plugin
+* 
+*
+*/
+
+(function($) {
+
+$.extend(mejs.MepDefaults,
+	{ 'contextMenuItems': [
+		// demo of a fullscreen option
+		{ 
+			render: function(player) {
+				
+				// check for fullscreen plugin
+				if (typeof player.enterFullScreen == 'undefined')
+					return null;
+			
+				if (player.isFullScreen) {
+					return mejs.i18n.t('Turn off Fullscreen');
+				} else {
+					return mejs.i18n.t('Go Fullscreen');
+				}
+			},
+			click: function(player) {
+				if (player.isFullScreen) {
+					player.exitFullScreen();
+				} else {
+					player.enterFullScreen();
+				}
+			}
+		}
+		,
+		// demo of a mute/unmute button
+		{ 
+			render: function(player) {
+				if (player.media.muted) {
+					return mejs.i18n.t('Unmute');
+				} else {
+					return mejs.i18n.t('Mute');
+				}
+			},
+			click: function(player) {
+				if (player.media.muted) {
+					player.setMuted(false);
+				} else {
+					player.setMuted(true);
+				}
+			}
+		},
+		// separator
+		{
+			isSeparator: true
+		}
+		,
+		// demo of simple download video
+		{ 
+			render: function(player) {
+				return mejs.i18n.t('Download Video');
+			},
+			click: function(player) {
+				window.location.href = player.media.currentSrc;
+			}
+		}	
+	]}
+);
+
+
+	$.extend(MediaElementPlayer.prototype, {
+		buildcontextmenu: function(player, controls, layers, media) {
+			
+			// create context menu
+			player.contextMenu = $('<div class="mejs-contextmenu"></div>')
+								.appendTo($('body'))
+								.hide();
+			
+			// create events for showing context menu
+			player.container.bind('contextmenu', function(e) {
+				if (player.isContextMenuEnabled) {
+					e.preventDefault();
+					player.renderContextMenu(e.clientX-1, e.clientY-1);
+					return false;
+				}
+			});
+			player.container.bind('click', function() {
+				player.contextMenu.hide();
+			});	
+			player.contextMenu.bind('mouseleave', function() {
+
+				//
+				player.startContextMenuTimer();
+				
+			});		
+		},
+
+		cleancontextmenu: function(player) {
+			player.contextMenu.remove();
+		},
+		
+		isContextMenuEnabled: true,
+		enableContextMenu: function() {
+			this.isContextMenuEnabled = true;
+		},
+		disableContextMenu: function() {
+			this.isContextMenuEnabled = false;
+		},
+		
+		contextMenuTimeout: null,
+		startContextMenuTimer: function() {
+			//
+			
+			var t = this;
+			
+			t.killContextMenuTimer();
+			
+			t.contextMenuTimer = setTimeout(function() {
+				t.hideContextMenu();
+				t.killContextMenuTimer();
+			}, 750);
+		},
+		killContextMenuTimer: function() {
+			var timer = this.contextMenuTimer;
+			
+			//
+			
+			if (timer != null) {				
+				clearTimeout(timer);
+				delete timer;
+				timer = null;
+			}
+		},		
+		
+		hideContextMenu: function() {
+			this.contextMenu.hide();
+		},
+		
+		renderContextMenu: function(x,y) {
+			
+			// alway re-render the items so that things like "turn fullscreen on" and "turn fullscreen off" are always written correctly
+			var t = this,
+				html = '',
+				items = t.options.contextMenuItems;
+			
+			for (var i=0, il=items.length; i<il; i++) {
+				
+				if (items[i].isSeparator) {
+					html += '<div class="mejs-contextmenu-separator"></div>';
+				} else {
+				
+					var rendered = items[i].render(t);
+				
+					// render can return null if the item doesn't need to be used at the moment
+					if (rendered != null) {
+						html += '<div class="mejs-contextmenu-item" data-itemindex="' + i + '" id="element-' + (Math.random()*1000000) + '">' + rendered + '</div>';
+					}
+				}
+			}
+			
+			// position and show the context menu
+			t.contextMenu
+				.empty()
+				.append($(html))
+				.css({top:y, left:x})
+				.show();
+				
+			// bind events
+			t.contextMenu.find('.mejs-contextmenu-item').each(function() {
+							
+				// which one is this?
+				var $dom = $(this),
+					itemIndex = parseInt( $dom.data('itemindex'), 10 ),
+					item = t.options.contextMenuItems[itemIndex];
+				
+				// bind extra functionality?
+				if (typeof item.show != 'undefined')
+					item.show( $dom , t);
+				
+				// bind click action
+				$dom.click(function() {			
+					// perform click action
+					if (typeof item.click != 'undefined')
+						item.click(t);
+					
+					// close
+					t.contextMenu.hide();				
+				});				
+			});	
+			
+			// stop the controls from hiding
+			setTimeout(function() {
+				t.killControlsTimer('rev3');	
+			}, 100);
+						
+		}
+	});
+	
+})(mejs.$);
+/**
+ * Postroll plugin
+ */
+(function($) {
+
+	$.extend(mejs.MepDefaults, {
+		postrollCloseText: mejs.i18n.t('Close')
+	});
+
+	// Postroll
+	$.extend(MediaElementPlayer.prototype, {
+		buildpostroll: function(player, controls, layers, media) {
+			var
+				t = this,
+				postrollLink = t.container.find('link[rel="postroll"]').attr('href');
+
+			if (typeof postrollLink !== 'undefined') {
+				player.postroll =
+					$('<div class="mejs-postroll-layer mejs-layer"><a class="mejs-postroll-close" onclick="$(this).parent().hide();return false;">' + t.options.postrollCloseText + '</a><div class="mejs-postroll-layer-content"></div></div>').prependTo(layers).hide();
+
+				t.media.addEventListener('ended', function (e) {
+					$.ajax({
+						dataType: 'html',
+						url: postrollLink,
+						success: function (data, textStatus) {
+							layers.find('.mejs-postroll-layer-content').html(data);
+						}
+					});
+					player.postroll.show();
+				}, false);
+			}
+		}
+	});
+
+})(mejs.$);
+
diff --git a/lib/mejs/mediaelement-and-player.min.js b/lib/mejs/mediaelement-and-player.min.js
new file mode 100755
index 00000000..f8a16c4c
--- /dev/null
+++ b/lib/mejs/mediaelement-and-player.min.js
@@ -0,0 +1,183 @@
+/*!
+* MediaElement.js
+* HTML5 <video> and <audio> shim and player
+* http://mediaelementjs.com/
+*
+* Creates a JavaScript object that mimics HTML5 MediaElement API
+* for browsers that don't understand HTML5 or can't play the provided codec
+* Can play MP4 (H.264), Ogg, WebM, FLV, WMV, WMA, ACC, and MP3
+*
+* Copyright 2010-2014, John Dyer (http://j.hn)
+* License: MIT
+*
+*/var mejs=mejs||{};mejs.version="2.15.1";mejs.meIndex=0;
+mejs.plugins={silverlight:[{version:[3,0],types:["video/mp4","video/m4v","video/mov","video/wmv","audio/wma","audio/m4a","audio/mp3","audio/wav","audio/mpeg"]}],flash:[{version:[9,0,124],types:["video/mp4","video/m4v","video/mov","video/flv","video/rtmp","video/x-flv","audio/flv","audio/x-flv","audio/mp3","audio/m4a","audio/mpeg","video/youtube","video/x-youtube","application/x-mpegURL"]}],youtube:[{version:null,types:["video/youtube","video/x-youtube","audio/youtube","audio/x-youtube"]}],vimeo:[{version:null,
+types:["video/vimeo","video/x-vimeo"]}]};
+mejs.Utility={encodeUrl:function(a){return encodeURIComponent(a)},escapeHTML:function(a){return a.toString().split("&").join("&amp;").split("<").join("&lt;").split('"').join("&quot;")},absolutizeUrl:function(a){var b=document.createElement("div");b.innerHTML='<a href="'+this.escapeHTML(a)+'">x</a>';return b.firstChild.href},getScriptPath:function(a){for(var b=0,c,d="",e="",g,f,i=document.getElementsByTagName("script"),k=i.length,h=a.length;b<k;b++){g=i[b].src;c=g.lastIndexOf("/");if(c>-1){f=g.substring(c+
+1);g=g.substring(0,c+1)}else{f=g;g=""}for(c=0;c<h;c++){e=a[c];e=f.indexOf(e);if(e>-1){d=g;break}}if(d!=="")break}return d},secondsToTimeCode:function(a,b,c,d){if(typeof c=="undefined")c=false;else if(typeof d=="undefined")d=25;var e=Math.floor(a/3600)%24,g=Math.floor(a/60)%60,f=Math.floor(a%60);a=Math.floor((a%1*d).toFixed(3));return(b||e>0?(e<10?"0"+e:e)+":":"")+(g<10?"0"+g:g)+":"+(f<10?"0"+f:f)+(c?":"+(a<10?"0"+a:a):"")},timeCodeToSeconds:function(a,b,c,d){if(typeof c=="undefined")c=false;else if(typeof d==
+"undefined")d=25;a=a.split(":");b=parseInt(a[0],10);var e=parseInt(a[1],10),g=parseInt(a[2],10),f=0,i=0;if(c)f=parseInt(a[3])/d;return i=b*3600+e*60+g+f},convertSMPTEtoSeconds:function(a){if(typeof a!="string")return false;a=a.replace(",",".");var b=0,c=a.indexOf(".")!=-1?a.split(".")[1].length:0,d=1;a=a.split(":").reverse();for(var e=0;e<a.length;e++){d=1;if(e>0)d=Math.pow(60,e);b+=Number(a[e])*d}return Number(b.toFixed(c))},removeSwf:function(a){var b=document.getElementById(a);if(b&&/object|embed/i.test(b.nodeName))if(mejs.MediaFeatures.isIE){b.style.display=
+"none";(function(){b.readyState==4?mejs.Utility.removeObjectInIE(a):setTimeout(arguments.callee,10)})()}else b.parentNode.removeChild(b)},removeObjectInIE:function(a){if(a=document.getElementById(a)){for(var b in a)if(typeof a[b]=="function")a[b]=null;a.parentNode.removeChild(a)}}};
+mejs.PluginDetector={hasPluginVersion:function(a,b){var c=this.plugins[a];b[1]=b[1]||0;b[2]=b[2]||0;return c[0]>b[0]||c[0]==b[0]&&c[1]>b[1]||c[0]==b[0]&&c[1]==b[1]&&c[2]>=b[2]?true:false},nav:window.navigator,ua:window.navigator.userAgent.toLowerCase(),plugins:[],addPlugin:function(a,b,c,d,e){this.plugins[a]=this.detectPlugin(b,c,d,e)},detectPlugin:function(a,b,c,d){var e=[0,0,0],g;if(typeof this.nav.plugins!="undefined"&&typeof this.nav.plugins[a]=="object"){if((c=this.nav.plugins[a].description)&&
+!(typeof this.nav.mimeTypes!="undefined"&&this.nav.mimeTypes[b]&&!this.nav.mimeTypes[b].enabledPlugin)){e=c.replace(a,"").replace(/^\s+/,"").replace(/\sr/gi,".").split(".");for(a=0;a<e.length;a++)e[a]=parseInt(e[a].match(/\d+/),10)}}else if(typeof window.ActiveXObject!="undefined")try{if(g=new ActiveXObject(c))e=d(g)}catch(f){}return e}};
+mejs.PluginDetector.addPlugin("flash","Shockwave Flash","application/x-shockwave-flash","ShockwaveFlash.ShockwaveFlash",function(a){var b=[];if(a=a.GetVariable("$version")){a=a.split(" ")[1].split(",");b=[parseInt(a[0],10),parseInt(a[1],10),parseInt(a[2],10)]}return b});
+mejs.PluginDetector.addPlugin("silverlight","Silverlight Plug-In","application/x-silverlight-2","AgControl.AgControl",function(a){var b=[0,0,0,0],c=function(d,e,g,f){for(;d.isVersionSupported(e[0]+"."+e[1]+"."+e[2]+"."+e[3]);)e[g]+=f;e[g]-=f};c(a,b,0,1);c(a,b,1,1);c(a,b,2,1E4);c(a,b,2,1E3);c(a,b,2,100);c(a,b,2,10);c(a,b,2,1);c(a,b,3,1);return b});
+mejs.MediaFeatures={init:function(){var a=this,b=document,c=mejs.PluginDetector.nav,d=mejs.PluginDetector.ua.toLowerCase(),e,g=["source","track","audio","video"];a.isiPad=d.match(/ipad/i)!==null;a.isiPhone=d.match(/iphone/i)!==null;a.isiOS=a.isiPhone||a.isiPad;a.isAndroid=d.match(/android/i)!==null;a.isBustedAndroid=d.match(/android 2\.[12]/)!==null;a.isBustedNativeHTTPS=location.protocol==="https:"&&(d.match(/android [12]\./)!==null||d.match(/macintosh.* version.* safari/)!==null);a.isIE=c.appName.toLowerCase().indexOf("microsoft")!=
+-1||c.appName.toLowerCase().match(/trident/gi)!==null;a.isChrome=d.match(/chrome/gi)!==null;a.isChromium=d.match(/chromium/gi)!==null;a.isFirefox=d.match(/firefox/gi)!==null;a.isWebkit=d.match(/webkit/gi)!==null;a.isGecko=d.match(/gecko/gi)!==null&&!a.isWebkit&&!a.isIE;a.isOpera=d.match(/opera/gi)!==null;a.hasTouch="ontouchstart"in window;a.svg=!!document.createElementNS&&!!document.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect;for(c=0;c<g.length;c++)e=document.createElement(g[c]);
+a.supportsMediaTag=typeof e.canPlayType!=="undefined"||a.isBustedAndroid;try{e.canPlayType("video/mp4")}catch(f){a.supportsMediaTag=false}a.hasSemiNativeFullScreen=typeof e.webkitEnterFullscreen!=="undefined";a.hasNativeFullscreen=typeof e.requestFullscreen!=="undefined";a.hasWebkitNativeFullScreen=typeof e.webkitRequestFullScreen!=="undefined";a.hasMozNativeFullScreen=typeof e.mozRequestFullScreen!=="undefined";a.hasMsNativeFullScreen=typeof e.msRequestFullscreen!=="undefined";a.hasTrueNativeFullScreen=
+a.hasWebkitNativeFullScreen||a.hasMozNativeFullScreen||a.hasMsNativeFullScreen;a.nativeFullScreenEnabled=a.hasTrueNativeFullScreen;if(a.hasMozNativeFullScreen)a.nativeFullScreenEnabled=document.mozFullScreenEnabled;else if(a.hasMsNativeFullScreen)a.nativeFullScreenEnabled=document.msFullscreenEnabled;if(a.isChrome)a.hasSemiNativeFullScreen=false;if(a.hasTrueNativeFullScreen){a.fullScreenEventName="";if(a.hasWebkitNativeFullScreen)a.fullScreenEventName="webkitfullscreenchange";else if(a.hasMozNativeFullScreen)a.fullScreenEventName=
+"mozfullscreenchange";else if(a.hasMsNativeFullScreen)a.fullScreenEventName="MSFullscreenChange";a.isFullScreen=function(){if(a.hasMozNativeFullScreen)return b.mozFullScreen;else if(a.hasWebkitNativeFullScreen)return b.webkitIsFullScreen;else if(a.hasMsNativeFullScreen)return b.msFullscreenElement!==null};a.requestFullScreen=function(i){if(a.hasWebkitNativeFullScreen)i.webkitRequestFullScreen();else if(a.hasMozNativeFullScreen)i.mozRequestFullScreen();else a.hasMsNativeFullScreen&&i.msRequestFullscreen()};
+a.cancelFullScreen=function(){if(a.hasWebkitNativeFullScreen)document.webkitCancelFullScreen();else if(a.hasMozNativeFullScreen)document.mozCancelFullScreen();else a.hasMsNativeFullScreen&&document.msExitFullscreen()}}if(a.hasSemiNativeFullScreen&&d.match(/mac os x 10_5/i)){a.hasNativeFullScreen=false;a.hasSemiNativeFullScreen=false}}};mejs.MediaFeatures.init();
+mejs.HtmlMediaElement={pluginType:"native",isFullScreen:false,setCurrentTime:function(a){this.currentTime=a},setMuted:function(a){this.muted=a},setVolume:function(a){this.volume=a},stop:function(){this.pause()},setSrc:function(a){for(var b=this.getElementsByTagName("source");b.length>0;)this.removeChild(b[0]);if(typeof a=="string")this.src=a;else{var c;for(b=0;b<a.length;b++){c=a[b];if(this.canPlayType(c.type)){this.src=c.src;break}}}},setVideoSize:function(a,b){this.width=a;this.height=b}};
+mejs.PluginMediaElement=function(a,b,c){this.id=a;this.pluginType=b;this.src=c;this.events={};this.attributes={}};
+mejs.PluginMediaElement.prototype={pluginElement:null,pluginType:"",isFullScreen:false,playbackRate:-1,defaultPlaybackRate:-1,seekable:[],played:[],paused:true,ended:false,seeking:false,duration:0,error:null,tagName:"",muted:false,volume:1,currentTime:0,play:function(){if(this.pluginApi!=null){this.pluginType=="youtube"||this.pluginType=="vimeo"?this.pluginApi.playVideo():this.pluginApi.playMedia();this.paused=false}},load:function(){if(this.pluginApi!=null){this.pluginType=="youtube"||this.pluginType==
+"vimeo"||this.pluginApi.loadMedia();this.paused=false}},pause:function(){if(this.pluginApi!=null){this.pluginType=="youtube"||this.pluginType=="vimeo"?this.pluginApi.pauseVideo():this.pluginApi.pauseMedia();this.paused=true}},stop:function(){if(this.pluginApi!=null){this.pluginType=="youtube"||this.pluginType=="vimeo"?this.pluginApi.stopVideo():this.pluginApi.stopMedia();this.paused=true}},canPlayType:function(a){var b,c,d,e=mejs.plugins[this.pluginType];for(b=0;b<e.length;b++){d=e[b];if(mejs.PluginDetector.hasPluginVersion(this.pluginType,
+d.version))for(c=0;c<d.types.length;c++)if(a==d.types[c])return"probably"}return""},positionFullscreenButton:function(a,b,c){this.pluginApi!=null&&this.pluginApi.positionFullscreenButton&&this.pluginApi.positionFullscreenButton(Math.floor(a),Math.floor(b),c)},hideFullscreenButton:function(){this.pluginApi!=null&&this.pluginApi.hideFullscreenButton&&this.pluginApi.hideFullscreenButton()},setSrc:function(a){if(typeof a=="string"){this.pluginApi.setSrc(mejs.Utility.absolutizeUrl(a));this.src=mejs.Utility.absolutizeUrl(a)}else{var b,
+c;for(b=0;b<a.length;b++){c=a[b];if(this.canPlayType(c.type)){this.pluginApi.setSrc(mejs.Utility.absolutizeUrl(c.src));this.src=mejs.Utility.absolutizeUrl(a);break}}}},setCurrentTime:function(a){if(this.pluginApi!=null){this.pluginType=="youtube"||this.pluginType=="vimeo"?this.pluginApi.seekTo(a):this.pluginApi.setCurrentTime(a);this.currentTime=a}},setVolume:function(a){if(this.pluginApi!=null){this.pluginType=="youtube"?this.pluginApi.setVolume(a*100):this.pluginApi.setVolume(a);this.volume=a}},
+setMuted:function(a){if(this.pluginApi!=null){if(this.pluginType=="youtube"){a?this.pluginApi.mute():this.pluginApi.unMute();this.muted=a;this.dispatchEvent("volumechange")}else this.pluginApi.setMuted(a);this.muted=a}},setVideoSize:function(a,b){if(this.pluginElement&&this.pluginElement.style){this.pluginElement.style.width=a+"px";this.pluginElement.style.height=b+"px"}this.pluginApi!=null&&this.pluginApi.setVideoSize&&this.pluginApi.setVideoSize(a,b)},setFullscreen:function(a){this.pluginApi!=null&&
+this.pluginApi.setFullscreen&&this.pluginApi.setFullscreen(a)},enterFullScreen:function(){this.pluginApi!=null&&this.pluginApi.setFullscreen&&this.setFullscreen(true)},exitFullScreen:function(){this.pluginApi!=null&&this.pluginApi.setFullscreen&&this.setFullscreen(false)},addEventListener:function(a,b){this.events[a]=this.events[a]||[];this.events[a].push(b)},removeEventListener:function(a,b){if(!a){this.events={};return true}var c=this.events[a];if(!c)return true;if(!b){this.events[a]=[];return true}for(var d=
+0;d<c.length;d++)if(c[d]===b){this.events[a].splice(d,1);return true}return false},dispatchEvent:function(a){var b,c,d=this.events[a];if(d){c=Array.prototype.slice.call(arguments,1);for(b=0;b<d.length;b++)d[b].apply(null,c)}},hasAttribute:function(a){return a in this.attributes},removeAttribute:function(a){delete this.attributes[a]},getAttribute:function(a){if(this.hasAttribute(a))return this.attributes[a];return""},setAttribute:function(a,b){this.attributes[a]=b},remove:function(){mejs.Utility.removeSwf(this.pluginElement.id);
+mejs.MediaPluginBridge.unregisterPluginElement(this.pluginElement.id)}};
+mejs.MediaPluginBridge={pluginMediaElements:{},htmlMediaElements:{},registerPluginElement:function(a,b,c){this.pluginMediaElements[a]=b;this.htmlMediaElements[a]=c},unregisterPluginElement:function(a){delete this.pluginMediaElements[a];delete this.htmlMediaElements[a]},initPlugin:function(a){var b=this.pluginMediaElements[a],c=this.htmlMediaElements[a];if(b){switch(b.pluginType){case "flash":b.pluginElement=b.pluginApi=document.getElementById(a);break;case "silverlight":b.pluginElement=document.getElementById(b.id);
+b.pluginApi=b.pluginElement.Content.MediaElementJS}b.pluginApi!=null&&b.success&&b.success(b,c)}},fireEvent:function(a,b,c){var d,e;if(a=this.pluginMediaElements[a]){b={type:b,target:a};for(d in c){a[d]=c[d];b[d]=c[d]}e=c.bufferedTime||0;b.target.buffered=b.buffered={start:function(){return 0},end:function(){return e},length:1};a.dispatchEvent(b.type,b)}}};
+mejs.MediaElementDefaults={mode:"auto",plugins:["flash","silverlight","youtube","vimeo"],enablePluginDebug:false,httpsBasicAuthSite:false,type:"",pluginPath:mejs.Utility.getScriptPath(["mediaelement.js","mediaelement.min.js","mediaelement-and-player.js","mediaelement-and-player.min.js"]),flashName:"flashmediaelement.swf",flashStreamer:"",enablePluginSmoothing:false,enablePseudoStreaming:false,pseudoStreamingStartQueryParam:"start",silverlightName:"silverlightmediaelement.xap",defaultVideoWidth:480,
+defaultVideoHeight:270,pluginWidth:-1,pluginHeight:-1,pluginVars:[],timerRate:250,startVolume:0.8,success:function(){},error:function(){}};mejs.MediaElement=function(a,b){return mejs.HtmlMediaElementShim.create(a,b)};
+mejs.HtmlMediaElementShim={create:function(a,b){var c=mejs.MediaElementDefaults,d=typeof a=="string"?document.getElementById(a):a,e=d.tagName.toLowerCase(),g=e==="audio"||e==="video",f=g?d.getAttribute("src"):d.getAttribute("href");e=d.getAttribute("poster");var i=d.getAttribute("autoplay"),k=d.getAttribute("preload"),h=d.getAttribute("controls"),j;for(j in b)c[j]=b[j];f=typeof f=="undefined"||f===null||f==""?null:f;e=typeof e=="undefined"||e===null?"":e;k=typeof k=="undefined"||k===null||k==="false"?
+"none":k;i=!(typeof i=="undefined"||i===null||i==="false");h=!(typeof h=="undefined"||h===null||h==="false");j=this.determinePlayback(d,c,mejs.MediaFeatures.supportsMediaTag,g,f);j.url=j.url!==null?mejs.Utility.absolutizeUrl(j.url):"";if(j.method=="native"){if(mejs.MediaFeatures.isBustedAndroid){d.src=j.url;d.addEventListener("click",function(){d.play()},false)}return this.updateNative(j,c,i,k)}else if(j.method!=="")return this.createPlugin(j,c,e,i,k,h);else{this.createErrorMessage(j,c,e);return this}},
+determinePlayback:function(a,b,c,d,e){var g=[],f,i,k,h={method:"",url:"",htmlMediaElement:a,isVideo:a.tagName.toLowerCase()!="audio"},j;if(typeof b.type!="undefined"&&b.type!=="")if(typeof b.type=="string")g.push({type:b.type,url:e});else for(f=0;f<b.type.length;f++)g.push({type:b.type[f],url:e});else if(e!==null){k=this.formatType(e,a.getAttribute("type"));g.push({type:k,url:e})}else for(f=0;f<a.childNodes.length;f++){i=a.childNodes[f];if(i.nodeType==1&&i.tagName.toLowerCase()=="source"){e=i.getAttribute("src");
+k=this.formatType(e,i.getAttribute("type"));i=i.getAttribute("media");if(!i||!window.matchMedia||window.matchMedia&&window.matchMedia(i).matches)g.push({type:k,url:e})}}if(!d&&g.length>0&&g[0].url!==null&&this.getTypeFromFile(g[0].url).indexOf("audio")>-1)h.isVideo=false;if(mejs.MediaFeatures.isBustedAndroid)a.canPlayType=function(m){return m.match(/video\/(mp4|m4v)/gi)!==null?"maybe":""};if(mejs.MediaFeatures.isChromium)a.canPlayType=function(m){return m.match(/video\/(webm|ogv|ogg)/gi)!==null?"maybe":
+""};if(c&&(b.mode==="auto"||b.mode==="auto_plugin"||b.mode==="native")&&!(mejs.MediaFeatures.isBustedNativeHTTPS&&b.httpsBasicAuthSite===true)){if(!d){f=document.createElement(h.isVideo?"video":"audio");a.parentNode.insertBefore(f,a);a.style.display="none";h.htmlMediaElement=a=f}for(f=0;f<g.length;f++)if(g[f].type=="video/m3u8"||a.canPlayType(g[f].type).replace(/no/,"")!==""||a.canPlayType(g[f].type.replace(/mp3/,"mpeg")).replace(/no/,"")!==""||a.canPlayType(g[f].type.replace(/m4a/,"mp4")).replace(/no/,
+"")!==""){h.method="native";h.url=g[f].url;break}if(h.method==="native"){if(h.url!==null)a.src=h.url;if(b.mode!=="auto_plugin")return h}}if(b.mode==="auto"||b.mode==="auto_plugin"||b.mode==="shim")for(f=0;f<g.length;f++){k=g[f].type;for(a=0;a<b.plugins.length;a++){e=b.plugins[a];i=mejs.plugins[e];for(c=0;c<i.length;c++){j=i[c];if(j.version==null||mejs.PluginDetector.hasPluginVersion(e,j.version))for(d=0;d<j.types.length;d++)if(k==j.types[d]){h.method=e;h.url=g[f].url;return h}}}}if(b.mode==="auto_plugin"&&
+h.method==="native")return h;if(h.method===""&&g.length>0)h.url=g[0].url;return h},formatType:function(a,b){return a&&!b?this.getTypeFromFile(a):b&&~b.indexOf(";")?b.substr(0,b.indexOf(";")):b},getTypeFromFile:function(a){a=a.split("?")[0];a=a.substring(a.lastIndexOf(".")+1).toLowerCase();return(/(mp4|m4v|ogg|ogv|m3u8|webm|webmv|flv|wmv|mpeg|mov)/gi.test(a)?"video":"audio")+"/"+this.getTypeFromExtension(a)},getTypeFromExtension:function(a){switch(a){case "mp4":case "m4v":case "m4a":return"mp4";case "webm":case "webma":case "webmv":return"webm";
+case "ogg":case "oga":case "ogv":return"ogg";default:return a}},createErrorMessage:function(a,b,c){var d=a.htmlMediaElement,e=document.createElement("div");e.className="me-cannotplay";try{e.style.width=d.width+"px";e.style.height=d.height+"px"}catch(g){}e.innerHTML=b.customError?b.customError:c!==""?'<a href="'+a.url+'"><img src="'+c+'" width="100%" height="100%" /></a>':'<a href="'+a.url+'"><span>'+mejs.i18n.t("Download File")+"</span></a>";d.parentNode.insertBefore(e,d);d.style.display="none";b.error(d)},
+createPlugin:function(a,b,c,d,e,g){c=a.htmlMediaElement;var f=1,i=1,k="me_"+a.method+"_"+mejs.meIndex++,h=new mejs.PluginMediaElement(k,a.method,a.url),j=document.createElement("div"),m;h.tagName=c.tagName;for(m=0;m<c.attributes.length;m++){var q=c.attributes[m];q.specified==true&&h.setAttribute(q.name,q.value)}for(m=c.parentNode;m!==null&&m.tagName.toLowerCase()!=="body"&&m.parentNode!=null;){if(m.parentNode.tagName.toLowerCase()==="p"){m.parentNode.parentNode.insertBefore(m,m.parentNode);break}m=
+m.parentNode}if(a.isVideo){f=b.pluginWidth>0?b.pluginWidth:b.videoWidth>0?b.videoWidth:c.getAttribute("width")!==null?c.getAttribute("width"):b.defaultVideoWidth;i=b.pluginHeight>0?b.pluginHeight:b.videoHeight>0?b.videoHeight:c.getAttribute("height")!==null?c.getAttribute("height"):b.defaultVideoHeight;f=mejs.Utility.encodeUrl(f);i=mejs.Utility.encodeUrl(i)}else if(b.enablePluginDebug){f=320;i=240}h.success=b.success;mejs.MediaPluginBridge.registerPluginElement(k,h,c);j.className="me-plugin";j.id=
+k+"_container";a.isVideo?c.parentNode.insertBefore(j,c):document.body.insertBefore(j,document.body.childNodes[0]);d=["id="+k,"isvideo="+(a.isVideo?"true":"false"),"autoplay="+(d?"true":"false"),"preload="+e,"width="+f,"startvolume="+b.startVolume,"timerrate="+b.timerRate,"flashstreamer="+b.flashStreamer,"height="+i,"pseudostreamstart="+b.pseudoStreamingStartQueryParam];if(a.url!==null)a.method=="flash"?d.push("file="+mejs.Utility.encodeUrl(a.url)):d.push("file="+a.url);b.enablePluginDebug&&d.push("debug=true");
+b.enablePluginSmoothing&&d.push("smoothing=true");b.enablePseudoStreaming&&d.push("pseudostreaming=true");g&&d.push("controls=true");if(b.pluginVars)d=d.concat(b.pluginVars);switch(a.method){case "silverlight":j.innerHTML='<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" id="'+k+'" name="'+k+'" width="'+f+'" height="'+i+'" class="mejs-shim"><param name="initParams" value="'+d.join(",")+'" /><param name="windowless" value="true" /><param name="background" value="black" /><param name="minRuntimeVersion" value="3.0.0.0" /><param name="autoUpgrade" value="true" /><param name="source" value="'+
+b.pluginPath+b.silverlightName+'" /></object>';break;case "flash":if(mejs.MediaFeatures.isIE){a=document.createElement("div");j.appendChild(a);a.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" id="'+k+'" width="'+f+'" height="'+i+'" class="mejs-shim"><param name="movie" value="'+b.pluginPath+b.flashName+"?x="+new Date+'" /><param name="flashvars" value="'+d.join("&amp;")+'" /><param name="quality" value="high" /><param name="bgcolor" value="#000000" /><param name="wmode" value="transparent" /><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /><param name="scale" value="default" /></object>'}else j.innerHTML=
+'<embed id="'+k+'" name="'+k+'" play="true" loop="false" quality="high" bgcolor="#000000" wmode="transparent" allowScriptAccess="always" allowFullScreen="true" type="application/x-shockwave-flash" pluginspage="//www.macromedia.com/go/getflashplayer" src="'+b.pluginPath+b.flashName+'" flashvars="'+d.join("&")+'" width="'+f+'" height="'+i+'" scale="default"class="mejs-shim"></embed>';break;case "youtube":if(a.url.lastIndexOf("youtu.be")!=-1){a=a.url.substr(a.url.lastIndexOf("/")+1);if(a.indexOf("?")!=
+-1)a=a.substr(0,a.indexOf("?"))}else a=a.url.substr(a.url.lastIndexOf("=")+1);youtubeSettings={container:j,containerId:j.id,pluginMediaElement:h,pluginId:k,videoId:a,height:i,width:f};mejs.PluginDetector.hasPluginVersion("flash",[10,0,0])?mejs.YouTubeApi.createFlash(youtubeSettings):mejs.YouTubeApi.enqueueIframe(youtubeSettings);break;case "vimeo":b=k+"_player";h.vimeoid=a.url.substr(a.url.lastIndexOf("/")+1);j.innerHTML='<iframe src="//player.vimeo.com/video/'+h.vimeoid+"?api=1&portrait=0&byline=0&title=0&player_id="+
+b+'" width="'+f+'" height="'+i+'" frameborder="0" class="mejs-shim" id="'+b+'"></iframe>';if(typeof $f=="function"){var l=$f(j.childNodes[0]);l.addEvent("ready",function(){function o(n,p,r,s){n={type:r,target:p};if(r=="timeupdate"){p.currentTime=n.currentTime=s.seconds;p.duration=n.duration=s.duration}p.dispatchEvent(n.type,n)}$.extend(l,{playVideo:function(){l.api("play")},stopVideo:function(){l.api("unload")},pauseVideo:function(){l.api("pause")},seekTo:function(n){l.api("seekTo",n)},setVolume:function(n){l.api("setVolume",
+n)},setMuted:function(n){if(n){l.lastVolume=l.api("getVolume");l.api("setVolume",0)}else{l.api("setVolume",l.lastVolume);delete l.lastVolume}}});l.addEvent("play",function(){o(l,h,"play");o(l,h,"playing")});l.addEvent("pause",function(){o(l,h,"pause")});l.addEvent("finish",function(){o(l,h,"ended")});l.addEvent("playProgress",function(n){o(l,h,"timeupdate",n)});h.pluginElement=j;h.pluginApi=l;mejs.MediaPluginBridge.initPlugin(k)})}else console.warn("You need to include froogaloop for vimeo to work")}c.style.display=
+"none";c.removeAttribute("autoplay");return h},updateNative:function(a,b){var c=a.htmlMediaElement,d;for(d in mejs.HtmlMediaElement)c[d]=mejs.HtmlMediaElement[d];b.success(c,c);return c}};
+mejs.YouTubeApi={isIframeStarted:false,isIframeLoaded:false,loadIframeApi:function(){if(!this.isIframeStarted){var a=document.createElement("script");a.src="//www.youtube.com/player_api";var b=document.getElementsByTagName("script")[0];b.parentNode.insertBefore(a,b);this.isIframeStarted=true}},iframeQueue:[],enqueueIframe:function(a){if(this.isLoaded)this.createIframe(a);else{this.loadIframeApi();this.iframeQueue.push(a)}},createIframe:function(a){var b=a.pluginMediaElement,c=new YT.Player(a.containerId,
+{height:a.height,width:a.width,videoId:a.videoId,playerVars:{controls:0},events:{onReady:function(){a.pluginMediaElement.pluginApi=c;mejs.MediaPluginBridge.initPlugin(a.pluginId);setInterval(function(){mejs.YouTubeApi.createEvent(c,b,"timeupdate")},250)},onStateChange:function(d){mejs.YouTubeApi.handleStateChange(d.data,c,b)}}})},createEvent:function(a,b,c){c={type:c,target:b};if(a&&a.getDuration){b.currentTime=c.currentTime=a.getCurrentTime();b.duration=c.duration=a.getDuration();c.paused=b.paused;
+c.ended=b.ended;c.muted=a.isMuted();c.volume=a.getVolume()/100;c.bytesTotal=a.getVideoBytesTotal();c.bufferedBytes=a.getVideoBytesLoaded();var d=c.bufferedBytes/c.bytesTotal*c.duration;c.target.buffered=c.buffered={start:function(){return 0},end:function(){return d},length:1}}b.dispatchEvent(c.type,c)},iFrameReady:function(){for(this.isIframeLoaded=this.isLoaded=true;this.iframeQueue.length>0;)this.createIframe(this.iframeQueue.pop())},flashPlayers:{},createFlash:function(a){this.flashPlayers[a.pluginId]=
+a;var b,c="//www.youtube.com/apiplayer?enablejsapi=1&amp;playerapiid="+a.pluginId+"&amp;version=3&amp;autoplay=0&amp;controls=0&amp;modestbranding=1&loop=0";if(mejs.MediaFeatures.isIE){b=document.createElement("div");a.container.appendChild(b);b.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" id="'+a.pluginId+'" width="'+a.width+'" height="'+a.height+'" class="mejs-shim"><param name="movie" value="'+
+c+'" /><param name="wmode" value="transparent" /><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /></object>'}else a.container.innerHTML='<object type="application/x-shockwave-flash" id="'+a.pluginId+'" data="'+c+'" width="'+a.width+'" height="'+a.height+'" style="visibility: visible; " class="mejs-shim"><param name="allowScriptAccess" value="always"><param name="wmode" value="transparent"></object>'},flashReady:function(a){var b=this.flashPlayers[a],c=
+document.getElementById(a),d=b.pluginMediaElement;d.pluginApi=d.pluginElement=c;mejs.MediaPluginBridge.initPlugin(a);c.cueVideoById(b.videoId);a=b.containerId+"_callback";window[a]=function(e){mejs.YouTubeApi.handleStateChange(e,c,d)};c.addEventListener("onStateChange",a);setInterval(function(){mejs.YouTubeApi.createEvent(c,d,"timeupdate")},250);mejs.YouTubeApi.createEvent(c,d,"canplay")},handleStateChange:function(a,b,c){switch(a){case -1:c.paused=true;c.ended=true;mejs.YouTubeApi.createEvent(b,
+c,"loadedmetadata");break;case 0:c.paused=false;c.ended=true;mejs.YouTubeApi.createEvent(b,c,"ended");break;case 1:c.paused=false;c.ended=false;mejs.YouTubeApi.createEvent(b,c,"play");mejs.YouTubeApi.createEvent(b,c,"playing");break;case 2:c.paused=true;c.ended=false;mejs.YouTubeApi.createEvent(b,c,"pause");break;case 3:mejs.YouTubeApi.createEvent(b,c,"progress")}}};function onYouTubePlayerAPIReady(){mejs.YouTubeApi.iFrameReady()}function onYouTubePlayerReady(a){mejs.YouTubeApi.flashReady(a)}
+window.mejs=mejs;window.MediaElement=mejs.MediaElement;
+(function(a,b){var c={locale:{language:"",strings:{}},methods:{}};c.getLanguage=function(){return(c.locale.language||window.navigator.userLanguage||window.navigator.language).substr(0,2).toLowerCase()};if(typeof mejsL10n!="undefined")c.locale.language=mejsL10n.language;c.methods.checkPlain=function(d){var e,g,f={"&":"&amp;",'"':"&quot;","<":"&lt;",">":"&gt;"};d=String(d);for(e in f)if(f.hasOwnProperty(e)){g=RegExp(e,"g");d=d.replace(g,f[e])}return d};c.methods.t=function(d,e){if(c.locale.strings&&
+c.locale.strings[e.context]&&c.locale.strings[e.context][d])d=c.locale.strings[e.context][d];return c.methods.checkPlain(d)};c.t=function(d,e){if(typeof d==="string"&&d.length>0){var g=c.getLanguage();e=e||{context:g};return c.methods.t(d,e)}else throw{name:"InvalidArgumentException",message:"First argument is either not a string or empty."};};b.i18n=c})(document,mejs);(function(a){if(typeof mejsL10n!="undefined")a[mejsL10n.language]=mejsL10n.strings})(mejs.i18n.locale.strings);
+(function(a){if(typeof a.de==="undefined")a.de={Fullscreen:"Vollbild","Go Fullscreen":"Vollbild an","Turn off Fullscreen":"Vollbild aus",Close:"Schlie\u00dfen"}})(mejs.i18n.locale.strings);(function(a){if(typeof a.zh==="undefined")a.zh={Fullscreen:"\u5168\u87a2\u5e55","Go Fullscreen":"\u5168\u5c4f\u6a21\u5f0f","Turn off Fullscreen":"\u9000\u51fa\u5168\u5c4f\u6a21\u5f0f",Close:"\u95dc\u9589"}})(mejs.i18n.locale.strings);
+
+/*!
+ * MediaElementPlayer
+ * http://mediaelementjs.com/
+ *
+ * Creates a controller bar for HTML5 <video> add <audio> tags
+ * using jQuery and MediaElement.js (HTML5 Flash/Silverlight wrapper)
+ *
+ * Copyright 2010-2013, John Dyer (http://j.hn/)
+ * License: MIT
+ *
+ */if(typeof jQuery!="undefined")mejs.$=jQuery;else if(typeof ender!="undefined")mejs.$=ender;
+(function(f){mejs.MepDefaults={poster:"",showPosterWhenEnded:false,defaultVideoWidth:480,defaultVideoHeight:270,videoWidth:-1,videoHeight:-1,defaultAudioWidth:400,defaultAudioHeight:30,defaultSeekBackwardInterval:function(a){return a.duration*0.05},defaultSeekForwardInterval:function(a){return a.duration*0.05},setDimensions:true,audioWidth:-1,audioHeight:-1,startVolume:0.8,loop:false,autoRewind:true,enableAutosize:true,alwaysShowHours:false,showTimecodeFrameCount:false,framesPerSecond:25,autosizeProgress:true,
+alwaysShowControls:false,hideVideoControlsOnLoad:false,clickToPlayPause:true,iPadUseNativeControls:false,iPhoneUseNativeControls:false,AndroidUseNativeControls:false,features:["playpause","current","progress","duration","tracks","volume","fullscreen"],isVideo:true,enableKeyboard:true,pauseOtherPlayers:true,keyActions:[{keys:[32,179],action:function(a,b){b.paused||b.ended?a.play():a.pause()}},{keys:[38],action:function(a,b){a.container.find(".mejs-volume-slider").css("display","block");if(a.isVideo){a.showControls();
+a.startControlsTimer()}b.setVolume(Math.min(b.volume+0.1,1))}},{keys:[40],action:function(a,b){a.container.find(".mejs-volume-slider").css("display","block");if(a.isVideo){a.showControls();a.startControlsTimer()}b.setVolume(Math.max(b.volume-0.1,0))}},{keys:[37,227],action:function(a,b){if(!isNaN(b.duration)&&b.duration>0){if(a.isVideo){a.showControls();a.startControlsTimer()}var c=Math.max(b.currentTime-a.options.defaultSeekBackwardInterval(b),0);b.setCurrentTime(c)}}},{keys:[39,228],action:function(a,
+b){if(!isNaN(b.duration)&&b.duration>0){if(a.isVideo){a.showControls();a.startControlsTimer()}var c=Math.min(b.currentTime+a.options.defaultSeekForwardInterval(b),b.duration);b.setCurrentTime(c)}}},{keys:[70],action:function(a){if(typeof a.enterFullScreen!="undefined")a.isFullScreen?a.exitFullScreen():a.enterFullScreen()}},{keys:[77],action:function(a){a.container.find(".mejs-volume-slider").css("display","block");if(a.isVideo){a.showControls();a.startControlsTimer()}a.media.muted?a.setMuted(false):
+a.setMuted(true)}}]};mejs.mepIndex=0;mejs.players={};mejs.MediaElementPlayer=function(a,b){if(!(this instanceof mejs.MediaElementPlayer))return new mejs.MediaElementPlayer(a,b);this.$media=this.$node=f(a);this.node=this.media=this.$media[0];if(typeof this.node.player!="undefined")return this.node.player;else this.node.player=this;if(typeof b=="undefined")b=this.$node.data("mejsoptions");this.options=f.extend({},mejs.MepDefaults,b);this.id="mep_"+mejs.mepIndex++;mejs.players[this.id]=this;this.init();
+return this};mejs.MediaElementPlayer.prototype={hasFocus:false,controlsAreVisible:true,init:function(){var a=this,b=mejs.MediaFeatures,c=f.extend(true,{},a.options,{success:function(d,g){a.meReady(d,g)},error:function(d){a.handleError(d)}}),e=a.media.tagName.toLowerCase();a.isDynamic=e!=="audio"&&e!=="video";a.isVideo=a.isDynamic?a.options.isVideo:e!=="audio"&&a.options.isVideo;if(b.isiPad&&a.options.iPadUseNativeControls||b.isiPhone&&a.options.iPhoneUseNativeControls){a.$media.attr("controls","controls");
+b.isiPad&&a.media.getAttribute("autoplay")!==null&&a.play()}else if(!(b.isAndroid&&a.options.AndroidUseNativeControls)){a.$media.removeAttr("controls");a.container=f('<div id="'+a.id+'" class="mejs-container '+(mejs.MediaFeatures.svg?"svg":"no-svg")+'"><div class="mejs-inner"><div class="mejs-mediaelement"></div><div class="mejs-layers"></div><div class="mejs-controls"></div><div class="mejs-clear"></div></div></div>').addClass(a.$media[0].className).insertBefore(a.$media);a.container.addClass((b.isAndroid?
+"mejs-android ":"")+(b.isiOS?"mejs-ios ":"")+(b.isiPad?"mejs-ipad ":"")+(b.isiPhone?"mejs-iphone ":"")+(a.isVideo?"mejs-video ":"mejs-audio "));if(b.isiOS){b=a.$media.clone();a.container.find(".mejs-mediaelement").append(b);a.$media.remove();a.$node=a.$media=b;a.node=a.media=b[0]}else a.container.find(".mejs-mediaelement").append(a.$media);a.controls=a.container.find(".mejs-controls");a.layers=a.container.find(".mejs-layers");b=a.isVideo?"video":"audio";e=b.substring(0,1).toUpperCase()+b.substring(1);
+a.width=a.options[b+"Width"]>0||a.options[b+"Width"].toString().indexOf("%")>-1?a.options[b+"Width"]:a.media.style.width!==""&&a.media.style.width!==null?a.media.style.width:a.media.getAttribute("width")!==null?a.$media.attr("width"):a.options["default"+e+"Width"];a.height=a.options[b+"Height"]>0||a.options[b+"Height"].toString().indexOf("%")>-1?a.options[b+"Height"]:a.media.style.height!==""&&a.media.style.height!==null?a.media.style.height:a.$media[0].getAttribute("height")!==null?a.$media.attr("height"):
+a.options["default"+e+"Height"];a.setPlayerSize(a.width,a.height);c.pluginWidth=a.width;c.pluginHeight=a.height}mejs.MediaElement(a.$media[0],c);typeof a.container!="undefined"&&a.controlsAreVisible&&a.container.trigger("controlsshown")},showControls:function(a){var b=this;a=typeof a=="undefined"||a;if(!b.controlsAreVisible){if(a){b.controls.css("visibility","visible").stop(true,true).fadeIn(200,function(){b.controlsAreVisible=true;b.container.trigger("controlsshown")});b.container.find(".mejs-control").css("visibility",
+"visible").stop(true,true).fadeIn(200,function(){b.controlsAreVisible=true})}else{b.controls.css("visibility","visible").css("display","block");b.container.find(".mejs-control").css("visibility","visible").css("display","block");b.controlsAreVisible=true;b.container.trigger("controlsshown")}b.setControlsSize()}},hideControls:function(a){var b=this;a=typeof a=="undefined"||a;if(!(!b.controlsAreVisible||b.options.alwaysShowControls))if(a){b.controls.stop(true,true).fadeOut(200,function(){f(this).css("visibility",
+"hidden").css("display","block");b.controlsAreVisible=false;b.container.trigger("controlshidden")});b.container.find(".mejs-control").stop(true,true).fadeOut(200,function(){f(this).css("visibility","hidden").css("display","block")})}else{b.controls.css("visibility","hidden").css("display","block");b.container.find(".mejs-control").css("visibility","hidden").css("display","block");b.controlsAreVisible=false;b.container.trigger("controlshidden")}},controlsTimer:null,startControlsTimer:function(a){var b=
+this;a=typeof a!="undefined"?a:1500;b.killControlsTimer("start");b.controlsTimer=setTimeout(function(){b.hideControls();b.killControlsTimer("hide")},a)},killControlsTimer:function(){if(this.controlsTimer!==null){clearTimeout(this.controlsTimer);delete this.controlsTimer;this.controlsTimer=null}},controlsEnabled:true,disableControls:function(){this.killControlsTimer();this.hideControls(false);this.controlsEnabled=false},enableControls:function(){this.showControls(false);this.controlsEnabled=true},
+meReady:function(a,b){var c=this,e=mejs.MediaFeatures,d=b.getAttribute("autoplay");d=!(typeof d=="undefined"||d===null||d==="false");var g;if(!c.created){c.created=true;c.media=a;c.domNode=b;if(!(e.isAndroid&&c.options.AndroidUseNativeControls)&&!(e.isiPad&&c.options.iPadUseNativeControls)&&!(e.isiPhone&&c.options.iPhoneUseNativeControls)){c.buildposter(c,c.controls,c.layers,c.media);c.buildkeyboard(c,c.controls,c.layers,c.media);c.buildoverlays(c,c.controls,c.layers,c.media);c.findTracks();for(g in c.options.features){e=
+c.options.features[g];if(c["build"+e])try{c["build"+e](c,c.controls,c.layers,c.media)}catch(k){}}c.container.trigger("controlsready");c.setPlayerSize(c.width,c.height);c.setControlsSize();if(c.isVideo){if(mejs.MediaFeatures.hasTouch)c.$media.bind("touchstart",function(){if(c.controlsAreVisible)c.hideControls(false);else c.controlsEnabled&&c.showControls(false)});else{c.clickToPlayPauseCallback=function(){if(c.options.clickToPlayPause)c.media.paused?c.play():c.pause()};c.media.addEventListener("click",
+c.clickToPlayPauseCallback,false);c.container.bind("mouseenter mouseover",function(){if(c.controlsEnabled)if(!c.options.alwaysShowControls){c.killControlsTimer("enter");c.showControls();c.startControlsTimer(2500)}}).bind("mousemove",function(){if(c.controlsEnabled){c.controlsAreVisible||c.showControls();c.options.alwaysShowControls||c.startControlsTimer(2500)}}).bind("mouseleave",function(){c.controlsEnabled&&!c.media.paused&&!c.options.alwaysShowControls&&c.startControlsTimer(1E3)})}c.options.hideVideoControlsOnLoad&&
+c.hideControls(false);d&&!c.options.alwaysShowControls&&c.hideControls();c.options.enableAutosize&&c.media.addEventListener("loadedmetadata",function(j){if(c.options.videoHeight<=0&&c.domNode.getAttribute("height")===null&&!isNaN(j.target.videoHeight)){c.setPlayerSize(j.target.videoWidth,j.target.videoHeight);c.setControlsSize();c.media.setVideoSize(j.target.videoWidth,j.target.videoHeight)}},false)}a.addEventListener("play",function(){for(var j in mejs.players){var m=mejs.players[j];m.id!=c.id&&
+c.options.pauseOtherPlayers&&!m.paused&&!m.ended&&m.pause();m.hasFocus=false}c.hasFocus=true},false);c.media.addEventListener("ended",function(){if(c.options.autoRewind)try{c.media.setCurrentTime(0)}catch(j){}c.media.pause();c.setProgressRail&&c.setProgressRail();c.setCurrentRail&&c.setCurrentRail();if(c.options.loop)c.play();else!c.options.alwaysShowControls&&c.controlsEnabled&&c.showControls()},false);c.media.addEventListener("loadedmetadata",function(){c.updateDuration&&c.updateDuration();c.updateCurrent&&
+c.updateCurrent();if(!c.isFullScreen){c.setPlayerSize(c.width,c.height);c.setControlsSize()}},false);setTimeout(function(){c.setPlayerSize(c.width,c.height);c.setControlsSize()},50);c.globalBind("resize",function(){c.isFullScreen||mejs.MediaFeatures.hasTrueNativeFullScreen&&document.webkitIsFullScreen||c.setPlayerSize(c.width,c.height);c.setControlsSize()});c.media.pluginType=="youtube"&&c.options.autoplay&&c.container.find(".mejs-overlay-play").hide()}d&&a.pluginType=="native"&&c.play();if(c.options.success)typeof c.options.success==
+"string"?window[c.options.success](c.media,c.domNode,c):c.options.success(c.media,c.domNode,c)}},handleError:function(a){this.controls.hide();this.options.error&&this.options.error(a)},setPlayerSize:function(a,b){if(!this.options.setDimensions)return false;if(typeof a!="undefined")this.width=a;if(typeof b!="undefined")this.height=b;if(this.height.toString().indexOf("%")>0||this.$node.css("max-width")==="100%"||this.$node[0].currentStyle&&this.$node[0].currentStyle.maxWidth==="100%"){var c=this.isVideo?
+this.media.videoWidth&&this.media.videoWidth>0?this.media.videoWidth:this.media.getAttribute("width")!==null?this.media.getAttribute("width"):this.options.defaultVideoWidth:this.options.defaultAudioWidth,e=this.isVideo?this.media.videoHeight&&this.media.videoHeight>0?this.media.videoHeight:this.media.getAttribute("height")!==null?this.media.getAttribute("height"):this.options.defaultVideoHeight:this.options.defaultAudioHeight,d=this.container.parent().closest(":visible").width(),g=this.container.parent().closest(":visible").height();
+c=this.isVideo||!this.options.autosizeProgress?parseInt(d*e/c,10):e;if(isNaN(c)||g!=0&&c>g)c=g;if(this.container.parent()[0].tagName.toLowerCase()==="body"){d=f(window).width();c=f(window).height()}if(c!=0&&d!=0){this.container.width(d).height(c);this.$media.add(this.container.find(".mejs-shim")).width("100%").height("100%");this.isVideo&&this.media.setVideoSize&&this.media.setVideoSize(d,c);this.layers.children(".mejs-layer").width("100%").height("100%")}}else{this.container.width(this.width).height(this.height);
+this.layers.children(".mejs-layer").width(this.width).height(this.height)}d=this.layers.find(".mejs-overlay-play");g=d.find(".mejs-overlay-button");d.height(this.container.height()-this.controls.height());g.css("margin-top","-"+(g.height()/2-this.controls.height()/2).toString()+"px")},setControlsSize:function(){var a=0,b=0,c=this.controls.find(".mejs-time-rail"),e=this.controls.find(".mejs-time-total");this.controls.find(".mejs-time-current");this.controls.find(".mejs-time-loaded");var d=c.siblings(),
+g=d.last(),k=null;if(!(!this.container.is(":visible")||!c.length||!c.is(":visible"))){if(this.options&&!this.options.autosizeProgress)b=parseInt(c.css("width"));if(b===0||!b){d.each(function(){var j=f(this);if(j.css("position")!="absolute"&&j.is(":visible"))a+=f(this).outerWidth(true)});b=this.controls.width()-a-(c.outerWidth(true)-c.width())}do{c.width(b);e.width(b-(e.outerWidth(true)-e.width()));if(g.css("position")!="absolute"){k=g.position();b--}}while(k!=null&&k.top>0&&b>0);this.setProgressRail&&
+this.setProgressRail();this.setCurrentRail&&this.setCurrentRail()}},buildposter:function(a,b,c,e){var d=f('<div class="mejs-poster mejs-layer"></div>').appendTo(c);b=a.$media.attr("poster");if(a.options.poster!=="")b=a.options.poster;b!==""&&b!=null?this.setPoster(b):d.hide();e.addEventListener("play",function(){d.hide()},false);a.options.showPosterWhenEnded&&a.options.autoRewind&&e.addEventListener("ended",function(){d.show()},false)},setPoster:function(a){var b=this.container.find(".mejs-poster"),
+c=b.find("img");if(c.length==0)c=f('<img width="100%" height="100%" />').appendTo(b);c.attr("src",a);b.css({"background-image":"url("+a+")"})},buildoverlays:function(a,b,c,e){var d=this;if(a.isVideo){var g=f('<div class="mejs-overlay mejs-layer"><div class="mejs-overlay-loading"><span></span></div></div>').hide().appendTo(c),k=f('<div class="mejs-overlay mejs-layer"><div class="mejs-overlay-error"></div></div>').hide().appendTo(c),j=f('<div class="mejs-overlay mejs-layer mejs-overlay-play"><div class="mejs-overlay-button"></div></div>').appendTo(c).bind("click",
+function(){d.options.clickToPlayPause&&e.paused&&e.play()});e.addEventListener("play",function(){j.hide();g.hide();b.find(".mejs-time-buffering").hide();k.hide()},false);e.addEventListener("playing",function(){j.hide();g.hide();b.find(".mejs-time-buffering").hide();k.hide()},false);e.addEventListener("seeking",function(){g.show();b.find(".mejs-time-buffering").show()},false);e.addEventListener("seeked",function(){g.hide();b.find(".mejs-time-buffering").hide()},false);e.addEventListener("pause",function(){mejs.MediaFeatures.isiPhone||
+j.show()},false);e.addEventListener("waiting",function(){g.show();b.find(".mejs-time-buffering").show()},false);e.addEventListener("loadeddata",function(){g.show();b.find(".mejs-time-buffering").show()},false);e.addEventListener("canplay",function(){g.hide();b.find(".mejs-time-buffering").hide()},false);e.addEventListener("error",function(){g.hide();b.find(".mejs-time-buffering").hide();k.show();k.find("mejs-overlay-error").html("Error loading this resource")},false);e.addEventListener("keydown",
+function(m){d.onkeydown(a,e,m)},false)}},buildkeyboard:function(a,b,c,e){var d=this;d.globalBind("keydown",function(g){return d.onkeydown(a,e,g)});d.globalBind("click",function(g){a.hasFocus=f(g.target).closest(".mejs-container").length!=0})},onkeydown:function(a,b,c){if(a.hasFocus&&a.options.enableKeyboard)for(var e=0,d=a.options.keyActions.length;e<d;e++)for(var g=a.options.keyActions[e],k=0,j=g.keys.length;k<j;k++)if(c.keyCode==g.keys[k]){typeof c.preventDefault=="function"&&c.preventDefault();
+g.action(a,b,c.keyCode);return false}return true},findTracks:function(){var a=this,b=a.$media.find("track");a.tracks=[];b.each(function(c,e){e=f(e);a.tracks.push({srclang:e.attr("srclang")?e.attr("srclang").toLowerCase():"",src:e.attr("src"),kind:e.attr("kind"),label:e.attr("label")||"",entries:[],isLoaded:false})})},changeSkin:function(a){this.container[0].className="mejs-container "+a;this.setPlayerSize(this.width,this.height);this.setControlsSize()},play:function(){this.load();this.media.play()},
+pause:function(){try{this.media.pause()}catch(a){}},load:function(){this.isLoaded||this.media.load();this.isLoaded=true},setMuted:function(a){this.media.setMuted(a)},setCurrentTime:function(a){this.media.setCurrentTime(a)},getCurrentTime:function(){return this.media.currentTime},setVolume:function(a){this.media.setVolume(a)},getVolume:function(){return this.media.volume},setSrc:function(a){this.media.setSrc(a)},remove:function(){var a,b;for(a in this.options.features){b=this.options.features[a];if(this["clean"+
+b])try{this["clean"+b](this)}catch(c){}}if(this.isDynamic)this.$node.insertBefore(this.container);else{this.$media.prop("controls",true);this.$node.clone().insertBefore(this.container).show();this.$node.remove()}this.media.pluginType!=="native"&&this.media.remove();delete mejs.players[this.id];typeof this.container=="object"&&this.container.remove();this.globalUnbind();delete this.node.player}};(function(){function a(c,e){var d={d:[],w:[]};f.each((c||"").split(" "),function(g,k){var j=k+"."+e;if(j.indexOf(".")===
+0){d.d.push(j);d.w.push(j)}else d[b.test(k)?"w":"d"].push(j)});d.d=d.d.join(" ");d.w=d.w.join(" ");return d}var b=/^((after|before)print|(before)?unload|hashchange|message|o(ff|n)line|page(hide|show)|popstate|resize|storage)\b/;mejs.MediaElementPlayer.prototype.globalBind=function(c,e,d){c=a(c,this.id);c.d&&f(document).bind(c.d,e,d);c.w&&f(window).bind(c.w,e,d)};mejs.MediaElementPlayer.prototype.globalUnbind=function(c,e){c=a(c,this.id);c.d&&f(document).unbind(c.d,e);c.w&&f(window).unbind(c.w,e)}})();
+if(typeof f!="undefined"){f.fn.mediaelementplayer=function(a){a===false?this.each(function(){var b=f(this).data("mediaelementplayer");b&&b.remove();f(this).removeData("mediaelementplayer")}):this.each(function(){f(this).data("mediaelementplayer",new mejs.MediaElementPlayer(this,a))});return this};f(document).ready(function(){f(".mejs-player").mediaelementplayer()})}window.MediaElementPlayer=mejs.MediaElementPlayer})(mejs.$);
+(function(f){f.extend(mejs.MepDefaults,{playpauseText:mejs.i18n.t("Play/Pause")});f.extend(MediaElementPlayer.prototype,{buildplaypause:function(a,b,c,e){var d=f('<div class="mejs-button mejs-playpause-button mejs-play" ><button type="button" aria-controls="'+this.id+'" title="'+this.options.playpauseText+'" aria-label="'+this.options.playpauseText+'"></button></div>').appendTo(b).click(function(g){g.preventDefault();e.paused?e.play():e.pause();return false});e.addEventListener("play",function(){d.removeClass("mejs-play").addClass("mejs-pause")},
+false);e.addEventListener("playing",function(){d.removeClass("mejs-play").addClass("mejs-pause")},false);e.addEventListener("pause",function(){d.removeClass("mejs-pause").addClass("mejs-play")},false);e.addEventListener("paused",function(){d.removeClass("mejs-pause").addClass("mejs-play")},false)}})})(mejs.$);
+(function(f){f.extend(mejs.MepDefaults,{stopText:"Stop"});f.extend(MediaElementPlayer.prototype,{buildstop:function(a,b,c,e){f('<div class="mejs-button mejs-stop-button mejs-stop"><button type="button" aria-controls="'+this.id+'" title="'+this.options.stopText+'" aria-label="'+this.options.stopText+'"></button></div>').appendTo(b).click(function(){e.paused||e.pause();if(e.currentTime>0){e.setCurrentTime(0);e.pause();b.find(".mejs-time-current").width("0px");b.find(".mejs-time-handle").css("left",
+"0px");b.find(".mejs-time-float-current").html(mejs.Utility.secondsToTimeCode(0));b.find(".mejs-currenttime").html(mejs.Utility.secondsToTimeCode(0));c.find(".mejs-poster").show()}})}})})(mejs.$);
+(function(f){f.extend(MediaElementPlayer.prototype,{buildprogress:function(a,b,c,e){f('<div class="mejs-time-rail"><span class="mejs-time-total"><span class="mejs-time-buffering"></span><span class="mejs-time-loaded"></span><span class="mejs-time-current"></span><span class="mejs-time-handle"></span><span class="mejs-time-float"><span class="mejs-time-float-current">00:00</span><span class="mejs-time-float-corner"></span></span></span></div>').appendTo(b);b.find(".mejs-time-buffering").hide();var d=
+this,g=b.find(".mejs-time-total");c=b.find(".mejs-time-loaded");var k=b.find(".mejs-time-current"),j=b.find(".mejs-time-handle"),m=b.find(".mejs-time-float"),q=b.find(".mejs-time-float-current"),p=function(h){h=h.originalEvent.changedTouches?h.originalEvent.changedTouches[0].pageX:h.pageX;var l=g.offset(),r=g.outerWidth(true),n=0,o=n=0;if(e.duration){if(h<l.left)h=l.left;else if(h>r+l.left)h=r+l.left;o=h-l.left;n=o/r;n=n<=0.02?0:n*e.duration;t&&n!==e.currentTime&&e.setCurrentTime(n);if(!mejs.MediaFeatures.hasTouch){m.css("left",
+o);q.html(mejs.Utility.secondsToTimeCode(n));m.show()}}},t=false;g.bind("mousedown touchstart",function(h){if(h.which===1||h.which===0){t=true;p(h);d.globalBind("mousemove.dur touchmove.dur",function(l){p(l)});d.globalBind("mouseup.dur touchend.dur",function(){t=false;m.hide();d.globalUnbind(".dur")});return false}}).bind("mouseenter",function(){d.globalBind("mousemove.dur",function(h){p(h)});mejs.MediaFeatures.hasTouch||m.show()}).bind("mouseleave",function(){if(!t){d.globalUnbind(".dur");m.hide()}});
+e.addEventListener("progress",function(h){a.setProgressRail(h);a.setCurrentRail(h)},false);e.addEventListener("timeupdate",function(h){a.setProgressRail(h);a.setCurrentRail(h)},false);d.loaded=c;d.total=g;d.current=k;d.handle=j},setProgressRail:function(a){var b=a!=undefined?a.target:this.media,c=null;if(b&&b.buffered&&b.buffered.length>0&&b.buffered.end&&b.duration)c=b.buffered.end(0)/b.duration;else if(b&&b.bytesTotal!=undefined&&b.bytesTotal>0&&b.bufferedBytes!=undefined)c=b.bufferedBytes/b.bytesTotal;
+else if(a&&a.lengthComputable&&a.total!=0)c=a.loaded/a.total;if(c!==null){c=Math.min(1,Math.max(0,c));this.loaded&&this.total&&this.loaded.width(this.total.width()*c)}},setCurrentRail:function(){if(this.media.currentTime!=undefined&&this.media.duration)if(this.total&&this.handle){var a=Math.round(this.total.width()*this.media.currentTime/this.media.duration),b=a-Math.round(this.handle.outerWidth(true)/2);this.current.width(a);this.handle.css("left",b)}}})})(mejs.$);
+(function(f){f.extend(mejs.MepDefaults,{duration:-1,timeAndDurationSeparator:"<span> | </span>"});f.extend(MediaElementPlayer.prototype,{buildcurrent:function(a,b,c,e){f('<div class="mejs-time"><span class="mejs-currenttime">'+(a.options.alwaysShowHours?"00:":"")+(a.options.showTimecodeFrameCount?"00:00:00":"00:00")+"</span></div>").appendTo(b);this.currenttime=this.controls.find(".mejs-currenttime");e.addEventListener("timeupdate",function(){a.updateCurrent()},false)},buildduration:function(a,b,
+c,e){if(b.children().last().find(".mejs-currenttime").length>0)f(this.options.timeAndDurationSeparator+'<span class="mejs-duration">'+(this.options.duration>0?mejs.Utility.secondsToTimeCode(this.options.duration,this.options.alwaysShowHours||this.media.duration>3600,this.options.showTimecodeFrameCount,this.options.framesPerSecond||25):(a.options.alwaysShowHours?"00:":"")+(a.options.showTimecodeFrameCount?"00:00:00":"00:00"))+"</span>").appendTo(b.find(".mejs-time"));else{b.find(".mejs-currenttime").parent().addClass("mejs-currenttime-container");
+f('<div class="mejs-time mejs-duration-container"><span class="mejs-duration">'+(this.options.duration>0?mejs.Utility.secondsToTimeCode(this.options.duration,this.options.alwaysShowHours||this.media.duration>3600,this.options.showTimecodeFrameCount,this.options.framesPerSecond||25):(a.options.alwaysShowHours?"00:":"")+(a.options.showTimecodeFrameCount?"00:00:00":"00:00"))+"</span></div>").appendTo(b)}this.durationD=this.controls.find(".mejs-duration");e.addEventListener("timeupdate",function(){a.updateDuration()},
+false)},updateCurrent:function(){if(this.currenttime)this.currenttime.html(mejs.Utility.secondsToTimeCode(this.media.currentTime,this.options.alwaysShowHours||this.media.duration>3600,this.options.showTimecodeFrameCount,this.options.framesPerSecond||25))},updateDuration:function(){this.container.toggleClass("mejs-long-video",this.media.duration>3600);if(this.durationD&&(this.options.duration>0||this.media.duration))this.durationD.html(mejs.Utility.secondsToTimeCode(this.options.duration>0?this.options.duration:
+this.media.duration,this.options.alwaysShowHours,this.options.showTimecodeFrameCount,this.options.framesPerSecond||25))}})})(mejs.$);
+(function(f){f.extend(mejs.MepDefaults,{muteText:mejs.i18n.t("Mute Toggle"),hideVolumeOnTouchDevices:true,audioVolume:"horizontal",videoVolume:"vertical"});f.extend(MediaElementPlayer.prototype,{buildvolume:function(a,b,c,e){if(!((mejs.MediaFeatures.isAndroid||mejs.MediaFeatures.isiOS)&&this.options.hideVolumeOnTouchDevices)){var d=this,g=d.isVideo?d.options.videoVolume:d.options.audioVolume,k=g=="horizontal"?f('<div class="mejs-button mejs-volume-button mejs-mute"><button type="button" aria-controls="'+
+d.id+'" title="'+d.options.muteText+'" aria-label="'+d.options.muteText+'"></button></div><div class="mejs-horizontal-volume-slider"><div class="mejs-horizontal-volume-total"></div><div class="mejs-horizontal-volume-current"></div><div class="mejs-horizontal-volume-handle"></div></div>').appendTo(b):f('<div class="mejs-button mejs-volume-button mejs-mute"><button type="button" aria-controls="'+d.id+'" title="'+d.options.muteText+'" aria-label="'+d.options.muteText+'"></button><div class="mejs-volume-slider"><div class="mejs-volume-total"></div><div class="mejs-volume-current"></div><div class="mejs-volume-handle"></div></div></div>').appendTo(b),
+j=d.container.find(".mejs-volume-slider, .mejs-horizontal-volume-slider"),m=d.container.find(".mejs-volume-total, .mejs-horizontal-volume-total"),q=d.container.find(".mejs-volume-current, .mejs-horizontal-volume-current"),p=d.container.find(".mejs-volume-handle, .mejs-horizontal-volume-handle"),t=function(n,o){if(!j.is(":visible")&&typeof o=="undefined"){j.show();t(n,true);j.hide()}else{n=Math.max(0,n);n=Math.min(n,1);n==0?k.removeClass("mejs-mute").addClass("mejs-unmute"):k.removeClass("mejs-unmute").addClass("mejs-mute");
+if(g=="vertical"){var s=m.height(),u=m.position(),v=s-s*n;p.css("top",Math.round(u.top+v-p.height()/2));q.height(s-v);q.css("top",u.top+v)}else{s=m.width();u=m.position();s=s*n;p.css("left",Math.round(u.left+s-p.width()/2));q.width(Math.round(s))}}},h=function(n){var o=null,s=m.offset();if(g=="vertical"){o=m.height();parseInt(m.css("top").replace(/px/,""),10);o=(o-(n.pageY-s.top))/o;if(s.top==0||s.left==0)return}else{o=m.width();o=(n.pageX-s.left)/o}o=Math.max(0,o);o=Math.min(o,1);t(o);o==0?e.setMuted(true):
+e.setMuted(false);e.setVolume(o)},l=false,r=false;k.hover(function(){j.show();r=true},function(){r=false;!l&&g=="vertical"&&j.hide()});j.bind("mouseover",function(){r=true}).bind("mousedown",function(n){h(n);d.globalBind("mousemove.vol",function(o){h(o)});d.globalBind("mouseup.vol",function(){l=false;d.globalUnbind(".vol");!r&&g=="vertical"&&j.hide()});l=true;return false});k.find("button").click(function(){e.setMuted(!e.muted)});e.addEventListener("volumechange",function(){if(!l)if(e.muted){t(0);
+k.removeClass("mejs-mute").addClass("mejs-unmute")}else{t(e.volume);k.removeClass("mejs-unmute").addClass("mejs-mute")}},false);if(d.container.is(":visible")){t(a.options.startVolume);a.options.startVolume===0&&e.setMuted(true);e.pluginType==="native"&&e.setVolume(a.options.startVolume)}}}})})(mejs.$);
+(function(f){f.extend(mejs.MepDefaults,{usePluginFullScreen:true,newWindowCallback:function(){return""},fullscreenText:mejs.i18n.t("Fullscreen")});f.extend(MediaElementPlayer.prototype,{isFullScreen:false,isNativeFullScreen:false,isInIframe:false,buildfullscreen:function(a,b,c,e){if(a.isVideo){a.isInIframe=window.location!=window.parent.location;mejs.MediaFeatures.hasTrueNativeFullScreen&&a.globalBind(mejs.MediaFeatures.fullScreenEventName,function(){if(a.isFullScreen)if(mejs.MediaFeatures.isFullScreen()){a.isNativeFullScreen=
+true;a.setControlsSize()}else{a.isNativeFullScreen=false;a.exitFullScreen()}});var d=this,g=f('<div class="mejs-button mejs-fullscreen-button"><button type="button" aria-controls="'+d.id+'" title="'+d.options.fullscreenText+'" aria-label="'+d.options.fullscreenText+'"></button></div>').appendTo(b);if(d.media.pluginType==="native"||!d.options.usePluginFullScreen&&!mejs.MediaFeatures.isFirefox)g.click(function(){mejs.MediaFeatures.hasTrueNativeFullScreen&&mejs.MediaFeatures.isFullScreen()||a.isFullScreen?
+a.exitFullScreen():a.enterFullScreen()});else{var k=null;if(function(){var h=document.createElement("x"),l=document.documentElement,r=window.getComputedStyle;if(!("pointerEvents"in h.style))return false;h.style.pointerEvents="auto";h.style.pointerEvents="x";l.appendChild(h);r=r&&r(h,"").pointerEvents==="auto";l.removeChild(h);return!!r}()&&!mejs.MediaFeatures.isOpera){var j=false,m=function(){if(j){for(var h in q)q[h].hide();g.css("pointer-events","");d.controls.css("pointer-events","");d.media.removeEventListener("click",
+d.clickToPlayPauseCallback);j=false}},q={};b=["top","left","right","bottom"];var p,t=function(){var h=g.offset().left-d.container.offset().left,l=g.offset().top-d.container.offset().top,r=g.outerWidth(true),n=g.outerHeight(true),o=d.container.width(),s=d.container.height();for(p in q)q[p].css({position:"absolute",top:0,left:0});q.top.width(o).height(l);q.left.width(h).height(n).css({top:l});q.right.width(o-h-r).height(n).css({top:l,left:h+r});q.bottom.width(o).height(s-n-l).css({top:l+n})};d.globalBind("resize",
+function(){t()});p=0;for(c=b.length;p<c;p++)q[b[p]]=f('<div class="mejs-fullscreen-hover" />').appendTo(d.container).mouseover(m).hide();g.on("mouseover",function(){if(!d.isFullScreen){var h=g.offset(),l=a.container.offset();e.positionFullscreenButton(h.left-l.left,h.top-l.top,false);g.css("pointer-events","none");d.controls.css("pointer-events","none");d.media.addEventListener("click",d.clickToPlayPauseCallback);for(p in q)q[p].show();t();j=true}});e.addEventListener("fullscreenchange",function(){d.isFullScreen=
+!d.isFullScreen;d.isFullScreen?d.media.removeEventListener("click",d.clickToPlayPauseCallback):d.media.addEventListener("click",d.clickToPlayPauseCallback);m()});d.globalBind("mousemove",function(h){if(j){var l=g.offset();if(h.pageY<l.top||h.pageY>l.top+g.outerHeight(true)||h.pageX<l.left||h.pageX>l.left+g.outerWidth(true)){g.css("pointer-events","");d.controls.css("pointer-events","");j=false}}})}else g.on("mouseover",function(){if(k!==null){clearTimeout(k);delete k}var h=g.offset(),l=a.container.offset();
+e.positionFullscreenButton(h.left-l.left,h.top-l.top,true)}).on("mouseout",function(){if(k!==null){clearTimeout(k);delete k}k=setTimeout(function(){e.hideFullscreenButton()},1500)})}a.fullscreenBtn=g;d.globalBind("keydown",function(h){if((mejs.MediaFeatures.hasTrueNativeFullScreen&&mejs.MediaFeatures.isFullScreen()||d.isFullScreen)&&h.keyCode==27)a.exitFullScreen()})}},cleanfullscreen:function(a){a.exitFullScreen()},containerSizeTimeout:null,enterFullScreen:function(){var a=this;if(!(a.media.pluginType!==
+"native"&&(mejs.MediaFeatures.isFirefox||a.options.usePluginFullScreen))){f(document.documentElement).addClass("mejs-fullscreen");normalHeight=a.container.height();normalWidth=a.container.width();if(a.media.pluginType==="native")if(mejs.MediaFeatures.hasTrueNativeFullScreen){mejs.MediaFeatures.requestFullScreen(a.container[0]);a.isInIframe&&setTimeout(function c(){if(a.isNativeFullScreen){var e=(window.devicePixelRatio||1)*f(window).width(),d=screen.width;Math.abs(d-e)>d*0.0020?a.exitFullScreen():
+setTimeout(c,500)}},500)}else if(mejs.MediaFeatures.hasSemiNativeFullScreen){a.media.webkitEnterFullscreen();return}if(a.isInIframe){var b=a.options.newWindowCallback(this);if(b!=="")if(mejs.MediaFeatures.hasTrueNativeFullScreen)setTimeout(function(){if(!a.isNativeFullScreen){a.pause();window.open(b,a.id,"top=0,left=0,width="+screen.availWidth+",height="+screen.availHeight+",resizable=yes,scrollbars=no,status=no,toolbar=no")}},250);else{a.pause();window.open(b,a.id,"top=0,left=0,width="+screen.availWidth+
+",height="+screen.availHeight+",resizable=yes,scrollbars=no,status=no,toolbar=no");return}}a.container.addClass("mejs-container-fullscreen").width("100%").height("100%");a.containerSizeTimeout=setTimeout(function(){a.container.css({width:"100%",height:"100%"});a.setControlsSize()},500);if(a.media.pluginType==="native")a.$media.width("100%").height("100%");else{a.container.find(".mejs-shim").width("100%").height("100%");a.media.setVideoSize(f(window).width(),f(window).height())}a.layers.children("div").width("100%").height("100%");
+a.fullscreenBtn&&a.fullscreenBtn.removeClass("mejs-fullscreen").addClass("mejs-unfullscreen");a.setControlsSize();a.isFullScreen=true;a.container.find(".mejs-captions-text").css("font-size",screen.width/a.width*1*100+"%");a.container.find(".mejs-captions-position").css("bottom","45px")}},exitFullScreen:function(){clearTimeout(this.containerSizeTimeout);if(this.media.pluginType!=="native"&&mejs.MediaFeatures.isFirefox)this.media.setFullscreen(false);else{if(mejs.MediaFeatures.hasTrueNativeFullScreen&&
+(mejs.MediaFeatures.isFullScreen()||this.isFullScreen))mejs.MediaFeatures.cancelFullScreen();f(document.documentElement).removeClass("mejs-fullscreen");this.container.removeClass("mejs-container-fullscreen").width(normalWidth).height(normalHeight);if(this.media.pluginType==="native")this.$media.width(normalWidth).height(normalHeight);else{this.container.find(".mejs-shim").width(normalWidth).height(normalHeight);this.media.setVideoSize(normalWidth,normalHeight)}this.layers.children("div").width(normalWidth).height(normalHeight);
+this.fullscreenBtn.removeClass("mejs-unfullscreen").addClass("mejs-fullscreen");this.setControlsSize();this.isFullScreen=false;this.container.find(".mejs-captions-text").css("font-size","");this.container.find(".mejs-captions-position").css("bottom","")}}})})(mejs.$);
+(function(f){f.extend(mejs.MepDefaults,{speeds:["1.50","1.25","1.00","0.75"],defaultSpeed:"1.00"});f.extend(MediaElementPlayer.prototype,{buildspeed:function(a,b,c,e){if(this.media.pluginType=="native"){c='<div class="mejs-button mejs-speed-button"><button type="button">'+this.options.defaultSpeed+'x</button><div class="mejs-speed-selector"><ul>';var d;f.inArray(this.options.defaultSpeed,this.options.speeds)===-1&&this.options.speeds.push(this.options.defaultSpeed);this.options.speeds.sort(function(g,
+k){return parseFloat(k)-parseFloat(g)});for(d=0;d<this.options.speeds.length;d++){c+='<li><input type="radio" name="speed" value="'+this.options.speeds[d]+'" id="'+this.options.speeds[d]+'" ';if(this.options.speeds[d]==this.options.defaultSpeed){c+="checked=true ";c+='/><label for="'+this.options.speeds[d]+'" class="mejs-speed-selected">'+this.options.speeds[d]+"x</label></li>"}else c+='/><label for="'+this.options.speeds[d]+'">'+this.options.speeds[d]+"x</label></li>"}c+="</ul></div></div>";a.speedButton=
+f(c).appendTo(b);a.playbackspeed=this.options.defaultSpeed;a.speedButton.on("click","input[type=radio]",function(){a.playbackspeed=f(this).attr("value");e.playbackRate=parseFloat(a.playbackspeed);a.speedButton.find("button").text(a.playbackspeed+"x");a.speedButton.find(".mejs-speed-selected").removeClass("mejs-speed-selected");a.speedButton.find("input[type=radio]:checked").next().addClass("mejs-speed-selected")});b=a.speedButton.find(".mejs-speed-selector");b.height(this.speedButton.find(".mejs-speed-selector ul").outerHeight(true)+
+a.speedButton.find(".mejs-speed-translations").outerHeight(true));b.css("top",-1*b.height()+"px")}}})})(mejs.$);
+(function(f){f.extend(mejs.MepDefaults,{startLanguage:"",tracksText:mejs.i18n.t("Captions/Subtitles"),hideCaptionsButtonWhenEmpty:true,toggleCaptionsButtonWhenOnlyOne:false,slidesSelector:""});f.extend(MediaElementPlayer.prototype,{hasChapters:false,buildtracks:function(a,b,c,e){if(a.tracks.length!==0){var d;if(this.domNode.textTracks)for(d=this.domNode.textTracks.length-1;d>=0;d--)this.domNode.textTracks[d].mode="hidden";a.chapters=f('<div class="mejs-chapters mejs-layer"></div>').prependTo(c).hide();
+a.captions=f('<div class="mejs-captions-layer mejs-layer"><div class="mejs-captions-position mejs-captions-position-hover"><span class="mejs-captions-text"></span></div></div>').prependTo(c).hide();a.captionsText=a.captions.find(".mejs-captions-text");a.captionsButton=f('<div class="mejs-button mejs-captions-button"><button type="button" aria-controls="'+this.id+'" title="'+this.options.tracksText+'" aria-label="'+this.options.tracksText+'"></button><div class="mejs-captions-selector"><ul><li><input type="radio" name="'+
+a.id+'_captions" id="'+a.id+'_captions_none" value="none" checked="checked" /><label for="'+a.id+'_captions_none">'+mejs.i18n.t("None")+"</label></li></ul></div></div>").appendTo(b);for(d=b=0;d<a.tracks.length;d++)a.tracks[d].kind=="subtitles"&&b++;if(this.options.toggleCaptionsButtonWhenOnlyOne&&b==1)a.captionsButton.on("click",function(){lang=a.selectedTrack===null?a.tracks[0].srclang:"none";a.setTrack(lang)});else{a.captionsButton.on("mouseenter focusin",function(){f(this).find(".mejs-captions-selector").css("visibility",
+"visible")}).on("click","input[type=radio]",function(){lang=this.value;a.setTrack(lang)});a.captionsButton.on("mouseleave focusout",function(){f(this).find(".mejs-captions-selector").css("visibility","hidden")})}a.options.alwaysShowControls?a.container.find(".mejs-captions-position").addClass("mejs-captions-position-hover"):a.container.bind("controlsshown",function(){a.container.find(".mejs-captions-position").addClass("mejs-captions-position-hover")}).bind("controlshidden",function(){e.paused||a.container.find(".mejs-captions-position").removeClass("mejs-captions-position-hover")});
+a.trackToLoad=-1;a.selectedTrack=null;a.isLoadingTrack=false;for(d=0;d<a.tracks.length;d++)a.tracks[d].kind=="subtitles"&&a.addTrackButton(a.tracks[d].srclang,a.tracks[d].label);a.loadNextTrack();e.addEventListener("timeupdate",function(){a.displayCaptions()},false);if(a.options.slidesSelector!==""){a.slidesContainer=f(a.options.slidesSelector);e.addEventListener("timeupdate",function(){a.displaySlides()},false)}e.addEventListener("loadedmetadata",function(){a.displayChapters()},false);a.container.hover(function(){if(a.hasChapters){a.chapters.css("visibility",
+"visible");a.chapters.fadeIn(200).height(a.chapters.find(".mejs-chapter").outerHeight())}},function(){a.hasChapters&&!e.paused&&a.chapters.fadeOut(200,function(){f(this).css("visibility","hidden");f(this).css("display","block")})});a.node.getAttribute("autoplay")!==null&&a.chapters.css("visibility","hidden")}},setTrack:function(a){var b;if(a=="none"){this.selectedTrack=null;this.captionsButton.removeClass("mejs-captions-enabled")}else for(b=0;b<this.tracks.length;b++)if(this.tracks[b].srclang==a){this.selectedTrack===
+null&&this.captionsButton.addClass("mejs-captions-enabled");this.selectedTrack=this.tracks[b];this.captions.attr("lang",this.selectedTrack.srclang);this.displayCaptions();break}},loadNextTrack:function(){this.trackToLoad++;if(this.trackToLoad<this.tracks.length){this.isLoadingTrack=true;this.loadTrack(this.trackToLoad)}else{this.isLoadingTrack=false;this.checkForTracks()}},loadTrack:function(a){var b=this,c=b.tracks[a];f.ajax({url:c.src,dataType:"text",success:function(e){c.entries=typeof e=="string"&&
+/<tt\s+xml/ig.exec(e)?mejs.TrackFormatParser.dfxp.parse(e):mejs.TrackFormatParser.webvtt.parse(e);c.isLoaded=true;b.enableTrackButton(c.srclang,c.label);b.loadNextTrack();c.kind=="chapters"&&b.media.addEventListener("play",function(){b.media.duration>0&&b.displayChapters(c)},false);c.kind=="slides"&&b.setupSlides(c)},error:function(){b.loadNextTrack()}})},enableTrackButton:function(a,b){if(b==="")b=mejs.language.codes[a]||a;this.captionsButton.find("input[value="+a+"]").prop("disabled",false).siblings("label").html(b);
+this.options.startLanguage==a&&f("#"+this.id+"_captions_"+a).prop("checked",true).trigger("click");this.adjustLanguageBox()},addTrackButton:function(a,b){if(b==="")b=mejs.language.codes[a]||a;this.captionsButton.find("ul").append(f('<li><input type="radio" name="'+this.id+'_captions" id="'+this.id+"_captions_"+a+'" value="'+a+'" disabled="disabled" /><label for="'+this.id+"_captions_"+a+'">'+b+" (loading)</label></li>"));this.adjustLanguageBox();this.container.find(".mejs-captions-translations option[value="+
+a+"]").remove()},adjustLanguageBox:function(){this.captionsButton.find(".mejs-captions-selector").height(this.captionsButton.find(".mejs-captions-selector ul").outerHeight(true)+this.captionsButton.find(".mejs-captions-translations").outerHeight(true))},checkForTracks:function(){var a=false;if(this.options.hideCaptionsButtonWhenEmpty){for(i=0;i<this.tracks.length;i++)if(this.tracks[i].kind=="subtitles"){a=true;break}if(!a){this.captionsButton.hide();this.setControlsSize()}}},displayCaptions:function(){if(typeof this.tracks!=
+"undefined"){var a,b=this.selectedTrack;if(b!==null&&b.isLoaded)for(a=0;a<b.entries.times.length;a++)if(this.media.currentTime>=b.entries.times[a].start&&this.media.currentTime<=b.entries.times[a].stop){this.captionsText.html(b.entries.text[a]).attr("class","mejs-captions-text "+(b.entries.times[a].identifier||""));this.captions.show().height(0);return}this.captions.hide()}},setupSlides:function(a){this.slides=a;this.slides.entries.imgs=[this.slides.entries.text.length];this.showSlide(0)},showSlide:function(a){if(!(typeof this.tracks==
+"undefined"||typeof this.slidesContainer=="undefined")){var b=this,c=b.slides.entries.text[a],e=b.slides.entries.imgs[a];if(typeof e=="undefined"||typeof e.fadeIn=="undefined")b.slides.entries.imgs[a]=e=f('<img src="'+c+'">').on("load",function(){e.appendTo(b.slidesContainer).hide().fadeIn().siblings(":visible").fadeOut()});else!e.is(":visible")&&!e.is(":animated")&&e.fadeIn().siblings(":visible").fadeOut()}},displaySlides:function(){if(typeof this.slides!="undefined"){var a=this.slides,b;for(b=0;b<
+a.entries.times.length;b++)if(this.media.currentTime>=a.entries.times[b].start&&this.media.currentTime<=a.entries.times[b].stop){this.showSlide(b);break}}},displayChapters:function(){var a;for(a=0;a<this.tracks.length;a++)if(this.tracks[a].kind=="chapters"&&this.tracks[a].isLoaded){this.drawChapters(this.tracks[a]);this.hasChapters=true;break}},drawChapters:function(a){var b=this,c,e,d=e=0;b.chapters.empty();for(c=0;c<a.entries.times.length;c++){e=a.entries.times[c].stop-a.entries.times[c].start;
+e=Math.floor(e/b.media.duration*100);if(e+d>100||c==a.entries.times.length-1&&e+d<100)e=100-d;b.chapters.append(f('<div class="mejs-chapter" rel="'+a.entries.times[c].start+'" style="left: '+d.toString()+"%;width: "+e.toString()+'%;"><div class="mejs-chapter-block'+(c==a.entries.times.length-1?" mejs-chapter-block-last":"")+'"><span class="ch-title">'+a.entries.text[c]+'</span><span class="ch-time">'+mejs.Utility.secondsToTimeCode(a.entries.times[c].start)+"&ndash;"+mejs.Utility.secondsToTimeCode(a.entries.times[c].stop)+
+"</span></div></div>"));d+=e}b.chapters.find("div.mejs-chapter").click(function(){b.media.setCurrentTime(parseFloat(f(this).attr("rel")));b.media.paused&&b.media.play()});b.chapters.show()}});mejs.language={codes:{af:"Afrikaans",sq:"Albanian",ar:"Arabic",be:"Belarusian",bg:"Bulgarian",ca:"Catalan",zh:"Chinese","zh-cn":"Chinese Simplified","zh-tw":"Chinese Traditional",hr:"Croatian",cs:"Czech",da:"Danish",nl:"Dutch",en:"English",et:"Estonian",fl:"Filipino",fi:"Finnish",fr:"French",gl:"Galician",de:"German",
+el:"Greek",ht:"Haitian Creole",iw:"Hebrew",hi:"Hindi",hu:"Hungarian",is:"Icelandic",id:"Indonesian",ga:"Irish",it:"Italian",ja:"Japanese",ko:"Korean",lv:"Latvian",lt:"Lithuanian",mk:"Macedonian",ms:"Malay",mt:"Maltese",no:"Norwegian",fa:"Persian",pl:"Polish",pt:"Portuguese",ro:"Romanian",ru:"Russian",sr:"Serbian",sk:"Slovak",sl:"Slovenian",es:"Spanish",sw:"Swahili",sv:"Swedish",tl:"Tagalog",th:"Thai",tr:"Turkish",uk:"Ukrainian",vi:"Vietnamese",cy:"Welsh",yi:"Yiddish"}};mejs.TrackFormatParser={webvtt:{pattern_timecode:/^((?:[0-9]{1,2}:)?[0-9]{2}:[0-9]{2}([,.][0-9]{1,3})?) --\> ((?:[0-9]{1,2}:)?[0-9]{2}:[0-9]{2}([,.][0-9]{3})?)(.*)$/,
+parse:function(a){var b=0;a=mejs.TrackFormatParser.split2(a,/\r?\n/);for(var c={text:[],times:[]},e,d,g;b<a.length;b++){if((e=this.pattern_timecode.exec(a[b]))&&b<a.length){if(b-1>=0&&a[b-1]!=="")g=a[b-1];b++;d=a[b];for(b++;a[b]!==""&&b<a.length;){d=d+"\n"+a[b];b++}d=f.trim(d).replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig,"<a href='$1' target='_blank'>$1</a>");c.text.push(d);c.times.push({identifier:g,start:mejs.Utility.convertSMPTEtoSeconds(e[1])===0?0.2:mejs.Utility.convertSMPTEtoSeconds(e[1]),
+stop:mejs.Utility.convertSMPTEtoSeconds(e[3]),settings:e[5]})}g=""}return c}},dfxp:{parse:function(a){a=f(a).filter("tt");var b=0;b=a.children("div").eq(0);var c=b.find("p");b=a.find("#"+b.attr("style"));var e,d;a={text:[],times:[]};if(b.length){d=b.removeAttr("id").get(0).attributes;if(d.length){e={};for(b=0;b<d.length;b++)e[d[b].name.split(":")[1]]=d[b].value}}for(b=0;b<c.length;b++){var g;d={start:null,stop:null,style:null};if(c.eq(b).attr("begin"))d.start=mejs.Utility.convertSMPTEtoSeconds(c.eq(b).attr("begin"));
+if(!d.start&&c.eq(b-1).attr("end"))d.start=mejs.Utility.convertSMPTEtoSeconds(c.eq(b-1).attr("end"));if(c.eq(b).attr("end"))d.stop=mejs.Utility.convertSMPTEtoSeconds(c.eq(b).attr("end"));if(!d.stop&&c.eq(b+1).attr("begin"))d.stop=mejs.Utility.convertSMPTEtoSeconds(c.eq(b+1).attr("begin"));if(e){g="";for(var k in e)g+=k+":"+e[k]+";"}if(g)d.style=g;if(d.start===0)d.start=0.2;a.times.push(d);d=f.trim(c.eq(b).html()).replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig,
+"<a href='$1' target='_blank'>$1</a>");a.text.push(d);if(a.times.start===0)a.times.start=2}return a}},split2:function(a,b){return a.split(b)}};if("x\n\ny".split(/\n/gi).length!=3)mejs.TrackFormatParser.split2=function(a,b){var c=[],e="",d;for(d=0;d<a.length;d++){e+=a.substring(d,d+1);if(b.test(e)){c.push(e.replace(b,""));e=""}}c.push(e);return c}})(mejs.$);
+(function(f){f.extend(mejs.MepDefaults,{contextMenuItems:[{render:function(a){if(typeof a.enterFullScreen=="undefined")return null;return a.isFullScreen?mejs.i18n.t("Turn off Fullscreen"):mejs.i18n.t("Go Fullscreen")},click:function(a){a.isFullScreen?a.exitFullScreen():a.enterFullScreen()}},{render:function(a){return a.media.muted?mejs.i18n.t("Unmute"):mejs.i18n.t("Mute")},click:function(a){a.media.muted?a.setMuted(false):a.setMuted(true)}},{isSeparator:true},{render:function(){return mejs.i18n.t("Download Video")},
+click:function(a){window.location.href=a.media.currentSrc}}]});f.extend(MediaElementPlayer.prototype,{buildcontextmenu:function(a){a.contextMenu=f('<div class="mejs-contextmenu"></div>').appendTo(f("body")).hide();a.container.bind("contextmenu",function(b){if(a.isContextMenuEnabled){b.preventDefault();a.renderContextMenu(b.clientX-1,b.clientY-1);return false}});a.container.bind("click",function(){a.contextMenu.hide()});a.contextMenu.bind("mouseleave",function(){a.startContextMenuTimer()})},cleancontextmenu:function(a){a.contextMenu.remove()},
+isContextMenuEnabled:true,enableContextMenu:function(){this.isContextMenuEnabled=true},disableContextMenu:function(){this.isContextMenuEnabled=false},contextMenuTimeout:null,startContextMenuTimer:function(){var a=this;a.killContextMenuTimer();a.contextMenuTimer=setTimeout(function(){a.hideContextMenu();a.killContextMenuTimer()},750)},killContextMenuTimer:function(){var a=this.contextMenuTimer;if(a!=null){clearTimeout(a);delete a}},hideContextMenu:function(){this.contextMenu.hide()},renderContextMenu:function(a,
+b){for(var c=this,e="",d=c.options.contextMenuItems,g=0,k=d.length;g<k;g++)if(d[g].isSeparator)e+='<div class="mejs-contextmenu-separator"></div>';else{var j=d[g].render(c);if(j!=null)e+='<div class="mejs-contextmenu-item" data-itemindex="'+g+'" id="element-'+Math.random()*1E6+'">'+j+"</div>"}c.contextMenu.empty().append(f(e)).css({top:b,left:a}).show();c.contextMenu.find(".mejs-contextmenu-item").each(function(){var m=f(this),q=parseInt(m.data("itemindex"),10),p=c.options.contextMenuItems[q];typeof p.show!=
+"undefined"&&p.show(m,c);m.click(function(){typeof p.click!="undefined"&&p.click(c);c.contextMenu.hide()})});setTimeout(function(){c.killControlsTimer("rev3")},100)}})})(mejs.$);
+(function(f){f.extend(mejs.MepDefaults,{postrollCloseText:mejs.i18n.t("Close")});f.extend(MediaElementPlayer.prototype,{buildpostroll:function(a,b,c){var e=this.container.find('link[rel="postroll"]').attr("href");if(typeof e!=="undefined"){a.postroll=f('<div class="mejs-postroll-layer mejs-layer"><a class="mejs-postroll-close" onclick="$(this).parent().hide();return false;">'+this.options.postrollCloseText+'</a><div class="mejs-postroll-layer-content"></div></div>').prependTo(c).hide();this.media.addEventListener("ended",
+function(){f.ajax({dataType:"html",url:e,success:function(d){c.find(".mejs-postroll-layer-content").html(d)}});a.postroll.show()},false)}}})})(mejs.$);
+
diff --git a/lib/mejs/mediaelement.js b/lib/mejs/mediaelement.js
new file mode 100755
index 00000000..5d4ee742
--- /dev/null
+++ b/lib/mejs/mediaelement.js
@@ -0,0 +1,1961 @@
+/*!
+* MediaElement.js
+* HTML5 <video> and <audio> shim and player
+* http://mediaelementjs.com/
+*
+* Creates a JavaScript object that mimics HTML5 MediaElement API
+* for browsers that don't understand HTML5 or can't play the provided codec
+* Can play MP4 (H.264), Ogg, WebM, FLV, WMV, WMA, ACC, and MP3
+*
+* Copyright 2010-2014, John Dyer (http://j.hn)
+* License: MIT
+*
+*/
+// Namespace
+var mejs = mejs || {};
+
+// version number
+mejs.version = '2.15.1'; 
+
+
+// player number (for missing, same id attr)
+mejs.meIndex = 0;
+
+// media types accepted by plugins
+mejs.plugins = {
+	silverlight: [
+		{version: [3,0], types: ['video/mp4','video/m4v','video/mov','video/wmv','audio/wma','audio/m4a','audio/mp3','audio/wav','audio/mpeg']}
+	],
+	flash: [
+		{version: [9,0,124], types: ['video/mp4','video/m4v','video/mov','video/flv','video/rtmp','video/x-flv','audio/flv','audio/x-flv','audio/mp3','audio/m4a','audio/mpeg', 'video/youtube', 'video/x-youtube', 'application/x-mpegURL']}
+		//,{version: [12,0], types: ['video/webm']} // for future reference (hopefully!)
+	],
+	youtube: [
+		{version: null, types: ['video/youtube', 'video/x-youtube', 'audio/youtube', 'audio/x-youtube']}
+	],
+	vimeo: [
+		{version: null, types: ['video/vimeo', 'video/x-vimeo']}
+	]
+};
+
+/*
+Utility methods
+*/
+mejs.Utility = {
+	encodeUrl: function(url) {
+		return encodeURIComponent(url); //.replace(/\?/gi,'%3F').replace(/=/gi,'%3D').replace(/&/gi,'%26');
+	},
+	escapeHTML: function(s) {
+		return s.toString().split('&').join('&amp;').split('<').join('&lt;').split('"').join('&quot;');
+	},
+	absolutizeUrl: function(url) {
+		var el = document.createElement('div');
+		el.innerHTML = '<a href="' + this.escapeHTML(url) + '">x</a>';
+		return el.firstChild.href;
+	},
+	getScriptPath: function(scriptNames) {
+		var
+			i = 0,
+			j,
+			codePath = '',
+			testname = '',
+			slashPos,
+			filenamePos,
+			scriptUrl,
+			scriptPath,			
+			scriptFilename,
+			scripts = document.getElementsByTagName('script'),
+			il = scripts.length,
+			jl = scriptNames.length;
+			
+		// go through all <script> tags
+		for (; i < il; i++) {
+			scriptUrl = scripts[i].src;
+			slashPos = scriptUrl.lastIndexOf('/');
+			if (slashPos > -1) {
+				scriptFilename = scriptUrl.substring(slashPos + 1);
+				scriptPath = scriptUrl.substring(0, slashPos + 1);
+			} else {
+				scriptFilename = scriptUrl;
+				scriptPath = '';			
+			}
+			
+			// see if any <script> tags have a file name that matches the 
+			for (j = 0; j < jl; j++) {
+				testname = scriptNames[j];
+				filenamePos = scriptFilename.indexOf(testname);
+				if (filenamePos > -1) {
+					codePath = scriptPath;
+					break;
+				}
+			}
+			
+			// if we found a path, then break and return it
+			if (codePath !== '') {
+				break;
+			}
+		}
+		
+		// send the best path back
+		return codePath;
+	},
+	secondsToTimeCode: function(time, forceHours, showFrameCount, fps) {
+		//add framecount
+		if (typeof showFrameCount == 'undefined') {
+		    showFrameCount=false;
+		} else if(typeof fps == 'undefined') {
+		    fps = 25;
+		}
+	
+		var hours = Math.floor(time / 3600) % 24,
+			minutes = Math.floor(time / 60) % 60,
+			seconds = Math.floor(time % 60),
+			frames = Math.floor(((time % 1)*fps).toFixed(3)),
+			result = 
+					( (forceHours || hours > 0) ? (hours < 10 ? '0' + hours : hours) + ':' : '')
+						+ (minutes < 10 ? '0' + minutes : minutes) + ':'
+						+ (seconds < 10 ? '0' + seconds : seconds)
+						+ ((showFrameCount) ? ':' + (frames < 10 ? '0' + frames : frames) : '');
+	
+		return result;
+	},
+	
+	timeCodeToSeconds: function(hh_mm_ss_ff, forceHours, showFrameCount, fps){
+		if (typeof showFrameCount == 'undefined') {
+		    showFrameCount=false;
+		} else if(typeof fps == 'undefined') {
+		    fps = 25;
+		}
+	
+		var tc_array = hh_mm_ss_ff.split(":"),
+			tc_hh = parseInt(tc_array[0], 10),
+			tc_mm = parseInt(tc_array[1], 10),
+			tc_ss = parseInt(tc_array[2], 10),
+			tc_ff = 0,
+			tc_in_seconds = 0;
+		
+		if (showFrameCount) {
+		    tc_ff = parseInt(tc_array[3])/fps;
+		}
+		
+		tc_in_seconds = ( tc_hh * 3600 ) + ( tc_mm * 60 ) + tc_ss + tc_ff;
+		
+		return tc_in_seconds;
+	},
+	
+
+	convertSMPTEtoSeconds: function (SMPTE) {
+		if (typeof SMPTE != 'string') 
+			return false;
+
+		SMPTE = SMPTE.replace(',', '.');
+		
+		var secs = 0,
+			decimalLen = (SMPTE.indexOf('.') != -1) ? SMPTE.split('.')[1].length : 0,
+			multiplier = 1;
+		
+		SMPTE = SMPTE.split(':').reverse();
+		
+		for (var i = 0; i < SMPTE.length; i++) {
+			multiplier = 1;
+			if (i > 0) {
+				multiplier = Math.pow(60, i); 
+			}
+			secs += Number(SMPTE[i]) * multiplier;
+		}
+		return Number(secs.toFixed(decimalLen));
+	},	
+	
+	/* borrowed from SWFObject: http://code.google.com/p/swfobject/source/browse/trunk/swfobject/src/swfobject.js#474 */
+	removeSwf: function(id) {
+		var obj = document.getElementById(id);
+		if (obj && /object|embed/i.test(obj.nodeName)) {
+			if (mejs.MediaFeatures.isIE) {
+				obj.style.display = "none";
+				(function(){
+					if (obj.readyState == 4) {
+						mejs.Utility.removeObjectInIE(id);
+					} else {
+						setTimeout(arguments.callee, 10);
+					}
+				})();
+			} else {
+				obj.parentNode.removeChild(obj);
+			}
+		}
+	},
+	removeObjectInIE: function(id) {
+		var obj = document.getElementById(id);
+		if (obj) {
+			for (var i in obj) {
+				if (typeof obj[i] == "function") {
+					obj[i] = null;
+				}
+			}
+			obj.parentNode.removeChild(obj);
+		}		
+	}
+};
+
+
+// Core detector, plugins are added below
+mejs.PluginDetector = {
+
+	// main public function to test a plug version number PluginDetector.hasPluginVersion('flash',[9,0,125]);
+	hasPluginVersion: function(plugin, v) {
+		var pv = this.plugins[plugin];
+		v[1] = v[1] || 0;
+		v[2] = v[2] || 0;
+		return (pv[0] > v[0] || (pv[0] == v[0] && pv[1] > v[1]) || (pv[0] == v[0] && pv[1] == v[1] && pv[2] >= v[2])) ? true : false;
+	},
+
+	// cached values
+	nav: window.navigator,
+	ua: window.navigator.userAgent.toLowerCase(),
+
+	// stored version numbers
+	plugins: [],
+
+	// runs detectPlugin() and stores the version number
+	addPlugin: function(p, pluginName, mimeType, activeX, axDetect) {
+		this.plugins[p] = this.detectPlugin(pluginName, mimeType, activeX, axDetect);
+	},
+
+	// get the version number from the mimetype (all but IE) or ActiveX (IE)
+	detectPlugin: function(pluginName, mimeType, activeX, axDetect) {
+
+		var version = [0,0,0],
+			description,
+			i,
+			ax;
+
+		// Firefox, Webkit, Opera
+		if (typeof(this.nav.plugins) != 'undefined' && typeof this.nav.plugins[pluginName] == 'object') {
+			description = this.nav.plugins[pluginName].description;
+			if (description && !(typeof this.nav.mimeTypes != 'undefined' && this.nav.mimeTypes[mimeType] && !this.nav.mimeTypes[mimeType].enabledPlugin)) {
+				version = description.replace(pluginName, '').replace(/^\s+/,'').replace(/\sr/gi,'.').split('.');
+				for (i=0; i<version.length; i++) {
+					version[i] = parseInt(version[i].match(/\d+/), 10);
+				}
+			}
+		// Internet Explorer / ActiveX
+		} else if (typeof(window.ActiveXObject) != 'undefined') {
+			try {
+				ax = new ActiveXObject(activeX);
+				if (ax) {
+					version = axDetect(ax);
+				}
+			}
+			catch (e) { }
+		}
+		return version;
+	}
+};
+
+// Add Flash detection
+mejs.PluginDetector.addPlugin('flash','Shockwave Flash','application/x-shockwave-flash','ShockwaveFlash.ShockwaveFlash', function(ax) {
+	// adapted from SWFObject
+	var version = [],
+		d = ax.GetVariable("$version");
+	if (d) {
+		d = d.split(" ")[1].split(",");
+		version = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
+	}
+	return version;
+});
+
+// Add Silverlight detection
+mejs.PluginDetector.addPlugin('silverlight','Silverlight Plug-In','application/x-silverlight-2','AgControl.AgControl', function (ax) {
+	// Silverlight cannot report its version number to IE
+	// but it does have a isVersionSupported function, so we have to loop through it to get a version number.
+	// adapted from http://www.silverlightversion.com/
+	var v = [0,0,0,0],
+		loopMatch = function(ax, v, i, n) {
+			while(ax.isVersionSupported(v[0]+ "."+ v[1] + "." + v[2] + "." + v[3])){
+				v[i]+=n;
+			}
+			v[i] -= n;
+		};
+	loopMatch(ax, v, 0, 1);
+	loopMatch(ax, v, 1, 1);
+	loopMatch(ax, v, 2, 10000); // the third place in the version number is usually 5 digits (4.0.xxxxx)
+	loopMatch(ax, v, 2, 1000);
+	loopMatch(ax, v, 2, 100);
+	loopMatch(ax, v, 2, 10);
+	loopMatch(ax, v, 2, 1);
+	loopMatch(ax, v, 3, 1);
+
+	return v;
+});
+// add adobe acrobat
+/*
+PluginDetector.addPlugin('acrobat','Adobe Acrobat','application/pdf','AcroPDF.PDF', function (ax) {
+	var version = [],
+		d = ax.GetVersions().split(',')[0].split('=')[1].split('.');
+
+	if (d) {
+		version = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
+	}
+	return version;
+});
+*/
+// necessary detection (fixes for <IE9)
+mejs.MediaFeatures = {
+	init: function() {
+		var
+			t = this,
+			d = document,
+			nav = mejs.PluginDetector.nav,
+			ua = mejs.PluginDetector.ua.toLowerCase(),
+			i,
+			v,
+			html5Elements = ['source','track','audio','video'];
+
+		// detect browsers (only the ones that have some kind of quirk we need to work around)
+		t.isiPad = (ua.match(/ipad/i) !== null);
+		t.isiPhone = (ua.match(/iphone/i) !== null);
+		t.isiOS = t.isiPhone || t.isiPad;
+		t.isAndroid = (ua.match(/android/i) !== null);
+		t.isBustedAndroid = (ua.match(/android 2\.[12]/) !== null);
+		t.isBustedNativeHTTPS = (location.protocol === 'https:' && (ua.match(/android [12]\./) !== null || ua.match(/macintosh.* version.* safari/) !== null));
+		t.isIE = (nav.appName.toLowerCase().indexOf("microsoft") != -1 || nav.appName.toLowerCase().match(/trident/gi) !== null);
+		t.isChrome = (ua.match(/chrome/gi) !== null);
+		t.isChromium = (ua.match(/chromium/gi) !== null);
+		t.isFirefox = (ua.match(/firefox/gi) !== null);
+		t.isWebkit = (ua.match(/webkit/gi) !== null);
+		t.isGecko = (ua.match(/gecko/gi) !== null) && !t.isWebkit && !t.isIE;
+		t.isOpera = (ua.match(/opera/gi) !== null);
+		t.hasTouch = ('ontouchstart' in window); //  && window.ontouchstart != null); // this breaks iOS 7
+		
+		// borrowed from Modernizr
+		t.svg = !! document.createElementNS &&
+				!! document.createElementNS('http://www.w3.org/2000/svg','svg').createSVGRect;
+
+		// create HTML5 media elements for IE before 9, get a <video> element for fullscreen detection
+		for (i=0; i<html5Elements.length; i++) {
+			v = document.createElement(html5Elements[i]);
+		}
+		
+		t.supportsMediaTag = (typeof v.canPlayType !== 'undefined' || t.isBustedAndroid);
+
+		// Fix for IE9 on Windows 7N / Windows 7KN (Media Player not installer)
+		try{
+			v.canPlayType("video/mp4");
+		}catch(e){
+			t.supportsMediaTag = false;
+		}
+
+		// detect native JavaScript fullscreen (Safari/Firefox only, Chrome still fails)
+		
+		// iOS
+		t.hasSemiNativeFullScreen = (typeof v.webkitEnterFullscreen !== 'undefined');
+		
+		// W3C
+		t.hasNativeFullscreen = (typeof v.requestFullscreen !== 'undefined');
+		
+		// webkit/firefox/IE11+
+		t.hasWebkitNativeFullScreen = (typeof v.webkitRequestFullScreen !== 'undefined');
+		t.hasMozNativeFullScreen = (typeof v.mozRequestFullScreen !== 'undefined');
+		t.hasMsNativeFullScreen = (typeof v.msRequestFullscreen !== 'undefined');
+		
+		t.hasTrueNativeFullScreen = (t.hasWebkitNativeFullScreen || t.hasMozNativeFullScreen || t.hasMsNativeFullScreen);
+		t.nativeFullScreenEnabled = t.hasTrueNativeFullScreen;
+		
+		// Enabled?
+		if (t.hasMozNativeFullScreen) {
+			t.nativeFullScreenEnabled = document.mozFullScreenEnabled;
+		} else if (t.hasMsNativeFullScreen) {
+			t.nativeFullScreenEnabled = document.msFullscreenEnabled;		
+		}
+		
+		if (t.isChrome) {
+			t.hasSemiNativeFullScreen = false;
+		}
+		
+		if (t.hasTrueNativeFullScreen) {
+			
+			t.fullScreenEventName = '';
+			if (t.hasWebkitNativeFullScreen) { 
+				t.fullScreenEventName = 'webkitfullscreenchange';
+				
+			} else if (t.hasMozNativeFullScreen) {
+				t.fullScreenEventName = 'mozfullscreenchange';
+				
+			} else if (t.hasMsNativeFullScreen) {
+				t.fullScreenEventName = 'MSFullscreenChange';
+			}
+			
+			t.isFullScreen = function() {
+				if (t.hasMozNativeFullScreen) {
+					return d.mozFullScreen;
+				
+				} else if (t.hasWebkitNativeFullScreen) {
+					return d.webkitIsFullScreen;
+				
+				} else if (t.hasMsNativeFullScreen) {
+					return d.msFullscreenElement !== null;
+				}
+			}
+					
+			t.requestFullScreen = function(el) {
+		
+				if (t.hasWebkitNativeFullScreen) {
+					el.webkitRequestFullScreen();
+					
+				} else if (t.hasMozNativeFullScreen) {
+					el.mozRequestFullScreen();
+
+				} else if (t.hasMsNativeFullScreen) {
+					el.msRequestFullscreen();
+
+				}
+			}
+			
+			t.cancelFullScreen = function() {				
+				if (t.hasWebkitNativeFullScreen) {
+					document.webkitCancelFullScreen();
+					
+				} else if (t.hasMozNativeFullScreen) {
+					document.mozCancelFullScreen();
+					
+				} else if (t.hasMsNativeFullScreen) {
+					document.msExitFullscreen();
+					
+				}
+			}	
+			
+		}
+		
+		
+		// OS X 10.5 can't do this even if it says it can :(
+		if (t.hasSemiNativeFullScreen && ua.match(/mac os x 10_5/i)) {
+			t.hasNativeFullScreen = false;
+			t.hasSemiNativeFullScreen = false;
+		}
+		
+	}
+};
+mejs.MediaFeatures.init();
+
+/*
+extension methods to <video> or <audio> object to bring it into parity with PluginMediaElement (see below)
+*/
+mejs.HtmlMediaElement = {
+	pluginType: 'native',
+	isFullScreen: false,
+
+	setCurrentTime: function (time) {
+		this.currentTime = time;
+	},
+
+	setMuted: function (muted) {
+		this.muted = muted;
+	},
+
+	setVolume: function (volume) {
+		this.volume = volume;
+	},
+
+	// for parity with the plugin versions
+	stop: function () {
+		this.pause();
+	},
+
+	// This can be a url string
+	// or an array [{src:'file.mp4',type:'video/mp4'},{src:'file.webm',type:'video/webm'}]
+	setSrc: function (url) {
+		
+		// Fix for IE9 which can't set .src when there are <source> elements. Awesome, right?
+		var 
+			existingSources = this.getElementsByTagName('source');
+		while (existingSources.length > 0){
+			this.removeChild(existingSources[0]);
+		}
+	
+		if (typeof url == 'string') {
+			this.src = url;
+		} else {
+			var i, media;
+
+			for (i=0; i<url.length; i++) {
+				media = url[i];
+				if (this.canPlayType(media.type)) {
+					this.src = media.src;
+					break;
+				}
+			}
+		}
+	},
+
+	setVideoSize: function (width, height) {
+		this.width = width;
+		this.height = height;
+	}
+};
+
+/*
+Mimics the <video/audio> element by calling Flash's External Interface or Silverlights [ScriptableMember]
+*/
+mejs.PluginMediaElement = function (pluginid, pluginType, mediaUrl) {
+	this.id = pluginid;
+	this.pluginType = pluginType;
+	this.src = mediaUrl;
+	this.events = {};
+	this.attributes = {};
+};
+
+// JavaScript values and ExternalInterface methods that match HTML5 video properties methods
+// http://www.adobe.com/livedocs/flash/9.0/ActionScriptLangRefV3/fl/video/FLVPlayback.html
+// http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html
+mejs.PluginMediaElement.prototype = {
+
+	// special
+	pluginElement: null,
+	pluginType: '',
+	isFullScreen: false,
+
+	// not implemented :(
+	playbackRate: -1,
+	defaultPlaybackRate: -1,
+	seekable: [],
+	played: [],
+
+	// HTML5 read-only properties
+	paused: true,
+	ended: false,
+	seeking: false,
+	duration: 0,
+	error: null,
+	tagName: '',
+
+	// HTML5 get/set properties, but only set (updated by event handlers)
+	muted: false,
+	volume: 1,
+	currentTime: 0,
+
+	// HTML5 methods
+	play: function () {
+		if (this.pluginApi != null) {
+			if (this.pluginType == 'youtube' || this.pluginType == 'vimeo') {
+				this.pluginApi.playVideo();
+			} else {
+				this.pluginApi.playMedia();
+			}
+			this.paused = false;
+		}
+	},
+	load: function () {
+		if (this.pluginApi != null) {
+			if (this.pluginType == 'youtube' || this.pluginType == 'vimeo') {
+			} else {
+				this.pluginApi.loadMedia();
+			}
+			
+			this.paused = false;
+		}
+	},
+	pause: function () {
+		if (this.pluginApi != null) {
+			if (this.pluginType == 'youtube' || this.pluginType == 'vimeo') {
+				this.pluginApi.pauseVideo();
+			} else {
+				this.pluginApi.pauseMedia();
+			}			
+			
+			
+			this.paused = true;
+		}
+	},
+	stop: function () {
+		if (this.pluginApi != null) {
+			if (this.pluginType == 'youtube' || this.pluginType == 'vimeo') {
+				this.pluginApi.stopVideo();
+			} else {
+				this.pluginApi.stopMedia();
+			}	
+			this.paused = true;
+		}
+	},
+	canPlayType: function(type) {
+		var i,
+			j,
+			pluginInfo,
+			pluginVersions = mejs.plugins[this.pluginType];
+
+		for (i=0; i<pluginVersions.length; i++) {
+			pluginInfo = pluginVersions[i];
+
+			// test if user has the correct plugin version
+			if (mejs.PluginDetector.hasPluginVersion(this.pluginType, pluginInfo.version)) {
+
+				// test for plugin playback types
+				for (j=0; j<pluginInfo.types.length; j++) {
+					// find plugin that can play the type
+					if (type == pluginInfo.types[j]) {
+						return 'probably';
+					}
+				}
+			}
+		}
+
+		return '';
+	},
+	
+	positionFullscreenButton: function(x,y,visibleAndAbove) {
+		if (this.pluginApi != null && this.pluginApi.positionFullscreenButton) {
+			this.pluginApi.positionFullscreenButton(Math.floor(x),Math.floor(y),visibleAndAbove);
+		}
+	},
+	
+	hideFullscreenButton: function() {
+		if (this.pluginApi != null && this.pluginApi.hideFullscreenButton) {
+			this.pluginApi.hideFullscreenButton();
+		}		
+	},	
+	
+
+	// custom methods since not all JavaScript implementations support get/set
+
+	// This can be a url string
+	// or an array [{src:'file.mp4',type:'video/mp4'},{src:'file.webm',type:'video/webm'}]
+	setSrc: function (url) {
+		if (typeof url == 'string') {
+			this.pluginApi.setSrc(mejs.Utility.absolutizeUrl(url));
+			this.src = mejs.Utility.absolutizeUrl(url);
+		} else {
+			var i, media;
+
+			for (i=0; i<url.length; i++) {
+				media = url[i];
+				if (this.canPlayType(media.type)) {
+					this.pluginApi.setSrc(mejs.Utility.absolutizeUrl(media.src));
+					this.src = mejs.Utility.absolutizeUrl(url);
+					break;
+				}
+			}
+		}
+
+	},
+	setCurrentTime: function (time) {
+		if (this.pluginApi != null) {
+			if (this.pluginType == 'youtube' || this.pluginType == 'vimeo') {
+				this.pluginApi.seekTo(time);
+			} else {
+				this.pluginApi.setCurrentTime(time);
+			}				
+			
+			
+			
+			this.currentTime = time;
+		}
+	},
+	setVolume: function (volume) {
+		if (this.pluginApi != null) {
+			// same on YouTube and MEjs
+			if (this.pluginType == 'youtube') {
+				this.pluginApi.setVolume(volume * 100);
+			} else {
+				this.pluginApi.setVolume(volume);
+			}
+			this.volume = volume;
+		}
+	},
+	setMuted: function (muted) {
+		if (this.pluginApi != null) {
+			if (this.pluginType == 'youtube') {
+				if (muted) {
+					this.pluginApi.mute();
+				} else {
+					this.pluginApi.unMute();
+				}
+				this.muted = muted;
+				this.dispatchEvent('volumechange');
+			} else {
+				this.pluginApi.setMuted(muted);
+			}
+			this.muted = muted;
+		}
+	},
+
+	// additional non-HTML5 methods
+	setVideoSize: function (width, height) {
+		
+		//if (this.pluginType == 'flash' || this.pluginType == 'silverlight') {
+			if (this.pluginElement && this.pluginElement.style) {
+				this.pluginElement.style.width = width + 'px';
+				this.pluginElement.style.height = height + 'px';
+			}
+			if (this.pluginApi != null && this.pluginApi.setVideoSize) {
+				this.pluginApi.setVideoSize(width, height);
+			}
+		//}
+	},
+
+	setFullscreen: function (fullscreen) {
+		if (this.pluginApi != null && this.pluginApi.setFullscreen) {
+			this.pluginApi.setFullscreen(fullscreen);
+		}
+	},
+	
+	enterFullScreen: function() {
+		if (this.pluginApi != null && this.pluginApi.setFullscreen) {
+			this.setFullscreen(true);
+		}		
+		
+	},
+	
+	exitFullScreen: function() {
+		if (this.pluginApi != null && this.pluginApi.setFullscreen) {
+			this.setFullscreen(false);
+		}
+	},	
+
+	// start: fake events
+	addEventListener: function (eventName, callback, bubble) {
+		this.events[eventName] = this.events[eventName] || [];
+		this.events[eventName].push(callback);
+	},
+	removeEventListener: function (eventName, callback) {
+		if (!eventName) { this.events = {}; return true; }
+		var callbacks = this.events[eventName];
+		if (!callbacks) return true;
+		if (!callback) { this.events[eventName] = []; return true; }
+		for (var i = 0; i < callbacks.length; i++) {
+			if (callbacks[i] === callback) {
+				this.events[eventName].splice(i, 1);
+				return true;
+			}
+		}
+		return false;
+	},	
+	dispatchEvent: function (eventName) {
+		var i,
+			args,
+			callbacks = this.events[eventName];
+
+		if (callbacks) {
+			args = Array.prototype.slice.call(arguments, 1);
+			for (i = 0; i < callbacks.length; i++) {
+				callbacks[i].apply(null, args);
+			}
+		}
+	},
+	// end: fake events
+	
+	// fake DOM attribute methods
+	hasAttribute: function(name){
+		return (name in this.attributes);  
+	},
+	removeAttribute: function(name){
+		delete this.attributes[name];
+	},
+	getAttribute: function(name){
+		if (this.hasAttribute(name)) {
+			return this.attributes[name];
+		}
+		return '';
+	},
+	setAttribute: function(name, value){
+		this.attributes[name] = value;
+	},
+
+	remove: function() {
+		mejs.Utility.removeSwf(this.pluginElement.id);
+		mejs.MediaPluginBridge.unregisterPluginElement(this.pluginElement.id);
+	}
+};
+
+// Handles calls from Flash/Silverlight and reports them as native <video/audio> events and properties
+mejs.MediaPluginBridge = {
+
+	pluginMediaElements:{},
+	htmlMediaElements:{},
+
+	registerPluginElement: function (id, pluginMediaElement, htmlMediaElement) {
+		this.pluginMediaElements[id] = pluginMediaElement;
+		this.htmlMediaElements[id] = htmlMediaElement;
+	},
+
+	unregisterPluginElement: function (id) {
+		delete this.pluginMediaElements[id];
+		delete this.htmlMediaElements[id];
+	},
+
+	// when Flash/Silverlight is ready, it calls out to this method
+	initPlugin: function (id) {
+
+		var pluginMediaElement = this.pluginMediaElements[id],
+			htmlMediaElement = this.htmlMediaElements[id];
+
+		if (pluginMediaElement) {
+			// find the javascript bridge
+			switch (pluginMediaElement.pluginType) {
+				case "flash":
+					pluginMediaElement.pluginElement = pluginMediaElement.pluginApi = document.getElementById(id);
+					break;
+				case "silverlight":
+					pluginMediaElement.pluginElement = document.getElementById(pluginMediaElement.id);
+					pluginMediaElement.pluginApi = pluginMediaElement.pluginElement.Content.MediaElementJS;
+					break;
+			}
+	
+			if (pluginMediaElement.pluginApi != null && pluginMediaElement.success) {
+				pluginMediaElement.success(pluginMediaElement, htmlMediaElement);
+			}
+		}
+	},
+
+	// receives events from Flash/Silverlight and sends them out as HTML5 media events
+	// http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html
+	fireEvent: function (id, eventName, values) {
+
+		var
+			e,
+			i,
+			bufferedTime,
+			pluginMediaElement = this.pluginMediaElements[id];
+
+		if(!pluginMediaElement){
+            return;
+        }
+        
+		// fake event object to mimic real HTML media event.
+		e = {
+			type: eventName,
+			target: pluginMediaElement
+		};
+
+		// attach all values to element and event object
+		for (i in values) {
+			pluginMediaElement[i] = values[i];
+			e[i] = values[i];
+		}
+
+		// fake the newer W3C buffered TimeRange (loaded and total have been removed)
+		bufferedTime = values.bufferedTime || 0;
+
+		e.target.buffered = e.buffered = {
+			start: function(index) {
+				return 0;
+			},
+			end: function (index) {
+				return bufferedTime;
+			},
+			length: 1
+		};
+
+		pluginMediaElement.dispatchEvent(e.type, e);
+	}
+};
+
+/*
+Default options
+*/
+mejs.MediaElementDefaults = {
+	// allows testing on HTML5, flash, silverlight
+	// auto: attempts to detect what the browser can do
+	// auto_plugin: prefer plugins and then attempt native HTML5
+	// native: forces HTML5 playback
+	// shim: disallows HTML5, will attempt either Flash or Silverlight
+	// none: forces fallback view
+	mode: 'auto',
+	// remove or reorder to change plugin priority and availability
+	plugins: ['flash','silverlight','youtube','vimeo'],
+	// shows debug errors on screen
+	enablePluginDebug: false,
+	// use plugin for browsers that have trouble with Basic Authentication on HTTPS sites
+	httpsBasicAuthSite: false,
+	// overrides the type specified, useful for dynamic instantiation
+	type: '',
+	// path to Flash and Silverlight plugins
+	pluginPath: mejs.Utility.getScriptPath(['mediaelement.js','mediaelement.min.js','mediaelement-and-player.js','mediaelement-and-player.min.js']),
+	// name of flash file
+	flashName: 'flashmediaelement.swf',
+	// streamer for RTMP streaming
+	flashStreamer: '',
+	// turns on the smoothing filter in Flash
+	enablePluginSmoothing: false,
+	// enabled pseudo-streaming (seek) on .mp4 files
+	enablePseudoStreaming: false,
+	// start query parameter sent to server for pseudo-streaming
+	pseudoStreamingStartQueryParam: 'start',
+	// name of silverlight file
+	silverlightName: 'silverlightmediaelement.xap',
+	// default if the <video width> is not specified
+	defaultVideoWidth: 480,
+	// default if the <video height> is not specified
+	defaultVideoHeight: 270,
+	// overrides <video width>
+	pluginWidth: -1,
+	// overrides <video height>
+	pluginHeight: -1,
+	// additional plugin variables in 'key=value' form
+	pluginVars: [],	
+	// rate in milliseconds for Flash and Silverlight to fire the timeupdate event
+	// larger number is less accurate, but less strain on plugin->JavaScript bridge
+	timerRate: 250,
+	// initial volume for player
+	startVolume: 0.8,
+	success: function () { },
+	error: function () { }
+};
+
+/*
+Determines if a browser supports the <video> or <audio> element
+and returns either the native element or a Flash/Silverlight version that
+mimics HTML5 MediaElement
+*/
+mejs.MediaElement = function (el, o) {
+	return mejs.HtmlMediaElementShim.create(el,o);
+};
+
+mejs.HtmlMediaElementShim = {
+
+	create: function(el, o) {
+		var
+			options = mejs.MediaElementDefaults,
+			htmlMediaElement = (typeof(el) == 'string') ? document.getElementById(el) : el,
+			tagName = htmlMediaElement.tagName.toLowerCase(),
+			isMediaTag = (tagName === 'audio' || tagName === 'video'),
+			src = (isMediaTag) ? htmlMediaElement.getAttribute('src') : htmlMediaElement.getAttribute('href'),
+			poster = htmlMediaElement.getAttribute('poster'),
+			autoplay =  htmlMediaElement.getAttribute('autoplay'),
+			preload =  htmlMediaElement.getAttribute('preload'),
+			controls =  htmlMediaElement.getAttribute('controls'),
+			playback,
+			prop;
+
+		// extend options
+		for (prop in o) {
+			options[prop] = o[prop];
+		}
+
+		// clean up attributes
+		src = 		(typeof src == 'undefined' 	|| src === null || src == '') ? null : src;		
+		poster =	(typeof poster == 'undefined' 	|| poster === null) ? '' : poster;
+		preload = 	(typeof preload == 'undefined' 	|| preload === null || preload === 'false') ? 'none' : preload;
+		autoplay = 	!(typeof autoplay == 'undefined' || autoplay === null || autoplay === 'false');
+		controls = 	!(typeof controls == 'undefined' || controls === null || controls === 'false');
+
+		// test for HTML5 and plugin capabilities
+		playback = this.determinePlayback(htmlMediaElement, options, mejs.MediaFeatures.supportsMediaTag, isMediaTag, src);
+		playback.url = (playback.url !== null) ? mejs.Utility.absolutizeUrl(playback.url) : '';
+
+		if (playback.method == 'native') {
+			// second fix for android
+			if (mejs.MediaFeatures.isBustedAndroid) {
+				htmlMediaElement.src = playback.url;
+				htmlMediaElement.addEventListener('click', function() {
+					htmlMediaElement.play();
+				}, false);
+			}
+		
+			// add methods to native HTMLMediaElement
+			return this.updateNative(playback, options, autoplay, preload);
+		} else if (playback.method !== '') {
+			// create plugin to mimic HTMLMediaElement
+			
+			return this.createPlugin( playback,  options, poster, autoplay, preload, controls);
+		} else {
+			// boo, no HTML5, no Flash, no Silverlight.
+			this.createErrorMessage( playback, options, poster );
+			
+			return this;
+		}
+	},
+	
+	determinePlayback: function(htmlMediaElement, options, supportsMediaTag, isMediaTag, src) {
+		var
+			mediaFiles = [],
+			i,
+			j,
+			k,
+			l,
+			n,
+			type,
+			result = { method: '', url: '', htmlMediaElement: htmlMediaElement, isVideo: (htmlMediaElement.tagName.toLowerCase() != 'audio')},
+			pluginName,
+			pluginVersions,
+			pluginInfo,
+			dummy,
+			media;
+			
+		// STEP 1: Get URL and type from <video src> or <source src>
+
+		// supplied type overrides <video type> and <source type>
+		if (typeof options.type != 'undefined' && options.type !== '') {
+			
+			// accept either string or array of types
+			if (typeof options.type == 'string') {
+				mediaFiles.push({type:options.type, url:src});
+			} else {
+				
+				for (i=0; i<options.type.length; i++) {
+					mediaFiles.push({type:options.type[i], url:src});
+				}
+			}
+
+		// test for src attribute first
+		} else if (src !== null) {
+			type = this.formatType(src, htmlMediaElement.getAttribute('type'));
+			mediaFiles.push({type:type, url:src});
+
+		// then test for <source> elements
+		} else {
+			// test <source> types to see if they are usable
+			for (i = 0; i < htmlMediaElement.childNodes.length; i++) {
+				n = htmlMediaElement.childNodes[i];
+				if (n.nodeType == 1 && n.tagName.toLowerCase() == 'source') {
+					src = n.getAttribute('src');
+					type = this.formatType(src, n.getAttribute('type'));
+					media = n.getAttribute('media');
+
+					if (!media || !window.matchMedia || (window.matchMedia && window.matchMedia(media).matches)) {
+						mediaFiles.push({type:type, url:src});
+					}
+				}
+			}
+		}
+		
+		// in the case of dynamicly created players
+		// check for audio types
+		if (!isMediaTag && mediaFiles.length > 0 && mediaFiles[0].url !== null && this.getTypeFromFile(mediaFiles[0].url).indexOf('audio') > -1) {
+			result.isVideo = false;
+		}
+		
+
+		// STEP 2: Test for playback method
+		
+		// special case for Android which sadly doesn't implement the canPlayType function (always returns '')
+		if (mejs.MediaFeatures.isBustedAndroid) {
+			htmlMediaElement.canPlayType = function(type) {
+				return (type.match(/video\/(mp4|m4v)/gi) !== null) ? 'maybe' : '';
+			};
+		}		
+		
+		// special case for Chromium to specify natively supported video codecs (i.e. WebM and Theora) 
+		if (mejs.MediaFeatures.isChromium) { 
+			htmlMediaElement.canPlayType = function(type) { 
+				return (type.match(/video\/(webm|ogv|ogg)/gi) !== null) ? 'maybe' : ''; 
+			}; 
+		}
+
+		// test for native playback first
+		if (supportsMediaTag && (options.mode === 'auto' || options.mode === 'auto_plugin' || options.mode === 'native')  && !(mejs.MediaFeatures.isBustedNativeHTTPS && options.httpsBasicAuthSite === true)) {
+						
+			if (!isMediaTag) {
+
+				// create a real HTML5 Media Element 
+				dummy = document.createElement( result.isVideo ? 'video' : 'audio');			
+				htmlMediaElement.parentNode.insertBefore(dummy, htmlMediaElement);
+				htmlMediaElement.style.display = 'none';
+				
+				// use this one from now on
+				result.htmlMediaElement = htmlMediaElement = dummy;
+			}
+				
+			for (i=0; i<mediaFiles.length; i++) {
+				// normal check
+				if (mediaFiles[i].type == "video/m3u8" || htmlMediaElement.canPlayType(mediaFiles[i].type).replace(/no/, '') !== ''
+					// special case for Mac/Safari 5.0.3 which answers '' to canPlayType('audio/mp3') but 'maybe' to canPlayType('audio/mpeg')
+					|| htmlMediaElement.canPlayType(mediaFiles[i].type.replace(/mp3/,'mpeg')).replace(/no/, '') !== ''
+					// special case for m4a supported by detecting mp4 support
+					|| htmlMediaElement.canPlayType(mediaFiles[i].type.replace(/m4a/,'mp4')).replace(/no/, '') !== '') {
+					result.method = 'native';
+					result.url = mediaFiles[i].url;
+					break;
+				}
+			}			
+			
+			if (result.method === 'native') {
+				if (result.url !== null) {
+					htmlMediaElement.src = result.url;
+				}
+			
+				// if `auto_plugin` mode, then cache the native result but try plugins.
+				if (options.mode !== 'auto_plugin') {
+					return result;
+				}
+			}
+		}
+
+		// if native playback didn't work, then test plugins
+		if (options.mode === 'auto' || options.mode === 'auto_plugin' || options.mode === 'shim') {
+			for (i=0; i<mediaFiles.length; i++) {
+				type = mediaFiles[i].type;
+
+				// test all plugins in order of preference [silverlight, flash]
+				for (j=0; j<options.plugins.length; j++) {
+
+					pluginName = options.plugins[j];
+			
+					// test version of plugin (for future features)
+					pluginVersions = mejs.plugins[pluginName];				
+					
+					for (k=0; k<pluginVersions.length; k++) {
+						pluginInfo = pluginVersions[k];
+					
+						// test if user has the correct plugin version
+						
+						// for youtube/vimeo
+						if (pluginInfo.version == null || 
+							
+							mejs.PluginDetector.hasPluginVersion(pluginName, pluginInfo.version)) {
+
+							// test for plugin playback types
+							for (l=0; l<pluginInfo.types.length; l++) {
+								// find plugin that can play the type
+								if (type == pluginInfo.types[l]) {
+									result.method = pluginName;
+									result.url = mediaFiles[i].url;
+									return result;
+								}
+							}
+						}
+					}
+				}
+			}
+		}
+		
+		// at this point, being in 'auto_plugin' mode implies that we tried plugins but failed.
+		// if we have native support then return that.
+		if (options.mode === 'auto_plugin' && result.method === 'native') {
+			return result;
+		}
+
+		// what if there's nothing to play? just grab the first available
+		if (result.method === '' && mediaFiles.length > 0) {
+			result.url = mediaFiles[0].url;
+		}
+
+		return result;
+	},
+
+	formatType: function(url, type) {
+		var ext;
+
+		// if no type is supplied, fake it with the extension
+		if (url && !type) {		
+			return this.getTypeFromFile(url);
+		} else {
+			// only return the mime part of the type in case the attribute contains the codec
+			// see http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#the-source-element
+			// `video/mp4; codecs="avc1.42E01E, mp4a.40.2"` becomes `video/mp4`
+			
+			if (type && ~type.indexOf(';')) {
+				return type.substr(0, type.indexOf(';')); 
+			} else {
+				return type;
+			}
+		}
+	},
+	
+	getTypeFromFile: function(url) {
+		url = url.split('?')[0];
+		var ext = url.substring(url.lastIndexOf('.') + 1).toLowerCase();
+		return (/(mp4|m4v|ogg|ogv|m3u8|webm|webmv|flv|wmv|mpeg|mov)/gi.test(ext) ? 'video' : 'audio') + '/' + this.getTypeFromExtension(ext);
+	},
+	
+	getTypeFromExtension: function(ext) {
+		
+		switch (ext) {
+			case 'mp4':
+			case 'm4v':
+			case 'm4a':
+				return 'mp4';
+			case 'webm':
+			case 'webma':
+			case 'webmv':	
+				return 'webm';
+			case 'ogg':
+			case 'oga':
+			case 'ogv':	
+				return 'ogg';
+			default:
+				return ext;
+		}
+	},
+
+	createErrorMessage: function(playback, options, poster) {
+		var 
+			htmlMediaElement = playback.htmlMediaElement,
+			errorContainer = document.createElement('div');
+			
+		errorContainer.className = 'me-cannotplay';
+
+		try {
+			errorContainer.style.width = htmlMediaElement.width + 'px';
+			errorContainer.style.height = htmlMediaElement.height + 'px';
+		} catch (e) {}
+
+    if (options.customError) {
+      errorContainer.innerHTML = options.customError;
+    } else {
+      errorContainer.innerHTML = (poster !== '') ?
+        '<a href="' + playback.url + '"><img src="' + poster + '" width="100%" height="100%" /></a>' :
+        '<a href="' + playback.url + '"><span>' + mejs.i18n.t('Download File') + '</span></a>';
+    }
+
+		htmlMediaElement.parentNode.insertBefore(errorContainer, htmlMediaElement);
+		htmlMediaElement.style.display = 'none';
+
+		options.error(htmlMediaElement);
+	},
+
+	createPlugin:function(playback, options, poster, autoplay, preload, controls) {
+		var 
+			htmlMediaElement = playback.htmlMediaElement,
+			width = 1,
+			height = 1,
+			pluginid = 'me_' + playback.method + '_' + (mejs.meIndex++),
+			pluginMediaElement = new mejs.PluginMediaElement(pluginid, playback.method, playback.url),
+			container = document.createElement('div'),
+			specialIEContainer,
+			node,
+			initVars;
+
+		// copy tagName from html media element
+		pluginMediaElement.tagName = htmlMediaElement.tagName
+
+		// copy attributes from html media element to plugin media element
+		for (var i = 0; i < htmlMediaElement.attributes.length; i++) {
+			var attribute = htmlMediaElement.attributes[i];
+			if (attribute.specified == true) {
+				pluginMediaElement.setAttribute(attribute.name, attribute.value);
+			}
+		}
+
+		// check for placement inside a <p> tag (sometimes WYSIWYG editors do this)
+		node = htmlMediaElement.parentNode;
+		while (node !== null && node.tagName.toLowerCase() !== 'body' && node.parentNode != null) {
+			if (node.parentNode.tagName.toLowerCase() === 'p') {
+				node.parentNode.parentNode.insertBefore(node, node.parentNode);
+				break;
+			}
+			node = node.parentNode;
+		}
+
+		if (playback.isVideo) {
+			width = (options.pluginWidth > 0) ? options.pluginWidth : (options.videoWidth > 0) ? options.videoWidth : (htmlMediaElement.getAttribute('width') !== null) ? htmlMediaElement.getAttribute('width') : options.defaultVideoWidth;
+			height = (options.pluginHeight > 0) ? options.pluginHeight : (options.videoHeight > 0) ? options.videoHeight : (htmlMediaElement.getAttribute('height') !== null) ? htmlMediaElement.getAttribute('height') : options.defaultVideoHeight;
+		
+			// in case of '%' make sure it's encoded
+			width = mejs.Utility.encodeUrl(width);
+			height = mejs.Utility.encodeUrl(height);
+		
+		} else {
+			if (options.enablePluginDebug) {
+				width = 320;
+				height = 240;
+			}
+		}
+
+		// register plugin
+		pluginMediaElement.success = options.success;
+		mejs.MediaPluginBridge.registerPluginElement(pluginid, pluginMediaElement, htmlMediaElement);
+
+		// add container (must be added to DOM before inserting HTML for IE)
+		container.className = 'me-plugin';
+		container.id = pluginid + '_container';
+		
+		if (playback.isVideo) {
+				htmlMediaElement.parentNode.insertBefore(container, htmlMediaElement);
+		} else {
+				document.body.insertBefore(container, document.body.childNodes[0]);
+		}
+
+		// flash/silverlight vars
+		initVars = [
+			'id=' + pluginid,
+			'isvideo=' + ((playback.isVideo) ? "true" : "false"),
+			'autoplay=' + ((autoplay) ? "true" : "false"),
+			'preload=' + preload,
+			'width=' + width,
+			'startvolume=' + options.startVolume,
+			'timerrate=' + options.timerRate,
+			'flashstreamer=' + options.flashStreamer,
+			'height=' + height,
+      'pseudostreamstart=' + options.pseudoStreamingStartQueryParam];
+
+		if (playback.url !== null) {
+			if (playback.method == 'flash') {
+				initVars.push('file=' + mejs.Utility.encodeUrl(playback.url));
+			} else {
+				initVars.push('file=' + playback.url);
+			}
+		}
+		if (options.enablePluginDebug) {
+			initVars.push('debug=true');
+		}
+		if (options.enablePluginSmoothing) {
+			initVars.push('smoothing=true');
+		}
+    if (options.enablePseudoStreaming) {
+      initVars.push('pseudostreaming=true');
+    }
+		if (controls) {
+			initVars.push('controls=true'); // shows controls in the plugin if desired
+		}
+		if (options.pluginVars) {
+			initVars = initVars.concat(options.pluginVars);
+		}		
+
+		switch (playback.method) {
+			case 'silverlight':
+				container.innerHTML =
+'<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" id="' + pluginid + '" name="' + pluginid + '" width="' + width + '" height="' + height + '" class="mejs-shim">' +
+'<param name="initParams" value="' + initVars.join(',') + '" />' +
+'<param name="windowless" value="true" />' +
+'<param name="background" value="black" />' +
+'<param name="minRuntimeVersion" value="3.0.0.0" />' +
+'<param name="autoUpgrade" value="true" />' +
+'<param name="source" value="' + options.pluginPath + options.silverlightName + '" />' +
+'</object>';
+					break;
+
+			case 'flash':
+
+				if (mejs.MediaFeatures.isIE) {
+					specialIEContainer = document.createElement('div');
+					container.appendChild(specialIEContainer);
+					specialIEContainer.outerHTML =
+'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" ' +
+'id="' + pluginid + '" width="' + width + '" height="' + height + '" class="mejs-shim">' +
+'<param name="movie" value="' + options.pluginPath + options.flashName + '?x=' + (new Date()) + '" />' +
+'<param name="flashvars" value="' + initVars.join('&amp;') + '" />' +
+'<param name="quality" value="high" />' +
+'<param name="bgcolor" value="#000000" />' +
+'<param name="wmode" value="transparent" />' +
+'<param name="allowScriptAccess" value="always" />' +
+'<param name="allowFullScreen" value="true" />' +
+'<param name="scale" value="default" />' + 
+'</object>';
+
+				} else {
+
+					container.innerHTML =
+'<embed id="' + pluginid + '" name="' + pluginid + '" ' +
+'play="true" ' +
+'loop="false" ' +
+'quality="high" ' +
+'bgcolor="#000000" ' +
+'wmode="transparent" ' +
+'allowScriptAccess="always" ' +
+'allowFullScreen="true" ' +
+'type="application/x-shockwave-flash" pluginspage="//www.macromedia.com/go/getflashplayer" ' +
+'src="' + options.pluginPath + options.flashName + '" ' +
+'flashvars="' + initVars.join('&') + '" ' +
+'width="' + width + '" ' +
+'height="' + height + '" ' +
+'scale="default"' + 
+'class="mejs-shim"></embed>';
+				}
+				break;
+			
+			case 'youtube':
+			
+				
+				var videoId;
+				// youtu.be url from share button
+				if (playback.url.lastIndexOf("youtu.be") != -1) {
+					videoId = playback.url.substr(playback.url.lastIndexOf('/')+1);
+					if (videoId.indexOf('?') != -1) {
+						videoId = videoId.substr(0, videoId.indexOf('?'));
+					}
+				}
+				else {
+					videoId = playback.url.substr(playback.url.lastIndexOf('=')+1);
+				}
+				youtubeSettings = {
+						container: container,
+						containerId: container.id,
+						pluginMediaElement: pluginMediaElement,
+						pluginId: pluginid,
+						videoId: videoId,
+						height: height,
+						width: width	
+					};				
+				
+				if (mejs.PluginDetector.hasPluginVersion('flash', [10,0,0]) ) {
+					mejs.YouTubeApi.createFlash(youtubeSettings);
+				} else {
+					mejs.YouTubeApi.enqueueIframe(youtubeSettings);		
+				}
+				
+				break;
+			
+			// DEMO Code. Does NOT work.
+			case 'vimeo':
+				var player_id = pluginid + "_player";
+				pluginMediaElement.vimeoid = playback.url.substr(playback.url.lastIndexOf('/')+1);
+				
+				container.innerHTML ='<iframe src="//player.vimeo.com/video/' + pluginMediaElement.vimeoid + '?api=1&portrait=0&byline=0&title=0&player_id=' + player_id + '" width="' + width +'" height="' + height +'" frameborder="0" class="mejs-shim" id="' + player_id + '"></iframe>';
+				if (typeof($f) == 'function') { // froogaloop available
+					var player = $f(container.childNodes[0]);
+					player.addEvent('ready', function() {
+						$.extend( player, {
+							playVideo: function() {
+								player.api( 'play' );
+							}, 
+							stopVideo: function() {
+								player.api( 'unload' );
+							}, 
+							pauseVideo: function() {
+								player.api( 'pause' );
+							}, 
+							seekTo: function( seconds ) {
+								player.api( 'seekTo', seconds );
+							}, 
+							setVolume: function( volume ) {
+								player.api( 'setVolume', volume );
+							}, 
+							setMuted: function( muted ) {
+								if( muted ) {
+									player.lastVolume = player.api( 'getVolume' );
+									player.api( 'setVolume', 0 );
+								} else {
+									player.api( 'setVolume', player.lastVolume );
+									delete player.lastVolume;
+								}
+							}
+						});
+
+						function createEvent(player, pluginMediaElement, eventName, e) {
+							var obj = {
+								type: eventName,
+								target: pluginMediaElement
+							};
+							if (eventName == 'timeupdate') {
+								pluginMediaElement.currentTime = obj.currentTime = e.seconds;
+								pluginMediaElement.duration = obj.duration = e.duration;
+							}
+							pluginMediaElement.dispatchEvent(obj.type, obj);
+						}
+
+						player.addEvent('play', function() {
+							createEvent(player, pluginMediaElement, 'play');
+							createEvent(player, pluginMediaElement, 'playing');
+						});
+
+						player.addEvent('pause', function() {
+							createEvent(player, pluginMediaElement, 'pause');
+						});
+
+						player.addEvent('finish', function() {
+							createEvent(player, pluginMediaElement, 'ended');
+						});
+
+						player.addEvent('playProgress', function(e) {
+							createEvent(player, pluginMediaElement, 'timeupdate', e);
+						});
+
+						pluginMediaElement.pluginElement = container;
+						pluginMediaElement.pluginApi = player;
+
+						// init mejs
+						mejs.MediaPluginBridge.initPlugin(pluginid);
+					});
+				}
+				else {
+					console.warn("You need to include froogaloop for vimeo to work");
+				}
+				break;			
+		}
+		// hide original element
+		htmlMediaElement.style.display = 'none';
+		// prevent browser from autoplaying when using a plugin
+		htmlMediaElement.removeAttribute('autoplay');
+
+		// FYI: options.success will be fired by the MediaPluginBridge
+		
+		return pluginMediaElement;
+	},
+
+	updateNative: function(playback, options, autoplay, preload) {
+		
+		var htmlMediaElement = playback.htmlMediaElement,
+			m;
+		
+		
+		// add methods to video object to bring it into parity with Flash Object
+		for (m in mejs.HtmlMediaElement) {
+			htmlMediaElement[m] = mejs.HtmlMediaElement[m];
+		}
+
+		/*
+		Chrome now supports preload="none"
+		if (mejs.MediaFeatures.isChrome) {
+		
+			// special case to enforce preload attribute (Chrome doesn't respect this)
+			if (preload === 'none' && !autoplay) {
+			
+				// forces the browser to stop loading (note: fails in IE9)
+				htmlMediaElement.src = '';
+				htmlMediaElement.load();
+				htmlMediaElement.canceledPreload = true;
+
+				htmlMediaElement.addEventListener('play',function() {
+					if (htmlMediaElement.canceledPreload) {
+						htmlMediaElement.src = playback.url;
+						htmlMediaElement.load();
+						htmlMediaElement.play();
+						htmlMediaElement.canceledPreload = false;
+					}
+				}, false);
+			// for some reason Chrome forgets how to autoplay sometimes.
+			} else if (autoplay) {
+				htmlMediaElement.load();
+				htmlMediaElement.play();
+			}
+		}
+		*/
+
+		// fire success code
+		options.success(htmlMediaElement, htmlMediaElement);
+		
+		return htmlMediaElement;
+	}
+};
+
+/*
+ - test on IE (object vs. embed)
+ - determine when to use iframe (Firefox, Safari, Mobile) vs. Flash (Chrome, IE)
+ - fullscreen?
+*/
+
+// YouTube Flash and Iframe API
+mejs.YouTubeApi = {
+	isIframeStarted: false,
+	isIframeLoaded: false,
+	loadIframeApi: function() {
+		if (!this.isIframeStarted) {
+			var tag = document.createElement('script');
+			tag.src = "//www.youtube.com/player_api";
+			var firstScriptTag = document.getElementsByTagName('script')[0];
+			firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
+			this.isIframeStarted = true;
+		}
+	},
+	iframeQueue: [],
+	enqueueIframe: function(yt) {
+		
+		if (this.isLoaded) {
+			this.createIframe(yt);
+		} else {
+			this.loadIframeApi();
+			this.iframeQueue.push(yt);
+		}
+	},
+	createIframe: function(settings) {
+		
+		var
+		pluginMediaElement = settings.pluginMediaElement,	
+		player = new YT.Player(settings.containerId, {
+			height: settings.height,
+			width: settings.width,
+			videoId: settings.videoId,
+			playerVars: {controls:0},
+			events: {
+				'onReady': function() {
+					
+					// hook up iframe object to MEjs
+					settings.pluginMediaElement.pluginApi = player;
+					
+					// init mejs
+					mejs.MediaPluginBridge.initPlugin(settings.pluginId);
+					
+					// create timer
+					setInterval(function() {
+						mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'timeupdate');
+					}, 250);					
+				},
+				'onStateChange': function(e) {
+					
+					mejs.YouTubeApi.handleStateChange(e.data, player, pluginMediaElement);
+					
+				}
+			}
+		});
+	},
+	
+	createEvent: function (player, pluginMediaElement, eventName) {
+		var obj = {
+			type: eventName,
+			target: pluginMediaElement
+		};
+
+		if (player && player.getDuration) {
+			
+			// time 
+			pluginMediaElement.currentTime = obj.currentTime = player.getCurrentTime();
+			pluginMediaElement.duration = obj.duration = player.getDuration();
+			
+			// state
+			obj.paused = pluginMediaElement.paused;
+			obj.ended = pluginMediaElement.ended;			
+			
+			// sound
+			obj.muted = player.isMuted();
+			obj.volume = player.getVolume() / 100;
+			
+			// progress
+			obj.bytesTotal = player.getVideoBytesTotal();
+			obj.bufferedBytes = player.getVideoBytesLoaded();
+			
+			// fake the W3C buffered TimeRange
+			var bufferedTime = obj.bufferedBytes / obj.bytesTotal * obj.duration;
+			
+			obj.target.buffered = obj.buffered = {
+				start: function(index) {
+					return 0;
+				},
+				end: function (index) {
+					return bufferedTime;
+				},
+				length: 1
+			};
+
+		}
+		
+		// send event up the chain
+		pluginMediaElement.dispatchEvent(obj.type, obj);
+	},	
+	
+	iFrameReady: function() {
+		
+		this.isLoaded = true;
+		this.isIframeLoaded = true;
+		
+		while (this.iframeQueue.length > 0) {
+			var settings = this.iframeQueue.pop();
+			this.createIframe(settings);
+		}	
+	},
+	
+	// FLASH!
+	flashPlayers: {},
+	createFlash: function(settings) {
+		
+		this.flashPlayers[settings.pluginId] = settings;
+		
+		/*
+		settings.container.innerHTML =
+			'<object type="application/x-shockwave-flash" id="' + settings.pluginId + '" data="//www.youtube.com/apiplayer?enablejsapi=1&amp;playerapiid=' + settings.pluginId  + '&amp;version=3&amp;autoplay=0&amp;controls=0&amp;modestbranding=1&loop=0" ' +
+				'width="' + settings.width + '" height="' + settings.height + '" style="visibility: visible; " class="mejs-shim">' +
+				'<param name="allowScriptAccess" value="always">' +
+				'<param name="wmode" value="transparent">' +
+			'</object>';
+		*/
+
+		var specialIEContainer,
+			youtubeUrl = '//www.youtube.com/apiplayer?enablejsapi=1&amp;playerapiid=' + settings.pluginId  + '&amp;version=3&amp;autoplay=0&amp;controls=0&amp;modestbranding=1&loop=0';
+			
+		if (mejs.MediaFeatures.isIE) {
+			
+			specialIEContainer = document.createElement('div');
+			settings.container.appendChild(specialIEContainer);
+			specialIEContainer.outerHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" ' +
+'id="' + settings.pluginId + '" width="' + settings.width + '" height="' + settings.height + '" class="mejs-shim">' +
+	'<param name="movie" value="' + youtubeUrl + '" />' +
+	'<param name="wmode" value="transparent" />' +
+	'<param name="allowScriptAccess" value="always" />' +
+	'<param name="allowFullScreen" value="true" />' +
+'</object>';
+		} else {
+		settings.container.innerHTML =
+			'<object type="application/x-shockwave-flash" id="' + settings.pluginId + '" data="' + youtubeUrl + '" ' +
+				'width="' + settings.width + '" height="' + settings.height + '" style="visibility: visible; " class="mejs-shim">' +
+				'<param name="allowScriptAccess" value="always">' +
+				'<param name="wmode" value="transparent">' +
+			'</object>';
+		}		
+		
+	},
+	
+	flashReady: function(id) {
+		var
+			settings = this.flashPlayers[id],
+			player = document.getElementById(id),
+			pluginMediaElement = settings.pluginMediaElement;
+		
+		// hook up and return to MediaELementPlayer.success	
+		pluginMediaElement.pluginApi = 
+		pluginMediaElement.pluginElement = player;
+		mejs.MediaPluginBridge.initPlugin(id);
+		
+		// load the youtube video
+		player.cueVideoById(settings.videoId);
+		
+		var callbackName = settings.containerId + '_callback';
+		
+		window[callbackName] = function(e) {
+			mejs.YouTubeApi.handleStateChange(e, player, pluginMediaElement);
+		}
+		
+		player.addEventListener('onStateChange', callbackName);
+		
+		setInterval(function() {
+			mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'timeupdate');
+		}, 250);
+		
+		mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'canplay');
+	},
+	
+	handleStateChange: function(youTubeState, player, pluginMediaElement) {
+		switch (youTubeState) {
+			case -1: // not started
+				pluginMediaElement.paused = true;
+				pluginMediaElement.ended = true;
+				mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'loadedmetadata');
+				//createYouTubeEvent(player, pluginMediaElement, 'loadeddata');
+				break;
+			case 0:
+				pluginMediaElement.paused = false;
+				pluginMediaElement.ended = true;
+				mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'ended');
+				break;
+			case 1:
+				pluginMediaElement.paused = false;
+				pluginMediaElement.ended = false;				
+				mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'play');
+				mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'playing');
+				break;
+			case 2:
+				pluginMediaElement.paused = true;
+				pluginMediaElement.ended = false;				
+				mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'pause');
+				break;
+			case 3: // buffering
+				mejs.YouTubeApi.createEvent(player, pluginMediaElement, 'progress');
+				break;
+			case 5:
+				// cued?
+				break;						
+			
+		}			
+		
+	}
+}
+// IFRAME
+function onYouTubePlayerAPIReady() {
+	mejs.YouTubeApi.iFrameReady();
+}
+// FLASH
+function onYouTubePlayerReady(id) {
+	mejs.YouTubeApi.flashReady(id);
+}
+
+window.mejs = mejs;
+window.MediaElement = mejs.MediaElement;
+
+/*!
+ * Adds Internationalization and localization to mediaelement.
+ *
+ * This file does not contain translations, you have to add the manually.
+ * The schema is always the same: me-i18n-locale-[ISO_639-1 Code].js
+ *
+ * Examples are provided both for german and chinese translation.
+ *
+ *
+ * What is the concept beyond i18n?
+ *   http://en.wikipedia.org/wiki/Internationalization_and_localization
+ *
+ * What langcode should i use?
+ *   http://en.wikipedia.org/wiki/ISO_639-1
+ *
+ *
+ * License?
+ *
+ *   The i18n file uses methods from the Drupal project (drupal.js):
+ *     - i18n.methods.t() (modified)
+ *     - i18n.methods.checkPlain() (full copy)
+ *
+ *   The Drupal project is (like mediaelementjs) licensed under GPLv2.
+ *    - http://drupal.org/licensing/faq/#q1
+ *    - https://github.com/johndyer/mediaelement
+ *    - http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+ *
+ *
+ * @author
+ *   Tim Latz (latz.tim@gmail.com)
+ *
+ *
+ * @params
+ *  - context - document, iframe ..
+ *  - exports - CommonJS, window ..
+ *
+ */
+;(function(context, exports, undefined) {
+    "use strict";
+    var i18n = {
+        "locale": {
+            "language" : '',
+            "strings" : {}
+        },
+        "methods" : {}
+    };
+// start i18n
+
+
+    /**
+     * Get language, fallback to browser's language if empty
+     */
+    i18n.getLanguage = function () {
+        var language = i18n.locale.language || window.navigator.userLanguage || window.navigator.language;
+        // convert to iso 639-1 (2-letters, lower case)
+        return language.substr(0, 2).toLowerCase();
+    };
+
+    // i18n fixes for compatibility with WordPress
+    if ( typeof mejsL10n != 'undefined' ) {
+        i18n.locale.language = mejsL10n.language;
+    }
+
+
+
+    /**
+     * Encode special characters in a plain-text string for display as HTML.
+     */
+    i18n.methods.checkPlain = function (str) {
+        var character, regex,
+        replace = {
+            '&': '&amp;',
+            '"': '&quot;',
+            '<': '&lt;',
+            '>': '&gt;'
+        };
+        str = String(str);
+        for (character in replace) {
+            if (replace.hasOwnProperty(character)) {
+                regex = new RegExp(character, 'g');
+                str = str.replace(regex, replace[character]);
+            }
+        }
+        return str;
+    };
+
+    /**
+     * Translate strings to the page language or a given language.
+     *
+     *
+     * @param str
+     *   A string containing the English string to translate.
+     *
+     * @param options
+     *   - 'context' (defaults to the default context): The context the source string
+     *     belongs to.
+     *
+     * @return
+     *   The translated string, escaped via i18n.methods.checkPlain()
+     */
+    i18n.methods.t = function (str, options) {
+
+        // Fetch the localized version of the string.
+        if (i18n.locale.strings && i18n.locale.strings[options.context] && i18n.locale.strings[options.context][str]) {
+            str = i18n.locale.strings[options.context][str];
+        }
+
+        return i18n.methods.checkPlain(str);
+    };
+
+
+    /**
+     * Wrapper for i18n.methods.t()
+     *
+     * @see i18n.methods.t()
+     * @throws InvalidArgumentException
+     */
+    i18n.t = function(str, options) {
+
+        if (typeof str === 'string' && str.length > 0) {
+
+            // check every time due language can change for
+            // different reasons (translation, lang switcher ..)
+            var language = i18n.getLanguage();
+
+            options = options || {
+                "context" : language
+            };
+
+            return i18n.methods.t(str, options);
+        }
+        else {
+            throw {
+                "name" : 'InvalidArgumentException',
+                "message" : 'First argument is either not a string or empty.'
+            };
+        }
+    };
+
+// end i18n
+    exports.i18n = i18n;
+}(document, mejs));
+
+// i18n fixes for compatibility with WordPress
+;(function(exports, undefined) {
+
+    "use strict";
+
+    if ( typeof mejsL10n != 'undefined' ) {
+        exports[mejsL10n.language] = mejsL10n.strings;
+    }
+
+}(mejs.i18n.locale.strings));
+
+/*!
+ * This is a i18n.locale language object.
+ *
+ * German translation by Tim Latz, latz.tim@gmail.com
+ *
+ * @author
+ *   Tim Latz (latz.tim@gmail.com)
+ *
+ * @see
+ *   me-i18n.js
+ *
+ * @params
+ *  - exports - CommonJS, window ..
+ */
+;(function(exports, undefined) {
+
+    "use strict";
+
+    if (typeof exports.de === 'undefined') {
+        exports.de = {
+            "Fullscreen" : "Vollbild",
+            "Go Fullscreen" : "Vollbild an",
+            "Turn off Fullscreen" : "Vollbild aus",
+            "Close" : "Schließen"
+        };
+    }
+
+}(mejs.i18n.locale.strings));
+/*!
+ * This is a i18n.locale language object.
+ *
+ * Traditional chinese translation by Tim Latz, latz.tim@gmail.com
+ *
+ * @author
+ *   Tim Latz (latz.tim@gmail.com)
+ *
+ * @see
+ *   me-i18n.js
+ *
+ * @params
+ *  - exports - CommonJS, window ..
+ */
+;(function(exports, undefined) {
+
+    "use strict";
+
+    if (typeof exports.zh === 'undefined') {
+        exports.zh = {
+            "Fullscreen" : "全螢幕",
+            "Go Fullscreen" : "全屏模式",
+            "Turn off Fullscreen" : "退出全屏模式",
+            "Close" : "關閉"
+        };
+    }
+
+}(mejs.i18n.locale.strings));
+
diff --git a/lib/mejs/mediaelement.min.js b/lib/mejs/mediaelement.min.js
new file mode 100755
index 00000000..d14d65f4
--- /dev/null
+++ b/lib/mejs/mediaelement.min.js
@@ -0,0 +1,72 @@
+/*!
+* MediaElement.js
+* HTML5 <video> and <audio> shim and player
+* http://mediaelementjs.com/
+*
+* Creates a JavaScript object that mimics HTML5 MediaElement API
+* for browsers that don't understand HTML5 or can't play the provided codec
+* Can play MP4 (H.264), Ogg, WebM, FLV, WMV, WMA, ACC, and MP3
+*
+* Copyright 2010-2014, John Dyer (http://j.hn)
+* License: MIT
+*
+*/var mejs=mejs||{};mejs.version="2.15.1";mejs.meIndex=0;
+mejs.plugins={silverlight:[{version:[3,0],types:["video/mp4","video/m4v","video/mov","video/wmv","audio/wma","audio/m4a","audio/mp3","audio/wav","audio/mpeg"]}],flash:[{version:[9,0,124],types:["video/mp4","video/m4v","video/mov","video/flv","video/rtmp","video/x-flv","audio/flv","audio/x-flv","audio/mp3","audio/m4a","audio/mpeg","video/youtube","video/x-youtube","application/x-mpegURL"]}],youtube:[{version:null,types:["video/youtube","video/x-youtube","audio/youtube","audio/x-youtube"]}],vimeo:[{version:null,
+types:["video/vimeo","video/x-vimeo"]}]};
+mejs.Utility={encodeUrl:function(a){return encodeURIComponent(a)},escapeHTML:function(a){return a.toString().split("&").join("&amp;").split("<").join("&lt;").split('"').join("&quot;")},absolutizeUrl:function(a){var b=document.createElement("div");b.innerHTML='<a href="'+this.escapeHTML(a)+'">x</a>';return b.firstChild.href},getScriptPath:function(a){for(var b=0,c,d="",e="",g,f,i=document.getElementsByTagName("script"),k=i.length,h=a.length;b<k;b++){g=i[b].src;c=g.lastIndexOf("/");if(c>-1){f=g.substring(c+
+1);g=g.substring(0,c+1)}else{f=g;g=""}for(c=0;c<h;c++){e=a[c];e=f.indexOf(e);if(e>-1){d=g;break}}if(d!=="")break}return d},secondsToTimeCode:function(a,b,c,d){if(typeof c=="undefined")c=false;else if(typeof d=="undefined")d=25;var e=Math.floor(a/3600)%24,g=Math.floor(a/60)%60,f=Math.floor(a%60);a=Math.floor((a%1*d).toFixed(3));return(b||e>0?(e<10?"0"+e:e)+":":"")+(g<10?"0"+g:g)+":"+(f<10?"0"+f:f)+(c?":"+(a<10?"0"+a:a):"")},timeCodeToSeconds:function(a,b,c,d){if(typeof c=="undefined")c=false;else if(typeof d==
+"undefined")d=25;a=a.split(":");b=parseInt(a[0],10);var e=parseInt(a[1],10),g=parseInt(a[2],10),f=0,i=0;if(c)f=parseInt(a[3])/d;return i=b*3600+e*60+g+f},convertSMPTEtoSeconds:function(a){if(typeof a!="string")return false;a=a.replace(",",".");var b=0,c=a.indexOf(".")!=-1?a.split(".")[1].length:0,d=1;a=a.split(":").reverse();for(var e=0;e<a.length;e++){d=1;if(e>0)d=Math.pow(60,e);b+=Number(a[e])*d}return Number(b.toFixed(c))},removeSwf:function(a){var b=document.getElementById(a);if(b&&/object|embed/i.test(b.nodeName))if(mejs.MediaFeatures.isIE){b.style.display=
+"none";(function(){b.readyState==4?mejs.Utility.removeObjectInIE(a):setTimeout(arguments.callee,10)})()}else b.parentNode.removeChild(b)},removeObjectInIE:function(a){if(a=document.getElementById(a)){for(var b in a)if(typeof a[b]=="function")a[b]=null;a.parentNode.removeChild(a)}}};
+mejs.PluginDetector={hasPluginVersion:function(a,b){var c=this.plugins[a];b[1]=b[1]||0;b[2]=b[2]||0;return c[0]>b[0]||c[0]==b[0]&&c[1]>b[1]||c[0]==b[0]&&c[1]==b[1]&&c[2]>=b[2]?true:false},nav:window.navigator,ua:window.navigator.userAgent.toLowerCase(),plugins:[],addPlugin:function(a,b,c,d,e){this.plugins[a]=this.detectPlugin(b,c,d,e)},detectPlugin:function(a,b,c,d){var e=[0,0,0],g;if(typeof this.nav.plugins!="undefined"&&typeof this.nav.plugins[a]=="object"){if((c=this.nav.plugins[a].description)&&
+!(typeof this.nav.mimeTypes!="undefined"&&this.nav.mimeTypes[b]&&!this.nav.mimeTypes[b].enabledPlugin)){e=c.replace(a,"").replace(/^\s+/,"").replace(/\sr/gi,".").split(".");for(a=0;a<e.length;a++)e[a]=parseInt(e[a].match(/\d+/),10)}}else if(typeof window.ActiveXObject!="undefined")try{if(g=new ActiveXObject(c))e=d(g)}catch(f){}return e}};
+mejs.PluginDetector.addPlugin("flash","Shockwave Flash","application/x-shockwave-flash","ShockwaveFlash.ShockwaveFlash",function(a){var b=[];if(a=a.GetVariable("$version")){a=a.split(" ")[1].split(",");b=[parseInt(a[0],10),parseInt(a[1],10),parseInt(a[2],10)]}return b});
+mejs.PluginDetector.addPlugin("silverlight","Silverlight Plug-In","application/x-silverlight-2","AgControl.AgControl",function(a){var b=[0,0,0,0],c=function(d,e,g,f){for(;d.isVersionSupported(e[0]+"."+e[1]+"."+e[2]+"."+e[3]);)e[g]+=f;e[g]-=f};c(a,b,0,1);c(a,b,1,1);c(a,b,2,1E4);c(a,b,2,1E3);c(a,b,2,100);c(a,b,2,10);c(a,b,2,1);c(a,b,3,1);return b});
+mejs.MediaFeatures={init:function(){var a=this,b=document,c=mejs.PluginDetector.nav,d=mejs.PluginDetector.ua.toLowerCase(),e,g=["source","track","audio","video"];a.isiPad=d.match(/ipad/i)!==null;a.isiPhone=d.match(/iphone/i)!==null;a.isiOS=a.isiPhone||a.isiPad;a.isAndroid=d.match(/android/i)!==null;a.isBustedAndroid=d.match(/android 2\.[12]/)!==null;a.isBustedNativeHTTPS=location.protocol==="https:"&&(d.match(/android [12]\./)!==null||d.match(/macintosh.* version.* safari/)!==null);a.isIE=c.appName.toLowerCase().indexOf("microsoft")!=
+-1||c.appName.toLowerCase().match(/trident/gi)!==null;a.isChrome=d.match(/chrome/gi)!==null;a.isChromium=d.match(/chromium/gi)!==null;a.isFirefox=d.match(/firefox/gi)!==null;a.isWebkit=d.match(/webkit/gi)!==null;a.isGecko=d.match(/gecko/gi)!==null&&!a.isWebkit&&!a.isIE;a.isOpera=d.match(/opera/gi)!==null;a.hasTouch="ontouchstart"in window;a.svg=!!document.createElementNS&&!!document.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect;for(c=0;c<g.length;c++)e=document.createElement(g[c]);
+a.supportsMediaTag=typeof e.canPlayType!=="undefined"||a.isBustedAndroid;try{e.canPlayType("video/mp4")}catch(f){a.supportsMediaTag=false}a.hasSemiNativeFullScreen=typeof e.webkitEnterFullscreen!=="undefined";a.hasNativeFullscreen=typeof e.requestFullscreen!=="undefined";a.hasWebkitNativeFullScreen=typeof e.webkitRequestFullScreen!=="undefined";a.hasMozNativeFullScreen=typeof e.mozRequestFullScreen!=="undefined";a.hasMsNativeFullScreen=typeof e.msRequestFullscreen!=="undefined";a.hasTrueNativeFullScreen=
+a.hasWebkitNativeFullScreen||a.hasMozNativeFullScreen||a.hasMsNativeFullScreen;a.nativeFullScreenEnabled=a.hasTrueNativeFullScreen;if(a.hasMozNativeFullScreen)a.nativeFullScreenEnabled=document.mozFullScreenEnabled;else if(a.hasMsNativeFullScreen)a.nativeFullScreenEnabled=document.msFullscreenEnabled;if(a.isChrome)a.hasSemiNativeFullScreen=false;if(a.hasTrueNativeFullScreen){a.fullScreenEventName="";if(a.hasWebkitNativeFullScreen)a.fullScreenEventName="webkitfullscreenchange";else if(a.hasMozNativeFullScreen)a.fullScreenEventName=
+"mozfullscreenchange";else if(a.hasMsNativeFullScreen)a.fullScreenEventName="MSFullscreenChange";a.isFullScreen=function(){if(a.hasMozNativeFullScreen)return b.mozFullScreen;else if(a.hasWebkitNativeFullScreen)return b.webkitIsFullScreen;else if(a.hasMsNativeFullScreen)return b.msFullscreenElement!==null};a.requestFullScreen=function(i){if(a.hasWebkitNativeFullScreen)i.webkitRequestFullScreen();else if(a.hasMozNativeFullScreen)i.mozRequestFullScreen();else a.hasMsNativeFullScreen&&i.msRequestFullscreen()};
+a.cancelFullScreen=function(){if(a.hasWebkitNativeFullScreen)document.webkitCancelFullScreen();else if(a.hasMozNativeFullScreen)document.mozCancelFullScreen();else a.hasMsNativeFullScreen&&document.msExitFullscreen()}}if(a.hasSemiNativeFullScreen&&d.match(/mac os x 10_5/i)){a.hasNativeFullScreen=false;a.hasSemiNativeFullScreen=false}}};mejs.MediaFeatures.init();
+mejs.HtmlMediaElement={pluginType:"native",isFullScreen:false,setCurrentTime:function(a){this.currentTime=a},setMuted:function(a){this.muted=a},setVolume:function(a){this.volume=a},stop:function(){this.pause()},setSrc:function(a){for(var b=this.getElementsByTagName("source");b.length>0;)this.removeChild(b[0]);if(typeof a=="string")this.src=a;else{var c;for(b=0;b<a.length;b++){c=a[b];if(this.canPlayType(c.type)){this.src=c.src;break}}}},setVideoSize:function(a,b){this.width=a;this.height=b}};
+mejs.PluginMediaElement=function(a,b,c){this.id=a;this.pluginType=b;this.src=c;this.events={};this.attributes={}};
+mejs.PluginMediaElement.prototype={pluginElement:null,pluginType:"",isFullScreen:false,playbackRate:-1,defaultPlaybackRate:-1,seekable:[],played:[],paused:true,ended:false,seeking:false,duration:0,error:null,tagName:"",muted:false,volume:1,currentTime:0,play:function(){if(this.pluginApi!=null){this.pluginType=="youtube"||this.pluginType=="vimeo"?this.pluginApi.playVideo():this.pluginApi.playMedia();this.paused=false}},load:function(){if(this.pluginApi!=null){this.pluginType=="youtube"||this.pluginType==
+"vimeo"||this.pluginApi.loadMedia();this.paused=false}},pause:function(){if(this.pluginApi!=null){this.pluginType=="youtube"||this.pluginType=="vimeo"?this.pluginApi.pauseVideo():this.pluginApi.pauseMedia();this.paused=true}},stop:function(){if(this.pluginApi!=null){this.pluginType=="youtube"||this.pluginType=="vimeo"?this.pluginApi.stopVideo():this.pluginApi.stopMedia();this.paused=true}},canPlayType:function(a){var b,c,d,e=mejs.plugins[this.pluginType];for(b=0;b<e.length;b++){d=e[b];if(mejs.PluginDetector.hasPluginVersion(this.pluginType,
+d.version))for(c=0;c<d.types.length;c++)if(a==d.types[c])return"probably"}return""},positionFullscreenButton:function(a,b,c){this.pluginApi!=null&&this.pluginApi.positionFullscreenButton&&this.pluginApi.positionFullscreenButton(Math.floor(a),Math.floor(b),c)},hideFullscreenButton:function(){this.pluginApi!=null&&this.pluginApi.hideFullscreenButton&&this.pluginApi.hideFullscreenButton()},setSrc:function(a){if(typeof a=="string"){this.pluginApi.setSrc(mejs.Utility.absolutizeUrl(a));this.src=mejs.Utility.absolutizeUrl(a)}else{var b,
+c;for(b=0;b<a.length;b++){c=a[b];if(this.canPlayType(c.type)){this.pluginApi.setSrc(mejs.Utility.absolutizeUrl(c.src));this.src=mejs.Utility.absolutizeUrl(a);break}}}},setCurrentTime:function(a){if(this.pluginApi!=null){this.pluginType=="youtube"||this.pluginType=="vimeo"?this.pluginApi.seekTo(a):this.pluginApi.setCurrentTime(a);this.currentTime=a}},setVolume:function(a){if(this.pluginApi!=null){this.pluginType=="youtube"?this.pluginApi.setVolume(a*100):this.pluginApi.setVolume(a);this.volume=a}},
+setMuted:function(a){if(this.pluginApi!=null){if(this.pluginType=="youtube"){a?this.pluginApi.mute():this.pluginApi.unMute();this.muted=a;this.dispatchEvent("volumechange")}else this.pluginApi.setMuted(a);this.muted=a}},setVideoSize:function(a,b){if(this.pluginElement&&this.pluginElement.style){this.pluginElement.style.width=a+"px";this.pluginElement.style.height=b+"px"}this.pluginApi!=null&&this.pluginApi.setVideoSize&&this.pluginApi.setVideoSize(a,b)},setFullscreen:function(a){this.pluginApi!=null&&
+this.pluginApi.setFullscreen&&this.pluginApi.setFullscreen(a)},enterFullScreen:function(){this.pluginApi!=null&&this.pluginApi.setFullscreen&&this.setFullscreen(true)},exitFullScreen:function(){this.pluginApi!=null&&this.pluginApi.setFullscreen&&this.setFullscreen(false)},addEventListener:function(a,b){this.events[a]=this.events[a]||[];this.events[a].push(b)},removeEventListener:function(a,b){if(!a){this.events={};return true}var c=this.events[a];if(!c)return true;if(!b){this.events[a]=[];return true}for(var d=
+0;d<c.length;d++)if(c[d]===b){this.events[a].splice(d,1);return true}return false},dispatchEvent:function(a){var b,c,d=this.events[a];if(d){c=Array.prototype.slice.call(arguments,1);for(b=0;b<d.length;b++)d[b].apply(null,c)}},hasAttribute:function(a){return a in this.attributes},removeAttribute:function(a){delete this.attributes[a]},getAttribute:function(a){if(this.hasAttribute(a))return this.attributes[a];return""},setAttribute:function(a,b){this.attributes[a]=b},remove:function(){mejs.Utility.removeSwf(this.pluginElement.id);
+mejs.MediaPluginBridge.unregisterPluginElement(this.pluginElement.id)}};
+mejs.MediaPluginBridge={pluginMediaElements:{},htmlMediaElements:{},registerPluginElement:function(a,b,c){this.pluginMediaElements[a]=b;this.htmlMediaElements[a]=c},unregisterPluginElement:function(a){delete this.pluginMediaElements[a];delete this.htmlMediaElements[a]},initPlugin:function(a){var b=this.pluginMediaElements[a],c=this.htmlMediaElements[a];if(b){switch(b.pluginType){case "flash":b.pluginElement=b.pluginApi=document.getElementById(a);break;case "silverlight":b.pluginElement=document.getElementById(b.id);
+b.pluginApi=b.pluginElement.Content.MediaElementJS}b.pluginApi!=null&&b.success&&b.success(b,c)}},fireEvent:function(a,b,c){var d,e;if(a=this.pluginMediaElements[a]){b={type:b,target:a};for(d in c){a[d]=c[d];b[d]=c[d]}e=c.bufferedTime||0;b.target.buffered=b.buffered={start:function(){return 0},end:function(){return e},length:1};a.dispatchEvent(b.type,b)}}};
+mejs.MediaElementDefaults={mode:"auto",plugins:["flash","silverlight","youtube","vimeo"],enablePluginDebug:false,httpsBasicAuthSite:false,type:"",pluginPath:mejs.Utility.getScriptPath(["mediaelement.js","mediaelement.min.js","mediaelement-and-player.js","mediaelement-and-player.min.js"]),flashName:"flashmediaelement.swf",flashStreamer:"",enablePluginSmoothing:false,enablePseudoStreaming:false,pseudoStreamingStartQueryParam:"start",silverlightName:"silverlightmediaelement.xap",defaultVideoWidth:480,
+defaultVideoHeight:270,pluginWidth:-1,pluginHeight:-1,pluginVars:[],timerRate:250,startVolume:0.8,success:function(){},error:function(){}};mejs.MediaElement=function(a,b){return mejs.HtmlMediaElementShim.create(a,b)};
+mejs.HtmlMediaElementShim={create:function(a,b){var c=mejs.MediaElementDefaults,d=typeof a=="string"?document.getElementById(a):a,e=d.tagName.toLowerCase(),g=e==="audio"||e==="video",f=g?d.getAttribute("src"):d.getAttribute("href");e=d.getAttribute("poster");var i=d.getAttribute("autoplay"),k=d.getAttribute("preload"),h=d.getAttribute("controls"),j;for(j in b)c[j]=b[j];f=typeof f=="undefined"||f===null||f==""?null:f;e=typeof e=="undefined"||e===null?"":e;k=typeof k=="undefined"||k===null||k==="false"?
+"none":k;i=!(typeof i=="undefined"||i===null||i==="false");h=!(typeof h=="undefined"||h===null||h==="false");j=this.determinePlayback(d,c,mejs.MediaFeatures.supportsMediaTag,g,f);j.url=j.url!==null?mejs.Utility.absolutizeUrl(j.url):"";if(j.method=="native"){if(mejs.MediaFeatures.isBustedAndroid){d.src=j.url;d.addEventListener("click",function(){d.play()},false)}return this.updateNative(j,c,i,k)}else if(j.method!=="")return this.createPlugin(j,c,e,i,k,h);else{this.createErrorMessage(j,c,e);return this}},
+determinePlayback:function(a,b,c,d,e){var g=[],f,i,k,h={method:"",url:"",htmlMediaElement:a,isVideo:a.tagName.toLowerCase()!="audio"},j;if(typeof b.type!="undefined"&&b.type!=="")if(typeof b.type=="string")g.push({type:b.type,url:e});else for(f=0;f<b.type.length;f++)g.push({type:b.type[f],url:e});else if(e!==null){k=this.formatType(e,a.getAttribute("type"));g.push({type:k,url:e})}else for(f=0;f<a.childNodes.length;f++){i=a.childNodes[f];if(i.nodeType==1&&i.tagName.toLowerCase()=="source"){e=i.getAttribute("src");
+k=this.formatType(e,i.getAttribute("type"));i=i.getAttribute("media");if(!i||!window.matchMedia||window.matchMedia&&window.matchMedia(i).matches)g.push({type:k,url:e})}}if(!d&&g.length>0&&g[0].url!==null&&this.getTypeFromFile(g[0].url).indexOf("audio")>-1)h.isVideo=false;if(mejs.MediaFeatures.isBustedAndroid)a.canPlayType=function(m){return m.match(/video\/(mp4|m4v)/gi)!==null?"maybe":""};if(mejs.MediaFeatures.isChromium)a.canPlayType=function(m){return m.match(/video\/(webm|ogv|ogg)/gi)!==null?"maybe":
+""};if(c&&(b.mode==="auto"||b.mode==="auto_plugin"||b.mode==="native")&&!(mejs.MediaFeatures.isBustedNativeHTTPS&&b.httpsBasicAuthSite===true)){if(!d){f=document.createElement(h.isVideo?"video":"audio");a.parentNode.insertBefore(f,a);a.style.display="none";h.htmlMediaElement=a=f}for(f=0;f<g.length;f++)if(g[f].type=="video/m3u8"||a.canPlayType(g[f].type).replace(/no/,"")!==""||a.canPlayType(g[f].type.replace(/mp3/,"mpeg")).replace(/no/,"")!==""||a.canPlayType(g[f].type.replace(/m4a/,"mp4")).replace(/no/,
+"")!==""){h.method="native";h.url=g[f].url;break}if(h.method==="native"){if(h.url!==null)a.src=h.url;if(b.mode!=="auto_plugin")return h}}if(b.mode==="auto"||b.mode==="auto_plugin"||b.mode==="shim")for(f=0;f<g.length;f++){k=g[f].type;for(a=0;a<b.plugins.length;a++){e=b.plugins[a];i=mejs.plugins[e];for(c=0;c<i.length;c++){j=i[c];if(j.version==null||mejs.PluginDetector.hasPluginVersion(e,j.version))for(d=0;d<j.types.length;d++)if(k==j.types[d]){h.method=e;h.url=g[f].url;return h}}}}if(b.mode==="auto_plugin"&&
+h.method==="native")return h;if(h.method===""&&g.length>0)h.url=g[0].url;return h},formatType:function(a,b){return a&&!b?this.getTypeFromFile(a):b&&~b.indexOf(";")?b.substr(0,b.indexOf(";")):b},getTypeFromFile:function(a){a=a.split("?")[0];a=a.substring(a.lastIndexOf(".")+1).toLowerCase();return(/(mp4|m4v|ogg|ogv|m3u8|webm|webmv|flv|wmv|mpeg|mov)/gi.test(a)?"video":"audio")+"/"+this.getTypeFromExtension(a)},getTypeFromExtension:function(a){switch(a){case "mp4":case "m4v":case "m4a":return"mp4";case "webm":case "webma":case "webmv":return"webm";
+case "ogg":case "oga":case "ogv":return"ogg";default:return a}},createErrorMessage:function(a,b,c){var d=a.htmlMediaElement,e=document.createElement("div");e.className="me-cannotplay";try{e.style.width=d.width+"px";e.style.height=d.height+"px"}catch(g){}e.innerHTML=b.customError?b.customError:c!==""?'<a href="'+a.url+'"><img src="'+c+'" width="100%" height="100%" /></a>':'<a href="'+a.url+'"><span>'+mejs.i18n.t("Download File")+"</span></a>";d.parentNode.insertBefore(e,d);d.style.display="none";b.error(d)},
+createPlugin:function(a,b,c,d,e,g){c=a.htmlMediaElement;var f=1,i=1,k="me_"+a.method+"_"+mejs.meIndex++,h=new mejs.PluginMediaElement(k,a.method,a.url),j=document.createElement("div"),m;h.tagName=c.tagName;for(m=0;m<c.attributes.length;m++){var q=c.attributes[m];q.specified==true&&h.setAttribute(q.name,q.value)}for(m=c.parentNode;m!==null&&m.tagName.toLowerCase()!=="body"&&m.parentNode!=null;){if(m.parentNode.tagName.toLowerCase()==="p"){m.parentNode.parentNode.insertBefore(m,m.parentNode);break}m=
+m.parentNode}if(a.isVideo){f=b.pluginWidth>0?b.pluginWidth:b.videoWidth>0?b.videoWidth:c.getAttribute("width")!==null?c.getAttribute("width"):b.defaultVideoWidth;i=b.pluginHeight>0?b.pluginHeight:b.videoHeight>0?b.videoHeight:c.getAttribute("height")!==null?c.getAttribute("height"):b.defaultVideoHeight;f=mejs.Utility.encodeUrl(f);i=mejs.Utility.encodeUrl(i)}else if(b.enablePluginDebug){f=320;i=240}h.success=b.success;mejs.MediaPluginBridge.registerPluginElement(k,h,c);j.className="me-plugin";j.id=
+k+"_container";a.isVideo?c.parentNode.insertBefore(j,c):document.body.insertBefore(j,document.body.childNodes[0]);d=["id="+k,"isvideo="+(a.isVideo?"true":"false"),"autoplay="+(d?"true":"false"),"preload="+e,"width="+f,"startvolume="+b.startVolume,"timerrate="+b.timerRate,"flashstreamer="+b.flashStreamer,"height="+i,"pseudostreamstart="+b.pseudoStreamingStartQueryParam];if(a.url!==null)a.method=="flash"?d.push("file="+mejs.Utility.encodeUrl(a.url)):d.push("file="+a.url);b.enablePluginDebug&&d.push("debug=true");
+b.enablePluginSmoothing&&d.push("smoothing=true");b.enablePseudoStreaming&&d.push("pseudostreaming=true");g&&d.push("controls=true");if(b.pluginVars)d=d.concat(b.pluginVars);switch(a.method){case "silverlight":j.innerHTML='<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" id="'+k+'" name="'+k+'" width="'+f+'" height="'+i+'" class="mejs-shim"><param name="initParams" value="'+d.join(",")+'" /><param name="windowless" value="true" /><param name="background" value="black" /><param name="minRuntimeVersion" value="3.0.0.0" /><param name="autoUpgrade" value="true" /><param name="source" value="'+
+b.pluginPath+b.silverlightName+'" /></object>';break;case "flash":if(mejs.MediaFeatures.isIE){a=document.createElement("div");j.appendChild(a);a.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" id="'+k+'" width="'+f+'" height="'+i+'" class="mejs-shim"><param name="movie" value="'+b.pluginPath+b.flashName+"?x="+new Date+'" /><param name="flashvars" value="'+d.join("&amp;")+'" /><param name="quality" value="high" /><param name="bgcolor" value="#000000" /><param name="wmode" value="transparent" /><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /><param name="scale" value="default" /></object>'}else j.innerHTML=
+'<embed id="'+k+'" name="'+k+'" play="true" loop="false" quality="high" bgcolor="#000000" wmode="transparent" allowScriptAccess="always" allowFullScreen="true" type="application/x-shockwave-flash" pluginspage="//www.macromedia.com/go/getflashplayer" src="'+b.pluginPath+b.flashName+'" flashvars="'+d.join("&")+'" width="'+f+'" height="'+i+'" scale="default"class="mejs-shim"></embed>';break;case "youtube":if(a.url.lastIndexOf("youtu.be")!=-1){a=a.url.substr(a.url.lastIndexOf("/")+1);if(a.indexOf("?")!=
+-1)a=a.substr(0,a.indexOf("?"))}else a=a.url.substr(a.url.lastIndexOf("=")+1);youtubeSettings={container:j,containerId:j.id,pluginMediaElement:h,pluginId:k,videoId:a,height:i,width:f};mejs.PluginDetector.hasPluginVersion("flash",[10,0,0])?mejs.YouTubeApi.createFlash(youtubeSettings):mejs.YouTubeApi.enqueueIframe(youtubeSettings);break;case "vimeo":b=k+"_player";h.vimeoid=a.url.substr(a.url.lastIndexOf("/")+1);j.innerHTML='<iframe src="//player.vimeo.com/video/'+h.vimeoid+"?api=1&portrait=0&byline=0&title=0&player_id="+
+b+'" width="'+f+'" height="'+i+'" frameborder="0" class="mejs-shim" id="'+b+'"></iframe>';if(typeof $f=="function"){var l=$f(j.childNodes[0]);l.addEvent("ready",function(){function o(n,p,r,s){n={type:r,target:p};if(r=="timeupdate"){p.currentTime=n.currentTime=s.seconds;p.duration=n.duration=s.duration}p.dispatchEvent(n.type,n)}$.extend(l,{playVideo:function(){l.api("play")},stopVideo:function(){l.api("unload")},pauseVideo:function(){l.api("pause")},seekTo:function(n){l.api("seekTo",n)},setVolume:function(n){l.api("setVolume",
+n)},setMuted:function(n){if(n){l.lastVolume=l.api("getVolume");l.api("setVolume",0)}else{l.api("setVolume",l.lastVolume);delete l.lastVolume}}});l.addEvent("play",function(){o(l,h,"play");o(l,h,"playing")});l.addEvent("pause",function(){o(l,h,"pause")});l.addEvent("finish",function(){o(l,h,"ended")});l.addEvent("playProgress",function(n){o(l,h,"timeupdate",n)});h.pluginElement=j;h.pluginApi=l;mejs.MediaPluginBridge.initPlugin(k)})}else console.warn("You need to include froogaloop for vimeo to work")}c.style.display=
+"none";c.removeAttribute("autoplay");return h},updateNative:function(a,b){var c=a.htmlMediaElement,d;for(d in mejs.HtmlMediaElement)c[d]=mejs.HtmlMediaElement[d];b.success(c,c);return c}};
+mejs.YouTubeApi={isIframeStarted:false,isIframeLoaded:false,loadIframeApi:function(){if(!this.isIframeStarted){var a=document.createElement("script");a.src="//www.youtube.com/player_api";var b=document.getElementsByTagName("script")[0];b.parentNode.insertBefore(a,b);this.isIframeStarted=true}},iframeQueue:[],enqueueIframe:function(a){if(this.isLoaded)this.createIframe(a);else{this.loadIframeApi();this.iframeQueue.push(a)}},createIframe:function(a){var b=a.pluginMediaElement,c=new YT.Player(a.containerId,
+{height:a.height,width:a.width,videoId:a.videoId,playerVars:{controls:0},events:{onReady:function(){a.pluginMediaElement.pluginApi=c;mejs.MediaPluginBridge.initPlugin(a.pluginId);setInterval(function(){mejs.YouTubeApi.createEvent(c,b,"timeupdate")},250)},onStateChange:function(d){mejs.YouTubeApi.handleStateChange(d.data,c,b)}}})},createEvent:function(a,b,c){c={type:c,target:b};if(a&&a.getDuration){b.currentTime=c.currentTime=a.getCurrentTime();b.duration=c.duration=a.getDuration();c.paused=b.paused;
+c.ended=b.ended;c.muted=a.isMuted();c.volume=a.getVolume()/100;c.bytesTotal=a.getVideoBytesTotal();c.bufferedBytes=a.getVideoBytesLoaded();var d=c.bufferedBytes/c.bytesTotal*c.duration;c.target.buffered=c.buffered={start:function(){return 0},end:function(){return d},length:1}}b.dispatchEvent(c.type,c)},iFrameReady:function(){for(this.isIframeLoaded=this.isLoaded=true;this.iframeQueue.length>0;)this.createIframe(this.iframeQueue.pop())},flashPlayers:{},createFlash:function(a){this.flashPlayers[a.pluginId]=
+a;var b,c="//www.youtube.com/apiplayer?enablejsapi=1&amp;playerapiid="+a.pluginId+"&amp;version=3&amp;autoplay=0&amp;controls=0&amp;modestbranding=1&loop=0";if(mejs.MediaFeatures.isIE){b=document.createElement("div");a.container.appendChild(b);b.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" id="'+a.pluginId+'" width="'+a.width+'" height="'+a.height+'" class="mejs-shim"><param name="movie" value="'+
+c+'" /><param name="wmode" value="transparent" /><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /></object>'}else a.container.innerHTML='<object type="application/x-shockwave-flash" id="'+a.pluginId+'" data="'+c+'" width="'+a.width+'" height="'+a.height+'" style="visibility: visible; " class="mejs-shim"><param name="allowScriptAccess" value="always"><param name="wmode" value="transparent"></object>'},flashReady:function(a){var b=this.flashPlayers[a],c=
+document.getElementById(a),d=b.pluginMediaElement;d.pluginApi=d.pluginElement=c;mejs.MediaPluginBridge.initPlugin(a);c.cueVideoById(b.videoId);a=b.containerId+"_callback";window[a]=function(e){mejs.YouTubeApi.handleStateChange(e,c,d)};c.addEventListener("onStateChange",a);setInterval(function(){mejs.YouTubeApi.createEvent(c,d,"timeupdate")},250);mejs.YouTubeApi.createEvent(c,d,"canplay")},handleStateChange:function(a,b,c){switch(a){case -1:c.paused=true;c.ended=true;mejs.YouTubeApi.createEvent(b,
+c,"loadedmetadata");break;case 0:c.paused=false;c.ended=true;mejs.YouTubeApi.createEvent(b,c,"ended");break;case 1:c.paused=false;c.ended=false;mejs.YouTubeApi.createEvent(b,c,"play");mejs.YouTubeApi.createEvent(b,c,"playing");break;case 2:c.paused=true;c.ended=false;mejs.YouTubeApi.createEvent(b,c,"pause");break;case 3:mejs.YouTubeApi.createEvent(b,c,"progress")}}};function onYouTubePlayerAPIReady(){mejs.YouTubeApi.iFrameReady()}function onYouTubePlayerReady(a){mejs.YouTubeApi.flashReady(a)}
+window.mejs=mejs;window.MediaElement=mejs.MediaElement;
+(function(a,b){var c={locale:{language:"",strings:{}},methods:{}};c.getLanguage=function(){return(c.locale.language||window.navigator.userLanguage||window.navigator.language).substr(0,2).toLowerCase()};if(typeof mejsL10n!="undefined")c.locale.language=mejsL10n.language;c.methods.checkPlain=function(d){var e,g,f={"&":"&amp;",'"':"&quot;","<":"&lt;",">":"&gt;"};d=String(d);for(e in f)if(f.hasOwnProperty(e)){g=RegExp(e,"g");d=d.replace(g,f[e])}return d};c.methods.t=function(d,e){if(c.locale.strings&&
+c.locale.strings[e.context]&&c.locale.strings[e.context][d])d=c.locale.strings[e.context][d];return c.methods.checkPlain(d)};c.t=function(d,e){if(typeof d==="string"&&d.length>0){var g=c.getLanguage();e=e||{context:g};return c.methods.t(d,e)}else throw{name:"InvalidArgumentException",message:"First argument is either not a string or empty."};};b.i18n=c})(document,mejs);(function(a){if(typeof mejsL10n!="undefined")a[mejsL10n.language]=mejsL10n.strings})(mejs.i18n.locale.strings);
+(function(a){if(typeof a.de==="undefined")a.de={Fullscreen:"Vollbild","Go Fullscreen":"Vollbild an","Turn off Fullscreen":"Vollbild aus",Close:"Schlie\u00dfen"}})(mejs.i18n.locale.strings);(function(a){if(typeof a.zh==="undefined")a.zh={Fullscreen:"\u5168\u87a2\u5e55","Go Fullscreen":"\u5168\u5c4f\u6a21\u5f0f","Turn off Fullscreen":"\u9000\u51fa\u5168\u5c4f\u6a21\u5f0f",Close:"\u95dc\u9589"}})(mejs.i18n.locale.strings);
diff --git a/lib/mejs/mediaelementplayer.css b/lib/mejs/mediaelementplayer.css
new file mode 100755
index 00000000..432ef5c4
--- /dev/null
+++ b/lib/mejs/mediaelementplayer.css
@@ -0,0 +1,954 @@
+.mejs-container {
+	position: relative;
+	background: #000;
+	font-family: Helvetica, Arial;
+	text-align: left;
+	vertical-align: top;
+	text-indent: 0;
+}
+
+.me-plugin {
+	position: absolute;
+	height: auto;
+	width: auto;
+}
+
+.mejs-embed, .mejs-embed body {
+	width: 100%;
+	height: 100%;
+	margin: 0;
+	padding: 0;
+	background: #000;
+	overflow: hidden;
+}
+
+.mejs-fullscreen {
+	/* set it to not show scroll bars so 100% will work */
+	overflow: hidden !important;
+}
+
+.mejs-container-fullscreen {
+	position: fixed;
+	left: 0;
+	top: 0;
+	right: 0;
+	bottom: 0;
+	overflow: hidden;
+	z-index: 1000;
+}
+.mejs-container-fullscreen .mejs-mediaelement,
+.mejs-container-fullscreen video {
+	width: 100%;
+	height: 100%;
+}
+
+.mejs-clear {
+	clear: both;
+}
+
+/* Start: LAYERS */
+.mejs-background {
+	position: absolute;
+	top: 0;
+	left: 0;
+}
+
+.mejs-mediaelement {
+	position: absolute;
+	top: 0;
+	left: 0;
+	width: 100%;
+	height: 100%;
+}
+
+.mejs-poster {
+	position: absolute;
+	top: 0;
+	left: 0;
+	background-size: contain ;
+	background-position: 50% 50% ;
+	background-repeat: no-repeat ;
+}
+:root .mejs-poster img {
+	display: none ;
+}
+
+.mejs-poster img {
+	border: 0;
+	padding: 0;
+	border: 0;
+}
+
+.mejs-overlay {
+	position: absolute;
+	top: 0;
+	left: 0;
+}
+
+.mejs-overlay-play {
+	cursor: pointer;
+}
+
+.mejs-overlay-button {
+	position: absolute;
+	top: 50%;
+	left: 50%;
+	width: 100px;
+	height: 100px;
+	margin: -50px 0 0 -50px;
+	background: url(bigplay.svg) no-repeat;
+}
+
+.no-svg .mejs-overlay-button {
+	background-image: url(bigplay.png);
+}
+
+.mejs-overlay:hover .mejs-overlay-button {
+	background-position: 0 -100px ;
+}
+
+.mejs-overlay-loading {
+	position: absolute;
+	top: 50%;
+	left: 50%;
+	width: 80px;
+	height: 80px;
+	margin: -40px 0 0 -40px;
+	background: #333;
+	background: url(background.png);
+	background: rgba(0, 0, 0, 0.9);
+	background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(50,50,50,0.9)), to(rgba(0,0,0,0.9)));
+	background: -webkit-linear-gradient(top, rgba(50,50,50,0.9), rgba(0,0,0,0.9));
+	background: -moz-linear-gradient(top, rgba(50,50,50,0.9), rgba(0,0,0,0.9));
+	background: -o-linear-gradient(top, rgba(50,50,50,0.9), rgba(0,0,0,0.9));
+	background: -ms-linear-gradient(top, rgba(50,50,50,0.9), rgba(0,0,0,0.9));
+	background: linear-gradient(rgba(50,50,50,0.9), rgba(0,0,0,0.9));
+}
+
+.mejs-overlay-loading span {
+	display: block;
+	width: 80px;
+	height: 80px;
+	background: transparent url(loading.gif) 50% 50% no-repeat;
+}
+
+/* End: LAYERS */
+
+/* Start: CONTROL BAR */
+.mejs-container .mejs-controls {
+	position: absolute;
+	list-style-type: none;
+	margin: 0;
+	padding: 0;
+	bottom: 0;
+	left: 0;
+	background: url(background.png);
+	background: rgba(0, 0, 0, 0.7);
+	background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(50,50,50,0.7)), to(rgba(0,0,0,0.7)));
+	background: -webkit-linear-gradient(top, rgba(50,50,50,0.7), rgba(0,0,0,0.7));
+	background: -moz-linear-gradient(top, rgba(50,50,50,0.7), rgba(0,0,0,0.7));
+	background: -o-linear-gradient(top, rgba(50,50,50,0.7), rgba(0,0,0,0.7));
+	background: -ms-linear-gradient(top, rgba(50,50,50,0.7), rgba(0,0,0,0.7));
+	background: linear-gradient(rgba(50,50,50,0.7), rgba(0,0,0,0.7));
+	height: 30px;
+	width: 100%;
+}
+.mejs-container .mejs-controls  div {
+	list-style-type: none;
+	background-image: none;
+	display: block;
+	float: left;
+	margin: 0;
+	padding: 0;
+	width: 26px;
+	height: 26px;
+	font-size: 11px;
+	line-height: 11px;
+	font-family: Helvetica, Arial;
+	border: 0;
+}
+
+.mejs-controls .mejs-button button {
+	cursor: pointer;
+	display: block;
+	font-size: 0;
+	line-height: 0;
+	text-decoration: none;
+	margin: 7px 5px;
+	padding: 0;
+	position: absolute;
+	height: 16px;
+	width: 16px;
+	border: 0;
+	background: transparent url(controls.svg) no-repeat;
+}
+
+.no-svg .mejs-controls .mejs-button button {
+	background-image: url(controls.png);
+}
+
+/* :focus for accessibility */
+.mejs-controls .mejs-button button:focus {
+	outline: dotted 1px #999;
+}
+
+/* End: CONTROL BAR */
+
+/* Start: Time (Current / Duration) */
+.mejs-container .mejs-controls .mejs-time {
+	color: #fff;
+	display: block;
+	height: 17px;
+	width: auto;
+	padding: 8px 3px 0 3px ;
+	overflow: hidden;
+	text-align: center;
+	-moz-box-sizing: content-box;
+	-webkit-box-sizing: content-box;
+	box-sizing: content-box;
+}
+
+.mejs-container .mejs-controls .mejs-time span {
+	color: #fff;
+	font-size: 11px;
+	line-height: 12px;
+	display: block;
+	float: left;
+	margin: 1px 2px 0 0;
+	width: auto;
+}
+/* End: Time (Current / Duration) */
+
+/* Start: Play/Pause/Stop */
+.mejs-controls .mejs-play button {
+	background-position: 0 0;
+}
+
+.mejs-controls .mejs-pause button {
+	background-position: 0 -16px;
+}
+
+.mejs-controls .mejs-stop button {
+	background-position: -112px 0;
+}
+/* Start: Play/Pause/Stop */
+
+/* Start: Progress Bar */
+.mejs-controls div.mejs-time-rail {
+	direction: ltr;
+	width: 200px;
+	padding-top: 5px;
+}
+
+.mejs-controls .mejs-time-rail span {
+	display: block;
+	position: absolute;
+	width: 180px;
+	height: 10px;
+	-webkit-border-radius: 2px;
+	-moz-border-radius: 2px;
+	border-radius: 2px;
+	cursor: pointer;
+}
+
+.mejs-controls .mejs-time-rail .mejs-time-total {
+	margin: 5px;
+	background: #333;
+	background: rgba(50,50,50,0.8);
+	background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(30,30,30,0.8)), to(rgba(60,60,60,0.8)));
+	background: -webkit-linear-gradient(top, rgba(30,30,30,0.8), rgba(60,60,60,0.8));
+	background: -moz-linear-gradient(top, rgba(30,30,30,0.8), rgba(60,60,60,0.8));
+	background: -o-linear-gradient(top, rgba(30,30,30,0.8), rgba(60,60,60,0.8));
+	background: -ms-linear-gradient(top, rgba(30,30,30,0.8), rgba(60,60,60,0.8));
+	background: linear-gradient(rgba(30,30,30,0.8), rgba(60,60,60,0.8));
+}
+
+.mejs-controls .mejs-time-rail .mejs-time-buffering {
+	width: 100%;
+	background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+	background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
+	background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+	background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+	background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+	background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+	-webkit-background-size: 15px 15px;
+	-moz-background-size: 15px 15px;
+	-o-background-size: 15px 15px;
+	background-size: 15px 15px;
+	-webkit-animation: buffering-stripes 2s linear infinite;
+	-moz-animation: buffering-stripes 2s linear infinite;
+	-ms-animation: buffering-stripes 2s linear infinite;
+	-o-animation: buffering-stripes 2s linear infinite;
+	animation: buffering-stripes 2s linear infinite;
+}
+
+@-webkit-keyframes buffering-stripes { from {background-position: 0 0;} to {background-position: 30px 0;} }
+@-moz-keyframes buffering-stripes { from {background-position: 0 0;} to {background-position: 30px 0;} }
+@-ms-keyframes buffering-stripes { from {background-position: 0 0;} to {background-position: 30px 0;} }
+@-o-keyframes buffering-stripes { from {background-position: 0 0;} to {background-position: 30px 0;} }
+@keyframes buffering-stripes { from {background-position: 0 0;} to {background-position: 30px 0;} }
+
+.mejs-controls .mejs-time-rail .mejs-time-loaded {
+	background: #3caac8;
+	background: rgba(60,170,200,0.8);
+	background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(44,124,145,0.8)), to(rgba(78,183,212,0.8)));
+	background: -webkit-linear-gradient(top, rgba(44,124,145,0.8), rgba(78,183,212,0.8));
+	background: -moz-linear-gradient(top, rgba(44,124,145,0.8), rgba(78,183,212,0.8));
+	background: -o-linear-gradient(top, rgba(44,124,145,0.8), rgba(78,183,212,0.8));
+	background: -ms-linear-gradient(top, rgba(44,124,145,0.8), rgba(78,183,212,0.8));
+	background: linear-gradient(rgba(44,124,145,0.8), rgba(78,183,212,0.8));
+	width: 0;
+}
+
+.mejs-controls .mejs-time-rail .mejs-time-current {
+	background: #fff;
+	background: rgba(255,255,255,0.8);
+	background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(255,255,255,0.9)), to(rgba(200,200,200,0.8)));
+	background: -webkit-linear-gradient(top, rgba(255,255,255,0.9), rgba(200,200,200,0.8));
+	background: -moz-linear-gradient(top, rgba(255,255,255,0.9), rgba(200,200,200,0.8));
+	background: -o-linear-gradient(top, rgba(255,255,255,0.9), rgba(200,200,200,0.8));
+	background: -ms-linear-gradient(top, rgba(255,255,255,0.9), rgba(200,200,200,0.8));
+	background: linear-gradient(rgba(255,255,255,0.9), rgba(200,200,200,0.8));
+	width: 0;
+}
+
+.mejs-controls .mejs-time-rail .mejs-time-handle {
+	display: none;
+	position: absolute;
+	margin: 0;
+	width: 10px;
+	background: #fff;
+	-webkit-border-radius: 5px;
+	-moz-border-radius: 5px;
+	border-radius: 5px;
+	cursor: pointer;
+	border: solid 2px #333;
+	top: -2px;
+	text-align: center;
+}
+
+.mejs-controls .mejs-time-rail .mejs-time-float {
+	position: absolute;
+	display: none;
+	background: #eee;
+	width: 36px;
+	height: 17px;
+	border: solid 1px #333;
+	top: -26px;
+	margin-left: -18px;
+	text-align: center;
+	color: #111;
+}
+
+.mejs-controls .mejs-time-rail .mejs-time-float-current {
+	margin: 2px;
+	width: 30px;
+	display: block;
+	text-align: center;
+	left: 0;
+}
+
+.mejs-controls .mejs-time-rail .mejs-time-float-corner {
+	position: absolute;
+	display: block;
+	width: 0;
+	height: 0;
+	line-height: 0;
+	border: solid 5px #eee;
+	border-color: #eee transparent transparent transparent;
+	-webkit-border-radius: 0;
+	-moz-border-radius: 0;
+	border-radius: 0;
+	top: 15px;
+	left: 13px;
+}
+
+.mejs-long-video .mejs-controls .mejs-time-rail .mejs-time-float {
+	width: 48px;
+}
+
+.mejs-long-video .mejs-controls .mejs-time-rail .mejs-time-float-current {
+	width: 44px;
+}
+
+.mejs-long-video .mejs-controls .mejs-time-rail .mejs-time-float-corner {
+	left: 18px;
+}
+
+/*
+.mejs-controls .mejs-time-rail:hover .mejs-time-handle {
+	visibility:visible;
+}
+*/
+/* End: Progress Bar */
+
+/* Start: Fullscreen */
+.mejs-controls .mejs-fullscreen-button button {
+	background-position: -32px 0;
+}
+
+.mejs-controls .mejs-unfullscreen button {
+	background-position: -32px -16px;
+}
+/* End: Fullscreen */
+
+
+/* Start: Mute/Volume */
+.mejs-controls .mejs-volume-button {
+}
+
+.mejs-controls .mejs-mute button {
+	background-position: -16px -16px;
+}
+
+.mejs-controls .mejs-unmute button {
+	background-position: -16px 0;
+}
+
+.mejs-controls .mejs-volume-button {
+	position: relative;
+}
+
+.mejs-controls .mejs-volume-button .mejs-volume-slider {
+	display: none;
+	height: 115px;
+	width: 25px;
+	background: url(background.png);
+	background: rgba(50, 50, 50, 0.7);
+	-webkit-border-radius: 0;
+	-moz-border-radius: 0;
+	border-radius: 0;
+	top: -115px;
+	left: 0;
+	z-index: 1;
+	position: absolute;
+	margin: 0;
+}
+
+.mejs-controls .mejs-volume-button:hover {
+	-webkit-border-radius: 0 0 4px 4px;
+	-moz-border-radius: 0 0 4px 4px;
+	border-radius: 0 0 4px 4px;
+}
+
+/*
+.mejs-controls .mejs-volume-button:hover .mejs-volume-slider {
+	display: block;
+}
+*/
+
+.mejs-controls .mejs-volume-button .mejs-volume-slider .mejs-volume-total {
+	position: absolute;
+	left: 11px;
+	top: 8px;
+	width: 2px;
+	height: 100px;
+	background: #ddd;
+	background: rgba(255, 255, 255, 0.5);
+	margin: 0;
+}
+
+.mejs-controls .mejs-volume-button .mejs-volume-slider .mejs-volume-current {
+	position: absolute;
+	left: 11px;
+	top: 8px;
+	width: 2px;
+	height: 100px;
+	background: #ddd;
+	background: rgba(255, 255, 255, 0.9);
+	margin: 0;
+}
+
+.mejs-controls .mejs-volume-button .mejs-volume-slider .mejs-volume-handle {
+	position: absolute;
+	left: 4px;
+	top: -3px;
+	width: 16px;
+	height: 6px;
+	background: #ddd;
+	background: rgba(255, 255, 255, 0.9);
+	cursor: N-resize;
+	-webkit-border-radius: 1px;
+	-moz-border-radius: 1px;
+	border-radius: 1px;
+	margin: 0;
+}
+
+/* horizontal version */
+.mejs-controls div.mejs-horizontal-volume-slider {
+	height: 26px;
+	width: 60px;
+	position: relative;
+}
+
+.mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-total {
+	position: absolute;
+	left: 0;
+	top: 11px;
+	width: 50px;
+	height: 8px;
+	margin: 0;
+	padding: 0;
+	font-size: 1px;
+	-webkit-border-radius: 2px;
+	-moz-border-radius: 2px;
+	border-radius: 2px;
+	background: #333;
+	background: rgba(50,50,50,0.8);
+	background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(30,30,30,0.8)), to(rgba(60,60,60,0.8)));
+	background: -webkit-linear-gradient(top, rgba(30,30,30,0.8), rgba(60,60,60,0.8));
+	background: -moz-linear-gradient(top, rgba(30,30,30,0.8), rgba(60,60,60,0.8));
+	background: -o-linear-gradient(top, rgba(30,30,30,0.8), rgba(60,60,60,0.8));
+	background: -ms-linear-gradient(top, rgba(30,30,30,0.8), rgba(60,60,60,0.8));
+	background: linear-gradient(rgba(30,30,30,0.8), rgba(60,60,60,0.8));
+}
+
+.mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-current {
+	position: absolute;
+	left: 0;
+	top: 11px;
+	width: 50px;
+	height: 8px;
+	margin: 0;
+	padding: 0;
+	font-size: 1px;
+	-webkit-border-radius: 2px;
+	-moz-border-radius: 2px;
+	border-radius: 2px;
+	background: #fff;
+	background: rgba(255,255,255,0.8);
+	background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(255,255,255,0.9)), to(rgba(200,200,200,0.8)));
+	background: -webkit-linear-gradient(top, rgba(255,255,255,0.9), rgba(200,200,200,0.8));
+	background: -moz-linear-gradient(top, rgba(255,255,255,0.9), rgba(200,200,200,0.8));
+	background: -o-linear-gradient(top, rgba(255,255,255,0.9), rgba(200,200,200,0.8));
+	background: -ms-linear-gradient(top, rgba(255,255,255,0.9), rgba(200,200,200,0.8));
+	background: linear-gradient(rgba(255,255,255,0.9), rgba(200,200,200,0.8));
+}
+
+.mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-handle {
+	display: none;
+}
+
+/* End: Mute/Volume */
+
+/* Start: Track (Captions and Chapters) */
+.mejs-controls .mejs-captions-button {
+	position: relative;
+}
+
+.mejs-controls .mejs-captions-button button {
+	background-position: -48px 0;
+}
+.mejs-controls .mejs-captions-button .mejs-captions-selector {
+	visibility: hidden;
+	position: absolute;
+	bottom: 26px;
+	right: -51px;
+	width: 85px;
+	height: 100px;
+	background: url(background.png);
+	background: rgba(50,50,50,0.7);
+	border: solid 1px transparent;
+	padding: 10px 10px 0 10px;
+	overflow: hidden;
+	-webkit-border-radius: 0;
+	-moz-border-radius: 0;
+	border-radius: 0;
+}
+
+/*
+.mejs-controls .mejs-captions-button:hover  .mejs-captions-selector {
+	visibility: visible;
+}
+*/
+
+.mejs-controls .mejs-captions-button .mejs-captions-selector ul {
+	margin: 0;
+	padding: 0;
+	display: block;
+	list-style-type: none !important;
+	overflow: hidden;
+}
+
+.mejs-controls .mejs-captions-button .mejs-captions-selector ul li {
+	margin: 0 0 6px 0;
+	padding: 0;
+	list-style-type: none !important;
+	display: block;
+	color: #fff;
+	overflow: hidden;
+}
+
+.mejs-controls .mejs-captions-button .mejs-captions-selector ul li input {
+	clear: both;
+	float: left;
+	margin: 3px 3px 0 5px;
+}
+
+.mejs-controls .mejs-captions-button .mejs-captions-selector ul li label {
+	width: 55px;
+	float: left;
+	padding: 4px 0 0 0;
+	line-height: 15px;
+	font-family: helvetica, arial;
+	font-size: 10px;
+}
+
+.mejs-controls .mejs-captions-button .mejs-captions-translations {
+	font-size: 10px;
+	margin: 0 0 5px 0;
+}
+
+.mejs-chapters {
+	position: absolute;
+	top: 0;
+	left: 0;
+	-xborder-right: solid 1px #fff;
+	width: 10000px;
+	z-index: 1;
+}
+
+.mejs-chapters .mejs-chapter {
+	position: absolute;
+	float: left;
+	background: #222;
+	background: rgba(0, 0, 0, 0.7);
+	background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(50,50,50,0.7)), to(rgba(0,0,0,0.7)));
+	background: -webkit-linear-gradient(top, rgba(50,50,50,0.7), rgba(0,0,0,0.7));
+	background: -moz-linear-gradient(top, rgba(50,50,50,0.7), rgba(0,0,0,0.7));
+	background: -o-linear-gradient(top, rgba(50,50,50,0.7), rgba(0,0,0,0.7));
+	background: -ms-linear-gradient(top, rgba(50,50,50,0.7), rgba(0,0,0,0.7));
+	background: linear-gradient(rgba(50,50,50,0.7), rgba(0,0,0,0.7));
+	filter: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, startColorstr=#323232,endColorstr=#000000);
+	overflow: hidden;
+	border: 0;
+}
+
+.mejs-chapters .mejs-chapter .mejs-chapter-block {
+	font-size: 11px;
+	color: #fff;
+	padding: 5px;
+	display: block;
+	border-right: solid 1px #333;
+	border-bottom: solid 1px #333;
+	cursor: pointer;
+}
+
+.mejs-chapters .mejs-chapter .mejs-chapter-block-last {
+	border-right: none;
+}
+
+.mejs-chapters .mejs-chapter .mejs-chapter-block:hover {
+	background: #666;
+	background: rgba(102,102,102, 0.7);
+	background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(102,102,102,0.7)), to(rgba(50,50,50,0.6)));
+	background: -webkit-linear-gradient(top, rgba(102,102,102,0.7), rgba(50,50,50,0.6));
+	background: -moz-linear-gradient(top, rgba(102,102,102,0.7), rgba(50,50,50,0.6));
+	background: -o-linear-gradient(top, rgba(102,102,102,0.7), rgba(50,50,50,0.6));
+	background: -ms-linear-gradient(top, rgba(102,102,102,0.7), rgba(50,50,50,0.6));
+	background: linear-gradient(rgba(102,102,102,0.7), rgba(50,50,50,0.6));
+	filter: progid:DXImageTransform.Microsoft.Gradient(GradientType=0, startColorstr=#666666,endColorstr=#323232);
+}
+
+.mejs-chapters .mejs-chapter .mejs-chapter-block .ch-title {
+	font-size: 12px;
+	font-weight: bold;
+	display: block;
+	white-space: nowrap;
+	text-overflow: ellipsis;
+	margin: 0 0 3px 0;
+	line-height: 12px;
+}
+
+.mejs-chapters .mejs-chapter .mejs-chapter-block .ch-timespan {
+	font-size: 12px;
+	line-height: 12px;
+	margin: 3px 0 4px 0;
+	display: block;
+	white-space: nowrap;
+	text-overflow: ellipsis;
+}
+
+.mejs-captions-layer {
+	position: absolute;
+	bottom: 0;
+	left: 0;
+	text-align:center;
+	line-height: 20px;
+	font-size: 16px;
+	color: #fff;
+}
+
+.mejs-captions-layer  a {
+	color: #fff;
+	text-decoration: underline;
+}
+
+.mejs-captions-layer[lang=ar] {
+	font-size: 20px;
+	font-weight: normal;
+}
+
+.mejs-captions-position {
+	position: absolute;
+	width: 100%;
+	bottom: 15px;
+	left: 0;
+}
+
+.mejs-captions-position-hover {
+	bottom: 35px;
+}
+
+.mejs-captions-text {
+	padding: 3px 5px;
+	background: url(background.png);
+	background: rgba(20, 20, 20, 0.5);
+	white-space: pre-wrap;
+}
+/* End: Track (Captions and Chapters) */
+
+/* Start: Error */
+.me-cannotplay {
+}
+
+.me-cannotplay a {
+	color: #fff;
+	font-weight: bold;
+}
+
+.me-cannotplay span {
+	padding: 15px;
+	display: block;
+}
+/* End: Error */
+
+
+/* Start: Loop */
+.mejs-controls .mejs-loop-off button {
+	background-position: -64px -16px;
+}
+
+.mejs-controls .mejs-loop-on button {
+	background-position: -64px 0;
+}
+
+/* End: Loop */
+
+/* Start: backlight */
+.mejs-controls .mejs-backlight-off button {
+	background-position: -80px -16px;
+}
+
+.mejs-controls .mejs-backlight-on button {
+	background-position: -80px 0;
+}
+/* End: backlight */
+
+/* Start: Picture Controls */
+.mejs-controls .mejs-picturecontrols-button {
+	background-position: -96px 0;
+}
+/* End: Picture Controls */
+
+
+/* context menu */
+.mejs-contextmenu {
+	position: absolute;
+	width: 150px;
+	padding: 10px;
+	border-radius: 4px;
+	top: 0;
+	left: 0;
+	background: #fff;
+	border: solid 1px #999;
+	z-index: 1001; /* make sure it shows on fullscreen */
+}
+.mejs-contextmenu .mejs-contextmenu-separator {
+	height: 1px;
+	font-size: 0;
+	margin: 5px 6px;
+	background: #333;
+}
+
+.mejs-contextmenu .mejs-contextmenu-item {
+	font-family: Helvetica, Arial;
+	font-size: 12px;
+	padding: 4px 6px;
+	cursor: pointer;
+	color: #333;
+}
+.mejs-contextmenu .mejs-contextmenu-item:hover {
+	background: #2C7C91;
+	color: #fff;
+}
+
+/* Start: Source Chooser */
+.mejs-controls .mejs-sourcechooser-button {
+	position: relative;
+}
+
+.mejs-controls .mejs-sourcechooser-button button {
+	background-position: -128px 0;
+}
+
+.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector {
+	visibility: hidden;
+	position: absolute;
+	bottom: 26px;
+	right: -10px;
+	width: 130px;
+	height: 100px;
+	background: url(background.png);
+	background: rgba(50,50,50,0.7);
+	border: solid 1px transparent;
+	padding: 10px;
+	overflow: hidden;
+	-webkit-border-radius: 0;
+	-moz-border-radius: 0;
+	border-radius: 0;
+}
+
+.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector ul {
+	margin: 0;
+	padding: 0;
+	display: block;
+	list-style-type: none !important;
+	overflow: hidden;
+}
+
+.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector ul li {
+	margin: 0 0 6px 0;
+	padding: 0;
+	list-style-type: none !important;
+	display: block;
+	color: #fff;
+	overflow: hidden;
+}
+
+.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector ul li input {
+	clear: both;
+	float: left;
+	margin: 3px 3px 0 5px;
+}
+
+.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector ul li label {
+	width: 100px;
+	float: left;
+	padding: 4px 0 0 0;
+	line-height: 15px;
+	font-family: helvetica, arial;
+	font-size: 10px;
+}
+/* End: Source Chooser */
+
+/* Start: Postroll */
+.mejs-postroll-layer {
+	position: absolute;
+	bottom: 0;
+	left: 0;
+	width: 100%;
+	height: 100%;
+	background: url(background.png);
+	background: rgba(50,50,50,0.7);
+	z-index: 1000;
+	overflow: hidden;
+}
+.mejs-postroll-layer-content {
+	width: 100%;
+	height: 100%;
+}
+.mejs-postroll-close {
+	position: absolute;
+	right: 0;
+	top: 0;
+	background: url(background.png);
+	background: rgba(50,50,50,0.7);
+	color: #fff;
+	padding: 4px;
+	z-index: 100;
+	cursor: pointer;
+}
+/* End: Postroll */
+
+
+/* Start: Speed */
+div.mejs-speed-button {
+	width: 46px !important;
+	position: relative;
+}
+
+.mejs-controls .mejs-button.mejs-speed-button button {
+	background: transparent;
+	width: 36px;
+	font-size: 11px;
+	line-height: normal;
+	color: #ffffff;
+}
+
+.mejs-controls .mejs-speed-button .mejs-speed-selector {
+	visibility: hidden;
+	position: absolute;
+	top: -100px;
+	left: -10px;
+	width: 60px;
+	height: 100px;
+	background: url(background.png);
+	background: rgba(50, 50, 50, 0.7);
+	border: solid 1px transparent;
+	padding: 0;
+	overflow: hidden;
+	-webkit-border-radius: 0;
+	-moz-border-radius: 0;
+	border-radius: 0;
+}
+
+.mejs-controls .mejs-speed-button:hover > .mejs-speed-selector {
+	visibility: visible;
+}
+
+.mejs-controls .mejs-speed-button .mejs-speed-selector ul li label.mejs-speed-selected {
+	color: rgba(33, 248, 248, 1);
+}
+
+.mejs-controls .mejs-speed-button .mejs-speed-selector ul {
+	margin: 0;
+	padding: 0;
+	display: block;
+	list-style-type: none !important;
+	overflow: hidden;
+}
+
+.mejs-controls .mejs-speed-button .mejs-speed-selector ul li {
+	margin: 0 0 6px 0;
+	padding: 0 10px;
+	list-style-type: none !important;
+	display: block;
+	color: #fff;
+	overflow: hidden;
+}
+
+.mejs-controls .mejs-speed-button .mejs-speed-selector ul li input {
+	clear: both;
+	float: left;
+	margin: 3px 3px 0 5px;
+	display: none;
+}
+
+.mejs-controls .mejs-speed-button .mejs-speed-selector ul li label {
+	width: 60px;
+	float: left;
+	padding: 4px 0 0 0;
+	line-height: 15px;
+	font-family: helvetica, arial;
+	font-size: 11.5px;
+	color: white;
+	margin-left: 5px;
+	cursor: pointer;
+}
+
+.mejs-controls .mejs-speed-button .mejs-speed-selector ul li:hover {
+	background-color: rgb(200, 200, 200) !important;
+	background-color: rgba(255,255,255,.4) !important;
+}
+/* End: Speed */
diff --git a/lib/mejs/mediaelementplayer.js b/lib/mejs/mediaelementplayer.js
new file mode 100755
index 00000000..c1c1622f
--- /dev/null
+++ b/lib/mejs/mediaelementplayer.js
@@ -0,0 +1,3328 @@
+/*!
+ * MediaElementPlayer
+ * http://mediaelementjs.com/
+ *
+ * Creates a controller bar for HTML5 <video> add <audio> tags
+ * using jQuery and MediaElement.js (HTML5 Flash/Silverlight wrapper)
+ *
+ * Copyright 2010-2013, John Dyer (http://j.hn/)
+ * License: MIT
+ *
+ */
+if (typeof jQuery != 'undefined') {
+	mejs.$ = jQuery;
+} else if (typeof ender != 'undefined') {
+	mejs.$ = ender;
+}
+(function ($) {
+
+	// default player values
+	mejs.MepDefaults = {
+		// url to poster (to fix iOS 3.x)
+		poster: '',
+		// When the video is ended, we can show the poster.
+		showPosterWhenEnded: false,
+		// default if the <video width> is not specified
+		defaultVideoWidth: 480,
+		// default if the <video height> is not specified
+		defaultVideoHeight: 270,
+		// if set, overrides <video width>
+		videoWidth: -1,
+		// if set, overrides <video height>
+		videoHeight: -1,
+		// default if the user doesn't specify
+		defaultAudioWidth: 400,
+		// default if the user doesn't specify
+		defaultAudioHeight: 30,
+
+		// default amount to move back when back key is pressed
+		defaultSeekBackwardInterval: function(media) {
+			return (media.duration * 0.05);
+		},
+		// default amount to move forward when forward key is pressed
+		defaultSeekForwardInterval: function(media) {
+			return (media.duration * 0.05);
+		},
+
+		// set dimensions via JS instead of CSS
+		setDimensions: true,
+
+		// width of audio player
+		audioWidth: -1,
+		// height of audio player
+		audioHeight: -1,
+		// initial volume when the player starts (overrided by user cookie)
+		startVolume: 0.8,
+		// useful for <audio> player loops
+		loop: false,
+		// rewind to beginning when media ends
+                autoRewind: true,
+		// resize to media dimensions
+		enableAutosize: true,
+		// forces the hour marker (##:00:00)
+		alwaysShowHours: false,
+
+		// show framecount in timecode (##:00:00:00)
+		showTimecodeFrameCount: false,
+		// used when showTimecodeFrameCount is set to true
+		framesPerSecond: 25,
+
+		// automatically calculate the width of the progress bar based on the sizes of other elements
+		autosizeProgress : true,
+		// Hide controls when playing and mouse is not over the video
+		alwaysShowControls: false,
+		// Display the video control
+		hideVideoControlsOnLoad: false,
+		// Enable click video element to toggle play/pause
+		clickToPlayPause: true,
+		// force iPad's native controls
+		iPadUseNativeControls: false,
+		// force iPhone's native controls
+		iPhoneUseNativeControls: false,
+		// force Android's native controls
+		AndroidUseNativeControls: false,
+		// features to show
+		features: ['playpause','current','progress','duration','tracks','volume','fullscreen'],
+		// only for dynamic
+		isVideo: true,
+
+		// turns keyboard support on and off for this instance
+		enableKeyboard: true,
+
+		// whenthis player starts, it will pause other players
+		pauseOtherPlayers: true,
+
+		// array of keyboard actions such as play pause
+		keyActions: [
+				{
+						keys: [
+								32, // SPACE
+								179 // GOOGLE play/pause button
+							  ],
+						action: function(player, media) {
+								if (media.paused || media.ended) {
+										player.play();
+								} else {
+										player.pause();
+								}
+						}
+				},
+				{
+						keys: [38], // UP
+						action: function(player, media) {
+								player.container.find('.mejs-volume-slider').css('display','block');
+								if (player.isVideo) {
+										player.showControls();
+										player.startControlsTimer();
+								}
+
+								var newVolume = Math.min(media.volume + 0.1, 1);
+								media.setVolume(newVolume);
+						}
+				},
+				{
+						keys: [40], // DOWN
+						action: function(player, media) {
+								player.container.find('.mejs-volume-slider').css('display','block');
+								if (player.isVideo) {
+										player.showControls();
+										player.startControlsTimer();
+								}
+
+								var newVolume = Math.max(media.volume - 0.1, 0);
+								media.setVolume(newVolume);
+						}
+				},
+				{
+						keys: [
+								37, // LEFT
+								227 // Google TV rewind
+						],
+						action: function(player, media) {
+								if (!isNaN(media.duration) && media.duration > 0) {
+										if (player.isVideo) {
+												player.showControls();
+												player.startControlsTimer();
+										}
+
+										// 5%
+										var newTime = Math.max(media.currentTime - player.options.defaultSeekBackwardInterval(media), 0);
+										media.setCurrentTime(newTime);
+								}
+						}
+				},
+				{
+						keys: [
+								39, // RIGHT
+								228 // Google TV forward
+						],
+						action: function(player, media) {
+								if (!isNaN(media.duration) && media.duration > 0) {
+										if (player.isVideo) {
+												player.showControls();
+												player.startControlsTimer();
+										}
+
+										// 5%
+										var newTime = Math.min(media.currentTime + player.options.defaultSeekForwardInterval(media), media.duration);
+										media.setCurrentTime(newTime);
+								}
+						}
+				},
+				{
+						keys: [70], // F
+						action: function(player, media) {
+								if (typeof player.enterFullScreen != 'undefined') {
+										if (player.isFullScreen) {
+												player.exitFullScreen();
+										} else {
+												player.enterFullScreen();
+										}
+								}
+						}
+				},
+				{
+						keys: [77], // M
+						action: function(player, media) {
+								player.container.find('.mejs-volume-slider').css('display','block');
+								if (player.isVideo) {
+										player.showControls();
+										player.startControlsTimer();
+								}
+								if (player.media.muted) {
+										player.setMuted(false);
+								} else {
+										player.setMuted(true);
+								}
+						}
+				}
+		]
+	};
+
+	mejs.mepIndex = 0;
+
+	mejs.players = {};
+
+	// wraps a MediaElement object in player controls
+	mejs.MediaElementPlayer = function(node, o) {
+		// enforce object, even without "new" (via John Resig)
+		if ( !(this instanceof mejs.MediaElementPlayer) ) {
+			return new mejs.MediaElementPlayer(node, o);
+		}
+
+		var t = this;
+
+		// these will be reset after the MediaElement.success fires
+		t.$media = t.$node = $(node);
+		t.node = t.media = t.$media[0];
+
+		// check for existing player
+		if (typeof t.node.player != 'undefined') {
+			return t.node.player;
+		} else {
+			// attach player to DOM node for reference
+			t.node.player = t;
+		}
+
+
+		// try to get options from data-mejsoptions
+		if (typeof o == 'undefined') {
+			o = t.$node.data('mejsoptions');
+		}
+
+		// extend default options
+		t.options = $.extend({},mejs.MepDefaults,o);
+
+		// unique ID
+		t.id = 'mep_' + mejs.mepIndex++;
+
+		// add to player array (for focus events)
+		mejs.players[t.id] = t;
+
+		// start up
+		t.init();
+
+		return t;
+	};
+
+	// actual player
+	mejs.MediaElementPlayer.prototype = {
+
+		hasFocus: false,
+
+		controlsAreVisible: true,
+
+		init: function() {
+
+			var
+				t = this,
+				mf = mejs.MediaFeatures,
+				// options for MediaElement (shim)
+				meOptions = $.extend(true, {}, t.options, {
+					success: function(media, domNode) { t.meReady(media, domNode); },
+					error: function(e) { t.handleError(e);}
+				}),
+				tagName = t.media.tagName.toLowerCase();
+
+			t.isDynamic = (tagName !== 'audio' && tagName !== 'video');
+
+			if (t.isDynamic) {
+				// get video from src or href?
+				t.isVideo = t.options.isVideo;
+			} else {
+				t.isVideo = (tagName !== 'audio' && t.options.isVideo);
+			}
+
+			// use native controls in iPad, iPhone, and Android
+			if ((mf.isiPad && t.options.iPadUseNativeControls) || (mf.isiPhone && t.options.iPhoneUseNativeControls)) {
+
+				// add controls and stop
+				t.$media.attr('controls', 'controls');
+
+				// attempt to fix iOS 3 bug
+				//t.$media.removeAttr('poster');
+                                // no Issue found on iOS3 -ttroxell
+
+				// override Apple's autoplay override for iPads
+				if (mf.isiPad && t.media.getAttribute('autoplay') !== null) {
+					t.play();
+				}
+
+			} else if (mf.isAndroid && t.options.AndroidUseNativeControls) {
+
+				// leave default player
+
+			} else {
+
+				// DESKTOP: use MediaElementPlayer controls
+
+				// remove native controls
+				t.$media.removeAttr('controls');
+
+				// build container
+				t.container =
+					$('<div id="' + t.id + '" class="mejs-container ' + (mejs.MediaFeatures.svg ? 'svg' : 'no-svg') + '">'+
+						'<div class="mejs-inner">'+
+							'<div class="mejs-mediaelement"></div>'+
+							'<div class="mejs-layers"></div>'+
+							'<div class="mejs-controls"></div>'+
+							'<div class="mejs-clear"></div>'+
+						'</div>' +
+					'</div>')
+					.addClass(t.$media[0].className)
+					.insertBefore(t.$media);
+
+				// add classes for user and content
+				t.container.addClass(
+					(mf.isAndroid ? 'mejs-android ' : '') +
+					(mf.isiOS ? 'mejs-ios ' : '') +
+					(mf.isiPad ? 'mejs-ipad ' : '') +
+					(mf.isiPhone ? 'mejs-iphone ' : '') +
+					(t.isVideo ? 'mejs-video ' : 'mejs-audio ')
+				);
+
+
+				// move the <video/video> tag into the right spot
+				if (mf.isiOS) {
+
+					// sadly, you can't move nodes in iOS, so we have to destroy and recreate it!
+					var $newMedia = t.$media.clone();
+
+					t.container.find('.mejs-mediaelement').append($newMedia);
+
+					t.$media.remove();
+					t.$node = t.$media = $newMedia;
+					t.node = t.media = $newMedia[0]
+
+				} else {
+
+					// normal way of moving it into place (doesn't work on iOS)
+					t.container.find('.mejs-mediaelement').append(t.$media);
+				}
+
+				// find parts
+				t.controls = t.container.find('.mejs-controls');
+				t.layers = t.container.find('.mejs-layers');
+
+				// determine the size
+
+				/* size priority:
+					(1) videoWidth (forced),
+					(2) style="width;height;"
+					(3) width attribute,
+					(4) defaultVideoWidth (for unspecified cases)
+				*/
+
+				var tagType = (t.isVideo ? 'video' : 'audio'),
+					capsTagName = tagType.substring(0,1).toUpperCase() + tagType.substring(1);
+
+
+
+				if (t.options[tagType + 'Width'] > 0 || t.options[tagType + 'Width'].toString().indexOf('%') > -1) {
+					t.width = t.options[tagType + 'Width'];
+				} else if (t.media.style.width !== '' && t.media.style.width !== null) {
+					t.width = t.media.style.width;
+				} else if (t.media.getAttribute('width') !== null) {
+					t.width = t.$media.attr('width');
+				} else {
+					t.width = t.options['default' + capsTagName + 'Width'];
+				}
+
+				if (t.options[tagType + 'Height'] > 0 || t.options[tagType + 'Height'].toString().indexOf('%') > -1) {
+					t.height = t.options[tagType + 'Height'];
+				} else if (t.media.style.height !== '' && t.media.style.height !== null) {
+					t.height = t.media.style.height;
+				} else if (t.$media[0].getAttribute('height') !== null) {
+					t.height = t.$media.attr('height');
+				} else {
+					t.height = t.options['default' + capsTagName + 'Height'];
+				}
+
+				// set the size, while we wait for the plugins to load below
+				t.setPlayerSize(t.width, t.height);
+
+				// create MediaElementShim
+				meOptions.pluginWidth = t.width;
+				meOptions.pluginHeight = t.height;
+			}
+
+			// create MediaElement shim
+			mejs.MediaElement(t.$media[0], meOptions);
+
+			if (typeof(t.container) != 'undefined' && t.controlsAreVisible){
+			    // controls are shown when loaded
+			    t.container.trigger('controlsshown');
+			}
+		},
+
+		showControls: function(doAnimation) {
+			var t = this;
+
+			doAnimation = typeof doAnimation == 'undefined' || doAnimation;
+
+			if (t.controlsAreVisible)
+				return;
+
+			if (doAnimation) {
+				t.controls
+					.css('visibility','visible')
+					.stop(true, true).fadeIn(200, function() {
+					      t.controlsAreVisible = true;
+					      t.container.trigger('controlsshown');
+					});
+
+				// any additional controls people might add and want to hide
+				t.container.find('.mejs-control')
+					.css('visibility','visible')
+					.stop(true, true).fadeIn(200, function() {t.controlsAreVisible = true;});
+
+			} else {
+				t.controls
+					.css('visibility','visible')
+					.css('display','block');
+
+				// any additional controls people might add and want to hide
+				t.container.find('.mejs-control')
+					.css('visibility','visible')
+					.css('display','block');
+
+				t.controlsAreVisible = true;
+				t.container.trigger('controlsshown');
+			}
+
+			t.setControlsSize();
+
+		},
+
+		hideControls: function(doAnimation) {
+			var t = this;
+
+			doAnimation = typeof doAnimation == 'undefined' || doAnimation;
+
+			if (!t.controlsAreVisible || t.options.alwaysShowControls)
+				return;
+
+			if (doAnimation) {
+				// fade out main controls
+				t.controls.stop(true, true).fadeOut(200, function() {
+					$(this)
+						.css('visibility','hidden')
+						.css('display','block');
+
+					t.controlsAreVisible = false;
+					t.container.trigger('controlshidden');
+				});
+
+				// any additional controls people might add and want to hide
+				t.container.find('.mejs-control').stop(true, true).fadeOut(200, function() {
+					$(this)
+						.css('visibility','hidden')
+						.css('display','block');
+				});
+			} else {
+
+				// hide main controls
+				t.controls
+					.css('visibility','hidden')
+					.css('display','block');
+
+				// hide others
+				t.container.find('.mejs-control')
+					.css('visibility','hidden')
+					.css('display','block');
+
+				t.controlsAreVisible = false;
+				t.container.trigger('controlshidden');
+			}
+		},
+
+		controlsTimer: null,
+
+		startControlsTimer: function(timeout) {
+
+			var t = this;
+
+			timeout = typeof timeout != 'undefined' ? timeout : 1500;
+
+			t.killControlsTimer('start');
+
+			t.controlsTimer = setTimeout(function() {
+				//
+				t.hideControls();
+				t.killControlsTimer('hide');
+			}, timeout);
+		},
+
+		killControlsTimer: function(src) {
+
+			var t = this;
+
+			if (t.controlsTimer !== null) {
+				clearTimeout(t.controlsTimer);
+				delete t.controlsTimer;
+				t.controlsTimer = null;
+			}
+		},
+
+		controlsEnabled: true,
+
+		disableControls: function() {
+			var t= this;
+
+			t.killControlsTimer();
+			t.hideControls(false);
+			this.controlsEnabled = false;
+		},
+
+		enableControls: function() {
+			var t= this;
+
+			t.showControls(false);
+
+			t.controlsEnabled = true;
+		},
+
+
+		// Sets up all controls and events
+		meReady: function(media, domNode) {
+
+
+			var t = this,
+				mf = mejs.MediaFeatures,
+				autoplayAttr = domNode.getAttribute('autoplay'),
+				autoplay = !(typeof autoplayAttr == 'undefined' || autoplayAttr === null || autoplayAttr === 'false'),
+				featureIndex,
+				feature;
+
+			// make sure it can't create itself again if a plugin reloads
+			if (t.created) {
+				return;
+			} else {
+				t.created = true;
+			}
+
+			t.media = media;
+			t.domNode = domNode;
+
+			if (!(mf.isAndroid && t.options.AndroidUseNativeControls) && !(mf.isiPad && t.options.iPadUseNativeControls) && !(mf.isiPhone && t.options.iPhoneUseNativeControls)) {
+
+				// two built in features
+				t.buildposter(t, t.controls, t.layers, t.media);
+				t.buildkeyboard(t, t.controls, t.layers, t.media);
+				t.buildoverlays(t, t.controls, t.layers, t.media);
+
+				// grab for use by features
+				t.findTracks();
+
+				// add user-defined features/controls
+				for (featureIndex in t.options.features) {
+					feature = t.options.features[featureIndex];
+					if (t['build' + feature]) {
+						try {
+							t['build' + feature](t, t.controls, t.layers, t.media);
+						} catch (e) {
+							// TODO: report control error
+							//throw e;
+							
+							
+						}
+					}
+				}
+
+				t.container.trigger('controlsready');
+
+				// reset all layers and controls
+				t.setPlayerSize(t.width, t.height);
+				t.setControlsSize();
+
+
+				// controls fade
+				if (t.isVideo) {
+
+					if (mejs.MediaFeatures.hasTouch) {
+
+						// for touch devices (iOS, Android)
+						// show/hide without animation on touch
+
+						t.$media.bind('touchstart', function() {
+
+
+							// toggle controls
+							if (t.controlsAreVisible) {
+								t.hideControls(false);
+							} else {
+								if (t.controlsEnabled) {
+									t.showControls(false);
+								}
+							}
+						});
+
+					} else {
+
+						// create callback here since it needs access to current
+						// MediaElement object
+						t.clickToPlayPauseCallback = function() {
+							//
+
+							if (t.options.clickToPlayPause) {
+								if (t.media.paused) {
+									t.play();
+								} else {
+									t.pause();
+								}
+							}
+						};
+
+			            // click to play/pause
+			            t.media.addEventListener('click', t.clickToPlayPauseCallback, false);
+
+						// show/hide controls
+						t.container
+							.bind('mouseenter mouseover', function () {
+								if (t.controlsEnabled) {
+									if (!t.options.alwaysShowControls ) {
+										t.killControlsTimer('enter');
+										t.showControls();
+										t.startControlsTimer(2500);
+									}
+								}
+							})
+							.bind('mousemove', function() {
+								if (t.controlsEnabled) {
+									if (!t.controlsAreVisible) {
+										t.showControls();
+									}
+									if (!t.options.alwaysShowControls) {
+										t.startControlsTimer(2500);
+									}
+								}
+							})
+							.bind('mouseleave', function () {
+								if (t.controlsEnabled) {
+									if (!t.media.paused && !t.options.alwaysShowControls) {
+										t.startControlsTimer(1000);
+									}
+								}
+							});
+					}
+
+					if(t.options.hideVideoControlsOnLoad) {
+						t.hideControls(false);
+					}
+
+					// check for autoplay
+					if (autoplay && !t.options.alwaysShowControls) {
+						t.hideControls();
+					}
+
+					// resizer
+					if (t.options.enableAutosize) {
+						t.media.addEventListener('loadedmetadata', function(e) {
+							// if the <video height> was not set and the options.videoHeight was not set
+							// then resize to the real dimensions
+							if (t.options.videoHeight <= 0 && t.domNode.getAttribute('height') === null && !isNaN(e.target.videoHeight)) {
+								t.setPlayerSize(e.target.videoWidth, e.target.videoHeight);
+								t.setControlsSize();
+								t.media.setVideoSize(e.target.videoWidth, e.target.videoHeight);
+							}
+						}, false);
+					}
+				}
+
+				// EVENTS
+
+				// FOCUS: when a video starts playing, it takes focus from other players (possibily pausing them)
+				media.addEventListener('play', function() {
+					var playerIndex;
+
+					// go through all other players
+					for (playerIndex in mejs.players) {
+						var p = mejs.players[playerIndex];
+						if (p.id != t.id && t.options.pauseOtherPlayers && !p.paused && !p.ended) {
+							p.pause();
+						}
+						p.hasFocus = false;
+					}
+
+					t.hasFocus = true;
+				},false);
+
+
+				// ended for all
+				t.media.addEventListener('ended', function (e) {
+					if(t.options.autoRewind) {
+						try{
+							t.media.setCurrentTime(0);
+						} catch (exp) {
+
+						}
+					}
+					t.media.pause();
+
+					if (t.setProgressRail) {
+						t.setProgressRail();
+					}
+					if (t.setCurrentRail) {
+						t.setCurrentRail();
+					}
+
+					if (t.options.loop) {
+						t.play();
+					} else if (!t.options.alwaysShowControls && t.controlsEnabled) {
+						t.showControls();
+					}
+				}, false);
+
+				// resize on the first play
+				t.media.addEventListener('loadedmetadata', function(e) {
+					if (t.updateDuration) {
+						t.updateDuration();
+					}
+					if (t.updateCurrent) {
+						t.updateCurrent();
+					}
+
+					if (!t.isFullScreen) {
+						t.setPlayerSize(t.width, t.height);
+						t.setControlsSize();
+					}
+				}, false);
+
+
+				// webkit has trouble doing this without a delay
+				setTimeout(function () {
+					t.setPlayerSize(t.width, t.height);
+					t.setControlsSize();
+				}, 50);
+
+				// adjust controls whenever window sizes (used to be in fullscreen only)
+				t.globalBind('resize', function() {
+
+					// don't resize for fullscreen mode
+					if ( !(t.isFullScreen || (mejs.MediaFeatures.hasTrueNativeFullScreen && document.webkitIsFullScreen)) ) {
+						t.setPlayerSize(t.width, t.height);
+					}
+
+					// always adjust controls
+					t.setControlsSize();
+				});
+
+				// TEMP: needs to be moved somewhere else
+				if (t.media.pluginType == 'youtube' && t.options.autoplay) {
+				//LOK-Soft: added t.options.autoplay to if -- I can only guess this is for hiding play button when autoplaying youtube, general hiding play button layer causes missing button on player load
+					t.container.find('.mejs-overlay-play').hide();
+				}
+			}
+
+			// force autoplay for HTML5
+			if (autoplay && media.pluginType == 'native') {
+				t.play();
+			}
+
+
+			if (t.options.success) {
+
+				if (typeof t.options.success == 'string') {
+					window[t.options.success](t.media, t.domNode, t);
+				} else {
+					t.options.success(t.media, t.domNode, t);
+				}
+			}
+		},
+
+		handleError: function(e) {
+			var t = this;
+
+			t.controls.hide();
+
+			// Tell user that the file cannot be played
+			if (t.options.error) {
+				t.options.error(e);
+			}
+		},
+
+		setPlayerSize: function(width,height) {
+			var t = this;
+
+			if( !t.options.setDimensions ) {
+				return false;
+			}
+
+			if (typeof width != 'undefined') {
+				t.width = width;
+			}
+
+			if (typeof height != 'undefined') {
+				t.height = height;
+			}
+
+			// detect 100% mode - use currentStyle for IE since css() doesn't return percentages
+			if (t.height.toString().indexOf('%') > 0 || t.$node.css('max-width') === '100%' || (t.$node[0].currentStyle && t.$node[0].currentStyle.maxWidth === '100%')) {
+
+				// do we have the native dimensions yet?
+				var nativeWidth = (function() {
+					if (t.isVideo) {
+						if (t.media.videoWidth && t.media.videoWidth > 0) {
+							return t.media.videoWidth;
+						} else if (t.media.getAttribute('width') !== null) {
+							return t.media.getAttribute('width');
+						} else {
+							return t.options.defaultVideoWidth;
+						}
+					} else {
+						return t.options.defaultAudioWidth;
+					}
+				})();
+
+				var nativeHeight = (function() {
+					if (t.isVideo) {
+						if (t.media.videoHeight && t.media.videoHeight > 0) {
+							return t.media.videoHeight;
+						} else if (t.media.getAttribute('height') !== null) {
+							return t.media.getAttribute('height');
+						} else {
+							return t.options.defaultVideoHeight;
+						}
+					} else {
+						return t.options.defaultAudioHeight;
+					}
+				})();
+
+				var
+					parentWidth = t.container.parent().closest(':visible').width(),
+					parentHeight = t.container.parent().closest(':visible').height(),
+					newHeight = t.isVideo || !t.options.autosizeProgress ? parseInt(parentWidth * nativeHeight/nativeWidth, 10) : nativeHeight;
+
+				// When we use percent, the newHeight can't be calculated so we get the container height
+				if(isNaN(newHeight) || ( parentHeight != 0 && newHeight > parentHeight )) {
+					newHeight = parentHeight;
+				}
+
+				if (t.container.parent()[0].tagName.toLowerCase() === 'body') { // && t.container.siblings().count == 0) {
+					parentWidth = $(window).width();
+					newHeight = $(window).height();
+				}
+
+				if ( newHeight != 0 && parentWidth != 0 ) {
+					// set outer container size
+					t.container
+						.width(parentWidth)
+						.height(newHeight);
+
+					// set native <video> or <audio> and shims
+					t.$media.add(t.container.find('.mejs-shim'))
+						.width('100%')
+						.height('100%');
+
+					// if shim is ready, send the size to the embeded plugin
+					if (t.isVideo) {
+						if (t.media.setVideoSize) {
+							t.media.setVideoSize(parentWidth, newHeight);
+						}
+					}
+
+					// set the layers
+					t.layers.children('.mejs-layer')
+						.width('100%')
+						.height('100%');
+				}
+
+
+			} else {
+
+				t.container
+					.width(t.width)
+					.height(t.height);
+
+				t.layers.children('.mejs-layer')
+					.width(t.width)
+					.height(t.height);
+
+			}
+
+			// special case for big play button so it doesn't go over the controls area
+			var playLayer = t.layers.find('.mejs-overlay-play'),
+				playButton = playLayer.find('.mejs-overlay-button');
+
+			playLayer.height(t.container.height() - t.controls.height());
+			playButton.css('margin-top', '-' + (playButton.height()/2 - t.controls.height()/2).toString() + 'px'  );
+
+		},
+
+		setControlsSize: function() {
+			var t = this,
+				usedWidth = 0,
+				railWidth = 0,
+				rail = t.controls.find('.mejs-time-rail'),
+				total = t.controls.find('.mejs-time-total'),
+				current = t.controls.find('.mejs-time-current'),
+				loaded = t.controls.find('.mejs-time-loaded'),
+				others = rail.siblings(),
+				lastControl = others.last(),
+				lastControlPosition = null;
+
+			// skip calculation if hidden
+			if (!t.container.is(':visible') || !rail.length || !rail.is(':visible')) {
+				return;
+			}
+
+
+			// allow the size to come from custom CSS
+			if (t.options && !t.options.autosizeProgress) {
+				// Also, frontends devs can be more flexible
+				// due the opportunity of absolute positioning.
+				railWidth = parseInt(rail.css('width'));
+			}
+
+			// attempt to autosize
+			if (railWidth === 0 || !railWidth) {
+
+				// find the size of all the other controls besides the rail
+				others.each(function() {
+					var $this = $(this);
+					if ($this.css('position') != 'absolute' && $this.is(':visible')) {
+						usedWidth += $(this).outerWidth(true);
+					}
+				});
+
+				// fit the rail into the remaining space
+				railWidth = t.controls.width() - usedWidth - (rail.outerWidth(true) - rail.width());
+			}
+
+			// resize the rail,
+			// but then check if the last control (say, the fullscreen button) got pushed down
+			// this often happens when zoomed
+			do {
+				// outer area
+				rail.width(railWidth);
+				// dark space
+				total.width(railWidth - (total.outerWidth(true) - total.width()));
+
+				if (lastControl.css('position') != 'absolute') {
+					lastControlPosition = lastControl.position();
+					railWidth--;
+				}
+			} while (lastControlPosition != null && lastControlPosition.top > 0 && railWidth > 0);
+
+			if (t.setProgressRail)
+				t.setProgressRail();
+			if (t.setCurrentRail)
+				t.setCurrentRail();
+		},
+
+
+		buildposter: function(player, controls, layers, media) {
+			var t = this,
+				poster =
+				$('<div class="mejs-poster mejs-layer">' +
+				'</div>')
+					.appendTo(layers),
+				posterUrl = player.$media.attr('poster');
+
+			// prioriy goes to option (this is useful if you need to support iOS 3.x (iOS completely fails with poster)
+			if (player.options.poster !== '') {
+				posterUrl = player.options.poster;
+			}
+
+			// second, try the real poster
+			if (posterUrl !== '' && posterUrl != null) {
+				t.setPoster(posterUrl);
+			} else {
+				poster.hide();
+			}
+
+			media.addEventListener('play',function() {
+				poster.hide();
+			}, false);
+
+			if(player.options.showPosterWhenEnded && player.options.autoRewind){
+				media.addEventListener('ended',function() {
+					poster.show();
+				}, false);
+			}
+		},
+
+		setPoster: function(url) {
+			var t = this,
+				posterDiv = t.container.find('.mejs-poster'),
+				posterImg = posterDiv.find('img');
+
+			if (posterImg.length == 0) {
+				posterImg = $('<img width="100%" height="100%" />').appendTo(posterDiv);
+			}
+
+			posterImg.attr('src', url);
+			posterDiv.css({'background-image' : 'url(' + url + ')'});
+		},
+
+		buildoverlays: function(player, controls, layers, media) {
+            var t = this;
+			if (!player.isVideo)
+				return;
+
+			var
+			loading =
+				$('<div class="mejs-overlay mejs-layer">'+
+					'<div class="mejs-overlay-loading"><span></span></div>'+
+				'</div>')
+				.hide() // start out hidden
+				.appendTo(layers),
+			error =
+				$('<div class="mejs-overlay mejs-layer">'+
+					'<div class="mejs-overlay-error"></div>'+
+				'</div>')
+				.hide() // start out hidden
+				.appendTo(layers),
+			// this needs to come last so it's on top
+			bigPlay =
+				$('<div class="mejs-overlay mejs-layer mejs-overlay-play">'+
+					'<div class="mejs-overlay-button"></div>'+
+				'</div>')
+				.appendTo(layers)
+				.bind('click', function() {  // Removed 'touchstart' due issues on Samsung Android devices where a tap on bigPlay started and immediately stopped the video
+					if (t.options.clickToPlayPause) {
+						if (media.paused) {
+							media.play();
+						}
+					}
+				});
+
+			/*
+			if (mejs.MediaFeatures.isiOS || mejs.MediaFeatures.isAndroid) {
+				bigPlay.remove();
+				loading.remove();
+			}
+			*/
+
+
+			// show/hide big play button
+			media.addEventListener('play',function() {
+				bigPlay.hide();
+				loading.hide();
+				controls.find('.mejs-time-buffering').hide();
+				error.hide();
+			}, false);
+
+			media.addEventListener('playing', function() {
+				bigPlay.hide();
+				loading.hide();
+				controls.find('.mejs-time-buffering').hide();
+				error.hide();
+			}, false);
+
+			media.addEventListener('seeking', function() {
+				loading.show();
+				controls.find('.mejs-time-buffering').show();
+			}, false);
+
+			media.addEventListener('seeked', function() {
+				loading.hide();
+				controls.find('.mejs-time-buffering').hide();
+			}, false);
+
+			media.addEventListener('pause',function() {
+				if (!mejs.MediaFeatures.isiPhone) {
+					bigPlay.show();
+				}
+			}, false);
+
+			media.addEventListener('waiting', function() {
+				loading.show();
+				controls.find('.mejs-time-buffering').show();
+			}, false);
+
+
+			// show/hide loading
+			media.addEventListener('loadeddata',function() {
+				// for some reason Chrome is firing this event
+				//if (mejs.MediaFeatures.isChrome && media.getAttribute && media.getAttribute('preload') === 'none')
+				//	return;
+
+				loading.show();
+				controls.find('.mejs-time-buffering').show();
+			}, false);
+			media.addEventListener('canplay',function() {
+				loading.hide();
+				controls.find('.mejs-time-buffering').hide();
+			}, false);
+
+			// error handling
+			media.addEventListener('error',function() {
+				loading.hide();
+				controls.find('.mejs-time-buffering').hide();
+				error.show();
+				error.find('mejs-overlay-error').html("Error loading this resource");
+			}, false);
+
+			media.addEventListener('keydown', function(e) {
+				t.onkeydown(player, media, e);
+			}, false);
+		},
+
+		buildkeyboard: function(player, controls, layers, media) {
+
+				var t = this;
+
+				// listen for key presses
+				t.globalBind('keydown', function(e) {
+					return t.onkeydown(player, media, e);
+				});
+
+				// check if someone clicked outside a player region, then kill its focus
+				t.globalBind('click', function(event) {
+					player.hasFocus = $(event.target).closest('.mejs-container').length != 0;
+				});
+
+		},
+		onkeydown: function(player, media, e) {
+			if (player.hasFocus && player.options.enableKeyboard) {
+				// find a matching key
+				for (var i = 0, il = player.options.keyActions.length; i < il; i++) {
+					var keyAction = player.options.keyActions[i];
+
+					for (var j = 0, jl = keyAction.keys.length; j < jl; j++) {
+						if (e.keyCode == keyAction.keys[j]) {
+							if (typeof(e.preventDefault) == "function") e.preventDefault();
+							keyAction.action(player, media, e.keyCode);
+							return false;
+						}
+					}
+				}
+			}
+
+			return true;
+		},
+
+		findTracks: function() {
+			var t = this,
+				tracktags = t.$media.find('track');
+
+			// store for use by plugins
+			t.tracks = [];
+			tracktags.each(function(index, track) {
+
+				track = $(track);
+
+				t.tracks.push({
+					srclang: (track.attr('srclang')) ? track.attr('srclang').toLowerCase() : '',
+					src: track.attr('src'),
+					kind: track.attr('kind'),
+					label: track.attr('label') || '',
+					entries: [],
+					isLoaded: false
+				});
+			});
+		},
+		changeSkin: function(className) {
+			this.container[0].className = 'mejs-container ' + className;
+			this.setPlayerSize(this.width, this.height);
+			this.setControlsSize();
+		},
+		play: function() {
+			this.load();
+			this.media.play();
+		},
+		pause: function() {
+			try {
+				this.media.pause();
+			} catch (e) {}
+		},
+		load: function() {
+			if (!this.isLoaded) {
+				this.media.load();
+			}
+
+			this.isLoaded = true;
+		},
+		setMuted: function(muted) {
+			this.media.setMuted(muted);
+		},
+		setCurrentTime: function(time) {
+			this.media.setCurrentTime(time);
+		},
+		getCurrentTime: function() {
+			return this.media.currentTime;
+		},
+		setVolume: function(volume) {
+			this.media.setVolume(volume);
+		},
+		getVolume: function() {
+			return this.media.volume;
+		},
+		setSrc: function(src) {
+			this.media.setSrc(src);
+		},
+		remove: function() {
+			var t = this, featureIndex, feature;
+
+			// invoke features cleanup
+			for (featureIndex in t.options.features) {
+				feature = t.options.features[featureIndex];
+				if (t['clean' + feature]) {
+					try {
+						t['clean' + feature](t);
+					} catch (e) {
+						// TODO: report control error
+						//throw e;
+						//
+						//
+					}
+				}
+			}
+
+			// grab video and put it back in place
+			if (!t.isDynamic) {
+				t.$media.prop('controls', true);
+				// detach events from the video
+				// TODO: detach event listeners better than this;
+				//       also detach ONLY the events attached by this plugin!
+				t.$node.clone().insertBefore(t.container).show();
+				t.$node.remove();
+			} else {
+				t.$node.insertBefore(t.container);
+			}
+
+			if (t.media.pluginType !== 'native') {
+				t.media.remove();
+			}
+
+			// Remove the player from the mejs.players object so that pauseOtherPlayers doesn't blow up when trying to pause a non existance flash api.
+			delete mejs.players[t.id];
+
+			if (typeof t.container == 'object') {
+				t.container.remove();
+			}
+			t.globalUnbind();
+			delete t.node.player;
+		}
+	};
+
+	(function(){
+		var rwindow = /^((after|before)print|(before)?unload|hashchange|message|o(ff|n)line|page(hide|show)|popstate|resize|storage)\b/;
+
+		function splitEvents(events, id) {
+			// add player ID as an event namespace so it's easier to unbind them all later
+			var ret = {d: [], w: []};
+			$.each((events || '').split(' '), function(k, v){
+				var eventname = v + '.' + id;
+				if (eventname.indexOf('.') === 0) {
+					ret.d.push(eventname);
+					ret.w.push(eventname);
+				}
+				else {
+					ret[rwindow.test(v) ? 'w' : 'd'].push(eventname);
+				}
+			});
+			ret.d = ret.d.join(' ');
+			ret.w = ret.w.join(' ');
+			return ret;
+		}
+
+		mejs.MediaElementPlayer.prototype.globalBind = function(events, data, callback) {
+			var t = this;
+			events = splitEvents(events, t.id);
+			if (events.d) $(document).bind(events.d, data, callback);
+			if (events.w) $(window).bind(events.w, data, callback);
+		};
+
+		mejs.MediaElementPlayer.prototype.globalUnbind = function(events, callback) {
+			var t = this;
+			events = splitEvents(events, t.id);
+			if (events.d) $(document).unbind(events.d, callback);
+			if (events.w) $(window).unbind(events.w, callback);
+		};
+	})();
+
+	// turn into jQuery plugin
+	if (typeof $ != 'undefined') {
+		$.fn.mediaelementplayer = function (options) {
+			if (options === false) {
+				this.each(function () {
+					var player = $(this).data('mediaelementplayer');
+					if (player) {
+						player.remove();
+					}
+					$(this).removeData('mediaelementplayer');
+				});
+			}
+			else {
+				this.each(function () {
+					$(this).data('mediaelementplayer', new mejs.MediaElementPlayer(this, options));
+				});
+			}
+			return this;
+		};
+
+
+		$(document).ready(function() {
+			// auto enable using JSON attribute
+			$('.mejs-player').mediaelementplayer();
+		});
+	}
+
+	// push out to window
+	window.MediaElementPlayer = mejs.MediaElementPlayer;
+
+})(mejs.$);
+
+(function($) {
+
+	$.extend(mejs.MepDefaults, {
+		playpauseText: mejs.i18n.t('Play/Pause')
+	});
+
+	// PLAY/pause BUTTON
+	$.extend(MediaElementPlayer.prototype, {
+		buildplaypause: function(player, controls, layers, media) {
+			var 
+				t = this,
+				play = 
+				$('<div class="mejs-button mejs-playpause-button mejs-play" >' +
+					'<button type="button" aria-controls="' + t.id + '" title="' + t.options.playpauseText + '" aria-label="' + t.options.playpauseText + '"></button>' +
+				'</div>')
+				.appendTo(controls)
+				.click(function(e) {
+					e.preventDefault();
+				
+					if (media.paused) {
+						media.play();
+					} else {
+						media.pause();
+					}
+					
+					return false;
+				});
+
+			media.addEventListener('play',function() {
+				play.removeClass('mejs-play').addClass('mejs-pause');
+			}, false);
+			media.addEventListener('playing',function() {
+				play.removeClass('mejs-play').addClass('mejs-pause');
+			}, false);
+
+
+			media.addEventListener('pause',function() {
+				play.removeClass('mejs-pause').addClass('mejs-play');
+			}, false);
+			media.addEventListener('paused',function() {
+				play.removeClass('mejs-pause').addClass('mejs-play');
+			}, false);
+		}
+	});
+	
+})(mejs.$);
+
+(function($) {
+
+	$.extend(mejs.MepDefaults, {
+		stopText: 'Stop'
+	});
+
+	// STOP BUTTON
+	$.extend(MediaElementPlayer.prototype, {
+		buildstop: function(player, controls, layers, media) {
+			var t = this,
+				stop = 
+				$('<div class="mejs-button mejs-stop-button mejs-stop">' +
+					'<button type="button" aria-controls="' + t.id + '" title="' + t.options.stopText + '" aria-label="' + t.options.stopText + '"></button>' +
+				'</div>')
+				.appendTo(controls)
+				.click(function() {
+					if (!media.paused) {
+						media.pause();
+					}
+					if (media.currentTime > 0) {
+						media.setCurrentTime(0);
+                        media.pause();
+						controls.find('.mejs-time-current').width('0px');
+						controls.find('.mejs-time-handle').css('left', '0px');
+						controls.find('.mejs-time-float-current').html( mejs.Utility.secondsToTimeCode(0) );
+						controls.find('.mejs-currenttime').html( mejs.Utility.secondsToTimeCode(0) );					
+						layers.find('.mejs-poster').show();
+					}
+				});
+		}
+	});
+	
+})(mejs.$);
+
+(function($) {
+	// progress/loaded bar
+	$.extend(MediaElementPlayer.prototype, {
+		buildprogress: function(player, controls, layers, media) {
+
+			$('<div class="mejs-time-rail">'+
+				'<span class="mejs-time-total">'+
+					'<span class="mejs-time-buffering"></span>'+
+					'<span class="mejs-time-loaded"></span>'+
+					'<span class="mejs-time-current"></span>'+
+					'<span class="mejs-time-handle"></span>'+
+					'<span class="mejs-time-float">' + 
+						'<span class="mejs-time-float-current">00:00</span>' + 
+						'<span class="mejs-time-float-corner"></span>' + 
+					'</span>'+
+				'</span>'+
+			'</div>')
+				.appendTo(controls);
+				controls.find('.mejs-time-buffering').hide();
+
+			var 
+				t = this,
+				total = controls.find('.mejs-time-total'),
+				loaded  = controls.find('.mejs-time-loaded'),
+				current  = controls.find('.mejs-time-current'),
+				handle  = controls.find('.mejs-time-handle'),
+				timefloat  = controls.find('.mejs-time-float'),
+				timefloatcurrent  = controls.find('.mejs-time-float-current'),
+				handleMouseMove = function (e) {
+					// mouse or touch position relative to the object
+					if (e.originalEvent.changedTouches) {
+						var x = e.originalEvent.changedTouches[0].pageX;
+					}else{
+						var x = e.pageX;
+					}
+					
+					var offset = total.offset(),
+						width = total.outerWidth(true),
+						percentage = 0,
+						newTime = 0,
+						pos = 0;
+
+
+					if (media.duration) {
+						if (x < offset.left) {
+							x = offset.left;
+						} else if (x > width + offset.left) {
+							x = width + offset.left;
+						}
+						
+						pos = x - offset.left;
+						percentage = (pos / width);
+						newTime = (percentage <= 0.02) ? 0 : percentage * media.duration;
+
+						// seek to where the mouse is
+						if (mouseIsDown && newTime !== media.currentTime) {
+							media.setCurrentTime(newTime);
+						}
+
+						// position floating time box
+						if (!mejs.MediaFeatures.hasTouch) {
+								timefloat.css('left', pos);
+								timefloatcurrent.html( mejs.Utility.secondsToTimeCode(newTime) );
+								timefloat.show();
+						}
+					}
+				},
+				mouseIsDown = false,
+				mouseIsOver = false;
+
+			// handle clicks
+			//controls.find('.mejs-time-rail').delegate('span', 'click', handleMouseMove);
+			total
+				.bind('mousedown touchstart', function (e) {
+					// only handle left clicks or touch
+					if (e.which === 1 || e.which === 0) {
+						mouseIsDown = true;
+						handleMouseMove(e);
+						t.globalBind('mousemove.dur touchmove.dur', function(e) {
+							handleMouseMove(e);
+						});
+						t.globalBind('mouseup.dur touchend.dur', function (e) {
+							mouseIsDown = false;
+							timefloat.hide();
+							t.globalUnbind('.dur');
+						});
+						return false;
+					}
+				})
+				.bind('mouseenter', function(e) {
+					mouseIsOver = true;
+					t.globalBind('mousemove.dur', function(e) {
+						handleMouseMove(e);
+					});
+					if (!mejs.MediaFeatures.hasTouch) {
+						timefloat.show();
+					}
+				})
+				.bind('mouseleave',function(e) {
+					mouseIsOver = false;
+					if (!mouseIsDown) {
+						t.globalUnbind('.dur');
+						timefloat.hide();
+					}
+				});
+
+			// loading
+			media.addEventListener('progress', function (e) {
+				player.setProgressRail(e);
+				player.setCurrentRail(e);
+			}, false);
+
+			// current time
+			media.addEventListener('timeupdate', function(e) {
+				player.setProgressRail(e);
+				player.setCurrentRail(e);
+			}, false);
+			
+			
+			// store for later use
+			t.loaded = loaded;
+			t.total = total;
+			t.current = current;
+			t.handle = handle;
+		},
+		setProgressRail: function(e) {
+
+			var
+				t = this,
+				target = (e != undefined) ? e.target : t.media,
+				percent = null;			
+
+			// newest HTML5 spec has buffered array (FF4, Webkit)
+			if (target && target.buffered && target.buffered.length > 0 && target.buffered.end && target.duration) {
+				// TODO: account for a real array with multiple values (only Firefox 4 has this so far) 
+				percent = target.buffered.end(0) / target.duration;
+			} 
+			// Some browsers (e.g., FF3.6 and Safari 5) cannot calculate target.bufferered.end()
+			// to be anything other than 0. If the byte count is available we use this instead.
+			// Browsers that support the else if do not seem to have the bufferedBytes value and
+			// should skip to there. Tested in Safari 5, Webkit head, FF3.6, Chrome 6, IE 7/8.
+			else if (target && target.bytesTotal != undefined && target.bytesTotal > 0 && target.bufferedBytes != undefined) {
+				percent = target.bufferedBytes / target.bytesTotal;
+			}
+			// Firefox 3 with an Ogg file seems to go this way
+			else if (e && e.lengthComputable && e.total != 0) {
+				percent = e.loaded/e.total;
+			}
+
+			// finally update the progress bar
+			if (percent !== null) {
+				percent = Math.min(1, Math.max(0, percent));
+				// update loaded bar
+				if (t.loaded && t.total) {
+					t.loaded.width(t.total.width() * percent);
+				}
+			}
+		},
+		setCurrentRail: function() {
+
+			var t = this;
+		
+			if (t.media.currentTime != undefined && t.media.duration) {
+
+				// update bar and handle
+				if (t.total && t.handle) {
+					var 
+						newWidth = Math.round(t.total.width() * t.media.currentTime / t.media.duration),
+						handlePos = newWidth - Math.round(t.handle.outerWidth(true) / 2);
+
+					t.current.width(newWidth);
+					t.handle.css('left', handlePos);
+				}
+			}
+
+		}	
+	});
+})(mejs.$);
+
+(function($) {
+	
+	// options
+	$.extend(mejs.MepDefaults, {
+		duration: -1,
+		timeAndDurationSeparator: '<span> | </span>'
+	});
+
+
+	// current and duration 00:00 / 00:00
+	$.extend(MediaElementPlayer.prototype, {
+		buildcurrent: function(player, controls, layers, media) {
+			var t = this;
+			
+			$('<div class="mejs-time">'+
+					'<span class="mejs-currenttime">' + (player.options.alwaysShowHours ? '00:' : '')
+					+ (player.options.showTimecodeFrameCount? '00:00:00':'00:00')+ '</span>'+
+					'</div>')
+					.appendTo(controls);
+			
+			t.currenttime = t.controls.find('.mejs-currenttime');
+
+			media.addEventListener('timeupdate',function() {
+				player.updateCurrent();
+			}, false);
+		},
+
+
+		buildduration: function(player, controls, layers, media) {
+			var t = this;
+			
+			if (controls.children().last().find('.mejs-currenttime').length > 0) {
+				$(t.options.timeAndDurationSeparator +
+					'<span class="mejs-duration">' + 
+						(t.options.duration > 0 ? 
+							mejs.Utility.secondsToTimeCode(t.options.duration, t.options.alwaysShowHours || t.media.duration > 3600, t.options.showTimecodeFrameCount,  t.options.framesPerSecond || 25) :
+				   			((player.options.alwaysShowHours ? '00:' : '') + (player.options.showTimecodeFrameCount? '00:00:00':'00:00')) 
+				   		) + 
+					'</span>')
+					.appendTo(controls.find('.mejs-time'));
+			} else {
+
+				// add class to current time
+				controls.find('.mejs-currenttime').parent().addClass('mejs-currenttime-container');
+				
+				$('<div class="mejs-time mejs-duration-container">'+
+					'<span class="mejs-duration">' + 
+						(t.options.duration > 0 ? 
+							mejs.Utility.secondsToTimeCode(t.options.duration, t.options.alwaysShowHours || t.media.duration > 3600, t.options.showTimecodeFrameCount,  t.options.framesPerSecond || 25) :
+				   			((player.options.alwaysShowHours ? '00:' : '') + (player.options.showTimecodeFrameCount? '00:00:00':'00:00')) 
+				   		) + 
+					'</span>' +
+				'</div>')
+				.appendTo(controls);
+			}
+			
+			t.durationD = t.controls.find('.mejs-duration');
+
+			media.addEventListener('timeupdate',function() {
+				player.updateDuration();
+			}, false);
+		},
+		
+		updateCurrent:  function() {
+			var t = this;
+
+			if (t.currenttime) {
+				t.currenttime.html(mejs.Utility.secondsToTimeCode(t.media.currentTime, t.options.alwaysShowHours || t.media.duration > 3600, t.options.showTimecodeFrameCount,  t.options.framesPerSecond || 25));
+			}
+		},
+		
+		updateDuration: function() {
+			var t = this;
+
+			//Toggle the long video class if the video is longer than an hour.
+			t.container.toggleClass("mejs-long-video", t.media.duration > 3600);
+			
+			if (t.durationD && (t.options.duration > 0 || t.media.duration)) {
+				t.durationD.html(mejs.Utility.secondsToTimeCode(t.options.duration > 0 ? t.options.duration : t.media.duration, t.options.alwaysShowHours, t.options.showTimecodeFrameCount, t.options.framesPerSecond || 25));
+			}		
+		}
+	});
+
+})(mejs.$);
+
+(function($) {
+
+	$.extend(mejs.MepDefaults, {
+		muteText: mejs.i18n.t('Mute Toggle'),
+		hideVolumeOnTouchDevices: true,
+		
+		audioVolume: 'horizontal',
+		videoVolume: 'vertical'
+	});
+
+	$.extend(MediaElementPlayer.prototype, {
+		buildvolume: function(player, controls, layers, media) {
+				
+			// Android and iOS don't support volume controls
+			if ((mejs.MediaFeatures.isAndroid || mejs.MediaFeatures.isiOS) && this.options.hideVolumeOnTouchDevices)
+				return;
+			
+			var t = this,
+				mode = (t.isVideo) ? t.options.videoVolume : t.options.audioVolume,
+				mute = (mode == 'horizontal') ?
+				
+				// horizontal version
+				$('<div class="mejs-button mejs-volume-button mejs-mute">'+
+					'<button type="button" aria-controls="' + t.id + '" title="' + t.options.muteText + '" aria-label="' + t.options.muteText + '"></button>'+
+				'</div>' +
+				'<div class="mejs-horizontal-volume-slider">'+ // outer background
+					'<div class="mejs-horizontal-volume-total"></div>'+ // line background
+					'<div class="mejs-horizontal-volume-current"></div>'+ // current volume
+					'<div class="mejs-horizontal-volume-handle"></div>'+ // handle
+				'</div>'
+				)
+					.appendTo(controls) :
+				
+				// vertical version
+				$('<div class="mejs-button mejs-volume-button mejs-mute">'+
+					'<button type="button" aria-controls="' + t.id + '" title="' + t.options.muteText + '" aria-label="' + t.options.muteText + '"></button>'+
+					'<div class="mejs-volume-slider">'+ // outer background
+						'<div class="mejs-volume-total"></div>'+ // line background
+						'<div class="mejs-volume-current"></div>'+ // current volume
+						'<div class="mejs-volume-handle"></div>'+ // handle
+					'</div>'+
+				'</div>')
+					.appendTo(controls),
+			volumeSlider = t.container.find('.mejs-volume-slider, .mejs-horizontal-volume-slider'),
+			volumeTotal = t.container.find('.mejs-volume-total, .mejs-horizontal-volume-total'),
+			volumeCurrent = t.container.find('.mejs-volume-current, .mejs-horizontal-volume-current'),
+			volumeHandle = t.container.find('.mejs-volume-handle, .mejs-horizontal-volume-handle'),
+
+			positionVolumeHandle = function(volume, secondTry) {
+
+				if (!volumeSlider.is(':visible') && typeof secondTry == 'undefined') {
+					volumeSlider.show();
+					positionVolumeHandle(volume, true);
+					volumeSlider.hide()
+					return;
+				}
+			
+				// correct to 0-1
+				volume = Math.max(0,volume);
+				volume = Math.min(volume,1);					
+				
+				// ajust mute button style
+				if (volume == 0) {
+					mute.removeClass('mejs-mute').addClass('mejs-unmute');
+				} else {
+					mute.removeClass('mejs-unmute').addClass('mejs-mute');
+				}				
+
+				// position slider 
+				if (mode == 'vertical') {
+					var 
+					
+						// height of the full size volume slider background
+						totalHeight = volumeTotal.height(),
+						
+						// top/left of full size volume slider background
+						totalPosition = volumeTotal.position(),
+						
+						// the new top position based on the current volume
+						// 70% volume on 100px height == top:30px
+						newTop = totalHeight - (totalHeight * volume);
+	
+					// handle
+					volumeHandle.css('top', Math.round(totalPosition.top + newTop - (volumeHandle.height() / 2)));
+	
+					// show the current visibility
+					volumeCurrent.height(totalHeight - newTop );
+					volumeCurrent.css('top', totalPosition.top + newTop);
+				} else {
+					var 
+					
+						// height of the full size volume slider background
+						totalWidth = volumeTotal.width(),
+						
+						// top/left of full size volume slider background
+						totalPosition = volumeTotal.position(),
+						
+						// the new left position based on the current volume
+						newLeft = totalWidth * volume;
+	
+					// handle
+					volumeHandle.css('left', Math.round(totalPosition.left + newLeft - (volumeHandle.width() / 2)));
+	
+					// rezize the current part of the volume bar
+					volumeCurrent.width( Math.round(newLeft) );
+				}
+			},
+			handleVolumeMove = function(e) {
+				
+				var volume = null,
+					totalOffset = volumeTotal.offset();
+				
+				// calculate the new volume based on the moust position
+				if (mode == 'vertical') {
+				
+					var
+						railHeight = volumeTotal.height(),
+						totalTop = parseInt(volumeTotal.css('top').replace(/px/,''),10),
+						newY = e.pageY - totalOffset.top;
+						
+					volume = (railHeight - newY) / railHeight;
+						
+					// the controls just hide themselves (usually when mouse moves too far up)
+					if (totalOffset.top == 0 || totalOffset.left == 0)
+						return;
+					
+				} else {
+					var
+						railWidth = volumeTotal.width(),
+						newX = e.pageX - totalOffset.left;
+						
+					volume = newX / railWidth;
+				}
+				
+				// ensure the volume isn't outside 0-1
+				volume = Math.max(0,volume);
+				volume = Math.min(volume,1);
+				
+				// position the slider and handle			
+				positionVolumeHandle(volume);
+				
+				// set the media object (this will trigger the volumechanged event)
+				if (volume == 0) {
+					media.setMuted(true);
+				} else {
+					media.setMuted(false);
+				}
+				media.setVolume(volume);			
+			},
+			mouseIsDown = false,
+			mouseIsOver = false;
+
+			// SLIDER
+			
+			mute
+				.hover(function() {
+					volumeSlider.show();
+					mouseIsOver = true;
+				}, function() {
+					mouseIsOver = false;	
+						
+					if (!mouseIsDown && mode == 'vertical')	{
+						volumeSlider.hide();
+					}
+				});
+			
+			volumeSlider
+				.bind('mouseover', function() {
+					mouseIsOver = true;	
+				})
+				.bind('mousedown', function (e) {
+					handleVolumeMove(e);
+					t.globalBind('mousemove.vol', function(e) {
+						handleVolumeMove(e);
+					});
+					t.globalBind('mouseup.vol', function () {
+						mouseIsDown = false;
+						t.globalUnbind('.vol');
+
+						if (!mouseIsOver && mode == 'vertical') {
+							volumeSlider.hide();
+						}
+					});
+					mouseIsDown = true;
+						
+					return false;
+				});
+
+
+			// MUTE button
+			mute.find('button').click(function() {
+				media.setMuted( !media.muted );
+			});
+
+			// listen for volume change events from other sources
+			media.addEventListener('volumechange', function(e) {
+				if (!mouseIsDown) {
+					if (media.muted) {
+						positionVolumeHandle(0);
+						mute.removeClass('mejs-mute').addClass('mejs-unmute');
+					} else {
+						positionVolumeHandle(media.volume);
+						mute.removeClass('mejs-unmute').addClass('mejs-mute');
+					}
+				}
+			}, false);
+
+			if (t.container.is(':visible')) {
+				// set initial volume
+				positionVolumeHandle(player.options.startVolume);
+
+				// mutes the media and sets the volume icon muted if the initial volume is set to 0
+        if (player.options.startVolume === 0) {
+          media.setMuted(true);
+        }
+
+				// shim gets the startvolume as a parameter, but we have to set it on the native <video> and <audio> elements
+				if (media.pluginType === 'native') {
+					media.setVolume(player.options.startVolume);
+				}
+			}
+		}
+	});
+	
+})(mejs.$);
+
+(function($) {
+
+	$.extend(mejs.MepDefaults, {
+		usePluginFullScreen: true,
+		newWindowCallback: function() { return '';},
+		fullscreenText: mejs.i18n.t('Fullscreen')
+	});
+
+	$.extend(MediaElementPlayer.prototype, {
+
+		isFullScreen: false,
+
+		isNativeFullScreen: false,
+
+		isInIframe: false,
+
+		buildfullscreen: function(player, controls, layers, media) {
+
+			if (!player.isVideo)
+				return;
+
+			player.isInIframe = (window.location != window.parent.location);
+
+			// native events
+			if (mejs.MediaFeatures.hasTrueNativeFullScreen) {
+
+				// chrome doesn't alays fire this in an iframe
+				var func = function(e) {
+					if (player.isFullScreen) {
+						if (mejs.MediaFeatures.isFullScreen()) {
+							player.isNativeFullScreen = true;
+							// reset the controls once we are fully in full screen
+							player.setControlsSize();
+						} else {
+							player.isNativeFullScreen = false;
+							// when a user presses ESC
+							// make sure to put the player back into place
+							player.exitFullScreen();
+						}
+					}
+				};
+
+				player.globalBind(mejs.MediaFeatures.fullScreenEventName, func);
+			}
+
+			var t = this,
+				normalHeight = 0,
+				normalWidth = 0,
+				container = player.container,
+				fullscreenBtn =
+					$('<div class="mejs-button mejs-fullscreen-button">' +
+						'<button type="button" aria-controls="' + t.id + '" title="' + t.options.fullscreenText + '" aria-label="' + t.options.fullscreenText + '"></button>' +
+					'</div>')
+					.appendTo(controls);
+
+				if (t.media.pluginType === 'native' || (!t.options.usePluginFullScreen && !mejs.MediaFeatures.isFirefox)) {
+
+					fullscreenBtn.click(function() {
+						var isFullScreen = (mejs.MediaFeatures.hasTrueNativeFullScreen && mejs.MediaFeatures.isFullScreen()) || player.isFullScreen;
+
+						if (isFullScreen) {
+							player.exitFullScreen();
+						} else {
+							player.enterFullScreen();
+						}
+					});
+
+				} else {
+
+					var hideTimeout = null,
+						supportsPointerEvents = (function() {
+							// TAKEN FROM MODERNIZR
+							var element = document.createElement('x'),
+								documentElement = document.documentElement,
+								getComputedStyle = window.getComputedStyle,
+								supports;
+							if(!('pointerEvents' in element.style)){
+								return false;
+							}
+							element.style.pointerEvents = 'auto';
+							element.style.pointerEvents = 'x';
+							documentElement.appendChild(element);
+							supports = getComputedStyle &&
+								getComputedStyle(element, '').pointerEvents === 'auto';
+							documentElement.removeChild(element);
+							return !!supports;
+						})();
+
+					//
+
+					if (supportsPointerEvents && !mejs.MediaFeatures.isOpera) { // opera doesn't allow this :(
+
+						// allows clicking through the fullscreen button and controls down directly to Flash
+
+						/*
+						 When a user puts his mouse over the fullscreen button, the controls are disabled
+						 So we put a div over the video and another one on iether side of the fullscreen button
+						 that caputre mouse movement
+						 and restore the controls once the mouse moves outside of the fullscreen button
+						*/
+
+						var fullscreenIsDisabled = false,
+							restoreControls = function() {
+								if (fullscreenIsDisabled) {
+									// hide the hovers
+									for (var i in hoverDivs) {
+										hoverDivs[i].hide();
+									}
+
+									// restore the control bar
+									fullscreenBtn.css('pointer-events', '');
+									t.controls.css('pointer-events', '');
+
+									// prevent clicks from pausing video
+									t.media.removeEventListener('click', t.clickToPlayPauseCallback);
+
+									// store for later
+									fullscreenIsDisabled = false;
+								}
+							},
+							hoverDivs = {},
+							hoverDivNames = ['top', 'left', 'right', 'bottom'],
+							i, len,
+							positionHoverDivs = function() {
+								var fullScreenBtnOffsetLeft = fullscreenBtn.offset().left - t.container.offset().left,
+									fullScreenBtnOffsetTop = fullscreenBtn.offset().top - t.container.offset().top,
+									fullScreenBtnWidth = fullscreenBtn.outerWidth(true),
+									fullScreenBtnHeight = fullscreenBtn.outerHeight(true),
+									containerWidth = t.container.width(),
+									containerHeight = t.container.height();
+
+								for (i in hoverDivs) {
+									hoverDivs[i].css({position: 'absolute', top: 0, left: 0}); //, backgroundColor: '#f00'});
+								}
+
+								// over video, but not controls
+								hoverDivs['top']
+									.width( containerWidth )
+									.height( fullScreenBtnOffsetTop );
+
+								// over controls, but not the fullscreen button
+								hoverDivs['left']
+									.width( fullScreenBtnOffsetLeft )
+									.height( fullScreenBtnHeight )
+									.css({top: fullScreenBtnOffsetTop});
+
+								// after the fullscreen button
+								hoverDivs['right']
+									.width( containerWidth - fullScreenBtnOffsetLeft - fullScreenBtnWidth )
+									.height( fullScreenBtnHeight )
+									.css({top: fullScreenBtnOffsetTop,
+										 left: fullScreenBtnOffsetLeft + fullScreenBtnWidth});
+
+								// under the fullscreen button
+								hoverDivs['bottom']
+									.width( containerWidth )
+									.height( containerHeight - fullScreenBtnHeight - fullScreenBtnOffsetTop )
+									.css({top: fullScreenBtnOffsetTop + fullScreenBtnHeight});
+							};
+
+						t.globalBind('resize', function() {
+							positionHoverDivs();
+						});
+
+						for (i = 0, len = hoverDivNames.length; i < len; i++) {
+							hoverDivs[hoverDivNames[i]] = $('<div class="mejs-fullscreen-hover" />').appendTo(t.container).mouseover(restoreControls).hide();
+						}
+
+						// on hover, kill the fullscreen button's HTML handling, allowing clicks down to Flash
+						fullscreenBtn.on('mouseover',function() {
+
+							if (!t.isFullScreen) {
+
+								var buttonPos = fullscreenBtn.offset(),
+									containerPos = player.container.offset();
+
+								// move the button in Flash into place
+								media.positionFullscreenButton(buttonPos.left - containerPos.left, buttonPos.top - containerPos.top, false);
+
+								// allows click through
+								fullscreenBtn.css('pointer-events', 'none');
+								t.controls.css('pointer-events', 'none');
+
+								// restore click-to-play
+								t.media.addEventListener('click', t.clickToPlayPauseCallback);
+
+								// show the divs that will restore things
+								for (i in hoverDivs) {
+									hoverDivs[i].show();
+								}
+
+								positionHoverDivs();
+
+								fullscreenIsDisabled = true;
+							}
+
+						});
+
+						// restore controls anytime the user enters or leaves fullscreen
+						media.addEventListener('fullscreenchange', function(e) {
+							t.isFullScreen = !t.isFullScreen;
+							// don't allow plugin click to pause video - messes with
+							// plugin's controls
+							if (t.isFullScreen) {
+								t.media.removeEventListener('click', t.clickToPlayPauseCallback);
+							} else {
+								t.media.addEventListener('click', t.clickToPlayPauseCallback);
+							}
+							restoreControls();
+						});
+
+
+						// the mouseout event doesn't work on the fullscren button, because we already killed the pointer-events
+						// so we use the document.mousemove event to restore controls when the mouse moves outside the fullscreen button
+
+						t.globalBind('mousemove', function(e) {
+
+							// if the mouse is anywhere but the fullsceen button, then restore it all
+							if (fullscreenIsDisabled) {
+
+								var fullscreenBtnPos = fullscreenBtn.offset();
+
+
+								if (e.pageY < fullscreenBtnPos.top || e.pageY > fullscreenBtnPos.top + fullscreenBtn.outerHeight(true) ||
+									e.pageX < fullscreenBtnPos.left || e.pageX > fullscreenBtnPos.left + fullscreenBtn.outerWidth(true)
+									) {
+
+									fullscreenBtn.css('pointer-events', '');
+									t.controls.css('pointer-events', '');
+
+									fullscreenIsDisabled = false;
+								}
+							}
+						});
+
+
+
+					} else {
+
+						// the hover state will show the fullscreen button in Flash to hover up and click
+
+						fullscreenBtn
+							.on('mouseover', function() {
+
+								if (hideTimeout !== null) {
+									clearTimeout(hideTimeout);
+									delete hideTimeout;
+								}
+
+								var buttonPos = fullscreenBtn.offset(),
+									containerPos = player.container.offset();
+
+								media.positionFullscreenButton(buttonPos.left - containerPos.left, buttonPos.top - containerPos.top, true);
+
+							})
+							.on('mouseout', function() {
+
+								if (hideTimeout !== null) {
+									clearTimeout(hideTimeout);
+									delete hideTimeout;
+								}
+
+								hideTimeout = setTimeout(function() {
+									media.hideFullscreenButton();
+								}, 1500);
+
+
+							});
+					}
+				}
+
+			player.fullscreenBtn = fullscreenBtn;
+
+			t.globalBind('keydown',function (e) {
+				if (((mejs.MediaFeatures.hasTrueNativeFullScreen && mejs.MediaFeatures.isFullScreen()) || t.isFullScreen) && e.keyCode == 27) {
+					player.exitFullScreen();
+				}
+			});
+
+		},
+
+		cleanfullscreen: function(player) {
+			player.exitFullScreen();
+		},
+
+        containerSizeTimeout: null,
+
+		enterFullScreen: function() {
+
+			var t = this;
+
+			// firefox+flash can't adjust plugin sizes without resetting :(
+			if (t.media.pluginType !== 'native' && (mejs.MediaFeatures.isFirefox || t.options.usePluginFullScreen)) {
+				//t.media.setFullscreen(true);
+				//player.isFullScreen = true;
+				return;
+			}
+
+			// set it to not show scroll bars so 100% will work
+            $(document.documentElement).addClass('mejs-fullscreen');
+
+			// store sizing
+			normalHeight = t.container.height();
+			normalWidth = t.container.width();
+
+			// attempt to do true fullscreen (Safari 5.1 and Firefox Nightly only for now)
+			if (t.media.pluginType === 'native') {
+				if (mejs.MediaFeatures.hasTrueNativeFullScreen) {
+
+					mejs.MediaFeatures.requestFullScreen(t.container[0]);
+					//return;
+
+					if (t.isInIframe) {
+						// sometimes exiting from fullscreen doesn't work
+						// notably in Chrome <iframe>. Fixed in version 17
+						setTimeout(function checkFullscreen() {
+
+							if (t.isNativeFullScreen) {
+								var zoomMultiplier = window["devicePixelRatio"] || 1;
+								// Use a percent error margin since devicePixelRatio is a float and not exact.
+								var percentErrorMargin = 0.002; // 0.2%
+								var windowWidth = zoomMultiplier * $(window).width();
+								var screenWidth = screen.width;
+								var absDiff = Math.abs(screenWidth - windowWidth);
+								var marginError = screenWidth * percentErrorMargin;
+
+								// check if the video is suddenly not really fullscreen
+								if (absDiff > marginError) {
+									// manually exit
+									t.exitFullScreen();
+								} else {
+									// test again
+									setTimeout(checkFullscreen, 500);
+								}
+							}
+
+
+						}, 500);
+					}
+
+				} else if (mejs.MediaFeatures.hasSemiNativeFullScreen) {
+					t.media.webkitEnterFullscreen();
+					return;
+				}
+			}
+
+			// check for iframe launch
+			if (t.isInIframe) {
+				var url = t.options.newWindowCallback(this);
+
+
+				if (url !== '') {
+
+					// launch immediately
+					if (!mejs.MediaFeatures.hasTrueNativeFullScreen) {
+						t.pause();
+						window.open(url, t.id, 'top=0,left=0,width=' + screen.availWidth + ',height=' + screen.availHeight + ',resizable=yes,scrollbars=no,status=no,toolbar=no');
+						return;
+					} else {
+						setTimeout(function() {
+							if (!t.isNativeFullScreen) {
+								t.pause();
+								window.open(url, t.id, 'top=0,left=0,width=' + screen.availWidth + ',height=' + screen.availHeight + ',resizable=yes,scrollbars=no,status=no,toolbar=no');
+							}
+						}, 250);
+					}
+				}
+
+			}
+
+			// full window code
+
+
+
+			// make full size
+			t.container
+				.addClass('mejs-container-fullscreen')
+				.width('100%')
+				.height('100%');
+				//.css({position: 'fixed', left: 0, top: 0, right: 0, bottom: 0, overflow: 'hidden', width: '100%', height: '100%', 'z-index': 1000});
+
+			// Only needed for safari 5.1 native full screen, can cause display issues elsewhere
+			// Actually, it seems to be needed for IE8, too
+			//if (mejs.MediaFeatures.hasTrueNativeFullScreen) {
+				t.containerSizeTimeout = setTimeout(function() {
+					t.container.css({width: '100%', height: '100%'});
+					t.setControlsSize();
+				}, 500);
+			//}
+
+			if (t.media.pluginType === 'native') {
+				t.$media
+					.width('100%')
+					.height('100%');
+			} else {
+				t.container.find('.mejs-shim')
+					.width('100%')
+					.height('100%');
+
+				//if (!mejs.MediaFeatures.hasTrueNativeFullScreen) {
+					t.media.setVideoSize($(window).width(),$(window).height());
+				//}
+			}
+
+			t.layers.children('div')
+				.width('100%')
+				.height('100%');
+
+			if (t.fullscreenBtn) {
+				t.fullscreenBtn
+					.removeClass('mejs-fullscreen')
+					.addClass('mejs-unfullscreen');
+			}
+
+			t.setControlsSize();
+			t.isFullScreen = true;
+
+			t.container.find('.mejs-captions-text').css('font-size', screen.width / t.width * 1.00 * 100 + '%');
+			t.container.find('.mejs-captions-position').css('bottom', '45px');
+		},
+
+		exitFullScreen: function() {
+
+			var t = this;
+
+            // Prevent container from attempting to stretch a second time
+            clearTimeout(t.containerSizeTimeout);
+
+			// firefox can't adjust plugins
+			if (t.media.pluginType !== 'native' && mejs.MediaFeatures.isFirefox) {
+				t.media.setFullscreen(false);
+				//player.isFullScreen = false;
+				return;
+			}
+
+			// come outo of native fullscreen
+			if (mejs.MediaFeatures.hasTrueNativeFullScreen && (mejs.MediaFeatures.isFullScreen() || t.isFullScreen)) {
+				mejs.MediaFeatures.cancelFullScreen();
+			}
+
+			// restore scroll bars to document
+            $(document.documentElement).removeClass('mejs-fullscreen');
+
+			t.container
+				.removeClass('mejs-container-fullscreen')
+				.width(normalWidth)
+				.height(normalHeight);
+				//.css({position: '', left: '', top: '', right: '', bottom: '', overflow: 'inherit', width: normalWidth + 'px', height: normalHeight + 'px', 'z-index': 1});
+
+			if (t.media.pluginType === 'native') {
+				t.$media
+					.width(normalWidth)
+					.height(normalHeight);
+			} else {
+				t.container.find('.mejs-shim')
+					.width(normalWidth)
+					.height(normalHeight);
+
+				t.media.setVideoSize(normalWidth, normalHeight);
+			}
+
+			t.layers.children('div')
+				.width(normalWidth)
+				.height(normalHeight);
+
+			t.fullscreenBtn
+				.removeClass('mejs-unfullscreen')
+				.addClass('mejs-fullscreen');
+
+			t.setControlsSize();
+			t.isFullScreen = false;
+
+			t.container.find('.mejs-captions-text').css('font-size','');
+			t.container.find('.mejs-captions-position').css('bottom', '');
+		}
+	});
+
+})(mejs.$);
+
+(function($) {
+
+	// Speed
+	$.extend(mejs.MepDefaults, {
+
+		speeds: ['1.50', '1.25', '1.00', '0.75'],
+
+		defaultSpeed: '1.00'
+
+	});
+
+	$.extend(MediaElementPlayer.prototype, {
+
+		buildspeed: function(player, controls, layers, media) {
+			var t = this;
+
+			if (t.media.pluginType == 'native') {
+				var s = '<div class="mejs-button mejs-speed-button"><button type="button">'+t.options.defaultSpeed+'x</button><div class="mejs-speed-selector"><ul>';
+				var i, ss;
+
+				if ($.inArray(t.options.defaultSpeed, t.options.speeds) === -1) {
+					t.options.speeds.push(t.options.defaultSpeed);
+				}
+
+				t.options.speeds.sort(function(a, b) {
+					return parseFloat(b) - parseFloat(a);
+				});
+
+				for (i = 0; i < t.options.speeds.length; i++) {
+					s += '<li><input type="radio" name="speed" value="' + t.options.speeds[i] + '" id="' + t.options.speeds[i] + '" ';
+					if (t.options.speeds[i] == t.options.defaultSpeed) {
+						s += 'checked=true ';
+						s += '/><label for="' + t.options.speeds[i] + '" class="mejs-speed-selected">'+ t.options.speeds[i] + 'x</label></li>';
+					} else {
+						s += '/><label for="' + t.options.speeds[i] + '">'+ t.options.speeds[i] + 'x</label></li>';
+					}
+				}
+				s += '</ul></div></div>';
+
+				player.speedButton = $(s).appendTo(controls);
+
+				player.playbackspeed = t.options.defaultSpeed;
+
+				player.speedButton
+				.on('click', 'input[type=radio]', function() {
+					player.playbackspeed = $(this).attr('value');
+					media.playbackRate = parseFloat(player.playbackspeed);
+					player.speedButton.find('button').text(player.playbackspeed + 'x');
+					player.speedButton.find('.mejs-speed-selected').removeClass('mejs-speed-selected');
+					player.speedButton.find('input[type=radio]:checked').next().addClass('mejs-speed-selected');
+				});
+
+				ss = player.speedButton.find('.mejs-speed-selector');
+				ss.height(this.speedButton.find('.mejs-speed-selector ul').outerHeight(true) + player.speedButton.find('.mejs-speed-translations').outerHeight(true));
+				ss.css('top', (-1 * ss.height()) + 'px');
+			}
+		}
+	});
+
+})(mejs.$);
+
+(function($) {
+
+	// add extra default options
+	$.extend(mejs.MepDefaults, {
+		// this will automatically turn on a <track>
+		startLanguage: '',
+
+		tracksText: mejs.i18n.t('Captions/Subtitles'),
+
+		// option to remove the [cc] button when no <track kind="subtitles"> are present
+		hideCaptionsButtonWhenEmpty: true,
+
+		// If true and we only have one track, change captions to popup
+		toggleCaptionsButtonWhenOnlyOne: false,
+
+		// #id or .class
+		slidesSelector: ''
+	});
+
+	$.extend(MediaElementPlayer.prototype, {
+
+		hasChapters: false,
+
+		buildtracks: function(player, controls, layers, media) {
+			if (player.tracks.length === 0)
+				return;
+
+			var t = this,
+				i,
+				options = '';
+
+			if (t.domNode.textTracks) { // if browser will do native captions, prefer mejs captions, loop through tracks and hide
+				for (i = t.domNode.textTracks.length - 1; i >= 0; i--) {
+					t.domNode.textTracks[i].mode = "hidden";
+				}
+			}
+			player.chapters =
+					$('<div class="mejs-chapters mejs-layer"></div>')
+						.prependTo(layers).hide();
+			player.captions =
+					$('<div class="mejs-captions-layer mejs-layer"><div class="mejs-captions-position mejs-captions-position-hover"><span class="mejs-captions-text"></span></div></div>')
+						.prependTo(layers).hide();
+			player.captionsText = player.captions.find('.mejs-captions-text');
+			player.captionsButton =
+					$('<div class="mejs-button mejs-captions-button">'+
+						'<button type="button" aria-controls="' + t.id + '" title="' + t.options.tracksText + '" aria-label="' + t.options.tracksText + '"></button>'+
+						'<div class="mejs-captions-selector">'+
+							'<ul>'+
+								'<li>'+
+									'<input type="radio" name="' + player.id + '_captions" id="' + player.id + '_captions_none" value="none" checked="checked" />' +
+									'<label for="' + player.id + '_captions_none">' + mejs.i18n.t('None') +'</label>'+
+								'</li>'	+
+							'</ul>'+
+						'</div>'+
+					'</div>')
+						.appendTo(controls);
+
+
+			var subtitleCount = 0;
+			for (i=0; i<player.tracks.length; i++) {
+				if (player.tracks[i].kind == 'subtitles') {
+					subtitleCount++;
+				}
+			}
+
+			// if only one language then just make the button a toggle
+			if (t.options.toggleCaptionsButtonWhenOnlyOne && subtitleCount == 1){
+				// click
+				player.captionsButton.on('click',function() {
+					if (player.selectedTrack === null) {
+						lang = player.tracks[0].srclang;
+					} else {
+						lang = 'none';
+					}
+					player.setTrack(lang);
+				});
+			} else {
+				// hover or keyboard focus
+				player.captionsButton.on( 'mouseenter focusin', function() {
+					$(this).find('.mejs-captions-selector').css('visibility','visible');
+				})
+
+				// handle clicks to the language radio buttons
+				.on('click','input[type=radio]',function() {
+					lang = this.value;
+					player.setTrack(lang);
+				});
+
+				player.captionsButton.on( 'mouseleave focusout', function() {
+					$(this).find(".mejs-captions-selector").css("visibility","hidden");
+				});
+
+			}
+
+			if (!player.options.alwaysShowControls) {
+				// move with controls
+				player.container
+					.bind('controlsshown', function () {
+						// push captions above controls
+						player.container.find('.mejs-captions-position').addClass('mejs-captions-position-hover');
+
+					})
+					.bind('controlshidden', function () {
+						if (!media.paused) {
+							// move back to normal place
+							player.container.find('.mejs-captions-position').removeClass('mejs-captions-position-hover');
+						}
+					});
+			} else {
+				player.container.find('.mejs-captions-position').addClass('mejs-captions-position-hover');
+			}
+
+			player.trackToLoad = -1;
+			player.selectedTrack = null;
+			player.isLoadingTrack = false;
+
+			// add to list
+			for (i=0; i<player.tracks.length; i++) {
+				if (player.tracks[i].kind == 'subtitles') {
+					player.addTrackButton(player.tracks[i].srclang, player.tracks[i].label);
+				}
+			}
+
+			// start loading tracks
+			player.loadNextTrack();
+
+			media.addEventListener('timeupdate',function(e) {
+				player.displayCaptions();
+			}, false);
+
+			if (player.options.slidesSelector !== '') {
+				player.slidesContainer = $(player.options.slidesSelector);
+
+				media.addEventListener('timeupdate',function(e) {
+					player.displaySlides();
+				}, false);
+
+			}
+
+			media.addEventListener('loadedmetadata', function(e) {
+				player.displayChapters();
+			}, false);
+
+			player.container.hover(
+				function () {
+					// chapters
+					if (player.hasChapters) {
+						player.chapters.css('visibility','visible');
+						player.chapters.fadeIn(200).height(player.chapters.find('.mejs-chapter').outerHeight());
+					}
+				},
+				function () {
+					if (player.hasChapters && !media.paused) {
+						player.chapters.fadeOut(200, function() {
+							$(this).css('visibility','hidden');
+							$(this).css('display','block');
+						});
+					}
+				});
+
+			// check for autoplay
+			if (player.node.getAttribute('autoplay') !== null) {
+				player.chapters.css('visibility','hidden');
+			}
+		},
+
+		setTrack: function(lang){
+
+			var t = this,
+				i;
+
+			if (lang == 'none') {
+				t.selectedTrack = null;
+				t.captionsButton.removeClass('mejs-captions-enabled');
+			} else {
+				for (i=0; i<t.tracks.length; i++) {
+					if (t.tracks[i].srclang == lang) {
+						if (t.selectedTrack === null)
+							t.captionsButton.addClass('mejs-captions-enabled');
+						t.selectedTrack = t.tracks[i];
+						t.captions.attr('lang', t.selectedTrack.srclang);
+						t.displayCaptions();
+						break;
+					}
+				}
+			}
+		},
+
+		loadNextTrack: function() {
+			var t = this;
+
+			t.trackToLoad++;
+			if (t.trackToLoad < t.tracks.length) {
+				t.isLoadingTrack = true;
+				t.loadTrack(t.trackToLoad);
+			} else {
+				// add done?
+				t.isLoadingTrack = false;
+
+				t.checkForTracks();
+			}
+		},
+
+		loadTrack: function(index){
+			var
+				t = this,
+				track = t.tracks[index],
+				after = function() {
+
+					track.isLoaded = true;
+
+					// create button
+					//t.addTrackButton(track.srclang);
+					t.enableTrackButton(track.srclang, track.label);
+
+					t.loadNextTrack();
+
+				};
+
+
+			$.ajax({
+				url: track.src,
+				dataType: "text",
+				success: function(d) {
+
+					// parse the loaded file
+					if (typeof d == "string" && (/<tt\s+xml/ig).exec(d)) {
+						track.entries = mejs.TrackFormatParser.dfxp.parse(d);
+					} else {
+						track.entries = mejs.TrackFormatParser.webvtt.parse(d);
+					}
+
+					after();
+
+					if (track.kind == 'chapters') {
+						t.media.addEventListener('play', function(e) {
+							if (t.media.duration > 0) {
+								t.displayChapters(track);
+							}
+						}, false);
+					}
+
+					if (track.kind == 'slides') {
+						t.setupSlides(track);
+					}
+				},
+				error: function() {
+					t.loadNextTrack();
+				}
+			});
+		},
+
+		enableTrackButton: function(lang, label) {
+			var t = this;
+
+			if (label === '') {
+				label = mejs.language.codes[lang] || lang;
+			}
+
+			t.captionsButton
+				.find('input[value=' + lang + ']')
+					.prop('disabled',false)
+				.siblings('label')
+					.html( label );
+
+			// auto select
+			if (t.options.startLanguage == lang) {
+				$('#' + t.id + '_captions_' + lang).prop('checked', true).trigger('click');
+			}
+
+			t.adjustLanguageBox();
+		},
+
+		addTrackButton: function(lang, label) {
+			var t = this;
+			if (label === '') {
+				label = mejs.language.codes[lang] || lang;
+			}
+
+			t.captionsButton.find('ul').append(
+				$('<li>'+
+					'<input type="radio" name="' + t.id + '_captions" id="' + t.id + '_captions_' + lang + '" value="' + lang + '" disabled="disabled" />' +
+					'<label for="' + t.id + '_captions_' + lang + '">' + label + ' (loading)' + '</label>'+
+				'</li>')
+			);
+
+			t.adjustLanguageBox();
+
+			// remove this from the dropdownlist (if it exists)
+			t.container.find('.mejs-captions-translations option[value=' + lang + ']').remove();
+		},
+
+		adjustLanguageBox:function() {
+			var t = this;
+			// adjust the size of the outer box
+			t.captionsButton.find('.mejs-captions-selector').height(
+				t.captionsButton.find('.mejs-captions-selector ul').outerHeight(true) +
+				t.captionsButton.find('.mejs-captions-translations').outerHeight(true)
+			);
+		},
+
+		checkForTracks: function() {
+			var
+				t = this,
+				hasSubtitles = false;
+
+			// check if any subtitles
+			if (t.options.hideCaptionsButtonWhenEmpty) {
+				for (i=0; i<t.tracks.length; i++) {
+					if (t.tracks[i].kind == 'subtitles') {
+						hasSubtitles = true;
+						break;
+					}
+				}
+
+				if (!hasSubtitles) {
+					t.captionsButton.hide();
+					t.setControlsSize();
+				}
+			}
+		},
+
+		displayCaptions: function() {
+
+			if (typeof this.tracks == 'undefined')
+				return;
+
+			var
+				t = this,
+				i,
+				track = t.selectedTrack;
+
+			if (track !== null && track.isLoaded) {
+				for (i=0; i<track.entries.times.length; i++) {
+					if (t.media.currentTime >= track.entries.times[i].start && t.media.currentTime <= track.entries.times[i].stop) {
+						// Set the line before the timecode as a class so the cue can be targeted if needed
+						t.captionsText.html(track.entries.text[i]).attr('class', 'mejs-captions-text ' + (track.entries.times[i].identifier || ''));
+						t.captions.show().height(0);
+						return; // exit out if one is visible;
+					}
+				}
+				t.captions.hide();
+			} else {
+				t.captions.hide();
+			}
+		},
+
+		setupSlides: function(track) {
+			var t = this;
+
+			t.slides = track;
+			t.slides.entries.imgs = [t.slides.entries.text.length];
+			t.showSlide(0);
+
+		},
+
+		showSlide: function(index) {
+			if (typeof this.tracks == 'undefined' || typeof this.slidesContainer == 'undefined') {
+				return;
+			}
+
+			var t = this,
+				url = t.slides.entries.text[index],
+				img = t.slides.entries.imgs[index];
+
+			if (typeof img == 'undefined' || typeof img.fadeIn == 'undefined') {
+
+				t.slides.entries.imgs[index] = img = $('<img src="' + url + '">')
+						.on('load', function() {
+							img.appendTo(t.slidesContainer)
+								.hide()
+								.fadeIn()
+								.siblings(':visible')
+									.fadeOut();
+
+						});
+
+			} else {
+
+				if (!img.is(':visible') && !img.is(':animated')) {
+
+					//
+
+					img.fadeIn()
+						.siblings(':visible')
+							.fadeOut();
+				}
+			}
+
+		},
+
+		displaySlides: function() {
+
+			if (typeof this.slides == 'undefined')
+				return;
+
+			var
+				t = this,
+				slides = t.slides,
+				i;
+
+			for (i=0; i<slides.entries.times.length; i++) {
+				if (t.media.currentTime >= slides.entries.times[i].start && t.media.currentTime <= slides.entries.times[i].stop){
+
+					t.showSlide(i);
+
+					return; // exit out if one is visible;
+				}
+			}
+		},
+
+		displayChapters: function() {
+			var
+				t = this,
+				i;
+
+			for (i=0; i<t.tracks.length; i++) {
+				if (t.tracks[i].kind == 'chapters' && t.tracks[i].isLoaded) {
+					t.drawChapters(t.tracks[i]);
+					t.hasChapters = true;
+					break;
+				}
+			}
+		},
+
+		drawChapters: function(chapters) {
+			var
+				t = this,
+				i,
+				dur,
+				//width,
+				//left,
+				percent = 0,
+				usedPercent = 0;
+
+			t.chapters.empty();
+
+			for (i=0; i<chapters.entries.times.length; i++) {
+				dur = chapters.entries.times[i].stop - chapters.entries.times[i].start;
+				percent = Math.floor(dur / t.media.duration * 100);
+				if (percent + usedPercent > 100 || // too large
+					i == chapters.entries.times.length-1 && percent + usedPercent < 100) // not going to fill it in
+					{
+					percent = 100 - usedPercent;
+				}
+				//width = Math.floor(t.width * dur / t.media.duration);
+				//left = Math.floor(t.width * chapters.entries.times[i].start / t.media.duration);
+				//if (left + width > t.width) {
+				//	width = t.width - left;
+				//}
+
+				t.chapters.append( $(
+					'<div class="mejs-chapter" rel="' + chapters.entries.times[i].start + '" style="left: ' + usedPercent.toString() + '%;width: ' + percent.toString() + '%;">' +
+						'<div class="mejs-chapter-block' + ((i==chapters.entries.times.length-1) ? ' mejs-chapter-block-last' : '') + '">' +
+							'<span class="ch-title">' + chapters.entries.text[i] + '</span>' +
+							'<span class="ch-time">' + mejs.Utility.secondsToTimeCode(chapters.entries.times[i].start) + '&ndash;' + mejs.Utility.secondsToTimeCode(chapters.entries.times[i].stop) + '</span>' +
+						'</div>' +
+					'</div>'));
+				usedPercent += percent;
+			}
+
+			t.chapters.find('div.mejs-chapter').click(function() {
+				t.media.setCurrentTime( parseFloat( $(this).attr('rel') ) );
+				if (t.media.paused) {
+					t.media.play();
+				}
+			});
+
+			t.chapters.show();
+		}
+	});
+
+
+
+	mejs.language = {
+		codes:  {
+			af:'Afrikaans',
+			sq:'Albanian',
+			ar:'Arabic',
+			be:'Belarusian',
+			bg:'Bulgarian',
+			ca:'Catalan',
+			zh:'Chinese',
+			'zh-cn':'Chinese Simplified',
+			'zh-tw':'Chinese Traditional',
+			hr:'Croatian',
+			cs:'Czech',
+			da:'Danish',
+			nl:'Dutch',
+			en:'English',
+			et:'Estonian',
+			fl:'Filipino',
+			fi:'Finnish',
+			fr:'French',
+			gl:'Galician',
+			de:'German',
+			el:'Greek',
+			ht:'Haitian Creole',
+			iw:'Hebrew',
+			hi:'Hindi',
+			hu:'Hungarian',
+			is:'Icelandic',
+			id:'Indonesian',
+			ga:'Irish',
+			it:'Italian',
+			ja:'Japanese',
+			ko:'Korean',
+			lv:'Latvian',
+			lt:'Lithuanian',
+			mk:'Macedonian',
+			ms:'Malay',
+			mt:'Maltese',
+			no:'Norwegian',
+			fa:'Persian',
+			pl:'Polish',
+			pt:'Portuguese',
+			// 'pt-pt':'Portuguese (Portugal)',
+			ro:'Romanian',
+			ru:'Russian',
+			sr:'Serbian',
+			sk:'Slovak',
+			sl:'Slovenian',
+			es:'Spanish',
+			sw:'Swahili',
+			sv:'Swedish',
+			tl:'Tagalog',
+			th:'Thai',
+			tr:'Turkish',
+			uk:'Ukrainian',
+			vi:'Vietnamese',
+			cy:'Welsh',
+			yi:'Yiddish'
+		}
+	};
+
+	/*
+	Parses WebVTT format which should be formatted as
+	================================
+	WEBVTT
+
+	1
+	00:00:01,1 --> 00:00:05,000
+	A line of text
+
+	2
+	00:01:15,1 --> 00:02:05,000
+	A second line of text
+
+	===============================
+
+	Adapted from: http://www.delphiki.com/html5/playr
+	*/
+	mejs.TrackFormatParser = {
+		webvtt: {
+			pattern_timecode: /^((?:[0-9]{1,2}:)?[0-9]{2}:[0-9]{2}([,.][0-9]{1,3})?) --\> ((?:[0-9]{1,2}:)?[0-9]{2}:[0-9]{2}([,.][0-9]{3})?)(.*)$/,
+
+			parse: function(trackText) {
+				var
+					i = 0,
+					lines = mejs.TrackFormatParser.split2(trackText, /\r?\n/),
+					entries = {text:[], times:[]},
+					timecode,
+					text,
+					identifier;
+				for(; i<lines.length; i++) {
+					timecode = this.pattern_timecode.exec(lines[i]);
+
+					if (timecode && i<lines.length) {
+						if ((i - 1) >= 0 && lines[i - 1] !== '') {
+							identifier = lines[i - 1];
+						}
+						i++;
+						// grab all the (possibly multi-line) text that follows
+						text = lines[i];
+						i++;
+						while(lines[i] !== '' && i<lines.length){
+							text = text + '\n' + lines[i];
+							i++;
+						}
+						text = $.trim(text).replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig, "<a href='$1' target='_blank'>$1</a>");
+						// Text is in a different array so I can use .join
+						entries.text.push(text);
+						entries.times.push(
+						{
+							identifier: identifier,
+							start: (mejs.Utility.convertSMPTEtoSeconds(timecode[1]) === 0) ? 0.200 : mejs.Utility.convertSMPTEtoSeconds(timecode[1]),
+							stop: mejs.Utility.convertSMPTEtoSeconds(timecode[3]),
+							settings: timecode[5]
+						});
+					}
+					identifier = '';
+				}
+				return entries;
+			}
+		},
+		// Thanks to Justin Capella: https://github.com/johndyer/mediaelement/pull/420
+		dfxp: {
+			parse: function(trackText) {
+				trackText = $(trackText).filter("tt");
+				var
+					i = 0,
+					container = trackText.children("div").eq(0),
+					lines = container.find("p"),
+					styleNode = trackText.find("#" + container.attr("style")),
+					styles,
+					begin,
+					end,
+					text,
+					entries = {text:[], times:[]};
+
+
+				if (styleNode.length) {
+					var attributes = styleNode.removeAttr("id").get(0).attributes;
+					if (attributes.length) {
+						styles = {};
+						for (i = 0; i < attributes.length; i++) {
+							styles[attributes[i].name.split(":")[1]] = attributes[i].value;
+						}
+					}
+				}
+
+				for(i = 0; i<lines.length; i++) {
+					var style;
+					var _temp_times = {
+						start: null,
+						stop: null,
+						style: null
+					};
+					if (lines.eq(i).attr("begin")) _temp_times.start = mejs.Utility.convertSMPTEtoSeconds(lines.eq(i).attr("begin"));
+					if (!_temp_times.start && lines.eq(i-1).attr("end")) _temp_times.start = mejs.Utility.convertSMPTEtoSeconds(lines.eq(i-1).attr("end"));
+					if (lines.eq(i).attr("end")) _temp_times.stop = mejs.Utility.convertSMPTEtoSeconds(lines.eq(i).attr("end"));
+					if (!_temp_times.stop && lines.eq(i+1).attr("begin")) _temp_times.stop = mejs.Utility.convertSMPTEtoSeconds(lines.eq(i+1).attr("begin"));
+					if (styles) {
+						style = "";
+						for (var _style in styles) {
+							style += _style + ":" + styles[_style] + ";";
+						}
+					}
+					if (style) _temp_times.style = style;
+					if (_temp_times.start === 0) _temp_times.start = 0.200;
+					entries.times.push(_temp_times);
+					text = $.trim(lines.eq(i).html()).replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig, "<a href='$1' target='_blank'>$1</a>");
+					entries.text.push(text);
+					if (entries.times.start === 0) entries.times.start = 2;
+				}
+				return entries;
+			}
+		},
+		split2: function (text, regex) {
+			// normal version for compliant browsers
+			// see below for IE fix
+			return text.split(regex);
+		}
+	};
+
+	// test for browsers with bad String.split method.
+	if ('x\n\ny'.split(/\n/gi).length != 3) {
+		// add super slow IE8 and below version
+		mejs.TrackFormatParser.split2 = function(text, regex) {
+			var
+				parts = [],
+				chunk = '',
+				i;
+
+			for (i=0; i<text.length; i++) {
+				chunk += text.substring(i,i+1);
+				if (regex.test(chunk)) {
+					parts.push(chunk.replace(regex, ''));
+					chunk = '';
+				}
+			}
+			parts.push(chunk);
+			return parts;
+		};
+	}
+
+})(mejs.$);
+
+/*
+* ContextMenu Plugin
+* 
+*
+*/
+
+(function($) {
+
+$.extend(mejs.MepDefaults,
+	{ 'contextMenuItems': [
+		// demo of a fullscreen option
+		{ 
+			render: function(player) {
+				
+				// check for fullscreen plugin
+				if (typeof player.enterFullScreen == 'undefined')
+					return null;
+			
+				if (player.isFullScreen) {
+					return mejs.i18n.t('Turn off Fullscreen');
+				} else {
+					return mejs.i18n.t('Go Fullscreen');
+				}
+			},
+			click: function(player) {
+				if (player.isFullScreen) {
+					player.exitFullScreen();
+				} else {
+					player.enterFullScreen();
+				}
+			}
+		}
+		,
+		// demo of a mute/unmute button
+		{ 
+			render: function(player) {
+				if (player.media.muted) {
+					return mejs.i18n.t('Unmute');
+				} else {
+					return mejs.i18n.t('Mute');
+				}
+			},
+			click: function(player) {
+				if (player.media.muted) {
+					player.setMuted(false);
+				} else {
+					player.setMuted(true);
+				}
+			}
+		},
+		// separator
+		{
+			isSeparator: true
+		}
+		,
+		// demo of simple download video
+		{ 
+			render: function(player) {
+				return mejs.i18n.t('Download Video');
+			},
+			click: function(player) {
+				window.location.href = player.media.currentSrc;
+			}
+		}	
+	]}
+);
+
+
+	$.extend(MediaElementPlayer.prototype, {
+		buildcontextmenu: function(player, controls, layers, media) {
+			
+			// create context menu
+			player.contextMenu = $('<div class="mejs-contextmenu"></div>')
+								.appendTo($('body'))
+								.hide();
+			
+			// create events for showing context menu
+			player.container.bind('contextmenu', function(e) {
+				if (player.isContextMenuEnabled) {
+					e.preventDefault();
+					player.renderContextMenu(e.clientX-1, e.clientY-1);
+					return false;
+				}
+			});
+			player.container.bind('click', function() {
+				player.contextMenu.hide();
+			});	
+			player.contextMenu.bind('mouseleave', function() {
+
+				//
+				player.startContextMenuTimer();
+				
+			});		
+		},
+
+		cleancontextmenu: function(player) {
+			player.contextMenu.remove();
+		},
+		
+		isContextMenuEnabled: true,
+		enableContextMenu: function() {
+			this.isContextMenuEnabled = true;
+		},
+		disableContextMenu: function() {
+			this.isContextMenuEnabled = false;
+		},
+		
+		contextMenuTimeout: null,
+		startContextMenuTimer: function() {
+			//
+			
+			var t = this;
+			
+			t.killContextMenuTimer();
+			
+			t.contextMenuTimer = setTimeout(function() {
+				t.hideContextMenu();
+				t.killContextMenuTimer();
+			}, 750);
+		},
+		killContextMenuTimer: function() {
+			var timer = this.contextMenuTimer;
+			
+			//
+			
+			if (timer != null) {				
+				clearTimeout(timer);
+				delete timer;
+				timer = null;
+			}
+		},		
+		
+		hideContextMenu: function() {
+			this.contextMenu.hide();
+		},
+		
+		renderContextMenu: function(x,y) {
+			
+			// alway re-render the items so that things like "turn fullscreen on" and "turn fullscreen off" are always written correctly
+			var t = this,
+				html = '',
+				items = t.options.contextMenuItems;
+			
+			for (var i=0, il=items.length; i<il; i++) {
+				
+				if (items[i].isSeparator) {
+					html += '<div class="mejs-contextmenu-separator"></div>';
+				} else {
+				
+					var rendered = items[i].render(t);
+				
+					// render can return null if the item doesn't need to be used at the moment
+					if (rendered != null) {
+						html += '<div class="mejs-contextmenu-item" data-itemindex="' + i + '" id="element-' + (Math.random()*1000000) + '">' + rendered + '</div>';
+					}
+				}
+			}
+			
+			// position and show the context menu
+			t.contextMenu
+				.empty()
+				.append($(html))
+				.css({top:y, left:x})
+				.show();
+				
+			// bind events
+			t.contextMenu.find('.mejs-contextmenu-item').each(function() {
+							
+				// which one is this?
+				var $dom = $(this),
+					itemIndex = parseInt( $dom.data('itemindex'), 10 ),
+					item = t.options.contextMenuItems[itemIndex];
+				
+				// bind extra functionality?
+				if (typeof item.show != 'undefined')
+					item.show( $dom , t);
+				
+				// bind click action
+				$dom.click(function() {			
+					// perform click action
+					if (typeof item.click != 'undefined')
+						item.click(t);
+					
+					// close
+					t.contextMenu.hide();				
+				});				
+			});	
+			
+			// stop the controls from hiding
+			setTimeout(function() {
+				t.killControlsTimer('rev3');	
+			}, 100);
+						
+		}
+	});
+	
+})(mejs.$);
+/**
+ * Postroll plugin
+ */
+(function($) {
+
+	$.extend(mejs.MepDefaults, {
+		postrollCloseText: mejs.i18n.t('Close')
+	});
+
+	// Postroll
+	$.extend(MediaElementPlayer.prototype, {
+		buildpostroll: function(player, controls, layers, media) {
+			var
+				t = this,
+				postrollLink = t.container.find('link[rel="postroll"]').attr('href');
+
+			if (typeof postrollLink !== 'undefined') {
+				player.postroll =
+					$('<div class="mejs-postroll-layer mejs-layer"><a class="mejs-postroll-close" onclick="$(this).parent().hide();return false;">' + t.options.postrollCloseText + '</a><div class="mejs-postroll-layer-content"></div></div>').prependTo(layers).hide();
+
+				t.media.addEventListener('ended', function (e) {
+					$.ajax({
+						dataType: 'html',
+						url: postrollLink,
+						success: function (data, textStatus) {
+							layers.find('.mejs-postroll-layer-content').html(data);
+						}
+					});
+					player.postroll.show();
+				}, false);
+			}
+		}
+	});
+
+})(mejs.$);
diff --git a/lib/mejs/mediaelementplayer.min.css b/lib/mejs/mediaelementplayer.min.css
new file mode 100755
index 00000000..ca859f38
--- /dev/null
+++ b/lib/mejs/mediaelementplayer.min.css
@@ -0,0 +1 @@
+.mejs-container{position:relative;background:#000;font-family:Helvetica,Arial;text-align:left;vertical-align:top;text-indent:0;}.me-plugin{position:absolute;height:auto;width:auto;}.mejs-embed,.mejs-embed body{width:100%;height:100%;margin:0;padding:0;background:#000;overflow:hidden;}.mejs-fullscreen{overflow:hidden!important;}.mejs-container-fullscreen{position:fixed;left:0;top:0;right:0;bottom:0;overflow:hidden;z-index:1000;}.mejs-container-fullscreen .mejs-mediaelement,.mejs-container-fullscreen video{width:100%;height:100%;}.mejs-clear{clear:both;}.mejs-background{position:absolute;top:0;left:0;}.mejs-mediaelement{position:absolute;top:0;left:0;width:100%;height:100%;}.mejs-poster{position:absolute;top:0;left:0;background-size:contain;background-position:50% 50%;background-repeat:no-repeat;}:root .mejs-poster img{display:none;}.mejs-poster img{border:0;padding:0;border:0;}.mejs-overlay{position:absolute;top:0;left:0;}.mejs-overlay-play{cursor:pointer;}.mejs-overlay-button{position:absolute;top:50%;left:50%;width:100px;height:100px;margin:-50px 0 0 -50px;background:url(bigplay.svg) no-repeat;}.no-svg .mejs-overlay-button{background-image:url(bigplay.png);}.mejs-overlay:hover .mejs-overlay-button{background-position:0 -100px;}.mejs-overlay-loading{position:absolute;top:50%;left:50%;width:80px;height:80px;margin:-40px 0 0 -40px;background:#333;background:url(background.png);background:rgba(0,0,0,0.9);background:-webkit-gradient(linear,0% 0,0% 100%,from(rgba(50,50,50,0.9)),to(rgba(0,0,0,0.9)));background:-webkit-linear-gradient(top,rgba(50,50,50,0.9),rgba(0,0,0,0.9));background:-moz-linear-gradient(top,rgba(50,50,50,0.9),rgba(0,0,0,0.9));background:-o-linear-gradient(top,rgba(50,50,50,0.9),rgba(0,0,0,0.9));background:-ms-linear-gradient(top,rgba(50,50,50,0.9),rgba(0,0,0,0.9));background:linear-gradient(rgba(50,50,50,0.9),rgba(0,0,0,0.9));}.mejs-overlay-loading span{display:block;width:80px;height:80px;background:transparent url(loading.gif) 50% 50% no-repeat;}.mejs-container .mejs-controls{position:absolute;list-style-type:none;margin:0;padding:0;bottom:0;left:0;background:url(background.png);background:rgba(0,0,0,0.7);background:-webkit-gradient(linear,0% 0,0% 100%,from(rgba(50,50,50,0.7)),to(rgba(0,0,0,0.7)));background:-webkit-linear-gradient(top,rgba(50,50,50,0.7),rgba(0,0,0,0.7));background:-moz-linear-gradient(top,rgba(50,50,50,0.7),rgba(0,0,0,0.7));background:-o-linear-gradient(top,rgba(50,50,50,0.7),rgba(0,0,0,0.7));background:-ms-linear-gradient(top,rgba(50,50,50,0.7),rgba(0,0,0,0.7));background:linear-gradient(rgba(50,50,50,0.7),rgba(0,0,0,0.7));height:30px;width:100%;}.mejs-container .mejs-controls div{list-style-type:none;background-image:none;display:block;float:left;margin:0;padding:0;width:26px;height:26px;font-size:11px;line-height:11px;font-family:Helvetica,Arial;border:0;}.mejs-controls .mejs-button button{cursor:pointer;display:block;font-size:0;line-height:0;text-decoration:none;margin:7px 5px;padding:0;position:absolute;height:16px;width:16px;border:0;background:transparent url(controls.svg) no-repeat;}.no-svg .mejs-controls .mejs-button button{background-image:url(controls.png);}.mejs-controls .mejs-button button:focus{outline:dotted 1px #999;}.mejs-container .mejs-controls .mejs-time{color:#fff;display:block;height:17px;width:auto;padding:8px 3px 0 3px;overflow:hidden;text-align:center;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;}.mejs-container .mejs-controls .mejs-time span{color:#fff;font-size:11px;line-height:12px;display:block;float:left;margin:1px 2px 0 0;width:auto;}.mejs-controls .mejs-play button{background-position:0 0;}.mejs-controls .mejs-pause button{background-position:0 -16px;}.mejs-controls .mejs-stop button{background-position:-112px 0;}.mejs-controls div.mejs-time-rail{direction:ltr;width:200px;padding-top:5px;}.mejs-controls .mejs-time-rail span{display:block;position:absolute;width:180px;height:10px;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;cursor:pointer;}.mejs-controls .mejs-time-rail .mejs-time-total{margin:5px;background:#333;background:rgba(50,50,50,0.8);background:-webkit-gradient(linear,0% 0,0% 100%,from(rgba(30,30,30,0.8)),to(rgba(60,60,60,0.8)));background:-webkit-linear-gradient(top,rgba(30,30,30,0.8),rgba(60,60,60,0.8));background:-moz-linear-gradient(top,rgba(30,30,30,0.8),rgba(60,60,60,0.8));background:-o-linear-gradient(top,rgba(30,30,30,0.8),rgba(60,60,60,0.8));background:-ms-linear-gradient(top,rgba(30,30,30,0.8),rgba(60,60,60,0.8));background:linear-gradient(rgba(30,30,30,0.8),rgba(60,60,60,0.8));}.mejs-controls .mejs-time-rail .mejs-time-buffering{width:100%;background-image:-o-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-ms-linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(-45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);-webkit-background-size:15px 15px;-moz-background-size:15px 15px;-o-background-size:15px 15px;background-size:15px 15px;-webkit-animation:buffering-stripes 2s linear infinite;-moz-animation:buffering-stripes 2s linear infinite;-ms-animation:buffering-stripes 2s linear infinite;-o-animation:buffering-stripes 2s linear infinite;animation:buffering-stripes 2s linear infinite;}@-webkit-keyframes buffering-stripes{from{background-position:0 0;}to{background-position:30px 0;}}@-moz-keyframes buffering-stripes{from{background-position:0 0;}to{background-position:30px 0;}}@-ms-keyframes buffering-stripes{from{background-position:0 0;}to{background-position:30px 0;}}@-o-keyframes buffering-stripes{from{background-position:0 0;}to{background-position:30px 0;}}@keyframes buffering-stripes{from{background-position:0 0;}to{background-position:30px 0;}}.mejs-controls .mejs-time-rail .mejs-time-loaded{background:#3caac8;background:rgba(60,170,200,0.8);background:-webkit-gradient(linear,0% 0,0% 100%,from(rgba(44,124,145,0.8)),to(rgba(78,183,212,0.8)));background:-webkit-linear-gradient(top,rgba(44,124,145,0.8),rgba(78,183,212,0.8));background:-moz-linear-gradient(top,rgba(44,124,145,0.8),rgba(78,183,212,0.8));background:-o-linear-gradient(top,rgba(44,124,145,0.8),rgba(78,183,212,0.8));background:-ms-linear-gradient(top,rgba(44,124,145,0.8),rgba(78,183,212,0.8));background:linear-gradient(rgba(44,124,145,0.8),rgba(78,183,212,0.8));width:0;}.mejs-controls .mejs-time-rail .mejs-time-current{background:#fff;background:rgba(255,255,255,0.8);background:-webkit-gradient(linear,0% 0,0% 100%,from(rgba(255,255,255,0.9)),to(rgba(200,200,200,0.8)));background:-webkit-linear-gradient(top,rgba(255,255,255,0.9),rgba(200,200,200,0.8));background:-moz-linear-gradient(top,rgba(255,255,255,0.9),rgba(200,200,200,0.8));background:-o-linear-gradient(top,rgba(255,255,255,0.9),rgba(200,200,200,0.8));background:-ms-linear-gradient(top,rgba(255,255,255,0.9),rgba(200,200,200,0.8));background:linear-gradient(rgba(255,255,255,0.9),rgba(200,200,200,0.8));width:0;}.mejs-controls .mejs-time-rail .mejs-time-handle{display:none;position:absolute;margin:0;width:10px;background:#fff;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;cursor:pointer;border:solid 2px #333;top:-2px;text-align:center;}.mejs-controls .mejs-time-rail .mejs-time-float{position:absolute;display:none;background:#eee;width:36px;height:17px;border:solid 1px #333;top:-26px;margin-left:-18px;text-align:center;color:#111;}.mejs-controls .mejs-time-rail .mejs-time-float-current{margin:2px;width:30px;display:block;text-align:center;left:0;}.mejs-controls .mejs-time-rail .mejs-time-float-corner{position:absolute;display:block;width:0;height:0;line-height:0;border:solid 5px #eee;border-color:#eee transparent transparent transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;top:15px;left:13px;}.mejs-long-video .mejs-controls .mejs-time-rail .mejs-time-float{width:48px;}.mejs-long-video .mejs-controls .mejs-time-rail .mejs-time-float-current{width:44px;}.mejs-long-video .mejs-controls .mejs-time-rail .mejs-time-float-corner{left:18px;}.mejs-controls .mejs-fullscreen-button button{background-position:-32px 0;}.mejs-controls .mejs-unfullscreen button{background-position:-32px -16px;}.mejs-controls .mejs-mute button{background-position:-16px -16px;}.mejs-controls .mejs-unmute button{background-position:-16px 0;}.mejs-controls .mejs-volume-button{position:relative;}.mejs-controls .mejs-volume-button .mejs-volume-slider{display:none;height:115px;width:25px;background:url(background.png);background:rgba(50,50,50,0.7);-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;top:-115px;left:0;z-index:1;position:absolute;margin:0;}.mejs-controls .mejs-volume-button:hover{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;}.mejs-controls .mejs-volume-button .mejs-volume-slider .mejs-volume-total{position:absolute;left:11px;top:8px;width:2px;height:100px;background:#ddd;background:rgba(255,255,255,0.5);margin:0;}.mejs-controls .mejs-volume-button .mejs-volume-slider .mejs-volume-current{position:absolute;left:11px;top:8px;width:2px;height:100px;background:#ddd;background:rgba(255,255,255,0.9);margin:0;}.mejs-controls .mejs-volume-button .mejs-volume-slider .mejs-volume-handle{position:absolute;left:4px;top:-3px;width:16px;height:6px;background:#ddd;background:rgba(255,255,255,0.9);cursor:N-resize;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;margin:0;}.mejs-controls div.mejs-horizontal-volume-slider{height:26px;width:60px;position:relative;}.mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-total{position:absolute;left:0;top:11px;width:50px;height:8px;margin:0;padding:0;font-size:1px;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;background:#333;background:rgba(50,50,50,0.8);background:-webkit-gradient(linear,0% 0,0% 100%,from(rgba(30,30,30,0.8)),to(rgba(60,60,60,0.8)));background:-webkit-linear-gradient(top,rgba(30,30,30,0.8),rgba(60,60,60,0.8));background:-moz-linear-gradient(top,rgba(30,30,30,0.8),rgba(60,60,60,0.8));background:-o-linear-gradient(top,rgba(30,30,30,0.8),rgba(60,60,60,0.8));background:-ms-linear-gradient(top,rgba(30,30,30,0.8),rgba(60,60,60,0.8));background:linear-gradient(rgba(30,30,30,0.8),rgba(60,60,60,0.8));}.mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-current{position:absolute;left:0;top:11px;width:50px;height:8px;margin:0;padding:0;font-size:1px;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;background:#fff;background:rgba(255,255,255,0.8);background:-webkit-gradient(linear,0% 0,0% 100%,from(rgba(255,255,255,0.9)),to(rgba(200,200,200,0.8)));background:-webkit-linear-gradient(top,rgba(255,255,255,0.9),rgba(200,200,200,0.8));background:-moz-linear-gradient(top,rgba(255,255,255,0.9),rgba(200,200,200,0.8));background:-o-linear-gradient(top,rgba(255,255,255,0.9),rgba(200,200,200,0.8));background:-ms-linear-gradient(top,rgba(255,255,255,0.9),rgba(200,200,200,0.8));background:linear-gradient(rgba(255,255,255,0.9),rgba(200,200,200,0.8));}.mejs-controls .mejs-horizontal-volume-slider .mejs-horizontal-volume-handle{display:none;}.mejs-controls .mejs-captions-button{position:relative;}.mejs-controls .mejs-captions-button button{background-position:-48px 0;}.mejs-controls .mejs-captions-button .mejs-captions-selector{visibility:hidden;position:absolute;bottom:26px;right:-51px;width:85px;height:100px;background:url(background.png);background:rgba(50,50,50,0.7);border:solid 1px transparent;padding:10px 10px 0 10px;overflow:hidden;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}.mejs-controls .mejs-captions-button .mejs-captions-selector ul{margin:0;padding:0;display:block;list-style-type:none!important;overflow:hidden;}.mejs-controls .mejs-captions-button .mejs-captions-selector ul li{margin:0 0 6px 0;padding:0;list-style-type:none!important;display:block;color:#fff;overflow:hidden;}.mejs-controls .mejs-captions-button .mejs-captions-selector ul li input{clear:both;float:left;margin:3px 3px 0 5px;}.mejs-controls .mejs-captions-button .mejs-captions-selector ul li label{width:55px;float:left;padding:4px 0 0 0;line-height:15px;font-family:helvetica,arial;font-size:10px;}.mejs-controls .mejs-captions-button .mejs-captions-translations{font-size:10px;margin:0 0 5px 0;}.mejs-chapters{position:absolute;top:0;left:0;-xborder-right:solid 1px #fff;width:10000px;z-index:1;}.mejs-chapters .mejs-chapter{position:absolute;float:left;background:#222;background:rgba(0,0,0,0.7);background:-webkit-gradient(linear,0% 0,0% 100%,from(rgba(50,50,50,0.7)),to(rgba(0,0,0,0.7)));background:-webkit-linear-gradient(top,rgba(50,50,50,0.7),rgba(0,0,0,0.7));background:-moz-linear-gradient(top,rgba(50,50,50,0.7),rgba(0,0,0,0.7));background:-o-linear-gradient(top,rgba(50,50,50,0.7),rgba(0,0,0,0.7));background:-ms-linear-gradient(top,rgba(50,50,50,0.7),rgba(0,0,0,0.7));background:linear-gradient(rgba(50,50,50,0.7),rgba(0,0,0,0.7));filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0,startColorstr=#323232,endColorstr=#000000);overflow:hidden;border:0;}.mejs-chapters .mejs-chapter .mejs-chapter-block{font-size:11px;color:#fff;padding:5px;display:block;border-right:solid 1px #333;border-bottom:solid 1px #333;cursor:pointer;}.mejs-chapters .mejs-chapter .mejs-chapter-block-last{border-right:none;}.mejs-chapters .mejs-chapter .mejs-chapter-block:hover{background:#666;background:rgba(102,102,102,0.7);background:-webkit-gradient(linear,0% 0,0% 100%,from(rgba(102,102,102,0.7)),to(rgba(50,50,50,0.6)));background:-webkit-linear-gradient(top,rgba(102,102,102,0.7),rgba(50,50,50,0.6));background:-moz-linear-gradient(top,rgba(102,102,102,0.7),rgba(50,50,50,0.6));background:-o-linear-gradient(top,rgba(102,102,102,0.7),rgba(50,50,50,0.6));background:-ms-linear-gradient(top,rgba(102,102,102,0.7),rgba(50,50,50,0.6));background:linear-gradient(rgba(102,102,102,0.7),rgba(50,50,50,0.6));filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0,startColorstr=#666666,endColorstr=#323232);}.mejs-chapters .mejs-chapter .mejs-chapter-block .ch-title{font-size:12px;font-weight:bold;display:block;white-space:nowrap;text-overflow:ellipsis;margin:0 0 3px 0;line-height:12px;}.mejs-chapters .mejs-chapter .mejs-chapter-block .ch-timespan{font-size:12px;line-height:12px;margin:3px 0 4px 0;display:block;white-space:nowrap;text-overflow:ellipsis;}.mejs-captions-layer{position:absolute;bottom:0;left:0;text-align:center;line-height:20px;font-size:16px;color:#fff;}.mejs-captions-layer a{color:#fff;text-decoration:underline;}.mejs-captions-layer[lang=ar]{font-size:20px;font-weight:normal;}.mejs-captions-position{position:absolute;width:100%;bottom:15px;left:0;}.mejs-captions-position-hover{bottom:35px;}.mejs-captions-text{padding:3px 5px;background:url(background.png);background:rgba(20,20,20,0.5);white-space:pre-wrap;}.me-cannotplay a{color:#fff;font-weight:bold;}.me-cannotplay span{padding:15px;display:block;}.mejs-controls .mejs-loop-off button{background-position:-64px -16px;}.mejs-controls .mejs-loop-on button{background-position:-64px 0;}.mejs-controls .mejs-backlight-off button{background-position:-80px -16px;}.mejs-controls .mejs-backlight-on button{background-position:-80px 0;}.mejs-controls .mejs-picturecontrols-button{background-position:-96px 0;}.mejs-contextmenu{position:absolute;width:150px;padding:10px;border-radius:4px;top:0;left:0;background:#fff;border:solid 1px #999;z-index:1001;}.mejs-contextmenu .mejs-contextmenu-separator{height:1px;font-size:0;margin:5px 6px;background:#333;}.mejs-contextmenu .mejs-contextmenu-item{font-family:Helvetica,Arial;font-size:12px;padding:4px 6px;cursor:pointer;color:#333;}.mejs-contextmenu .mejs-contextmenu-item:hover{background:#2C7C91;color:#fff;}.mejs-controls .mejs-sourcechooser-button{position:relative;}.mejs-controls .mejs-sourcechooser-button button{background-position:-128px 0;}.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector{visibility:hidden;position:absolute;bottom:26px;right:-10px;width:130px;height:100px;background:url(background.png);background:rgba(50,50,50,0.7);border:solid 1px transparent;padding:10px;overflow:hidden;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector ul{margin:0;padding:0;display:block;list-style-type:none!important;overflow:hidden;}.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector ul li{margin:0 0 6px 0;padding:0;list-style-type:none!important;display:block;color:#fff;overflow:hidden;}.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector ul li input{clear:both;float:left;margin:3px 3px 0 5px;}.mejs-controls .mejs-sourcechooser-button .mejs-sourcechooser-selector ul li label{width:100px;float:left;padding:4px 0 0 0;line-height:15px;font-family:helvetica,arial;font-size:10px;}.mejs-postroll-layer{position:absolute;bottom:0;left:0;width:100%;height:100%;background:url(background.png);background:rgba(50,50,50,0.7);z-index:1000;overflow:hidden;}.mejs-postroll-layer-content{width:100%;height:100%;}.mejs-postroll-close{position:absolute;right:0;top:0;background:url(background.png);background:rgba(50,50,50,0.7);color:#fff;padding:4px;z-index:100;cursor:pointer;}div.mejs-speed-button{width:46px!important;position:relative;}.mejs-controls .mejs-button.mejs-speed-button button{background:transparent;width:36px;font-size:11px;line-height:normal;color:#fff;}.mejs-controls .mejs-speed-button .mejs-speed-selector{visibility:hidden;position:absolute;top:-100px;left:-10px;width:60px;height:100px;background:url(background.png);background:rgba(50,50,50,0.7);border:solid 1px transparent;padding:0;overflow:hidden;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}.mejs-controls .mejs-speed-button:hover>.mejs-speed-selector{visibility:visible;}.mejs-controls .mejs-speed-button .mejs-speed-selector ul li label.mejs-speed-selected{color:rgba(33,248,248,1);}.mejs-controls .mejs-speed-button .mejs-speed-selector ul{margin:0;padding:0;display:block;list-style-type:none!important;overflow:hidden;}.mejs-controls .mejs-speed-button .mejs-speed-selector ul li{margin:0 0 6px 0;padding:0 10px;list-style-type:none!important;display:block;color:#fff;overflow:hidden;}.mejs-controls .mejs-speed-button .mejs-speed-selector ul li input{clear:both;float:left;margin:3px 3px 0 5px;display:none;}.mejs-controls .mejs-speed-button .mejs-speed-selector ul li label{width:60px;float:left;padding:4px 0 0 0;line-height:15px;font-family:helvetica,arial;font-size:11.5px;color:white;margin-left:5px;cursor:pointer;}.mejs-controls .mejs-speed-button .mejs-speed-selector ul li:hover{background-color:#c8c8c8!important;background-color:rgba(255,255,255,.4)!important;}
\ No newline at end of file
diff --git a/lib/mejs/mediaelementplayer.min.js b/lib/mejs/mediaelementplayer.min.js
new file mode 100755
index 00000000..e96ae83b
--- /dev/null
+++ b/lib/mejs/mediaelementplayer.min.js
@@ -0,0 +1,109 @@
+/*!
+ * MediaElementPlayer
+ * http://mediaelementjs.com/
+ *
+ * Creates a controller bar for HTML5 <video> add <audio> tags
+ * using jQuery and MediaElement.js (HTML5 Flash/Silverlight wrapper)
+ *
+ * Copyright 2010-2013, John Dyer (http://j.hn/)
+ * License: MIT
+ *
+ */if(typeof jQuery!="undefined")mejs.$=jQuery;else if(typeof ender!="undefined")mejs.$=ender;
+(function(f){mejs.MepDefaults={poster:"",showPosterWhenEnded:false,defaultVideoWidth:480,defaultVideoHeight:270,videoWidth:-1,videoHeight:-1,defaultAudioWidth:400,defaultAudioHeight:30,defaultSeekBackwardInterval:function(a){return a.duration*0.05},defaultSeekForwardInterval:function(a){return a.duration*0.05},setDimensions:true,audioWidth:-1,audioHeight:-1,startVolume:0.8,loop:false,autoRewind:true,enableAutosize:true,alwaysShowHours:false,showTimecodeFrameCount:false,framesPerSecond:25,autosizeProgress:true,
+alwaysShowControls:false,hideVideoControlsOnLoad:false,clickToPlayPause:true,iPadUseNativeControls:false,iPhoneUseNativeControls:false,AndroidUseNativeControls:false,features:["playpause","current","progress","duration","tracks","volume","fullscreen"],isVideo:true,enableKeyboard:true,pauseOtherPlayers:true,keyActions:[{keys:[32,179],action:function(a,b){b.paused||b.ended?a.play():a.pause()}},{keys:[38],action:function(a,b){a.container.find(".mejs-volume-slider").css("display","block");if(a.isVideo){a.showControls();
+a.startControlsTimer()}b.setVolume(Math.min(b.volume+0.1,1))}},{keys:[40],action:function(a,b){a.container.find(".mejs-volume-slider").css("display","block");if(a.isVideo){a.showControls();a.startControlsTimer()}b.setVolume(Math.max(b.volume-0.1,0))}},{keys:[37,227],action:function(a,b){if(!isNaN(b.duration)&&b.duration>0){if(a.isVideo){a.showControls();a.startControlsTimer()}var c=Math.max(b.currentTime-a.options.defaultSeekBackwardInterval(b),0);b.setCurrentTime(c)}}},{keys:[39,228],action:function(a,
+b){if(!isNaN(b.duration)&&b.duration>0){if(a.isVideo){a.showControls();a.startControlsTimer()}var c=Math.min(b.currentTime+a.options.defaultSeekForwardInterval(b),b.duration);b.setCurrentTime(c)}}},{keys:[70],action:function(a){if(typeof a.enterFullScreen!="undefined")a.isFullScreen?a.exitFullScreen():a.enterFullScreen()}},{keys:[77],action:function(a){a.container.find(".mejs-volume-slider").css("display","block");if(a.isVideo){a.showControls();a.startControlsTimer()}a.media.muted?a.setMuted(false):
+a.setMuted(true)}}]};mejs.mepIndex=0;mejs.players={};mejs.MediaElementPlayer=function(a,b){if(!(this instanceof mejs.MediaElementPlayer))return new mejs.MediaElementPlayer(a,b);this.$media=this.$node=f(a);this.node=this.media=this.$media[0];if(typeof this.node.player!="undefined")return this.node.player;else this.node.player=this;if(typeof b=="undefined")b=this.$node.data("mejsoptions");this.options=f.extend({},mejs.MepDefaults,b);this.id="mep_"+mejs.mepIndex++;mejs.players[this.id]=this;this.init();
+return this};mejs.MediaElementPlayer.prototype={hasFocus:false,controlsAreVisible:true,init:function(){var a=this,b=mejs.MediaFeatures,c=f.extend(true,{},a.options,{success:function(d,g){a.meReady(d,g)},error:function(d){a.handleError(d)}}),e=a.media.tagName.toLowerCase();a.isDynamic=e!=="audio"&&e!=="video";a.isVideo=a.isDynamic?a.options.isVideo:e!=="audio"&&a.options.isVideo;if(b.isiPad&&a.options.iPadUseNativeControls||b.isiPhone&&a.options.iPhoneUseNativeControls){a.$media.attr("controls","controls");
+b.isiPad&&a.media.getAttribute("autoplay")!==null&&a.play()}else if(!(b.isAndroid&&a.options.AndroidUseNativeControls)){a.$media.removeAttr("controls");a.container=f('<div id="'+a.id+'" class="mejs-container '+(mejs.MediaFeatures.svg?"svg":"no-svg")+'"><div class="mejs-inner"><div class="mejs-mediaelement"></div><div class="mejs-layers"></div><div class="mejs-controls"></div><div class="mejs-clear"></div></div></div>').addClass(a.$media[0].className).insertBefore(a.$media);a.container.addClass((b.isAndroid?
+"mejs-android ":"")+(b.isiOS?"mejs-ios ":"")+(b.isiPad?"mejs-ipad ":"")+(b.isiPhone?"mejs-iphone ":"")+(a.isVideo?"mejs-video ":"mejs-audio "));if(b.isiOS){b=a.$media.clone();a.container.find(".mejs-mediaelement").append(b);a.$media.remove();a.$node=a.$media=b;a.node=a.media=b[0]}else a.container.find(".mejs-mediaelement").append(a.$media);a.controls=a.container.find(".mejs-controls");a.layers=a.container.find(".mejs-layers");b=a.isVideo?"video":"audio";e=b.substring(0,1).toUpperCase()+b.substring(1);
+a.width=a.options[b+"Width"]>0||a.options[b+"Width"].toString().indexOf("%")>-1?a.options[b+"Width"]:a.media.style.width!==""&&a.media.style.width!==null?a.media.style.width:a.media.getAttribute("width")!==null?a.$media.attr("width"):a.options["default"+e+"Width"];a.height=a.options[b+"Height"]>0||a.options[b+"Height"].toString().indexOf("%")>-1?a.options[b+"Height"]:a.media.style.height!==""&&a.media.style.height!==null?a.media.style.height:a.$media[0].getAttribute("height")!==null?a.$media.attr("height"):
+a.options["default"+e+"Height"];a.setPlayerSize(a.width,a.height);c.pluginWidth=a.width;c.pluginHeight=a.height}mejs.MediaElement(a.$media[0],c);typeof a.container!="undefined"&&a.controlsAreVisible&&a.container.trigger("controlsshown")},showControls:function(a){var b=this;a=typeof a=="undefined"||a;if(!b.controlsAreVisible){if(a){b.controls.css("visibility","visible").stop(true,true).fadeIn(200,function(){b.controlsAreVisible=true;b.container.trigger("controlsshown")});b.container.find(".mejs-control").css("visibility",
+"visible").stop(true,true).fadeIn(200,function(){b.controlsAreVisible=true})}else{b.controls.css("visibility","visible").css("display","block");b.container.find(".mejs-control").css("visibility","visible").css("display","block");b.controlsAreVisible=true;b.container.trigger("controlsshown")}b.setControlsSize()}},hideControls:function(a){var b=this;a=typeof a=="undefined"||a;if(!(!b.controlsAreVisible||b.options.alwaysShowControls))if(a){b.controls.stop(true,true).fadeOut(200,function(){f(this).css("visibility",
+"hidden").css("display","block");b.controlsAreVisible=false;b.container.trigger("controlshidden")});b.container.find(".mejs-control").stop(true,true).fadeOut(200,function(){f(this).css("visibility","hidden").css("display","block")})}else{b.controls.css("visibility","hidden").css("display","block");b.container.find(".mejs-control").css("visibility","hidden").css("display","block");b.controlsAreVisible=false;b.container.trigger("controlshidden")}},controlsTimer:null,startControlsTimer:function(a){var b=
+this;a=typeof a!="undefined"?a:1500;b.killControlsTimer("start");b.controlsTimer=setTimeout(function(){b.hideControls();b.killControlsTimer("hide")},a)},killControlsTimer:function(){if(this.controlsTimer!==null){clearTimeout(this.controlsTimer);delete this.controlsTimer;this.controlsTimer=null}},controlsEnabled:true,disableControls:function(){this.killControlsTimer();this.hideControls(false);this.controlsEnabled=false},enableControls:function(){this.showControls(false);this.controlsEnabled=true},
+meReady:function(a,b){var c=this,e=mejs.MediaFeatures,d=b.getAttribute("autoplay");d=!(typeof d=="undefined"||d===null||d==="false");var g;if(!c.created){c.created=true;c.media=a;c.domNode=b;if(!(e.isAndroid&&c.options.AndroidUseNativeControls)&&!(e.isiPad&&c.options.iPadUseNativeControls)&&!(e.isiPhone&&c.options.iPhoneUseNativeControls)){c.buildposter(c,c.controls,c.layers,c.media);c.buildkeyboard(c,c.controls,c.layers,c.media);c.buildoverlays(c,c.controls,c.layers,c.media);c.findTracks();for(g in c.options.features){e=
+c.options.features[g];if(c["build"+e])try{c["build"+e](c,c.controls,c.layers,c.media)}catch(k){}}c.container.trigger("controlsready");c.setPlayerSize(c.width,c.height);c.setControlsSize();if(c.isVideo){if(mejs.MediaFeatures.hasTouch)c.$media.bind("touchstart",function(){if(c.controlsAreVisible)c.hideControls(false);else c.controlsEnabled&&c.showControls(false)});else{c.clickToPlayPauseCallback=function(){if(c.options.clickToPlayPause)c.media.paused?c.play():c.pause()};c.media.addEventListener("click",
+c.clickToPlayPauseCallback,false);c.container.bind("mouseenter mouseover",function(){if(c.controlsEnabled)if(!c.options.alwaysShowControls){c.killControlsTimer("enter");c.showControls();c.startControlsTimer(2500)}}).bind("mousemove",function(){if(c.controlsEnabled){c.controlsAreVisible||c.showControls();c.options.alwaysShowControls||c.startControlsTimer(2500)}}).bind("mouseleave",function(){c.controlsEnabled&&!c.media.paused&&!c.options.alwaysShowControls&&c.startControlsTimer(1E3)})}c.options.hideVideoControlsOnLoad&&
+c.hideControls(false);d&&!c.options.alwaysShowControls&&c.hideControls();c.options.enableAutosize&&c.media.addEventListener("loadedmetadata",function(j){if(c.options.videoHeight<=0&&c.domNode.getAttribute("height")===null&&!isNaN(j.target.videoHeight)){c.setPlayerSize(j.target.videoWidth,j.target.videoHeight);c.setControlsSize();c.media.setVideoSize(j.target.videoWidth,j.target.videoHeight)}},false)}a.addEventListener("play",function(){for(var j in mejs.players){var m=mejs.players[j];m.id!=c.id&&
+c.options.pauseOtherPlayers&&!m.paused&&!m.ended&&m.pause();m.hasFocus=false}c.hasFocus=true},false);c.media.addEventListener("ended",function(){if(c.options.autoRewind)try{c.media.setCurrentTime(0)}catch(j){}c.media.pause();c.setProgressRail&&c.setProgressRail();c.setCurrentRail&&c.setCurrentRail();if(c.options.loop)c.play();else!c.options.alwaysShowControls&&c.controlsEnabled&&c.showControls()},false);c.media.addEventListener("loadedmetadata",function(){c.updateDuration&&c.updateDuration();c.updateCurrent&&
+c.updateCurrent();if(!c.isFullScreen){c.setPlayerSize(c.width,c.height);c.setControlsSize()}},false);setTimeout(function(){c.setPlayerSize(c.width,c.height);c.setControlsSize()},50);c.globalBind("resize",function(){c.isFullScreen||mejs.MediaFeatures.hasTrueNativeFullScreen&&document.webkitIsFullScreen||c.setPlayerSize(c.width,c.height);c.setControlsSize()});c.media.pluginType=="youtube"&&c.options.autoplay&&c.container.find(".mejs-overlay-play").hide()}d&&a.pluginType=="native"&&c.play();if(c.options.success)typeof c.options.success==
+"string"?window[c.options.success](c.media,c.domNode,c):c.options.success(c.media,c.domNode,c)}},handleError:function(a){this.controls.hide();this.options.error&&this.options.error(a)},setPlayerSize:function(a,b){if(!this.options.setDimensions)return false;if(typeof a!="undefined")this.width=a;if(typeof b!="undefined")this.height=b;if(this.height.toString().indexOf("%")>0||this.$node.css("max-width")==="100%"||this.$node[0].currentStyle&&this.$node[0].currentStyle.maxWidth==="100%"){var c=this.isVideo?
+this.media.videoWidth&&this.media.videoWidth>0?this.media.videoWidth:this.media.getAttribute("width")!==null?this.media.getAttribute("width"):this.options.defaultVideoWidth:this.options.defaultAudioWidth,e=this.isVideo?this.media.videoHeight&&this.media.videoHeight>0?this.media.videoHeight:this.media.getAttribute("height")!==null?this.media.getAttribute("height"):this.options.defaultVideoHeight:this.options.defaultAudioHeight,d=this.container.parent().closest(":visible").width(),g=this.container.parent().closest(":visible").height();
+c=this.isVideo||!this.options.autosizeProgress?parseInt(d*e/c,10):e;if(isNaN(c)||g!=0&&c>g)c=g;if(this.container.parent()[0].tagName.toLowerCase()==="body"){d=f(window).width();c=f(window).height()}if(c!=0&&d!=0){this.container.width(d).height(c);this.$media.add(this.container.find(".mejs-shim")).width("100%").height("100%");this.isVideo&&this.media.setVideoSize&&this.media.setVideoSize(d,c);this.layers.children(".mejs-layer").width("100%").height("100%")}}else{this.container.width(this.width).height(this.height);
+this.layers.children(".mejs-layer").width(this.width).height(this.height)}d=this.layers.find(".mejs-overlay-play");g=d.find(".mejs-overlay-button");d.height(this.container.height()-this.controls.height());g.css("margin-top","-"+(g.height()/2-this.controls.height()/2).toString()+"px")},setControlsSize:function(){var a=0,b=0,c=this.controls.find(".mejs-time-rail"),e=this.controls.find(".mejs-time-total");this.controls.find(".mejs-time-current");this.controls.find(".mejs-time-loaded");var d=c.siblings(),
+g=d.last(),k=null;if(!(!this.container.is(":visible")||!c.length||!c.is(":visible"))){if(this.options&&!this.options.autosizeProgress)b=parseInt(c.css("width"));if(b===0||!b){d.each(function(){var j=f(this);if(j.css("position")!="absolute"&&j.is(":visible"))a+=f(this).outerWidth(true)});b=this.controls.width()-a-(c.outerWidth(true)-c.width())}do{c.width(b);e.width(b-(e.outerWidth(true)-e.width()));if(g.css("position")!="absolute"){k=g.position();b--}}while(k!=null&&k.top>0&&b>0);this.setProgressRail&&
+this.setProgressRail();this.setCurrentRail&&this.setCurrentRail()}},buildposter:function(a,b,c,e){var d=f('<div class="mejs-poster mejs-layer"></div>').appendTo(c);b=a.$media.attr("poster");if(a.options.poster!=="")b=a.options.poster;b!==""&&b!=null?this.setPoster(b):d.hide();e.addEventListener("play",function(){d.hide()},false);a.options.showPosterWhenEnded&&a.options.autoRewind&&e.addEventListener("ended",function(){d.show()},false)},setPoster:function(a){var b=this.container.find(".mejs-poster"),
+c=b.find("img");if(c.length==0)c=f('<img width="100%" height="100%" />').appendTo(b);c.attr("src",a);b.css({"background-image":"url("+a+")"})},buildoverlays:function(a,b,c,e){var d=this;if(a.isVideo){var g=f('<div class="mejs-overlay mejs-layer"><div class="mejs-overlay-loading"><span></span></div></div>').hide().appendTo(c),k=f('<div class="mejs-overlay mejs-layer"><div class="mejs-overlay-error"></div></div>').hide().appendTo(c),j=f('<div class="mejs-overlay mejs-layer mejs-overlay-play"><div class="mejs-overlay-button"></div></div>').appendTo(c).bind("click",
+function(){d.options.clickToPlayPause&&e.paused&&e.play()});e.addEventListener("play",function(){j.hide();g.hide();b.find(".mejs-time-buffering").hide();k.hide()},false);e.addEventListener("playing",function(){j.hide();g.hide();b.find(".mejs-time-buffering").hide();k.hide()},false);e.addEventListener("seeking",function(){g.show();b.find(".mejs-time-buffering").show()},false);e.addEventListener("seeked",function(){g.hide();b.find(".mejs-time-buffering").hide()},false);e.addEventListener("pause",function(){mejs.MediaFeatures.isiPhone||
+j.show()},false);e.addEventListener("waiting",function(){g.show();b.find(".mejs-time-buffering").show()},false);e.addEventListener("loadeddata",function(){g.show();b.find(".mejs-time-buffering").show()},false);e.addEventListener("canplay",function(){g.hide();b.find(".mejs-time-buffering").hide()},false);e.addEventListener("error",function(){g.hide();b.find(".mejs-time-buffering").hide();k.show();k.find("mejs-overlay-error").html("Error loading this resource")},false);e.addEventListener("keydown",
+function(m){d.onkeydown(a,e,m)},false)}},buildkeyboard:function(a,b,c,e){var d=this;d.globalBind("keydown",function(g){return d.onkeydown(a,e,g)});d.globalBind("click",function(g){a.hasFocus=f(g.target).closest(".mejs-container").length!=0})},onkeydown:function(a,b,c){if(a.hasFocus&&a.options.enableKeyboard)for(var e=0,d=a.options.keyActions.length;e<d;e++)for(var g=a.options.keyActions[e],k=0,j=g.keys.length;k<j;k++)if(c.keyCode==g.keys[k]){typeof c.preventDefault=="function"&&c.preventDefault();
+g.action(a,b,c.keyCode);return false}return true},findTracks:function(){var a=this,b=a.$media.find("track");a.tracks=[];b.each(function(c,e){e=f(e);a.tracks.push({srclang:e.attr("srclang")?e.attr("srclang").toLowerCase():"",src:e.attr("src"),kind:e.attr("kind"),label:e.attr("label")||"",entries:[],isLoaded:false})})},changeSkin:function(a){this.container[0].className="mejs-container "+a;this.setPlayerSize(this.width,this.height);this.setControlsSize()},play:function(){this.load();this.media.play()},
+pause:function(){try{this.media.pause()}catch(a){}},load:function(){this.isLoaded||this.media.load();this.isLoaded=true},setMuted:function(a){this.media.setMuted(a)},setCurrentTime:function(a){this.media.setCurrentTime(a)},getCurrentTime:function(){return this.media.currentTime},setVolume:function(a){this.media.setVolume(a)},getVolume:function(){return this.media.volume},setSrc:function(a){this.media.setSrc(a)},remove:function(){var a,b;for(a in this.options.features){b=this.options.features[a];if(this["clean"+
+b])try{this["clean"+b](this)}catch(c){}}if(this.isDynamic)this.$node.insertBefore(this.container);else{this.$media.prop("controls",true);this.$node.clone().insertBefore(this.container).show();this.$node.remove()}this.media.pluginType!=="native"&&this.media.remove();delete mejs.players[this.id];typeof this.container=="object"&&this.container.remove();this.globalUnbind();delete this.node.player}};(function(){function a(c,e){var d={d:[],w:[]};f.each((c||"").split(" "),function(g,k){var j=k+"."+e;if(j.indexOf(".")===
+0){d.d.push(j);d.w.push(j)}else d[b.test(k)?"w":"d"].push(j)});d.d=d.d.join(" ");d.w=d.w.join(" ");return d}var b=/^((after|before)print|(before)?unload|hashchange|message|o(ff|n)line|page(hide|show)|popstate|resize|storage)\b/;mejs.MediaElementPlayer.prototype.globalBind=function(c,e,d){c=a(c,this.id);c.d&&f(document).bind(c.d,e,d);c.w&&f(window).bind(c.w,e,d)};mejs.MediaElementPlayer.prototype.globalUnbind=function(c,e){c=a(c,this.id);c.d&&f(document).unbind(c.d,e);c.w&&f(window).unbind(c.w,e)}})();
+if(typeof f!="undefined"){f.fn.mediaelementplayer=function(a){a===false?this.each(function(){var b=f(this).data("mediaelementplayer");b&&b.remove();f(this).removeData("mediaelementplayer")}):this.each(function(){f(this).data("mediaelementplayer",new mejs.MediaElementPlayer(this,a))});return this};f(document).ready(function(){f(".mejs-player").mediaelementplayer()})}window.MediaElementPlayer=mejs.MediaElementPlayer})(mejs.$);
+(function(f){f.extend(mejs.MepDefaults,{playpauseText:mejs.i18n.t("Play/Pause")});f.extend(MediaElementPlayer.prototype,{buildplaypause:function(a,b,c,e){var d=f('<div class="mejs-button mejs-playpause-button mejs-play" ><button type="button" aria-controls="'+this.id+'" title="'+this.options.playpauseText+'" aria-label="'+this.options.playpauseText+'"></button></div>').appendTo(b).click(function(g){g.preventDefault();e.paused?e.play():e.pause();return false});e.addEventListener("play",function(){d.removeClass("mejs-play").addClass("mejs-pause")},
+false);e.addEventListener("playing",function(){d.removeClass("mejs-play").addClass("mejs-pause")},false);e.addEventListener("pause",function(){d.removeClass("mejs-pause").addClass("mejs-play")},false);e.addEventListener("paused",function(){d.removeClass("mejs-pause").addClass("mejs-play")},false)}})})(mejs.$);
+(function(f){f.extend(mejs.MepDefaults,{stopText:"Stop"});f.extend(MediaElementPlayer.prototype,{buildstop:function(a,b,c,e){f('<div class="mejs-button mejs-stop-button mejs-stop"><button type="button" aria-controls="'+this.id+'" title="'+this.options.stopText+'" aria-label="'+this.options.stopText+'"></button></div>').appendTo(b).click(function(){e.paused||e.pause();if(e.currentTime>0){e.setCurrentTime(0);e.pause();b.find(".mejs-time-current").width("0px");b.find(".mejs-time-handle").css("left",
+"0px");b.find(".mejs-time-float-current").html(mejs.Utility.secondsToTimeCode(0));b.find(".mejs-currenttime").html(mejs.Utility.secondsToTimeCode(0));c.find(".mejs-poster").show()}})}})})(mejs.$);
+(function(f){f.extend(MediaElementPlayer.prototype,{buildprogress:function(a,b,c,e){f('<div class="mejs-time-rail"><span class="mejs-time-total"><span class="mejs-time-buffering"></span><span class="mejs-time-loaded"></span><span class="mejs-time-current"></span><span class="mejs-time-handle"></span><span class="mejs-time-float"><span class="mejs-time-float-current">00:00</span><span class="mejs-time-float-corner"></span></span></span></div>').appendTo(b);b.find(".mejs-time-buffering").hide();var d=
+this,g=b.find(".mejs-time-total");c=b.find(".mejs-time-loaded");var k=b.find(".mejs-time-current"),j=b.find(".mejs-time-handle"),m=b.find(".mejs-time-float"),q=b.find(".mejs-time-float-current"),p=function(h){h=h.originalEvent.changedTouches?h.originalEvent.changedTouches[0].pageX:h.pageX;var l=g.offset(),r=g.outerWidth(true),n=0,o=n=0;if(e.duration){if(h<l.left)h=l.left;else if(h>r+l.left)h=r+l.left;o=h-l.left;n=o/r;n=n<=0.02?0:n*e.duration;t&&n!==e.currentTime&&e.setCurrentTime(n);if(!mejs.MediaFeatures.hasTouch){m.css("left",
+o);q.html(mejs.Utility.secondsToTimeCode(n));m.show()}}},t=false;g.bind("mousedown touchstart",function(h){if(h.which===1||h.which===0){t=true;p(h);d.globalBind("mousemove.dur touchmove.dur",function(l){p(l)});d.globalBind("mouseup.dur touchend.dur",function(){t=false;m.hide();d.globalUnbind(".dur")});return false}}).bind("mouseenter",function(){d.globalBind("mousemove.dur",function(h){p(h)});mejs.MediaFeatures.hasTouch||m.show()}).bind("mouseleave",function(){if(!t){d.globalUnbind(".dur");m.hide()}});
+e.addEventListener("progress",function(h){a.setProgressRail(h);a.setCurrentRail(h)},false);e.addEventListener("timeupdate",function(h){a.setProgressRail(h);a.setCurrentRail(h)},false);d.loaded=c;d.total=g;d.current=k;d.handle=j},setProgressRail:function(a){var b=a!=undefined?a.target:this.media,c=null;if(b&&b.buffered&&b.buffered.length>0&&b.buffered.end&&b.duration)c=b.buffered.end(0)/b.duration;else if(b&&b.bytesTotal!=undefined&&b.bytesTotal>0&&b.bufferedBytes!=undefined)c=b.bufferedBytes/b.bytesTotal;
+else if(a&&a.lengthComputable&&a.total!=0)c=a.loaded/a.total;if(c!==null){c=Math.min(1,Math.max(0,c));this.loaded&&this.total&&this.loaded.width(this.total.width()*c)}},setCurrentRail:function(){if(this.media.currentTime!=undefined&&this.media.duration)if(this.total&&this.handle){var a=Math.round(this.total.width()*this.media.currentTime/this.media.duration),b=a-Math.round(this.handle.outerWidth(true)/2);this.current.width(a);this.handle.css("left",b)}}})})(mejs.$);
+(function(f){f.extend(mejs.MepDefaults,{duration:-1,timeAndDurationSeparator:"<span> | </span>"});f.extend(MediaElementPlayer.prototype,{buildcurrent:function(a,b,c,e){f('<div class="mejs-time"><span class="mejs-currenttime">'+(a.options.alwaysShowHours?"00:":"")+(a.options.showTimecodeFrameCount?"00:00:00":"00:00")+"</span></div>").appendTo(b);this.currenttime=this.controls.find(".mejs-currenttime");e.addEventListener("timeupdate",function(){a.updateCurrent()},false)},buildduration:function(a,b,
+c,e){if(b.children().last().find(".mejs-currenttime").length>0)f(this.options.timeAndDurationSeparator+'<span class="mejs-duration">'+(this.options.duration>0?mejs.Utility.secondsToTimeCode(this.options.duration,this.options.alwaysShowHours||this.media.duration>3600,this.options.showTimecodeFrameCount,this.options.framesPerSecond||25):(a.options.alwaysShowHours?"00:":"")+(a.options.showTimecodeFrameCount?"00:00:00":"00:00"))+"</span>").appendTo(b.find(".mejs-time"));else{b.find(".mejs-currenttime").parent().addClass("mejs-currenttime-container");
+f('<div class="mejs-time mejs-duration-container"><span class="mejs-duration">'+(this.options.duration>0?mejs.Utility.secondsToTimeCode(this.options.duration,this.options.alwaysShowHours||this.media.duration>3600,this.options.showTimecodeFrameCount,this.options.framesPerSecond||25):(a.options.alwaysShowHours?"00:":"")+(a.options.showTimecodeFrameCount?"00:00:00":"00:00"))+"</span></div>").appendTo(b)}this.durationD=this.controls.find(".mejs-duration");e.addEventListener("timeupdate",function(){a.updateDuration()},
+false)},updateCurrent:function(){if(this.currenttime)this.currenttime.html(mejs.Utility.secondsToTimeCode(this.media.currentTime,this.options.alwaysShowHours||this.media.duration>3600,this.options.showTimecodeFrameCount,this.options.framesPerSecond||25))},updateDuration:function(){this.container.toggleClass("mejs-long-video",this.media.duration>3600);if(this.durationD&&(this.options.duration>0||this.media.duration))this.durationD.html(mejs.Utility.secondsToTimeCode(this.options.duration>0?this.options.duration:
+this.media.duration,this.options.alwaysShowHours,this.options.showTimecodeFrameCount,this.options.framesPerSecond||25))}})})(mejs.$);
+(function(f){f.extend(mejs.MepDefaults,{muteText:mejs.i18n.t("Mute Toggle"),hideVolumeOnTouchDevices:true,audioVolume:"horizontal",videoVolume:"vertical"});f.extend(MediaElementPlayer.prototype,{buildvolume:function(a,b,c,e){if(!((mejs.MediaFeatures.isAndroid||mejs.MediaFeatures.isiOS)&&this.options.hideVolumeOnTouchDevices)){var d=this,g=d.isVideo?d.options.videoVolume:d.options.audioVolume,k=g=="horizontal"?f('<div class="mejs-button mejs-volume-button mejs-mute"><button type="button" aria-controls="'+
+d.id+'" title="'+d.options.muteText+'" aria-label="'+d.options.muteText+'"></button></div><div class="mejs-horizontal-volume-slider"><div class="mejs-horizontal-volume-total"></div><div class="mejs-horizontal-volume-current"></div><div class="mejs-horizontal-volume-handle"></div></div>').appendTo(b):f('<div class="mejs-button mejs-volume-button mejs-mute"><button type="button" aria-controls="'+d.id+'" title="'+d.options.muteText+'" aria-label="'+d.options.muteText+'"></button><div class="mejs-volume-slider"><div class="mejs-volume-total"></div><div class="mejs-volume-current"></div><div class="mejs-volume-handle"></div></div></div>').appendTo(b),
+j=d.container.find(".mejs-volume-slider, .mejs-horizontal-volume-slider"),m=d.container.find(".mejs-volume-total, .mejs-horizontal-volume-total"),q=d.container.find(".mejs-volume-current, .mejs-horizontal-volume-current"),p=d.container.find(".mejs-volume-handle, .mejs-horizontal-volume-handle"),t=function(n,o){if(!j.is(":visible")&&typeof o=="undefined"){j.show();t(n,true);j.hide()}else{n=Math.max(0,n);n=Math.min(n,1);n==0?k.removeClass("mejs-mute").addClass("mejs-unmute"):k.removeClass("mejs-unmute").addClass("mejs-mute");
+if(g=="vertical"){var s=m.height(),u=m.position(),v=s-s*n;p.css("top",Math.round(u.top+v-p.height()/2));q.height(s-v);q.css("top",u.top+v)}else{s=m.width();u=m.position();s=s*n;p.css("left",Math.round(u.left+s-p.width()/2));q.width(Math.round(s))}}},h=function(n){var o=null,s=m.offset();if(g=="vertical"){o=m.height();parseInt(m.css("top").replace(/px/,""),10);o=(o-(n.pageY-s.top))/o;if(s.top==0||s.left==0)return}else{o=m.width();o=(n.pageX-s.left)/o}o=Math.max(0,o);o=Math.min(o,1);t(o);o==0?e.setMuted(true):
+e.setMuted(false);e.setVolume(o)},l=false,r=false;k.hover(function(){j.show();r=true},function(){r=false;!l&&g=="vertical"&&j.hide()});j.bind("mouseover",function(){r=true}).bind("mousedown",function(n){h(n);d.globalBind("mousemove.vol",function(o){h(o)});d.globalBind("mouseup.vol",function(){l=false;d.globalUnbind(".vol");!r&&g=="vertical"&&j.hide()});l=true;return false});k.find("button").click(function(){e.setMuted(!e.muted)});e.addEventListener("volumechange",function(){if(!l)if(e.muted){t(0);
+k.removeClass("mejs-mute").addClass("mejs-unmute")}else{t(e.volume);k.removeClass("mejs-unmute").addClass("mejs-mute")}},false);if(d.container.is(":visible")){t(a.options.startVolume);a.options.startVolume===0&&e.setMuted(true);e.pluginType==="native"&&e.setVolume(a.options.startVolume)}}}})})(mejs.$);
+(function(f){f.extend(mejs.MepDefaults,{usePluginFullScreen:true,newWindowCallback:function(){return""},fullscreenText:mejs.i18n.t("Fullscreen")});f.extend(MediaElementPlayer.prototype,{isFullScreen:false,isNativeFullScreen:false,isInIframe:false,buildfullscreen:function(a,b,c,e){if(a.isVideo){a.isInIframe=window.location!=window.parent.location;mejs.MediaFeatures.hasTrueNativeFullScreen&&a.globalBind(mejs.MediaFeatures.fullScreenEventName,function(){if(a.isFullScreen)if(mejs.MediaFeatures.isFullScreen()){a.isNativeFullScreen=
+true;a.setControlsSize()}else{a.isNativeFullScreen=false;a.exitFullScreen()}});var d=this,g=f('<div class="mejs-button mejs-fullscreen-button"><button type="button" aria-controls="'+d.id+'" title="'+d.options.fullscreenText+'" aria-label="'+d.options.fullscreenText+'"></button></div>').appendTo(b);if(d.media.pluginType==="native"||!d.options.usePluginFullScreen&&!mejs.MediaFeatures.isFirefox)g.click(function(){mejs.MediaFeatures.hasTrueNativeFullScreen&&mejs.MediaFeatures.isFullScreen()||a.isFullScreen?
+a.exitFullScreen():a.enterFullScreen()});else{var k=null;if(function(){var h=document.createElement("x"),l=document.documentElement,r=window.getComputedStyle;if(!("pointerEvents"in h.style))return false;h.style.pointerEvents="auto";h.style.pointerEvents="x";l.appendChild(h);r=r&&r(h,"").pointerEvents==="auto";l.removeChild(h);return!!r}()&&!mejs.MediaFeatures.isOpera){var j=false,m=function(){if(j){for(var h in q)q[h].hide();g.css("pointer-events","");d.controls.css("pointer-events","");d.media.removeEventListener("click",
+d.clickToPlayPauseCallback);j=false}},q={};b=["top","left","right","bottom"];var p,t=function(){var h=g.offset().left-d.container.offset().left,l=g.offset().top-d.container.offset().top,r=g.outerWidth(true),n=g.outerHeight(true),o=d.container.width(),s=d.container.height();for(p in q)q[p].css({position:"absolute",top:0,left:0});q.top.width(o).height(l);q.left.width(h).height(n).css({top:l});q.right.width(o-h-r).height(n).css({top:l,left:h+r});q.bottom.width(o).height(s-n-l).css({top:l+n})};d.globalBind("resize",
+function(){t()});p=0;for(c=b.length;p<c;p++)q[b[p]]=f('<div class="mejs-fullscreen-hover" />').appendTo(d.container).mouseover(m).hide();g.on("mouseover",function(){if(!d.isFullScreen){var h=g.offset(),l=a.container.offset();e.positionFullscreenButton(h.left-l.left,h.top-l.top,false);g.css("pointer-events","none");d.controls.css("pointer-events","none");d.media.addEventListener("click",d.clickToPlayPauseCallback);for(p in q)q[p].show();t();j=true}});e.addEventListener("fullscreenchange",function(){d.isFullScreen=
+!d.isFullScreen;d.isFullScreen?d.media.removeEventListener("click",d.clickToPlayPauseCallback):d.media.addEventListener("click",d.clickToPlayPauseCallback);m()});d.globalBind("mousemove",function(h){if(j){var l=g.offset();if(h.pageY<l.top||h.pageY>l.top+g.outerHeight(true)||h.pageX<l.left||h.pageX>l.left+g.outerWidth(true)){g.css("pointer-events","");d.controls.css("pointer-events","");j=false}}})}else g.on("mouseover",function(){if(k!==null){clearTimeout(k);delete k}var h=g.offset(),l=a.container.offset();
+e.positionFullscreenButton(h.left-l.left,h.top-l.top,true)}).on("mouseout",function(){if(k!==null){clearTimeout(k);delete k}k=setTimeout(function(){e.hideFullscreenButton()},1500)})}a.fullscreenBtn=g;d.globalBind("keydown",function(h){if((mejs.MediaFeatures.hasTrueNativeFullScreen&&mejs.MediaFeatures.isFullScreen()||d.isFullScreen)&&h.keyCode==27)a.exitFullScreen()})}},cleanfullscreen:function(a){a.exitFullScreen()},containerSizeTimeout:null,enterFullScreen:function(){var a=this;if(!(a.media.pluginType!==
+"native"&&(mejs.MediaFeatures.isFirefox||a.options.usePluginFullScreen))){f(document.documentElement).addClass("mejs-fullscreen");normalHeight=a.container.height();normalWidth=a.container.width();if(a.media.pluginType==="native")if(mejs.MediaFeatures.hasTrueNativeFullScreen){mejs.MediaFeatures.requestFullScreen(a.container[0]);a.isInIframe&&setTimeout(function c(){if(a.isNativeFullScreen){var e=(window.devicePixelRatio||1)*f(window).width(),d=screen.width;Math.abs(d-e)>d*0.0020?a.exitFullScreen():
+setTimeout(c,500)}},500)}else if(mejs.MediaFeatures.hasSemiNativeFullScreen){a.media.webkitEnterFullscreen();return}if(a.isInIframe){var b=a.options.newWindowCallback(this);if(b!=="")if(mejs.MediaFeatures.hasTrueNativeFullScreen)setTimeout(function(){if(!a.isNativeFullScreen){a.pause();window.open(b,a.id,"top=0,left=0,width="+screen.availWidth+",height="+screen.availHeight+",resizable=yes,scrollbars=no,status=no,toolbar=no")}},250);else{a.pause();window.open(b,a.id,"top=0,left=0,width="+screen.availWidth+
+",height="+screen.availHeight+",resizable=yes,scrollbars=no,status=no,toolbar=no");return}}a.container.addClass("mejs-container-fullscreen").width("100%").height("100%");a.containerSizeTimeout=setTimeout(function(){a.container.css({width:"100%",height:"100%"});a.setControlsSize()},500);if(a.media.pluginType==="native")a.$media.width("100%").height("100%");else{a.container.find(".mejs-shim").width("100%").height("100%");a.media.setVideoSize(f(window).width(),f(window).height())}a.layers.children("div").width("100%").height("100%");
+a.fullscreenBtn&&a.fullscreenBtn.removeClass("mejs-fullscreen").addClass("mejs-unfullscreen");a.setControlsSize();a.isFullScreen=true;a.container.find(".mejs-captions-text").css("font-size",screen.width/a.width*1*100+"%");a.container.find(".mejs-captions-position").css("bottom","45px")}},exitFullScreen:function(){clearTimeout(this.containerSizeTimeout);if(this.media.pluginType!=="native"&&mejs.MediaFeatures.isFirefox)this.media.setFullscreen(false);else{if(mejs.MediaFeatures.hasTrueNativeFullScreen&&
+(mejs.MediaFeatures.isFullScreen()||this.isFullScreen))mejs.MediaFeatures.cancelFullScreen();f(document.documentElement).removeClass("mejs-fullscreen");this.container.removeClass("mejs-container-fullscreen").width(normalWidth).height(normalHeight);if(this.media.pluginType==="native")this.$media.width(normalWidth).height(normalHeight);else{this.container.find(".mejs-shim").width(normalWidth).height(normalHeight);this.media.setVideoSize(normalWidth,normalHeight)}this.layers.children("div").width(normalWidth).height(normalHeight);
+this.fullscreenBtn.removeClass("mejs-unfullscreen").addClass("mejs-fullscreen");this.setControlsSize();this.isFullScreen=false;this.container.find(".mejs-captions-text").css("font-size","");this.container.find(".mejs-captions-position").css("bottom","")}}})})(mejs.$);
+(function(f){f.extend(mejs.MepDefaults,{speeds:["1.50","1.25","1.00","0.75"],defaultSpeed:"1.00"});f.extend(MediaElementPlayer.prototype,{buildspeed:function(a,b,c,e){if(this.media.pluginType=="native"){c='<div class="mejs-button mejs-speed-button"><button type="button">'+this.options.defaultSpeed+'x</button><div class="mejs-speed-selector"><ul>';var d;f.inArray(this.options.defaultSpeed,this.options.speeds)===-1&&this.options.speeds.push(this.options.defaultSpeed);this.options.speeds.sort(function(g,
+k){return parseFloat(k)-parseFloat(g)});for(d=0;d<this.options.speeds.length;d++){c+='<li><input type="radio" name="speed" value="'+this.options.speeds[d]+'" id="'+this.options.speeds[d]+'" ';if(this.options.speeds[d]==this.options.defaultSpeed){c+="checked=true ";c+='/><label for="'+this.options.speeds[d]+'" class="mejs-speed-selected">'+this.options.speeds[d]+"x</label></li>"}else c+='/><label for="'+this.options.speeds[d]+'">'+this.options.speeds[d]+"x</label></li>"}c+="</ul></div></div>";a.speedButton=
+f(c).appendTo(b);a.playbackspeed=this.options.defaultSpeed;a.speedButton.on("click","input[type=radio]",function(){a.playbackspeed=f(this).attr("value");e.playbackRate=parseFloat(a.playbackspeed);a.speedButton.find("button").text(a.playbackspeed+"x");a.speedButton.find(".mejs-speed-selected").removeClass("mejs-speed-selected");a.speedButton.find("input[type=radio]:checked").next().addClass("mejs-speed-selected")});b=a.speedButton.find(".mejs-speed-selector");b.height(this.speedButton.find(".mejs-speed-selector ul").outerHeight(true)+
+a.speedButton.find(".mejs-speed-translations").outerHeight(true));b.css("top",-1*b.height()+"px")}}})})(mejs.$);
+(function(f){f.extend(mejs.MepDefaults,{startLanguage:"",tracksText:mejs.i18n.t("Captions/Subtitles"),hideCaptionsButtonWhenEmpty:true,toggleCaptionsButtonWhenOnlyOne:false,slidesSelector:""});f.extend(MediaElementPlayer.prototype,{hasChapters:false,buildtracks:function(a,b,c,e){if(a.tracks.length!==0){var d;if(this.domNode.textTracks)for(d=this.domNode.textTracks.length-1;d>=0;d--)this.domNode.textTracks[d].mode="hidden";a.chapters=f('<div class="mejs-chapters mejs-layer"></div>').prependTo(c).hide();
+a.captions=f('<div class="mejs-captions-layer mejs-layer"><div class="mejs-captions-position mejs-captions-position-hover"><span class="mejs-captions-text"></span></div></div>').prependTo(c).hide();a.captionsText=a.captions.find(".mejs-captions-text");a.captionsButton=f('<div class="mejs-button mejs-captions-button"><button type="button" aria-controls="'+this.id+'" title="'+this.options.tracksText+'" aria-label="'+this.options.tracksText+'"></button><div class="mejs-captions-selector"><ul><li><input type="radio" name="'+
+a.id+'_captions" id="'+a.id+'_captions_none" value="none" checked="checked" /><label for="'+a.id+'_captions_none">'+mejs.i18n.t("None")+"</label></li></ul></div></div>").appendTo(b);for(d=b=0;d<a.tracks.length;d++)a.tracks[d].kind=="subtitles"&&b++;if(this.options.toggleCaptionsButtonWhenOnlyOne&&b==1)a.captionsButton.on("click",function(){lang=a.selectedTrack===null?a.tracks[0].srclang:"none";a.setTrack(lang)});else{a.captionsButton.on("mouseenter focusin",function(){f(this).find(".mejs-captions-selector").css("visibility",
+"visible")}).on("click","input[type=radio]",function(){lang=this.value;a.setTrack(lang)});a.captionsButton.on("mouseleave focusout",function(){f(this).find(".mejs-captions-selector").css("visibility","hidden")})}a.options.alwaysShowControls?a.container.find(".mejs-captions-position").addClass("mejs-captions-position-hover"):a.container.bind("controlsshown",function(){a.container.find(".mejs-captions-position").addClass("mejs-captions-position-hover")}).bind("controlshidden",function(){e.paused||a.container.find(".mejs-captions-position").removeClass("mejs-captions-position-hover")});
+a.trackToLoad=-1;a.selectedTrack=null;a.isLoadingTrack=false;for(d=0;d<a.tracks.length;d++)a.tracks[d].kind=="subtitles"&&a.addTrackButton(a.tracks[d].srclang,a.tracks[d].label);a.loadNextTrack();e.addEventListener("timeupdate",function(){a.displayCaptions()},false);if(a.options.slidesSelector!==""){a.slidesContainer=f(a.options.slidesSelector);e.addEventListener("timeupdate",function(){a.displaySlides()},false)}e.addEventListener("loadedmetadata",function(){a.displayChapters()},false);a.container.hover(function(){if(a.hasChapters){a.chapters.css("visibility",
+"visible");a.chapters.fadeIn(200).height(a.chapters.find(".mejs-chapter").outerHeight())}},function(){a.hasChapters&&!e.paused&&a.chapters.fadeOut(200,function(){f(this).css("visibility","hidden");f(this).css("display","block")})});a.node.getAttribute("autoplay")!==null&&a.chapters.css("visibility","hidden")}},setTrack:function(a){var b;if(a=="none"){this.selectedTrack=null;this.captionsButton.removeClass("mejs-captions-enabled")}else for(b=0;b<this.tracks.length;b++)if(this.tracks[b].srclang==a){this.selectedTrack===
+null&&this.captionsButton.addClass("mejs-captions-enabled");this.selectedTrack=this.tracks[b];this.captions.attr("lang",this.selectedTrack.srclang);this.displayCaptions();break}},loadNextTrack:function(){this.trackToLoad++;if(this.trackToLoad<this.tracks.length){this.isLoadingTrack=true;this.loadTrack(this.trackToLoad)}else{this.isLoadingTrack=false;this.checkForTracks()}},loadTrack:function(a){var b=this,c=b.tracks[a];f.ajax({url:c.src,dataType:"text",success:function(e){c.entries=typeof e=="string"&&
+/<tt\s+xml/ig.exec(e)?mejs.TrackFormatParser.dfxp.parse(e):mejs.TrackFormatParser.webvtt.parse(e);c.isLoaded=true;b.enableTrackButton(c.srclang,c.label);b.loadNextTrack();c.kind=="chapters"&&b.media.addEventListener("play",function(){b.media.duration>0&&b.displayChapters(c)},false);c.kind=="slides"&&b.setupSlides(c)},error:function(){b.loadNextTrack()}})},enableTrackButton:function(a,b){if(b==="")b=mejs.language.codes[a]||a;this.captionsButton.find("input[value="+a+"]").prop("disabled",false).siblings("label").html(b);
+this.options.startLanguage==a&&f("#"+this.id+"_captions_"+a).prop("checked",true).trigger("click");this.adjustLanguageBox()},addTrackButton:function(a,b){if(b==="")b=mejs.language.codes[a]||a;this.captionsButton.find("ul").append(f('<li><input type="radio" name="'+this.id+'_captions" id="'+this.id+"_captions_"+a+'" value="'+a+'" disabled="disabled" /><label for="'+this.id+"_captions_"+a+'">'+b+" (loading)</label></li>"));this.adjustLanguageBox();this.container.find(".mejs-captions-translations option[value="+
+a+"]").remove()},adjustLanguageBox:function(){this.captionsButton.find(".mejs-captions-selector").height(this.captionsButton.find(".mejs-captions-selector ul").outerHeight(true)+this.captionsButton.find(".mejs-captions-translations").outerHeight(true))},checkForTracks:function(){var a=false;if(this.options.hideCaptionsButtonWhenEmpty){for(i=0;i<this.tracks.length;i++)if(this.tracks[i].kind=="subtitles"){a=true;break}if(!a){this.captionsButton.hide();this.setControlsSize()}}},displayCaptions:function(){if(typeof this.tracks!=
+"undefined"){var a,b=this.selectedTrack;if(b!==null&&b.isLoaded)for(a=0;a<b.entries.times.length;a++)if(this.media.currentTime>=b.entries.times[a].start&&this.media.currentTime<=b.entries.times[a].stop){this.captionsText.html(b.entries.text[a]).attr("class","mejs-captions-text "+(b.entries.times[a].identifier||""));this.captions.show().height(0);return}this.captions.hide()}},setupSlides:function(a){this.slides=a;this.slides.entries.imgs=[this.slides.entries.text.length];this.showSlide(0)},showSlide:function(a){if(!(typeof this.tracks==
+"undefined"||typeof this.slidesContainer=="undefined")){var b=this,c=b.slides.entries.text[a],e=b.slides.entries.imgs[a];if(typeof e=="undefined"||typeof e.fadeIn=="undefined")b.slides.entries.imgs[a]=e=f('<img src="'+c+'">').on("load",function(){e.appendTo(b.slidesContainer).hide().fadeIn().siblings(":visible").fadeOut()});else!e.is(":visible")&&!e.is(":animated")&&e.fadeIn().siblings(":visible").fadeOut()}},displaySlides:function(){if(typeof this.slides!="undefined"){var a=this.slides,b;for(b=0;b<
+a.entries.times.length;b++)if(this.media.currentTime>=a.entries.times[b].start&&this.media.currentTime<=a.entries.times[b].stop){this.showSlide(b);break}}},displayChapters:function(){var a;for(a=0;a<this.tracks.length;a++)if(this.tracks[a].kind=="chapters"&&this.tracks[a].isLoaded){this.drawChapters(this.tracks[a]);this.hasChapters=true;break}},drawChapters:function(a){var b=this,c,e,d=e=0;b.chapters.empty();for(c=0;c<a.entries.times.length;c++){e=a.entries.times[c].stop-a.entries.times[c].start;
+e=Math.floor(e/b.media.duration*100);if(e+d>100||c==a.entries.times.length-1&&e+d<100)e=100-d;b.chapters.append(f('<div class="mejs-chapter" rel="'+a.entries.times[c].start+'" style="left: '+d.toString()+"%;width: "+e.toString()+'%;"><div class="mejs-chapter-block'+(c==a.entries.times.length-1?" mejs-chapter-block-last":"")+'"><span class="ch-title">'+a.entries.text[c]+'</span><span class="ch-time">'+mejs.Utility.secondsToTimeCode(a.entries.times[c].start)+"&ndash;"+mejs.Utility.secondsToTimeCode(a.entries.times[c].stop)+
+"</span></div></div>"));d+=e}b.chapters.find("div.mejs-chapter").click(function(){b.media.setCurrentTime(parseFloat(f(this).attr("rel")));b.media.paused&&b.media.play()});b.chapters.show()}});mejs.language={codes:{af:"Afrikaans",sq:"Albanian",ar:"Arabic",be:"Belarusian",bg:"Bulgarian",ca:"Catalan",zh:"Chinese","zh-cn":"Chinese Simplified","zh-tw":"Chinese Traditional",hr:"Croatian",cs:"Czech",da:"Danish",nl:"Dutch",en:"English",et:"Estonian",fl:"Filipino",fi:"Finnish",fr:"French",gl:"Galician",de:"German",
+el:"Greek",ht:"Haitian Creole",iw:"Hebrew",hi:"Hindi",hu:"Hungarian",is:"Icelandic",id:"Indonesian",ga:"Irish",it:"Italian",ja:"Japanese",ko:"Korean",lv:"Latvian",lt:"Lithuanian",mk:"Macedonian",ms:"Malay",mt:"Maltese",no:"Norwegian",fa:"Persian",pl:"Polish",pt:"Portuguese",ro:"Romanian",ru:"Russian",sr:"Serbian",sk:"Slovak",sl:"Slovenian",es:"Spanish",sw:"Swahili",sv:"Swedish",tl:"Tagalog",th:"Thai",tr:"Turkish",uk:"Ukrainian",vi:"Vietnamese",cy:"Welsh",yi:"Yiddish"}};mejs.TrackFormatParser={webvtt:{pattern_timecode:/^((?:[0-9]{1,2}:)?[0-9]{2}:[0-9]{2}([,.][0-9]{1,3})?) --\> ((?:[0-9]{1,2}:)?[0-9]{2}:[0-9]{2}([,.][0-9]{3})?)(.*)$/,
+parse:function(a){var b=0;a=mejs.TrackFormatParser.split2(a,/\r?\n/);for(var c={text:[],times:[]},e,d,g;b<a.length;b++){if((e=this.pattern_timecode.exec(a[b]))&&b<a.length){if(b-1>=0&&a[b-1]!=="")g=a[b-1];b++;d=a[b];for(b++;a[b]!==""&&b<a.length;){d=d+"\n"+a[b];b++}d=f.trim(d).replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig,"<a href='$1' target='_blank'>$1</a>");c.text.push(d);c.times.push({identifier:g,start:mejs.Utility.convertSMPTEtoSeconds(e[1])===0?0.2:mejs.Utility.convertSMPTEtoSeconds(e[1]),
+stop:mejs.Utility.convertSMPTEtoSeconds(e[3]),settings:e[5]})}g=""}return c}},dfxp:{parse:function(a){a=f(a).filter("tt");var b=0;b=a.children("div").eq(0);var c=b.find("p");b=a.find("#"+b.attr("style"));var e,d;a={text:[],times:[]};if(b.length){d=b.removeAttr("id").get(0).attributes;if(d.length){e={};for(b=0;b<d.length;b++)e[d[b].name.split(":")[1]]=d[b].value}}for(b=0;b<c.length;b++){var g;d={start:null,stop:null,style:null};if(c.eq(b).attr("begin"))d.start=mejs.Utility.convertSMPTEtoSeconds(c.eq(b).attr("begin"));
+if(!d.start&&c.eq(b-1).attr("end"))d.start=mejs.Utility.convertSMPTEtoSeconds(c.eq(b-1).attr("end"));if(c.eq(b).attr("end"))d.stop=mejs.Utility.convertSMPTEtoSeconds(c.eq(b).attr("end"));if(!d.stop&&c.eq(b+1).attr("begin"))d.stop=mejs.Utility.convertSMPTEtoSeconds(c.eq(b+1).attr("begin"));if(e){g="";for(var k in e)g+=k+":"+e[k]+";"}if(g)d.style=g;if(d.start===0)d.start=0.2;a.times.push(d);d=f.trim(c.eq(b).html()).replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig,
+"<a href='$1' target='_blank'>$1</a>");a.text.push(d);if(a.times.start===0)a.times.start=2}return a}},split2:function(a,b){return a.split(b)}};if("x\n\ny".split(/\n/gi).length!=3)mejs.TrackFormatParser.split2=function(a,b){var c=[],e="",d;for(d=0;d<a.length;d++){e+=a.substring(d,d+1);if(b.test(e)){c.push(e.replace(b,""));e=""}}c.push(e);return c}})(mejs.$);
+(function(f){f.extend(mejs.MepDefaults,{contextMenuItems:[{render:function(a){if(typeof a.enterFullScreen=="undefined")return null;return a.isFullScreen?mejs.i18n.t("Turn off Fullscreen"):mejs.i18n.t("Go Fullscreen")},click:function(a){a.isFullScreen?a.exitFullScreen():a.enterFullScreen()}},{render:function(a){return a.media.muted?mejs.i18n.t("Unmute"):mejs.i18n.t("Mute")},click:function(a){a.media.muted?a.setMuted(false):a.setMuted(true)}},{isSeparator:true},{render:function(){return mejs.i18n.t("Download Video")},
+click:function(a){window.location.href=a.media.currentSrc}}]});f.extend(MediaElementPlayer.prototype,{buildcontextmenu:function(a){a.contextMenu=f('<div class="mejs-contextmenu"></div>').appendTo(f("body")).hide();a.container.bind("contextmenu",function(b){if(a.isContextMenuEnabled){b.preventDefault();a.renderContextMenu(b.clientX-1,b.clientY-1);return false}});a.container.bind("click",function(){a.contextMenu.hide()});a.contextMenu.bind("mouseleave",function(){a.startContextMenuTimer()})},cleancontextmenu:function(a){a.contextMenu.remove()},
+isContextMenuEnabled:true,enableContextMenu:function(){this.isContextMenuEnabled=true},disableContextMenu:function(){this.isContextMenuEnabled=false},contextMenuTimeout:null,startContextMenuTimer:function(){var a=this;a.killContextMenuTimer();a.contextMenuTimer=setTimeout(function(){a.hideContextMenu();a.killContextMenuTimer()},750)},killContextMenuTimer:function(){var a=this.contextMenuTimer;if(a!=null){clearTimeout(a);delete a}},hideContextMenu:function(){this.contextMenu.hide()},renderContextMenu:function(a,
+b){for(var c=this,e="",d=c.options.contextMenuItems,g=0,k=d.length;g<k;g++)if(d[g].isSeparator)e+='<div class="mejs-contextmenu-separator"></div>';else{var j=d[g].render(c);if(j!=null)e+='<div class="mejs-contextmenu-item" data-itemindex="'+g+'" id="element-'+Math.random()*1E6+'">'+j+"</div>"}c.contextMenu.empty().append(f(e)).css({top:b,left:a}).show();c.contextMenu.find(".mejs-contextmenu-item").each(function(){var m=f(this),q=parseInt(m.data("itemindex"),10),p=c.options.contextMenuItems[q];typeof p.show!=
+"undefined"&&p.show(m,c);m.click(function(){typeof p.click!="undefined"&&p.click(c);c.contextMenu.hide()})});setTimeout(function(){c.killControlsTimer("rev3")},100)}})})(mejs.$);
+(function(f){f.extend(mejs.MepDefaults,{postrollCloseText:mejs.i18n.t("Close")});f.extend(MediaElementPlayer.prototype,{buildpostroll:function(a,b,c){var e=this.container.find('link[rel="postroll"]').attr("href");if(typeof e!=="undefined"){a.postroll=f('<div class="mejs-postroll-layer mejs-layer"><a class="mejs-postroll-close" onclick="$(this).parent().hide();return false;">'+this.options.postrollCloseText+'</a><div class="mejs-postroll-layer-content"></div></div>').prependTo(c).hide();this.media.addEventListener("ended",
+function(){f.ajax({dataType:"html",url:e,success:function(d){c.find(".mejs-postroll-layer-content").html(d)}});a.postroll.show()},false)}}})})(mejs.$);
diff --git a/lib/mejs/mejs-skins.css b/lib/mejs/mejs-skins.css
new file mode 100755
index 00000000..5c27cf15
--- /dev/null
+++ b/lib/mejs/mejs-skins.css
@@ -0,0 +1,289 @@
+/* TED player */
+.mejs-container.mejs-ted {
+
+}
+.mejs-ted .mejs-controls {
+	background: #eee;
+	height: 65px;
+}
+
+.mejs-ted .mejs-button,
+.mejs-ted .mejs-time {
+	position: absolute;
+	background: #ddd;
+}
+.mejs-ted .mejs-controls .mejs-time-rail .mejs-time-total {
+	background-color: none;
+	background: url(controls-ted.png) repeat-x 0 -52px;
+	height: 6px;
+}
+.mejs-ted .mejs-controls .mejs-time-rail .mejs-time-buffering {
+	height: 6px;
+}
+.mejs-ted .mejs-controls .mejs-time-rail .mejs-time-loaded {
+	background-color: none;
+	background: url(controls-ted.png) repeat-x 0 -52px;
+	width: 0;
+	height: 6px;
+}
+.mejs-ted .mejs-controls .mejs-time-rail .mejs-time-current {
+	width: 0;
+	height: 6px;
+	background-color: none;
+	background: url(controls-ted.png) repeat-x 0 -59px;
+}
+.mejs-ted .mejs-controls .mejs-time-rail .mejs-time-handle  {
+	display: block;
+	margin: 0;
+	width: 14px;
+	height: 21px;
+	top: -7px;
+	border: 0;
+	background: url(controls-ted.png) no-repeat 0 0;	
+}
+.mejs-ted .mejs-controls .mejs-time-rail .mejs-time-float {	
+	display: none;
+}
+.mejs-ted .mejs-controls .mejs-playpause-button  {
+	top: 29px;
+	left: 9px;
+	width: 49px;
+	height: 28px;
+}
+.mejs-ted .mejs-controls .mejs-playpause-button  button {
+	width: 49px;
+	height: 28px;
+	background: url(controls-ted.png) no-repeat -50px -23px;
+	margin: 0;
+	padding: 0;
+}
+.mejs-ted .mejs-controls .mejs-pause button  {
+	background-position: 0 -23px;
+}
+
+.mejs-ted .mejs-controls .mejs-fullscreen-button  {
+	top: 34px;
+	right: 9px;
+	width: 17px;
+	height: 15px;
+	background : none;
+}
+.mejs-ted .mejs-controls .mejs-fullscreen-button  button {
+	width: 19px;
+	height: 17px;
+	background: transparent url(controls-ted.png) no-repeat 0 -66px;
+	margin: 0;
+	padding: 0;
+}
+.mejs-ted .mejs-controls .mejs-unfullscreen  button {
+	background: transparent url(controls-ted.png) no-repeat -21px -66px;
+	margin: 0;
+	padding: 0;
+}
+.mejs-ted .mejs-controls .mejs-volume-button  {
+	top: 30px;
+	right: 35px;
+	width: 24px;
+	height: 22px;
+}
+.mejs-ted .mejs-controls .mejs-mute button {
+	background: url(controls-ted.png) no-repeat -15px 0;
+	width: 24px;
+	height: 22px;
+	margin: 0;
+	padding: 0;
+}
+.mejs-ted .mejs-controls .mejs-unmute button {
+	background: url(controls-ted.png) no-repeat -40px 0;
+	width: 24px;
+	height: 22px;
+	margin: 0;
+	padding: 0;	
+}
+.mejs-ted  .mejs-controls .mejs-volume-button .mejs-volume-slider {
+	background: #fff;
+	border: solid 1px #aaa;
+	border-width: 1px 1px 0 1px;
+	width: 22px;
+	height: 65px;
+	top: -65px;
+}
+.mejs-ted  .mejs-controls .mejs-volume-button .mejs-volume-total {
+	background: url(controls-ted.png) repeat-y -41px -66px;
+	left: 8px;
+	width: 6px;
+	height: 50px;
+}
+.mejs-ted  .mejs-controls .mejs-volume-button .mejs-volume-current {
+	left: 8px;
+	width: 6px;	
+	background: url(controls-ted.png) repeat-y -48px -66px;
+	height: 50px;
+}
+
+.mejs-ted  .mejs-controls .mejs-volume-button .mejs-volume-handle {
+	display: none;
+}
+
+.mejs-ted .mejs-controls .mejs-time span {
+	color: #333;
+}
+.mejs-ted .mejs-controls .mejs-currenttime-container  {
+	position: absolute;
+	top: 32px;
+	right: 100px;
+	border: solid 1px #999;
+	background: #fff;
+	color: #333;
+	padding-top: 2px;
+	border-radius: 3px;
+	color: #333;
+}
+.mejs-ted .mejs-controls .mejs-duration-container  {
+
+	position: absolute;
+	top: 32px;
+	right: 65px;
+	border: solid 1px #999;
+	background: #fff;
+	color: #333;
+	padding-top: 2px;
+	border-radius: 3px;
+	color: #333;
+}
+
+.mejs-ted .mejs-controls .mejs-time  button{
+	color: #333;
+}
+.mejs-ted .mejs-controls .mejs-captions-button {
+	display: none;
+}
+/* END: TED player */
+
+
+/* WMP player */
+.mejs-container.mejs-wmp {
+
+}
+.mejs-wmp .mejs-controls {
+	background: transparent url(controls-wmp-bg.png) center 16px no-repeat;
+	height: 65px;
+}
+
+.mejs-wmp .mejs-button,
+.mejs-wmp .mejs-time {
+	position: absolute;
+	background: transparent;
+}
+.mejs-wmp .mejs-controls .mejs-time-rail .mejs-time-total {
+	background-color: transparent;
+	border: solid 1px #ccc;
+	height: 3px;
+}
+.mejs-wmp .mejs-controls .mejs-time-rail .mejs-time-buffering {
+	height: 3px;
+}
+.mejs-wmp .mejs-controls .mejs-time-rail .mejs-time-loaded {
+	background-color: rgba(255,255,255,0.3);
+	width: 0;
+	height: 3px;
+}
+.mejs-wmp .mejs-controls .mejs-time-rail .mejs-time-current {
+	width: 0;
+	height: 1px;
+	background-color: #014CB6;
+	border: solid 1px #7FC9FA;
+	border-width: 1px 0;
+	border-color: #7FC9FA #fff #619FF2 #fff;
+}
+.mejs-wmp .mejs-controls .mejs-time-rail .mejs-time-handle  {
+	display: block;
+	margin: 0;
+	width: 16px;
+	height: 9px;
+	top: -3px;
+	border: 0;
+	background: url(controls-wmp.png) no-repeat 0 -80px;	
+}
+.mejs-wmp .mejs-controls .mejs-time-rail .mejs-time-float {	
+	display: none;
+}
+.mejs-wmp .mejs-controls .mejs-playpause-button  {
+	top: 10px;
+	left: 50%;
+	margin: 10px 0 0 -20px;	
+	width: 40px;
+	height: 40px;
+	
+}
+.mejs-wmp .mejs-controls .mejs-playpause-button  button {
+	width: 40px;
+	height: 40px;
+	background: url(controls-wmp.png) no-repeat 0 0;	
+	margin: 0;
+	padding: 0;
+}
+.mejs-wmp .mejs-controls .mejs-pause button  {
+	background-position: 0 -40px;
+}
+
+.mejs-wmp .mejs-controls .mejs-currenttime-container  {
+	position: absolute;
+	top: 25px;
+	left: 50%;
+	margin-left: -93px;
+}
+.mejs-wmp .mejs-controls .mejs-duration-container  {
+	position: absolute;
+	top: 25px;
+	left: 50%;
+	margin-left: -58px;
+}
+
+
+.mejs-wmp .mejs-controls .mejs-volume-button  {
+	top: 32px;
+	right: 50%;
+	margin-right: -55px;
+	width: 20px;
+	height: 15px;
+}
+.mejs-wmp .mejs-controls .mejs-volume-button button {
+	margin: 0;
+	padding: 0;
+	background: url(controls-wmp.png) no-repeat -42px -17px;
+	width: 20px;
+	height: 15px;
+}
+.mejs-wmp .mejs-controls .mejs-unmute button {
+	margin: 0;
+	padding: 0;
+	background: url(controls-wmp.png) no-repeat -42px 0;
+	width: 20px;
+	height: 15px;
+}
+.mejs-wmp .mejs-controls .mejs-volume-button .mejs-volume-slider {
+	background: rgba(102,102,102,0.6);
+}
+
+.mejs-wmp .mejs-controls .mejs-fullscreen-button  {
+	top: 32px;
+	right: 50%;
+	margin-right: -82px;
+	width: 15px;
+	height: 14px;
+}
+.mejs-wmp .mejs-controls .mejs-fullscreen-button  button {
+	margin: 0;
+	padding: 0;
+	background: url(controls-wmp.png) no-repeat -63px 0;
+	width: 15px;
+	height: 14px;
+}
+.mejs-wmp .mejs-controls .mejs-captions-button {
+	display: none;
+}
+/* END: WMP player */
+
+
+
diff --git a/lib/mejs/silverlightmediaelement.xap b/lib/mejs/silverlightmediaelement.xap
new file mode 100755
index 0000000000000000000000000000000000000000..9d55c2e46ae51017ab91f61b05cf4f4838ab10ab
GIT binary patch
literal 12461
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
QCI%*kb_NCp0Rs>Z0Mb?(!2kdN

literal 0
HcmV?d00001

diff --git a/modeles/audio.html b/modeles/audio.html
index d97f166a..c10e1e5b 100644
--- a/modeles/audio.html
+++ b/modeles/audio.html
@@ -1,15 +1,52 @@
 <BOUCLE_tous (DOCUMENTS types_documents) {id_document=#ID} {tout}>
-<div	class='spip_document_#ID_DOCUMENT spip_documents[ spip_documents_(#ENV{align})]'[
-	style='[(#ENV{align}|match{^(left|right)$}|oui)float:#ENV{align};] (#ENV{align,center}|=={center}|non)[width:(#ENV{largeur}|max{120})px]']>
-<object	data='#URL_DOCUMENT' 
-	type='#MIME_TYPE'
-	width='#ENV{largeur, #LARGEUR|?{#LARGEUR,150}}'
-	height='#ENV{hauteur, #HAUTEUR|?{#HAUTEUR,20}}' >
-	<param name='src' value='#URL_DOCUMENT' />
-	[(#ID_DOCUMENT|appliquer_filtre{#MIME_TYPE})]
-	[(#ENV*|env_to_params)]
-</object>
+#SET{largeur,#ENV{largeur, #LARGEUR|?{#LARGEUR,400}}|max{120}}
+<div	class='spip_document_#ID_DOCUMENT spip_documents[ spip_documents_(#ENV{align})]'
+	style='[(#ENV{align}|match{^(left|right)$}|oui)float:#ENV{align};][width:(#GET{largeur})px]'>
+<div class="audio-wrapper"[ style='width:(#GET{largeur})px;max-width:100%;']>
+	<audio class="mejs mejs-#ID_DOCUMENT [ mejs-(#ENV{skin})]"
+	       data-id="[(#VAL{mejs-#ID_DOCUMENT}|concat{#ENV{skin}}|md5)]"
+	       src="#FICHIER"
+	       type="#MIME_TYPE"
+	       data-mejsoptions='{"alwaysShowControls": true[,"loop":(#ENV{loop}|?{true,false})],"audioWidth":"100%"[,audioHeight:"(#ENV{hauteur})"][,startVolume:"(#ENV{volume})"]}'
+	       controls="controls"
+				 [autoplay="autoplay"(#ENV{autoplay}|oui)]></audio>
+</div>
 [<div class='spip_doc_titre'><strong>(#TITRE)</strong></div>]
 [<div class='spip_doc_descriptif'>(#DESCRIPTIF|PtoBR)[(#NOTES|PtoBR)]</div>]
+<script>/*<![CDATA[*/
+	var mejsloader;
+	(function(){
+		var mejs_counter = 0;
+		function mejs_init(){
+			(function($) {
+				jQuery("audio.mejs").each(function(){
+					console.log(this);
+					mejs_counter++;
+					var id = "mejs-" + (jQuery(this).attr('data-id')) + "-" + mejs_counter;
+					var autoplay = jQuery(this).attr('autoplay');
+					jQuery(this).attr('id',id);
+					var options = jQuery(this).attr('data-mejsoptions');
+					if (options)
+						eval("options="+options+";");
+					else
+						options = {};
+					new MediaElementPlayer('#'+id,jQuery.extend(options,{
+						"success": function(media) {
+							if (autoplay) media.play();
+						}
+					}));
+				})
+			})(jQuery);
+		}
+		if (typeof mejsloader=="undefined"){
+			mejsloader = jQuery.getScript("#CHEMIN{lib/mejs/mediaelement-and-player.min.js}",function(){
+				mejs_init(); // init immediate des premiers players dans la page
+				jQuery(mejs_init); // init exhaustive de tous les players
+				onAjaxLoad(mejs_init); // init lors d'un load ajax
+			});
+		}
+	})();
+/*]]>*/</script>
+<link rel="stylesheet" href="#CHEMIN{lib/mejs/mediaelementplayer.min.css}" />
 </div>
-</BOUCLE_tous>
+</BOUCLE_tous>
\ No newline at end of file
diff --git a/paquet.xml b/paquet.xml
index 4885e478..f6e9bbb1 100644
--- a/paquet.xml
+++ b/paquet.xml
@@ -1,7 +1,7 @@
 <paquet
 	prefix="medias"
 	categorie="multimedia"
-	version="2.8.26"
+	version="2.9.0"
 	etat="stable"
 	compatibilite="[3.0.0;3.1.*]"
 	logo="prive/themes/spip/images/portfolio-32.png"
-- 
GitLab